Copyright: Oracle Corporation(c) 1998


A propos des alertes

  Rubriques connexes

Une alerte est une fenêtre modale qui affiche un message signalant à l'utilisateur une condition propre à une application.

Utilisez les alertes pour attirer l'attention des utilisateurs sur des problèmes inhabituels ou sur les conséquences éventuellement néfastes ou inattendues de l'action qu'ils souhaitent exécuter.

Les alertes sont de trois types : Arrêt, Avertissement et Remarque. Chaque type correspond à un niveau de gravité particulier. La gravité est représentée par une icône qui s'affiche dans la fenêtre d'alerte.

Form Builder comporte de nombreuses alertes intégrées qui affichent des messages prédéfinis. Vous pouvez également créer vos propres alertes personnalisées, qui s'afficheront en réponse à des événements propres à l'application.

Lorsqu'un événement provoque l'affichage d'une alerte, l'utilisateur doit y répondre en sélectionnant l'un des boutons d'alerte prédéfinis. La sélection d'un bouton arrête immédiatement l'alerte.


A propos de la création d'alertes

  Rubriques connexes

Lorsque vous créez une alerte, vous n'avez à fournir que des informations de base, comme le message qui doit s'afficher et les libellés des boutons d'alerte.

Une fois l'alerte créée, vous devez écrire un déclencheur ou une routine nommée par l'utilisateur qui affichera l'alerte en réponse à un événement particulier. En outre, l'action que déclenche chaque bouton est déterminée par le code PL/SQL que vous écrivez pour appeler l'alerte.


Création d'une alerte

  Rubriques connexes

Pour créer une alerte :

1.	Dans le Navigateur d'objet, cliquez sur le noeud Alertes.

2.	Cliquez sur le bouton Créer [image] de la barre d'outils.

3.	Cliquez deux fois sur l'icône d'objet alerte pour afficher la Palette de propriétés.

4.	Définissez la propriété Type d'alerte en fonction de la gravité du message : Arrêt, Avertissement ou Remarque.

5.	Lors de l'exécution, une icône représentant le type que vous avez sélectionné s'affiche à côté du message dans la fenêtre d'alerte.

6.	Définissez la propriété Message en entrant le message que l'alerte doit afficher lors de l'exécution. Le message peut avoir jusqu'à 200 caractères.

Remarque : Les plates-formes d'exécution ne peuvent pas toutes afficher le nombre maximum de caractères.

7.	Définissez un ou plusieurs boutons correspondant à l'alerte en entrant un libellé dans les champs Libellé bouton 1, Libellé bouton 2 et Libellé bouton 3. (Par défaut, les libellés sont "OK" pour le bouton 1 et "Annuler" pour le bouton 2.)

Remarque : Vous devez attribuer un libellé à au moins un bouton. Les boutons sans libellé ne sont pas affichés. Les boutons s'affichent dans l'alerte dans l'ordre dans lequel ils apparaissent dans la Palette de propriétés - c'est-à-dire que le bouton 2 est affiché à droite du bouton 1, et ainsi de suite.

8.	Choisissez le bouton d'alerte par défaut : Bouton 1, 2 ou 3.

Le bouton par défaut est celui qui est sélectionné implicitement lorsque l'utilisateur appuie sur [Accepter]. Sur la plupart des gestionnaires de fenêtres, le bouton par défaut est différent des autres.


Affichage d'une alerte

 Exemples   [image]  Rubriques connexes

Pour afficher une alerte, votre application doit exécuter le sous-programme intégré SHOW_ALERT à partir d'un déclencheur ou d'un sous-programme nommé par l'utilisateur. SHOW_ALERT est une fonction qui retourne une constante numérique.

Show_Alert(nom_alerte) Return NUMBER;

La constante retournée par la fonction SHOW_ALERT indique le bouton d'alerte que l'utilisateur a sélectionné : ALERT_BUTTON1, ALERT_BUTTON2 ou ALERT_BUTTON3.

Vous pouvez attribuer la valeur de retour de la fonction SHOW_ALERT à une variable, puis choisir d'autres actions dans votre déclencheur, en fonction de la valeur de cette variable, c'est-à-dire du bouton que l'utilisateur a sélectionné.


Affichage d'une alerte - Exemple

Vous pourriez, par exemple, créer une alerte affichant le message suivant :

"Entrez le prix du produit. Voulez-vous afficher les prix catalogue ?"

Le libellé du bouton 1 est OK, celui du bouton 2 Annuler. Cette alerte est appelée à partir d'un déclencheur When-Button-Pressed attaché à un bouton qui calcule les totaux des articles des commandes.

Si le prix de l'article est fourni, le calcul s'exécute correctement. S'il ne l'est pas, l'alerte s'affiche. L'utilisateur sélectionne le bouton 1 (OK) pour appeler une fenêtre qui affiche les prix des produits, ou le bouton 2 (Annuler) pour annuler l'opération.

Déclencheur When-Button-Pressed :

-- Déclarer une variable de type NUMBER pour la
-- constante retournée par la fonction Show_Alert
DECLARE
   bouton_alerte NUMBER;
BEGIN
   IF :prix.article IS NOT NULL THEN
     -- appeler le sous-programme de calcul calculer_totaux
     -- nommé par l'utilisateur ;
   ELSE -- afficher l'alerte
     bouton_alerte := Show_Alert('alerte_absence_prix');
      IF alert_button = ALERT_BUTTON1 THEN
        -- appeler la fenêtre de prix catalogue
        Go_Block('prix_produit');
      END IF; -- n'effectuer aucune opération si l'utilisateur sélectionne le bouton 2
   END IF;
END;


Changement de message d'alerte

 Exemples   [image]  Rubriques connexes

Vous pouvez changer un message d'alerte lors de l'exécution en lançant la procédure interne SET_ALERT_PROPERTY. Cette option vous permet de réutiliser le même objet alerte, mais d'afficher un message différent chaque fois qu'il est appelé.

Par exemple, une application peut comporter plusieurs alertes qui utilisent les deux mêmes boutons (par exemple, OK et Annuler) mais affichent des messages différents, selon le contexte de l'application.

En modifiant par programme un message d'alerte pour l'adapter au contexte en cours, vous pouvez réduire le temps de conception en réutilisant le même objet alerte au lieu d'en créer plusieurs. Changer le message d'alerte vous permet également de créer des messages d'alerte dynamiques faisant référence à des valeurs d'élément ou à des objets particuliers.


Changement de messages d'alerte - Exemple

L'exemple ci-après change le message d'une alerte appelée alerte_générique. Cette alerte n'est fournie qu'à titre d'information et ne comporte qu'un bouton, libellé "OK" :

DECLARE
   id_alerte   ALERT := Find_Alert('alerte_générique');
   var_fictive  NUMBER;
BEGIN
   Set_Alert_Property(id_alerte, ALERT_MESSAGE_TEXT, 'Le
     produit sélectionné est en rupture de stock');
   -- afficher l'alerte
   var_fictive := Show_Alert(id_alerte);
END;

Notez que, dans ce cas, aucune opération n'est effectuée lorsque l'utilisateur sélectionne un bouton, parce que l'alerte n'est affichée qu'à titre d'information et ne comporte qu'un bouton (OK). La valeur de retour de la fonction SHOW_ALERT est attribuée à une variable fictive lorsque l'utilisateur accuse réception du message, et le traitement se poursuit normalement.

Notez également que l'exemple utilise la fonction FIND_ALERT pour extraire l'ID d'objet de l'alerte appelée alerte_générique. Cet ID est attribué à la variable id_alerte. L'alerte est alors référencée par cet ID dans les appels ultérieurs de fonctions et de procédures.


Mots réservés PL/SQL et Form Builder

Le tableau ci-dessous énumère les mots réservés définis dans Form Builder et dans PL/SQL. Les mots réservés PL/SQL sont suivis d'un astérisque (*).

_SELF

_PARENT

_TOP

_BLANK

ABORT*

ABORT_QUERY

ACCEPT*

ACCESS*

ACKNOWLEDGE

ACKNOWLEDGE_PREVIOUS

ACTIVATE

ADD*

ADD_GROUP_COLUMN

ADD_GROUP_ROW

ADD_LIST_ELEMENT

ADD_OLEARG

ADD_PARAMETER

ADJUST_TO_FIT

ALERT

ALERT_BUTTON1

ALERT_BUTTON2

ALERT_BUTTON3

ALERT_DEFAULT

ALERT_MESSAGE_TEXT

ALIGNMENT

ALL*

ALL_PARAMA

ALL_RECORDS

ALL_ROWS

ALTER*

ALTERABLE

ANCHOR_VIEW

AND*

ANY*

APPLICATION_CHARACTERISTIC

APPLICATION_INSTANCE

APPLICATION_MENU

APPLICATION_PARAMETER

ARRAY*

ARRAYLEN*

AS*

ASC*

ASK_COMMIT

ASSERT*

ASSIGN*

ASYNCHRONOUS

AT*

ATTR_OFF

ATTR_ON

AUTHORIZATION*

AUTOQUERY

AUTO_HELP

AUTO_HINT

AUTO_NAVIGATE

AUTO_REFRESH

AUTO_SKIP

AVG*

BACKGROUND_MENU1

BACKGROUND_MENU10

BACKGROUND_MENU2

BACKGROUND_MENU3

BACKGROUND_MENU4

BACKGROUND_MENU5

BACKGROUND_MENU6

BACKGROUND_MENU7

BACKGROUND_MENU8

BACKGROUND_MENU9

BALLOON_ATTRIBUTE

BALLOON_TEXT

BAR

BASE_TABLE*

BATCH

BEGIN*

BELL

BETWEEN*

BINARY_INTEGER*

BLOCK

BLOCK_CHARACTERISTIC

BLOCK_MENU

BLOCK_SCOPE

BODY*

BOOK

BOOK20

BOOLEAN*

BORDER_BEVEL

BREAK

BY*

CACHE

CALL

CALLING_FORM

CALLING_FORM_NAME

CALL_FORM

CALL_INPUT

CALL_OLE

CALL_OLE_CHAR

CALL_OLE_NUM

CALL_OLE_OBJ

CALL_OLE_VAR

CALL_QUERY

CANCEL_REPORT_OBJECT

CANVAS

CANVAS_SIZE

CASCADING

CASE*

CASE_INSENSITIVE_QUERY

CASE_RESTRICTION

CHANGED_STATUS

CHANGE_ALERT_MESSAGE

CHANGE_BLOCK

CHANGE_RECORD

CHAR*

CHARACTER_CELL_HEIGHT

CHARACTER_CELL_WIDTH

CHAR_BASE*

CHAR_COLUMN

CHECKBOX_CHECKED

CHECK*

CHECKED

CHECK_RECORD_UNIQUENESS

CLEAR_BLOCK

CLEAR_EOL

CLEAR_FIELD

CLEAR_FORM

CLEAR_ITEM

CLEAR_LIST

CLEAR_MESSAGE

CLEAR_RECORD

CLOSE*

CLOSE_AT_COMMIT

CLOSE_FORM

CLOSE_QUERY

CLUSTER*

CLUSTERS*

COLAUTH*

COLUMNS*

COLUMN_SECURITY

COMMIT*

COMMIT_FORM

COMPRESS*

COMPRESSION_OFF

COMPRESSION_ON

CONCEAL_DATA

CONNECT*

CONNECT_STRING

CONSTANT *

CONSTANTS

CONVERT_OTHER_VALUE

COORDINATED

COORDINATE_SYSTEM

COORDINATION_OPERATION

COORDINATION_STATUS

COPY

COPY_REGION

COPY_REPORT_OBJECT_OUTPUT

COPY_REPORT_OUTPUT

COUNT*

COUNT_QUERY

CRASH*

CREATE*

CREATE_GROUP

CREATE_GROUP_FROM_QUERY

CREATE_OLEOBJ

CREATE_PARAMETER_LIST

CREATE_QUERIED_RECORD

CREATE_RECORD

CREATE_TIMER

CREATE_VAR - Procédure interne

CURRENT*

CURRENT_FORM

CURRENT_FORM_NAME

CURRENT_RECORD

CURRENT_RECORD_ATTRIBUTE

CURRVAL*

CURSOR*

CURSOR_MODE

CURSOR_STYLE

CUT_REGION

DATABASE*

DATA_BASE*

DATABASE_VALUE

DATASOURCE

DATATYPE

DATA_PARAMETER

DATE*

DATE_COLUMN

DB

DBA*

DBMS_ERROR_CODE

DBMS_ERROR_TEXT

DEBUGOFF*

DEBUGON*

DEBUG_MODE

DECIMAL*

DECLARE*

DEFAULT*

DEFAULT_SCOPE

DEFAULT_VALUE

DEFAULT_WHERE

DEFERRED_COORDINATION

DEFER_ON_VISIBILITY

DEFER_REQUIRED_ENFORCEMENT

DEFINITION*

DELAY*

DELAYED

DELETE*

DELETE_ALLOWED

DELETE_GROUP

DELETE_GROUP_ROW

DELETE_LIST_ELEMENT

DELETE_PARAMETER

DELETE_RECORD

DELETE_RECORDS

DELETE_SOURCE

DELETE_SOURCE_TYPE

DELETE_TIMER

DELTA*

DERIVED_COLUMN

DESC*

DESTROY_PARAMETER_LIST

DESTROY_VARIANT

DETAIL_NAME

DEVELOPER_NAMES

DIGITS*

DISABLED

DISABLE_ITEM

DISABLE_VALIDATION

DISPATCH_EVENT

DISPID_COLLECT

DISPID_CONSTRUCTOR

DISPID_DESTRUCTOR

DISPID_EVALUATE

DISPID_NEWENUM

DISPID_VALUE

DISPLAY

DISPLAYED

DISPLAY_ERROR

DISPLAY_FIELD

DISPLAY_HEIGHT

DISPLAY_ITEM

DISPLAY_LENGTH

DISPLAY_PAGE

DISPLAY_POSITION

DISPLAY_WIDTH

DISPLAY_X_POS

DISPLAY_Y_POS

DISPOSE*

DISTINCT*

DML_DATA_TARGET_NAME

DML_DATA_TARGET_TYPE

DOWN

DO*

DO_COMMIT

DO_KEY

DO_REPLACE

DROP*

DUMMY_REFERENCE

DUPLICATE_FIELD

DUPLICATE_ITEM

DUPLICATE_RECORD

ECHO

EDITOR

EDITOR_NAME

EDITOR_X_POS

EDITOR_Y_POS

EDIT_FIELD

EDIT_TEXTITEM

ELSE*

ELSIF*

ENABLED

ENABLE_ITEM

ENABLE_VALIDATION

END*

END_EDGE

END_OF_GROUP

ENFORCE_COLUMN_SECURITY

ENFORCE_KEY

ENTER

ENTERABLE

ENTER_QUERY

ENTRY*

ERASE

ERROR

ERROR_CODE

ERROR_NOTIFICATION

ERROR_TEXT

ERROR_TYPE

EXCEPTION*

EXCEPTION_INIT*

EXECUTE_QUERY

EXECUTE_TRIGGER

EXISTS*

EXIT*

EXIT_FORM

EXIT_MENU

FALSE*

FETCH*

FETCH_RECORDS

FIELD_CHARACTERISTIC

FIELD_LENGTH

FILE

FILESYSTEM

FILE_NAME

FIND_ALERT

FIND_BLOCK

FIND_CANVAS

FIND_COLUMN

FIND_EDITOR

FIND_FORM

FIND_GROUP

FIND_ITEM

FIND_LOV

FIND_MENU

FIND_MENU_ITEM

FIND_RELATION

FIND_REPORT_OBJECT

FIND_TAB_PAGE

FIND_TIMER

FIND_VIEW

FIND_WINDOW

FIRSTBLOCK

FIRSTFIELD

FIRST_BLOCK

FIRST_DETAIL_RELATION

FIRST_FIELD

FIRST_ITEM

FIRST_MASTER_RELATION

FIRST_NAVIGATION_BLOCK

FIRST_RECORD

FIRST_RELATION

FIXED_LENGTH

FLOAT*

FOR*

FORM*

FORMATTED_VALUE

FORMAT_MASK

FORMMODULE

FORMS

FORMS40

FORMS4C

FORMS4G

FORMS4W

FORMS_DDL

FORMS_OLE

FORM_CHARACTERISTIC

FORM_FAILURE

FORM_FATAL

FORM_NAME

FORM_OLE_FAILURE

FORM_SCOPE

FORM_SUCCESS

FOR_UPDATE

FROM*

FULL_ROLLBACK

FULL_SCREEN

FUNCTION*

GENERAL_EXCEPTION

GENERATE_SEQUENCE_NUMBER

GENERIC*

GET_APPLICATION_PROPERTY

GET_BLOCK_PROPERTY

GET_CANVAS_PROPERTY

GET_FILE_NAME

GET_FORM_PROPERTY

GET_GROUP_CHAR_CELL

GET_GROUP_DATE_CELL

GET_GROUP_NUMBER_CELL

GET_GROUP_ROW_COUNT

GET_GROUP_SELECTION

GET_GROUP_SELECTION_COUNT

GET_ITEM_INSTANCE_PROPERTY

GET_ITEM_PROPERTY

GET_LIST_ELEMENT_COUNT

GET_LIST_ELEMENT_LABEL

GET_LIST_ELEMENT_VALUE

GET_LOV_PROPERTY

GET_MENU_ITEM_PROPERTY

GET_MESSAGE

GET_OLEARG_CHAR

GET_OLEARG_NUM

GET_OLEARG_OBJ

GET_OLEARG_VAR

GET_OLE_CHAR

GET_OLE_MEMBERID

GET_OLE_NUM

GET_OLE_OBJ

GET_OLE_VAR

GET_PARAMETER_ATTR

GET_PARAMETER_LIST

GET_RADIO_BUTTON_PROPERTY

GET_RECORD_PROPERTY

GET_RELATION_PROPERTY

GET_REPORT_OBJECT_PROPERTY

GET_TAB_PAGE_PROPERTY

GET_VAR_BOUNDS

GET_VAR_DIMS

GET_VAR_TYPE

GET_VIEW_PROPERTY

GET_WINDOW_PROPERTY

GLOBAL_EVENT

GLOBAL_SCOPE

GOTO*

GO_BLOCK

GO_FIELD

GO_FORM

GO_ITEM

GO_RECORD

GRANT*

GRAPHICS

GRAYSCALE

GROUP*

GROUPCOLUMN

GROUP_NAME

HAVING*

HEIGHT

HELP

HIDDEN

HIDE

HIDE_MENU

HIDE_ON_EXIT

HIDE_PAGE

HIDE_VIEW

HIDE_WINDOW

HIGH_COMPRESSION

HIGHEST_SOUND_QUALITY

HIGH_SOUND_QUALITY

HINT_TEXT

HOLDER

HOST

ICONIC_BUTTON

ICON_NAME

IDENTIFIED*

IDENTIFIER

ID_NULL

IF*

IMAGE_ADD

IMAGE_AND

IMAGE_SCROLL

IMAGE_SUBTRACT

IMAGE_XOR

IMAGE_ZOOM

IMMEDIATE

IN*

INDEX*

INDEXES*

INDICATOR*

INITIAL_VALUE

INIT_OLEARGS

INSERT*

INSERT_ALLOWED

INSERT_RECORD

INSERT_RECORDS

INSERT_SOURCE

INSERT_SOURCE_TYPE

INSERT_STATUS

INTEGER*

INTERACTION_MODE

INTERSECT*

INTO*

INVALID_ARGUMENT

INVALID_TIMER_INTERVAL

IS*

ISNULL

ISOLATED

ISOLATION_MODE

ISSUE_ROLLBACK

ISSUE_SAVEPOINT

ITEM

ITEM_CANVAS

ITEM_DEFAULT_VALUE

ITEM_ENABLED

ITEM_IS_VALID

ITEM_LENGTH

ITEM_NAME

ITEM_SCOPE

ITEMS_IN_BLOCK

ITEM_SIZE

ITEM_TAB_PAGE

ITEM_TYPE

KEEP_POSITION

KEY_MODE

LABEL

LASTBLOCK

LASTFIELD

LAST_BLOCK

LAST_FIELD

LAST_ITEM

LAST_OLE_ERROR

LAST_OLE_EXCEPTION

LAST_QUERY

LAST_RECORD

LEVEL*

LIKE*

LIMITED*

LIST

LIST_VALUES

LOCATION

LOCKING_MODE

LOCK_RECORD

LOCK_RECORDS

LOCK_RECORD_ON_CHANGE

LOGON

LOGON_SCREEN

LOGOUT

LONG_COLUMN

LOOP*

LOV

LOV_NAME

LOV_SIZE

LOV_VALIDATION

LOV_X_POS

LOV_Y_POS

LOW_COMPRESSION

LOWEST_SOUND_QUALITY

LOW_SOUND_QUALITY

LOWERCASE

LOWERED

LUT

MACRO

MAIL

MAIN_MENU

MASTER_DELETES

MASTER_NAME

MAX*

MAXIMIZE

MAXIMIZE_COMPRESSION

MAX_LENGTH

MAX_QUERY_TIME

MAX_RECORDS_FETCHED

MEDIUM_COMPRESSION

MEDIUM_SOUND_QUALITY

MENU

MENUITEM

MENU_CLEAR_FIELD

MENU_FAILURE

MENU_HELP

MENU_MESSAGE

MENU_NEXT_FIELD

MENU_PARAMETER

MENU_PREVIOUS_FIELD

MENU_REDISPLAY

MENU_SHOW_KEYS

MENU_SUCCESS

MESSAGE

MESSAGE_CODE

MESSAGE_TEXT

MESSAGE_TYPE

MIN*

MINIMIZE

MINIMIZE_COMPRESSION

MINUS*

MLSLABEL*

MNEMONIC

MOD*

MODE

MODULE_NLS_CHARACTER_SET

MODULE_NLS_LANG

MODULE_NLS_LANGUAGE

MODULE_NLS_TERRITORY

MONOCHROME

MONOPHONIC

MOUSE_NAVIGABLE

MOUSE_NAVIGATE

MOVE_VIEW

MOVE_WINDOW

MULTI_LINE

MYTYPE

NAME_IN

NATURAL*

NAVIGABLE

NAVIGATION_STYLE

NEW*

NEW_APPLICATION

NEW_FORM

NEW_STATUS

NEW_USER

NEXTBLOCK

NEXTFIELD

NEXTITEM

NEXTVAL*

NEXT_BLOCK

NEXT_DETAIL_RELATION

NEXT_FIELD

NEXT_FORM

NEXT_ITEM

NEXT_KEY

NEXT_MASTER_RELATION

NEXT_MENU_ITEM

NEXT_NAVIGATION_BLOCK

NEXT_NAVIGATION_ITEM

NEXT_RECORD

NEXT_RELATION

NEXT_SET

NOCOMPRESS*

NO_COMPRESSION

NONE

NONE_PARAMA

NON_COORDINATED

NON_ISOLATED

NON_UPDATEABLE_PRIMARY_KEY

NORMAL

NO_SHARE_LIBRARY_DATA

NOT*

NO_ACKNOWLEDGE

NO_ACKNOWLEDGE_PREVIOUS

NO_ACTIVATE

NO_CHANGE

NO_COMMIT

NO_EXCEPTION

NO_HIDE

NO_OPERATION

NO_PROMPT

NO_QUERY_ONLY

NO_REMOVE_LIST

NO_REPEAT

NO_REPLACE

NO_RESTRICT

NO_ROLLBACK

NO_SCREEN

NO_SESSION

NO_SUCH_TIMER

NO_VALIDATE

NO_WAIT

NULL*

NULL_COMMAND

NUMBER*

NUMBER_BASE*

NUMBER_COLUMN

OF*

OHOST

OLEOBJ

OLEVAR

OLEVAR_NULL

OLE_SAFEARRAYBOUND

OLE_SAFEARRAYBOUNDS

OLE2_CLASSNAME

OLE2_FILENAME

ON*

OPEN*

OPEN_AT_COMMIT

OPEN_FILE

OPEN_FORM

OPERATING_SYSTEM

OPTIMIZER_HINT

OPTION*

OR*

ORDER*

ORDER_BY

ORIGINAL_DEPTH

ORIGINAL_QUALITY

ORIGINAL_SETTING

OS_COMMAND

OS_COMMAND1

OTHERS*

OUT *

PACKAGE*

PAGE

PARAMLIST

PARAMTYPE_PARAMA

PARAM_ATTR

PARTITION*

PASSWORD

PASTE_REGION

PAUSE

PCTFREE*

PECS

PLAY_SOUND

PLITBLM

PLSQL_TABLE

POPULATE_BLOCK

POPULATE_GROUP

POPULATE_GROUP_WITH_QUERY

POPULATE_LIST

POPULATE_TABLE

POPUPMENU_COPY_ITEM

POPUPMENU_CUT_ITEM

POPUPMENU_DELOBJ_ITEM

POPUPMENU_INSOBJ_ITEM

POPUPMENU_LINKS_ITEM

POPUPMENU_OBJECT_ITEM

POPUPMENU_PASTESPEC_ITEM

POPUPMENU_PASTE_ITEM

POSITION

POSITION_ON_CANVAS

POSITIVE*

POST

PRAGMA*

PREVENT_MASTERLESS_OPERATION

PREVIEW

PREVIOUSBLOCK

PREVIOUSFIELD

PREVIOUSITEM

PREVIOUS_BLOCK

PREVIOUS_FIELD

PREVIOUS_FORM

PREVIOUS_ITEM

PREVIOUS_MENU

PREVIOUS_MENU_ITEM

PREVIOUS_NAVIGATION_BLOCK

PREVIOUS_NAVIGATION_ITEM

PREVIOUS_RECORD

PRIMARY_KEY

PRINT

PRINTER

PRIOR*

PRIVATE*

PROCEDURE*

PROCEDURE_SOURCE

PROMPT_ALIGNMENT_OFFSET

PROMPT_ALL_RECORDS

PROMPT_DISPLAY_STYLE

PROMPT_EDGE

PROMPT_EDGE_ALIGNMENT

PROMPT_EDGE_OFFSET

PROMPT_FIRST_RECORD

PROMPT_HIDDEN

PROMPT_TEXT

PROMPT_TEXT_ALIGNMENT

PROMPT_VISUAL_ATTRIBUTE

PROPERTY_FALSE

PROPERTY_OFF

PROPERTY_ON

PROPERTY_TRUE

PTR_TO_VAR

PUBLIC *

PULL_DOWN

QUERYABLE

QUERY_ALLOWED

QUERY_DATA_SOURCE_NAME

QUERY_DATA_SOURCE_TYPE

QUERY_HITS

QUERY_LENGTH

QUERY_ONLY

QUERY_OPTIONS

QUERY_PARAMETER

QUERY_SOURCE

QUERY_SOURCE_TYPE

QUERY_STATUS

RAISE*

RAISED

RANGE*

RANGE_HIGH

RANGE_LOW

READ_IMAGE_FILE

READ_SOUND_FILE

REAL*

RECALCULATE

RECORD*

RECORDGROUP

RECORDS_DISPLAYED

RECORDS_TO_FETCH

RECORD_SCOPE

REDISPLAY

RELATION

RELEASE*

RELEASE_OBJ

REM*

REMOVE_LIST

REMOVE_ON_EXIT

RENAME*

REPEAT

REPLACE_CONTENT_VIEW

REPLACE_MENU

REPORT_COMM_MODE

REPORT_DESFORMAT

REPORT_DESNAME

REPORT_DESTYPE

REPORT_EXECUTION_MODE

REPORT_FILENAME

REPORT_OBJECT

REPORT_OBJECT_STATUS

REPORT_OTHER

REPORT_QUERY_NAME

REPORTS

REPORT_SERVER

REPORT_SOURCE_BLOCK

REQUIRED

RESET_GROUP_SELECTION

RESIZE_VIEW

RESIZE_WINDOW

RESOURCE*

RESTRICT

RESTRICTED

RESTRICTED_ALLOWED

RESTRICTED_FORBIDDEN

RETRIEVE_LIST

RETURN*

REVERSE*

REVOKE*

ROLLBACK*

ROLLBACK_FORM

ROLLBACK_NR

ROLLBACK_RL

ROLLBACK_SV

ROWID*

ROWLABEL*

ROWNUM*

ROWTYPE*

RUN*

RUN_PRODUCT

RUN_REPORT_OBJECT

RUNTIME

SAME_RECORD

SAVE_FILE

SAVEPOINT*

SAVEPOINT_MODE

SAVEPOINT_NAME

SCHEMA*

SCREEN

SCROLLBAR

SCROLL_DOWN

SCROLL_UP

SCROLL_VIEW

SECURE

SELECT*

SELECTION_RECTANGLE

SELECT_ALL

SELECT_RECORDS

SEPARATE*

SESSION

SET*

SET_ALERT_PROPERTY

SET_APPLICATION_PROPERTY

SET_BLOCK_PROPERTY

SET_CANVAS_PROPERTY

SET_FIELD

SET_FORM_PROPERTY

SET_GROUP_CHAR_CELL

SET_GROUP_DATE_CELL

SET_GROUP_NUMBER_CELL

SET_GROUP_SELECTION

SET_INPUT_FOCUS

SET_ITEM_INSTANCE_PROPERTY

SET_ITEM_PROPERTY

SET_LOV_PROPERTY

SET_MENU_ITEM_PROPERTY

SET_OLE

SET_PARAMETER_ATTR

SET_RADIO_BUTTON_PROPERTY

SET_RECORD_PROPERTY

SET_RELATION_PROPERTY

SET_REPORT_OBJECT_PROPERTY

SET_TAB_PAGE_PROPERTY

SET_TIMER

SET_VAR

SET_VIEW_PROPERTY

SET_WINDOW_PROPERTY

SHOWN

SHOW_ALERT

SHOW_BACKGROUND_MENU

SHOW_DOCUMENT

SHOW_EDITOR

SHOW_FAST_FORWARD_BUTTON

SHOW_KEYS

SHOW_LOV

SHOW_MENU

SHOW_PAGE

SHOW_PALETTE

SHOW_PLAY_BUTTON

SHOW_POPUPMENU

SHOW_RECORD_BUTTON

SHOW_REWIND_BUTTON

SHOW_SLIDER

SHOW_TIME_INDICATOR

SHOW_VIEW

SHOW_VOLUME_CONTROL

SHOW_WINDOW

SIZE*

SMALLINT*

SPACE*

SPECIFIC_EXCEPTION

SQL*

SQLCODE*

SQLERRM*

SQLFORMS

SQLMENU

STACKED

START*

START_EDGE

STATUS

STATEMENT*

STDDEV*

STEREOPHONIC

SUBTYPE*

SUM*

SYNCHRONIZE

SYNCHRONOUS

TABAUTH*

TABLE*

TABLE_FROM_BLOCK

TABLES*

TABLE_SOURCE

TAB_PAGE

TAB_PAGE_X_OFFSET

TAB_PAGE_Y_OFFSET

TAB_PLACEMENT

TASK*

TERMINATE*

TEXT_PARAMETER

THEN*

TIMER

TIMER_EXISTS

TIMER_NAME

TITLE

TO*

TOOLS

TOOLTIP_ATTRIBUTE

TOOLTIP_TEXT

TOP_EDGE

TOPMOST_TAB_PAGE

TOP_RECORD

TO_SAVEPOINT

TO_VARIANT

TRUE*

TYPE*

UNFORMATTED_VALUE

UNION*

UNIQUE*

UNIQUE_KEY

UNRESTRICTED

UNSET_GROUP_SELECTION

UP

UPDATE*

UPDATEABLE

UPDATEABLE_PRIMARY_KEY

UPDATE_ALLOWED

UPDATE_CHANGED_COLUMNS

UPDATE_CHART

UPDATE_COLUMN

UPDATE_NULL

UPDATE_PERMISSION

UPDATE_RECORD

UPDATE_RECORDS

UPDATE_SOURCE

UPDATE_SOURCE_TYPE

UPPERCASE

UPPER_CASE

USE*

USERNAME

USER_EXIT

USER_INTERFACE

USER_NLS_CHARACTER_SET

USER_NLS_LANG

USER_NLS_LANGUAGE

USER_NLS_TERRITORY

VALIDATE

VALIDATE_FROM_LIST

VALIDATION

VALIDATION_UNIT

VALUE

VALUES*

VALUE_PARAMA

VARCHAR*

VARCHAR2*

VARIANCE*

VARPTR_TO_VAR

VAR_TO_CHAR

VAR_TO_NUMBER

VAR_TO_OBJ

VAR_TO_TABLE

VAR_TO_VARPTR

VBX

VERSION

VIEW*

VIEWS*

VIEWPORT

VIEWPORT_X_POS

VIEWPORT_X_POS_ON_CANVAS

VIEWPORT_Y_POS

VIEWPORT_Y_POS_ON_CANVAS

VIEW_SIZE

VISIBLE

VISUAL_ATTRIBUTE

VT_BLOB

VT_BLOB_OBJECT

VT_BOOL

VT_BSTR

VT_BYREF

VT_CARRAY

VT_CF

VT_CLSID

VT_CY

VT_DATE

VT_DISPATCH

VT_EMPTY

VT_ERROR

VT_FILETIME

VT_HRESULT

VT_I1

VT_I2

VT_I4

VT_I8

VT_INT

VT_LPSTR

VT_LPWSTR

VT_NULL

VT_PTR

VT_R4

VT_R8

VT_SAFEARRAY

VT_STORAGE

VT_STORED_OBJECT

VT_STREAM

VT_STREAMED_OBJECT

VT_TYPE

VT_UI1

VT_UI2

VT_UI4

VT_UI8

VT_UINT

VT_UNKNOWN

VT_USERDEFINED

VT_VARIANT

VT_VOID

WHEN*

WHERE*

WHERE_DISPLAY

WHILE*

WIDTH

WINDOW

WINDOW_HANDLE

WINDOW_NAME

WINDOW_SIZE

WINDOW_STATE

WITH*

WORK*

WRAP_STYLE

WRITE_IMAGE_FILE

XOR*

X_POS

X_POS_ON_CANVAS

YES

Y_POS

Y_POS_ON_CANVAS

ZOOM_IN_FACTOR

ZOOM_OUT_FACTOR

ZOOM_PERCENT


A propos d'AppletViewer

  Rubriques connexes

AppletViewer est un composant d'Oracle Developer utilisé par les machines client pour afficher les applications exécutées sur le serveur Forms. AppletViewer est un produit pris en charge : les mises à jour peuvent être téléchargées depuis le site Web Oracle Developer.

Lorsque vous exécutez une application dans AppletViewer, les demandes d'affichage d'une URL (par exemple web.showDocument et RUN_PRODUCT) ne sont pas prises en compte par AppletViewer. Dans ce cas, vous devez suivre le processus de "sécurisation" de la mini-application (ou applet) Forms.

Remarque : AppletViewer n'est pris en charge que par Windows 95 et Windows NT 4.0.


Installation d'AppletViewer

  Etape suivante	  Rubriques connexes

Pour installer AppletViewer :

1	Utilisez Oracle Installer pour installer JDK AppletViewer :

•	Arrêtez toutes les applications Windows actives.

•	Dans la barre des tâches, choisissez Démarrer [image] Exécuter.

•	Dans la boîte de dialogue Exécuter, entrez les informations suivantes (D: étant la lettre identifiant le lecteur de CD-ROM) : D:\setup.exe et cliquez sur OK.

•	Dans la boîte de dialogue Langue, sélectionnez une langue et cliquez sur OK.

•	Dans la boîte de dialogue des paramètres d'installation Oracle, vérifiez les valeurs par défaut correspondant au nom de votre société et au répertoire ORACLE_HOME. Acceptez ou modifiez les valeurs et cliquez sur OK.

•	Cliquez sur le bouton d'option Custom Installation or Removal, puis sur OK.

•	Dans la liste des produits disponibles, sélectionnez JDK AppletViewer.

•	Cliquez sur Installer.

2	Dans la barre des tâches, choisissez Démarrer [image] Programmes [image] Oracle Developer [image] Install JDK AppletViewer.

3	Dans le champ Unzip to Folder, entrez \ORACLE_HOME\JDK1.1 en tant que répertoire de décompression des fichiers. Par exemple : C:\ORANT\JDK1.1

4	Cliquez sur Unzip.

5	Copiez le fichier JDK_SETUP.BAT du répertoire \ORACLE_HOME\FORMS60\JAVA dans votre répertoire ORACLE_HOME (C:\ORANT par exemple).

6	Modifiez le fichier JDK_SETUP.BAT du répertoire ORACLE_HOME :

  Ouvrez le fichier JDK_SETUP.BAT dans un éditeur de texte.

  Modifiez les variables d'environnement CLASSPATH et PATH afin d'indiquer le
 répertoire ORACLE_HOME de votre installation. Par exemple :

SET CLASSPATH=C:\ORANT\JDK1.1\JDK\LIB\CLASSES.ZIP
PATH C:\ORANT\JDK1.1\JDK\BIN;%PATH%

  Enregistrez les modifications apportées au fichier JDK_SETUP.BAT.


Exécution d'AppletViewer

  Etape suivante	  Rubriques connexes

Pour exécuter AppletViewer :

1	Exécutez JDK_SETUP.BAT :

•	Ouvrez une fenêtre d'invite de commande DOS et placez-vous dans votre répertoire ORACLE_HOME.

•	Entrez JDK_SETUP.BAT et appuyez sur Entrée ou Retour.

2	Depuis la même fenêtre d'invite, placez-vous dans le répertoire contenant le fichier exécutable d'AppletViewer (appletviewer.exe). Par exemple : C:\ORANT\JDK1.1\JDK\BIN\.

3	Lancez l'exécutable d'AppletViewer, en indiquant le nom de l'hôte, le répertoire virtuel des fichiers HTML et le fichier HTML. Par exemple, saisissez :

appletviewer http://myhost.com/web_html/start.html

Remarque : Si vous utilisez une cartouche, mettez la demande HTTP entre guillemets.

4	Appuyez sur Entrée ou Retour.


Appel d'un navigateur Internet depuis AppletViewer

  Etape suivante	  Rubriques connexes

Pour appeler un navigateur Internet depuis AppletViewer :

1	"Sécurisez" la mini-application Forms en employant l'une des deux méthodes suivantes :

•	Enregistrez la signature de la mini-application Forms.

•	Installez les fichiers de classe Java Forms localement.

2	Ajoutez le paramètre clientBrowser au fichier HTML de base.


A propos de la sécurisation

  Rubriques connexes

Pour utiliser le paramètre clientBrowser, vous devez disposer des autorisations nécessaires à l'émission d'un appel système qui "exécute" l'application définie. En général, lorsque vous chargez des fichiers de classe Java, la mini-application Forms n'est pas "sécurisée" et, par conséquent, ne peut pas émettre ce type d'appel. A l'inverse, si elle est "sécurisée", elle peut émettre ces appels. La mini-application Forms est considérée comme étant "sécurisée" lorsque l'une des conditions suivantes est remplie :

•	La signature de la mini-application Forms est "enregistrée" sur la machine client

•	Les fichiers de classe Java Forms sont installés localement sur le système client et la variable d'environnement CLASSPATH est définie.


A propos de l'enregistrement de la signature de la mini-application Forms

  Rubriques connexes

La signature permet aux machines client de vérifier qu'un fichier a été téléchargé depuis une entité correcte et sécurisée (le "signataire") et les protège par conséquent des fichiers d'archives Java (JAR) infectés ou endommagés. Pour qu'un client puisse valider un fichier JAR, la signature de ce fichier doit être enregistrée sur sa machine. Javakey est un outil de ligne de commande de Sun Microsystems qui génère des signatures numériques pour les fichiers JAR.

La mini-application Forms est elle-même un fichier JAR avec signature. Vous pouvez procéder de deux façons pour enregistrer la signature de la mini-application Forms :

•	Enregistrez sur la machine ou les machines client la signature fournie pour la mini-application Forms

•	Resignez la mini-application Forms avec votre propre signature et enregistrez cette signature sur la machine ou les machines client. Si vous choisissez cette méthode, connectez-vous à l'adresse http://java.sun.com/security/usingJavakey.html pour obtenir des instructions concernant la création et la signature des fichiers JAR.


Sécurisation de la mini-application Forms par enregistrement de sa signature

  Etape suivante	  Rubriques connexes

Pour sécuriser la mini-application Forms par enregistrement de sa signature :

1	Copiez le certificat Oracle Developer dans le répertoire \ORACLE_HOME\FORMS60\JAVA de la machine client.

Ce certificat est un fichier intitulé Dev2K.x509. Il est stocké dans le répertoire \ORACLE_HOME\FORMS60\JAVA du serveur.

2	Ouvrez une fenêtre d'invite de commande DOS et placez-vous dans le répertoire \ORACLE_HOME\FORMS60\JAVA.

3	Saisissez javakey -c Developer/2000 true

Cette commande crée une identité sécurisée pour AppletViewer et la stocke dans la base de données des identités du client en lui donnant le nom exact du fournisseur de certificat.

javakey -c Developer/2000 true

4	Appuyez sur Entrée ou Retour.

5	Saisissez javakey -ic Developer/2000 Dev2K.x509.

Cette commande importe le certificat Dev2K.x509 dans la base de données des identités JDK du client et l'associe à l'identité sécurisée créée à l'étape 3.

6	Appuyez sur Entrée ou Retour.


Sécurisation de la mini-application Forms par l'installation locale des fichiers de classe Java Forms

  Etape suivante	  Rubriques connexes

Pour sécuriser la mini-application Forms par l'installation locale des fichiers de classe Java Forms :

1	Copiez le répertoire \ORACLE_HOME\FORMS60\JAVA dans un nouveau répertoire de la machine client.

Remarque : Copiez le répertoire tel qu'il est, sans en modifier la structure.

2	Modifiez le fichier JDK_SETUP.BAT du répertoire ORACLE_HOME :

•	Ouvrez le fichier JDK_SETUP.BAT dans un éditeur de texte.

•	Modifiez la variable d'environnement CLASSPATH pour qu'elle fasse référence au nouveau répertoire.

•	Enregistrez les modifications apportées au fichier JDK_SETUP.BAT.


Ajout du paramètre clientBrowser au fichier HTML de base

  Rubriques connexes

Pour définir le paramètre clientBrowser, vous avez deux possibilités :

•	Ajoutez le paramètre clientBrowser au fichier HTML et demandez à chaque client qu'il modifie son fichier JDK_SETUP.BAT. Cette option est à privilégier dans le cas où les clients sont susceptibles d'avoir installé l'exécutable de leur navigateur dans des répertoires physiques différents. Tous les clients doivent néanmoins utiliser le même navigateur. Par exemple, le fichier HTML doit se présenter comme suit :

<APPLET CODEBASE="/web_code/"
CODE="oracle.forms.engine.Main"
ARCHIVE="/web_code/f60all.jar"
HEIGHT=20
WIDTH=20>
<PARAM NAME="serverArgs" VALUE="module=start.fmx userid=scott/tiger">
<PARAM NAME="clientBrowser" VALUE="netscape">
</APPLET>

Le fichier JDK_SETUP.BAT se présente comme suit :

SET CLASSPATH=C:\ORANT\JDK1.1\JDK\LIB\CLASSES.ZIP
PATH C:\PROGRAM FILES\NETSCAPE\COMMUNICATOR\PROGRAM;
C:\ORANT\JDK1.1\JDK\BIN;%PATH%

•	Ajoutez le paramètre clientBrowser au fichier HTML. Si vous choisissez cette méthode, tous les clients doivent avoir installé l'exécutable du navigateur dans le même répertoire physique, car le fichier HTML indique le chemin d'accès physique au navigateur. Par exemple :

<APPLET CODEBASE="/web_code/"
CODE="oracle.forms.engine.Main"
ARCHIVE="/web_code/f60all.jar"
HEIGHT=20
WIDTH=20>
<PARAM NAME="serverArgs"
VALUE="module=start.fmx userid=scott/tiger">
<PARAM NAME="clientBrowser"
VALUE="c:\program files\netscape\communicator\program\netscape.exe">
<APPLET>

Remarque : Ces exemples de fichier HTML partent de l'hypothèse que vous avez sécurisé la mini-application Forms en enregistrant sa signature sur votre machine. Si vous avez sécurisé l'applet en installant localement les fichiers de classe Java Forms, vous ne devez pas télécharger le fichier F60ALL.JAR. Dans ce cas, supprimez l'indicateur ARCHIVE="/.../f60all.jar" du fichier HTML.


http://www.oracle.com/products/tools/dev2k/index.html


appletviewer "http://myhost.com/web_html/start.html"


A propos du traitement par tableau

  Rubriques connexes

Le traitement par tableau est une option de Form Builder qui modifie la façon dont les enregistrements sont traités. Par défaut, Form Builder traite les enregistrements un à un. En activant le traitement par tableau, vous pouvez traiter en une seule opération des groupes d'enregistrements, ce qui diminue la charge du réseau et augmente donc les performances du système. Avec le traitement par tableau, une structure (tableau) contenant plusieurs enregistrements est envoyée au serveur pour traitement ou est renvoyée par le serveur pour traitement. Form Builder supporte à la fois le traitement par extraction de tableau et le traitement par tableau DML. Pour les opérations d'interrogation et les opérations DML, vous pouvez déterminer la taille du tableau de manière à optimiser les performances en fonction de vos besoins.

Le traitement par tableau peut être utilisé pour les opérations d'interrogation et les opérations DML sur des blocs fondés sur des tableaux, des affichages, des procédures et des sous-interrogations. Ce traitement n'est pas possible pour les blocs fondés sur des déclencheurs transactionnels.


A propos du traitement des déclencheurs pendant le traitement par tableau DML

  Rubriques connexes

Tous les déclencheurs Pre sont activés avant l'exécution des opérations DML sur le tableau des enregistrements ; tous les déclencheurs Post sont activés après l'exécution des opérations DML sur le tableau des enregistrements. Supposons, par exemple, qu'il existe un déclencheur Pre-Insert et un déclencheur Post-Insert pour un élément et que la propriété Taille de tableau DML est définie à 10. S'il y a 25 enregistrements qui attendent d'être traités, les 25 déclencheurs Pre-Insert sont activés en premier. Un tableau de 10 enregistrements est inséré. Un deuxième tableau de 10 enregistrements est inséré, puis un troisième, contenant les 5 enregistrements restants. Enfin, les 25 déclencheurs Post-Insert sont activés.

Le traitement par tableau DML est désactivé lorsque le déclencheur On-Insert, On-Update ou On-Delete est présent, car les déclencheurs de type On suppriment le traitement par défaut, y compris le traitement par tableau.


Activation du traitement par tableau pour des interrogations

  Rubriques connexes

Pour activer le traitement par tableau pour des interrogations :

1	Choisissez Outils [image] Préférences…

2	Cliquez sur l'onglet Runtime.

3	Cochez la case Traitement par tableau.

4	Cliquez sur OK.

5	Dans le Navigateur d'objet, cliquez sur l'icône d'objet Bloc [image].

6	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

7	Sous le noeud Enregistrements, définissez la propriété Taille de tableau d'interrogation à une valeur représentant le nombre d'enregistrements du tableau à traiter par tableau.


Activation du traitement par tableau pour DML

  Rubriques connexes

Pour activer le traitement par tableau pour DML :

1	Choisissez Outils [image] Préférences....

2	Cliquez sur l'onglet Runtime.

3	Cochez la case Traitement par tableau.

4	Dans le Navigateur d'objet, cliquez sur l'icône d'objet Bloc [image].

5	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

6	Sous le noeud Base de données évoluée, définissez la propriété Taille de tableau DML à une valeur qui représente le nombre d'enregistrements du tableau à traiter par tableau.


Généralités sur les procédures internes

  Rubriques connexes	 Toutes les procédures internes

Form Builder comporte des sous-programmes intégrés que vous pouvez appeler à partir de déclencheurs et de sous-programmes nommés par l'utilisateur que vous écrivez vous-même. Les procédures internes permettent de contrôler par programme les fonctions d'application standard et notamment la navigation, le contrôle d'interface et le traitement des transactions.

Cette section contient les informations suivantes :

•	Syntaxe - Procédure interne

•	Paramètres nommés - Procédure interne

•	Code intégré - Exemples

•	ID d'objet - Procédure interne

•	Sous-programmes intégrés restreints

•	Constantes - Procédure interne


Syntaxe - Procédure interne

 Toutes les procédures internes

Les paramètres nommés sont en italiques et espacement fixe. Vous pouvez remplacer un paramètre nommé par le paramètre réel, qui peut être une constante, un littéral, une variable de lien ou une valeur numérique.

SET_TIMER(nom_horloge, millisecondes, itération);

Dans cet exemple, le nom de l'horloge que vous indiquez doit être entre apostrophes, car nom_horloge est une valeur de type CHAR. Le paramètre millisecondes est passé sous la forme d'une valeur numérique et ne demande donc pas d'apostrophes. Le paramètre itération est passé sous forme de constante et doit donc être entré exactement comme il est indiqué dans la description du paramètre, sans apostrophes. Le système ne fait pas la différence entre les majuscules et les minuscules.

Pour les éléments optionnels, différentes syntaxes d'instruction sont indiquées pour vous éviter d'avoir à déchiffrer des conventions syntaxiques complexes.

Notez que vous utilisez parfois des variables au lieu d'inclure un nom d'objet spécifique. Dans ces cas, la variable ne doit pas être entre apostrophes. Dans l'exemple ci-après, un déclencheur When-Timer-Expired appelle la procédure interne SET_TIMER et fait référence à une variable qui contient un nom d'horloge valide :

DECLARE
   horloge  CAR := GET_APPLICATION_PROPERTY(TIMER_NAME);
BEGIN
   SET_TIMER(horloge, 60000, REPEAT);
END;


Paramètres nommés - Procédure interne

 Toutes les procédures internes

Le paramètre nommé doit être suivi des signes égal/supérieur à (=>), qui pointent sur le paramètre réel qui suit le paramètre nommé. Par exemple, si vous voulez changer les millisecondes de la procédure interne SET_TIMER, vous pouvez utiliser directement ce paramètre avec la syntaxe suivante :

SET_TIMER(nom_horloge => 'mon_horloge', millisecondes => 12000,
                 itération => NO_REPEAT);

En outre, vous pouvez continuer à appeler la procédure interne en utilisant la syntaxe suivante :

SET_TIMER('mon_horloge', 12000, NO_REPEAT);


Code intégré - Exemples

Les sous-programmes intégrés sont illustrés par des exemples, dont certains ne sont que de simples illustrations de la syntaxe, alors que d'autres sont des illustrations plus complètes de la façon d'utiliser la procédure interne soit seule, soit combinée à d'autres. En ce qui concerne la syntaxe des exemples, notez que :

•	Les exemples sont indiqués exactement comme ils peuvent être entrés.

•	Les majuscules, les minuscules et l'italique peuvent ne pas être prises en compte car elles sont incluses pour des raisons de lisibilité.

•	Les noms de procédure interne et les autres mots réservés PL/SQL comme IF, THEN, ELSE, BEGIN et END sont en majuscules pour faciliter la lecture.

•	Les paramètres nommés, lorsqu'ils sont indiqués, sont en italique. Si vous choisissez d'utiliser des paramètres nommés, vous devez entrer leur nom exactement comme indiqué, sans apostrophes et les faire suivre des signes égal/supérieur à (=>).

•	Les arguments de type CHAR doivent être entre apostrophes.

•	Les autres arguments de type de données ne doivent pas être entre apostrophes.

•	Les caractères spéciaux autres que les apostrophes (' '), les virgules (,), les parenthèses, les caractères de soulignement (_) et les points-virgules (;) ne doivent pas être pris en compte.


ID d'objet - Procédure interne

 Toutes les procédures internes

Certains sous-programmes intégrés acceptent les ID d'objet comme paramètres réels. Un ID d'objet est un identificateur interne opaque attribué à chaque objet lors de sa création dans Form Builder. Les ID d'objet sont gérés en interne et ne peuvent pas être visualisés en externe par l'utilisateur. La seule façon d'extraire l'ID est de définir une variable locale ou globale et de lui attribuer la valeur de retour de l'objet.

Pour les attributions, utilisez les fonctions intégrées FIND_. Une fois que vous avez utilisé FIND_ dans un bloc PL/SQL, vous pouvez utiliser la variable comme ID d'objet lorsque vous êtes encore dans ce bloc. Le type PL/SQL valide pour chaque objet figure dans les descriptions de syntaxe de chaque paramètre. La description de la procédure interne FIND_BLOCK illustre l'une des façons d'obtenir un ID d'objet.


Unités de coordonnées d'application Forms - Procédure interne

 Toutes les procédures internes

De nombreux sous-programmes intégrés vous permettent d'indiquer des coordonnées de taille et de position, à l'aide de propriétés comme :

•	HEIGHT

•	WIDTH

•	DISPLAY_POSITION

•	VIEWPORT_X_POS

•	VIEWPORT_Y_POS

•	VIEW_SIZE

•	VIEWPORT_X_POS_ON_CANVAS

•	VIEWPORT_Y_POS_ON_CANVAS

Lorsque vous indiquez des coordonnées ou une largeur et une hauteur, vous exprimez ces mesures en unités du système de coordonnées de l'application Forms en cours, définies dans la fenêtre de propriété de module Application Forms. Ce système de coordonnées définit les unités qui permettent d'indiquer la taille et les coordonnées de position des objets dans Form Builder. Utilisez la propriété de module Application Forms Système de coordonnées pour définir les unités de coordonnées de l'application Forms :

•	cellules de caractère ou

•	unités réelles :

•	pouces

•	centimètres

•	pixels

•	points

Lorsque vous programmez en utilisant le système de coordonnées de cellules de caractère, les dimensions d'objet et les coordonnées de position sont toutes exprimées en cellules de caractère, et Form Builder n'accepte que des nombres entiers pour les propriétés de taille et de position.

Lorsque vous programmez en utilisant des unités réelles (pouces, centimètres ou points), les dimensions d'objet et les coordonnées de position sont toutes exprimées dans le système d'unités que vous indiquez, et Form Builder accepte les nombres décimaux et les nombres entiers pour les propriétés de taille et de position. La précision des unités réelles étant de trois chiffres, vous pouvez indiquer des coordonnées exprimées en millièmes. Si vous utilisez des pixels ou des cellules de caractère, les coordonnées sont tronquées aux nombres entiers.


Valeurs de retour en majuscules - Procédure interne

 Toutes les procédures internes

Les procédures internes de type GET_X_PROPERTY comme GET_FORM_PROPERTY retournent des arguments de type CHAR comme valeurs en majuscules, ce qui conditionne la façon dont vous comparez des résultats dans des instructions IF.


Sous-programmes intégrés restreints

 Toutes les procédures internes

Les procédures internes restreintes conditionnent, dans l'application Forms, la navigation interne ou externe aux écrans. Vous ne pouvez appeler ces procédures internes qu'à partir de déclencheurs lorsqu'aucune navigation n'est en cours.

Les procédures internes restreintes ne peuvent pas être appelées à partir des pré- et post-déclencheurs, qui sont activés lorsque Form Builder passe d'un objet à un autre.

Les procédures internes restreintes peuvent être appelées à partir des déclencheurs When propres aux éléments d'interface comme When-Button-Pressed ou When-Checkbox-Changed. Elles peuvent également être appelées à partir de tout déclencheur When-New-"objet"-Instance et à partir de déclencheurs sur touche.

Les procédures internes non restreintes sont sans effet sur la navigation logique ou physique et peuvent être appelées à partir de n'importe quel déclencheur.

Les descriptions des procédures internes comprennent un titre, Type de procédure interne, qui indique si la procédure interne est restreinte ou non.


Constantes - Procédure interne

 Toutes les procédures internes

De nombreux sous-programmes intégrés acceptent comme arguments des valeurs numériques. Il n'est pas rare que des constantes aient été définies pour ces arguments numériques. Une constante est une valeur numérique nommée. Lorsque vous passez une constante à une procédure interne, n'ajoutez pas d'apostrophes.

Dans une expression, les constantes ne peuvent se trouver qu'à la droite d'un opérateur.

Dans certains cas, une procédure interne peut accepter comme arguments un certain nombre de constantes, énumérées dans la description de chaque paramètre.

Dans l'exemple ci-après, BLOCK_SCOPE est une constante qui peut être fournie pour la constante de paramètre VALIDATION_UNIT. Les autres constantes énumérées dans la description sont FORM, RECORD et ITEM.

SET_FORM_PROPERTY('mon_appli', VALIDATION_UNIT, BLOCK_SCOPE);


Description des procédures internes

 Exemples	 Restrictions	  Toutes les procédures internes

La suite de ce chapitre est consacrée à la description des procédures internes. Chacune des procédures internes est présentée de la manière suivante :

Syntaxe

Décrit la ou les syntaxes de la procédure interne. Par exemple, si l'objet cible d'une procédure interne peut être appelé par son nom ou par son ID d'objet, les deux formes de syntaxe sont indiquées.

Type de procédure interne  Indique si la procédure interne est restreinte ou non.

Retourne Indique la valeur de retour ou le type de données d'une procédure interne.

Mode Saisie interrogation Indique la possibilité d'appeler la procédure interne en mode Saisie interrogation.

Description

Indique la raison d'être et l'utilisation de la procédure interne.

Paramètres

Décrit les paramètres inclus dans les schémas de syntaxe. Les paramètres par défaut sont généralement soulignés.


Description des procédures internes - Restrictions

Indique les éventuelles restrictions.


Description des procédures internes - Exemples

Offre un exemple concret qui peut être utilisé avec la syntaxe pour développer un appel réaliste à la procédure interne.


ABORT_QUERY - Procédure interne

 Restrictions	 Toutes les procédures internes

Description

Permet de fermer une interrogation ouverte dans le bloc en cours.

Une interrogation est ouverte entre le moment où l'instruction SELECT est émise et le moment où toutes les lignes ont été extraites de la base de données. En particulier, une interrogation n'est pas ouverte lorsque l'application Forms est en mode Saisie interrogation, car l'instruction SELECT n'a pas encore été émise.

Syntaxe

PROCEDURE ABORT_QUERY;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Une interrogation est ouverte entre le moment où l'instruction SELECT est émise et le moment où toutes les lignes ont été extraites de la base de données. En particulier, une interrogation n'est pas ouverte lorsque l'application Forms est en mode Saisie interrogation, car l'instruction SELECT n'a pas encore été émise.

Paramètres

aucun

Notes d'utilisation

ABORT_QUERY n'est pas l'équivalent de la commande de menu runtime par défaut Interrogation, Annuler. Elle n'empêche pas l'extraction initiale de la base de données, mais interrompt le traitement des extractions, ce qui interdit les extractions suivantes.


ABORT_QUERY - Restrictions

N'utilisez pas ABORT_QUERY dans les déclencheurs suivants :

•	On-Fetch. Le déclencheur On-Fetch concerne les applications qui utilisent des déclencheurs transactionnels pour remplacer les fonctions de Form Builder par défaut lors de l'utilisation de sources de données non Oracle. Pour indiquer la fin de l'extraction des lignes, sortez du déclencheur On-Fetch sans exécuter la procédure interne CREATE_QUERIED_RECORD.

•	Pre-Query. Comme le déclencheur Pre-Query est activé avant l'ouverture de l'interrogation, il n'y a pas d'interrogation ouverte à fermer, et ABORT_QUERY n'est pas pris en compte. Pour annuler par programme le mode Saisie interrogation, appelez la procédure interne EXIT_FORM à l'aide d'un déclencheur When-New-Record-Instance pour vérifier un indicateur de la manière suivante :

IF (:global.cancel_query = 'Y'
      and :system.mode = 'SAISIE-INTERROGATION')
THEN
     Exit_Form;
     :global.cancel_query = 'N';
END IF;

•	Définissez ensuite l'indicateur à 'TRUE' à partir soit d'un déclencheur Pre-Query soit d'un déclencheur On-Error qui détecte l'erreur FRM-40301.


ACTIVATE_SERVER

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'activer un serveur OLE associé à un conteneur OLE et à préparer ce serveur à recevoir des événements d'automatisation pour le conteneur OLE.

Syntaxe

PROCEDURE ACTIVATE_SERVER
  (id_élément  Item);

PROCEDURE ACTIVATE_SERVER
  (nom_élément  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

Notes d'utilisation

•	Le conteneur OLE doit contenir un objet OLE, et le serveur OLE doit pouvoir être activé.


ACTIVATE_SERVER - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


ACTIVATE_SERVER - Exemples

/*
** Procédure interne : ACTIVATE_SERVER
** Exemple :  Activer le serveur OLE associé à l'objet
**            dans le conteneur OLE.
** Déclencheur :  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'ELEMOLE';
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('Elément inexistant : '||item_name);
 ELSE
  Forms_OLE.Activate_Server(item_id);
 END IF;
END;


ADD_GROUP_COLUMN - Procédure interne

 Exemples	   Restrictions	 Toutes les procédures internes

Description

Permet d'ajouter une colonne du type indiqué au groupe d'enregistrements donné.

Syntaxe

FUNCTION ADD_GROUP_COLUMN
  (id_groupenreg    RecordGroup,
   nom_colonnegroupe  VARCHAR2,
   type_colonne                 NUMBER);

FUNCTION ADD_GROUP_COLUMN
  (nom_groupenreg  VARCHAR2,
   nom_colonnegroupe  VARCHAR2,
   type_colonne       NUMBER);
FUNCTION ADD_GROUP_COLUMN
  (id_groupenreg,   RecordGroup
   nom_colonnegroupe  VARCHAR2,
   type_colonne       NUMBER,
   largeur_colonne    NUMBER);
FUNCTION ADD_GROUP_COLUMN
  (nom_groupenreg  VARCHAR2,
   nom_colonnegroupe  VARCHAR2,
   type_colonne       NUMBER,
   largeur_colonne    NUMBER);

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Retourne  ColonneGroupe

Paramètres

id_groupenreg	ID unique que Form Builder attribue lorsqu'il crée le groupe. Le type de données de l'ID est RecordGroup.

nom_groupenreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Le type de données du nom est VARCHAR2.

nom_colonnegroupe	Permet d'indiquer le nom de la colonne. Le type de données du nom de colonne est VARCHAR2.

type_colonne	Permet d'indiquer le type de données de la colonne. Les valeurs autorisées sont les constantes suivantes :

CHAR_COLUMN Permet d'indiquer si la colonne peut accepter uniquement des données de type VARCHAR2.

DATE_COLUMN Permet d'indiquer si la colonne peut accepter uniquement des données de type DATE.

LONG_COLUMN Permet d'indiquer si la colonne peut accepter uniquement des données de type LONG.

NUMBER_COLUMN Permet d'indiquer si la colonne peut accepter uniquement des données de type NUMBER.

largeur_colonne	Si vous indiquez CHAR_COLUMN comme type de colonne, vous devez indiquer la longueur maximum des données. La valeur de COLUMN_WIDTH ne doit pas être supérieure à 2000, et doit être passée comme un nombre entier.

Conditions d'erreur :

Form Builder retourne une erreur lorsque :

•	Vous entrez le nom d'un groupe d'enregistrements qui n'existe pas.

•	Vous indiquez le nom d'un groupe ou d'une colonne qui ne respecte pas les règles d'appellation Oracle standard.

•	Vous entrez un type de colonne autre que CHAR, NUMBER, DATE ou LONG.


ADD_GROUP_COLUMN - Restrictions

•	Vous devez ajouter des colonnes à un groupe avant d'ajouter des lignes.

•	Vous ne pouvez pas ajouter une colonne à un groupe qui comporte déjà des lignes ; vous devez commencer par supprimer les lignes à l'aide de DELETE_GROUP_ROW, puis ajouter la colonne.

•	Vous ne pouvez ajouter de colonnes à un groupe qu'après l'avoir créé à l'aide d'un appel à CREATE_GROUP.

•	Si la colonne correspond à une colonne de base de données, la largeur des colonnes de type CHAR_COLUMN ne peut pas être inférieure à la largeur de la colonne de base de données correspondante.

•	Si la colonne correspond à une colonne de base de données, la largeur des colonnes de type CHAR_COLUMN peut être supérieure à la largeur de la colonne de base de données correspondante.

•	Seules les colonnes de type CHAR_COLUMN demandent un paramètre de largeur.

•	L'augmentation du nombre de colonnes d'un groupe d'enregistrements entraîne une diminution des performances.

•	Il ne peut y avoir qu'une colonne de type LONG par groupe d'enregistrements.


ADD_GROUP_COLUMN - Exemples

/*

** Procédure interne :  ADD_GROUP_COLUMN
** Exemple :   Ajouter une colonne de type Number et une
** colonne de type Char à un nouveau groupe d'enregistrements.
*/
PROCEDURE Create_Mon_Groupe IS
  rg_name VARCHAR2(15) := 'Mon_Groupe';
  rg_id   RecordGroup;
  gc_id   GroupColumn;
BEGIN
  /*
  ** Vérifier l'existence du groupe d'enregistrements.
  */
  rg_id := Find_Group( rg_name );
  /*
  ** S'il n'existe pas, le créer avec une colonne de type NUM et une   ** colonne de type Char.
  */
  IF Id_Null(rg_id) THEN
    rg_id := Create_Group( rg_name );
    gc_id := Add_Group_Column(rg_id, 'NumCol',NUMBER_COLUMN);
    gc_id := Add_Group_Column(rg_id, 'CharCol',CHAR_COLUMN,15);
  END IF;
END;


ADD_GROUP_ROW - Procédure interne

 Exemples	   Restrictions	 Toutes les procédures internes

Description

Permet d'ajouter une ligne au groupe d'enregistrements indiqué.

Syntaxe

PROCEDURE ADD_GROUP_ROW
  (id_groupenreg  RecordGroup,
   numéro_ligne    NUMBER);

PROCEDURE ADD_GROUP_ROW
  (nom_groupenreg  VARCHAR2,
   numéro_ligne     NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_groupenreg	ID unique que Form Builder attribue lorsqu'il crée le groupe. Le type de données de l'ID est RecordGroup.

nom_groupenreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Le type de données du nom est VARCHAR2.

numéro_ligne	Nombre entier qui indique une ligne du groupe. Si vous ajoutez une ligne à une position quelconque d'un groupe - sauf la dernière - toutes les lignes suivantes sont logiquement renumérotées. Pour ajouter une ligne à la fin d'un groupe, utilisez la constante END_OF_GROUP.

Conditions d'erreur :

Form Builder retourne une erreur d'exécution lorsque :

•	Vous entrez le nom d'un groupe d'enregistrements qui n'existe pas.

•	Vous indiquez un numéro de ligne qui est hors limites ou non valide (par exemple, un caractère alphabétique).


ADD_GROUP_ROW - Restrictions

•	Un groupe peut se composer d'un nombre quelconque de lignes, 0 inclus.

•	Vous ne pouvez ajouter des lignes à un groupe que lorsque celui-ci a été créé et que des colonnes y ont été ajoutées.

•	Si vous indiquez un numéro de ligne supérieur au nombre de lignes existant dans le groupe (ou un nombre négatif), la ligne est insérée à la fin du groupe.

•	Vous ne pouvez pas ajouter de lignes à un groupe statique sans interrogation.


ADD_GROUP_ROW - Exemples

/*

** Procédure interne :  ADD_GROUP_ROW
** Exemple : Ajouter dix lignes à un nouveau groupe d'enregistrements ** et les remplir.
*/
PROCEDURE Populate_Mon_Groupe IS
  rg_name  VARCHAR2(20) := 'Mon_Groupe';
  rg_col1  VARCHAR2(20) := rg_name||'.NumCol';
  rg_col2  VARCHAR2(20) := rg_name||'.CharCol';
  rg_id    RecordGroup;
  gc_id    GroupColumn;
  in_words VARCHAR2(15);
BEGIN
  /*
  ** Vérifier l'existence du groupe d'enregistrements.
  */
  rg_id := Find_Group( rg_name );
  /*
  ** S'il n'existe pas, effacer toutes les lignes et remplir
  ** dix lignes avec les valeurs de 1 à 10 ainsi que le numéro
  ** équivalent en lettres.
  **
  **    N°ligne NumCol    CharCol
  **    ------- ------    -------
  **      1          1        un
  **      2          2        deux
  **      :          :         :
  **     10         10        dix
  */
  IF NOT Id_Null(rg_id) THEN
    Delete_Group_Row( rg_id, ALL_ROWS );
    FOR i IN 1..10 LOOP
      /*
      ** Ajouter la énième ligne à la fin (au bas) du
      ** groupe d'enregistrements et définir les valeurs des deux cellules.
  */
      in_words := TO_CHAR(TO_DATE(i,'AAAA'),'année');
      Add_Group_Row( rg_id, END_OF_GROUP );
      Set_Group_Number_Cell( rg_col1, i, i);
      Set_Group_Char_Cell( rg_col2, i, in_words);
    END LOOP;
  END IF;
END;


ADD_LIST_ELEMENT - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'ajouter un élément à un élément liste.

Syntaxe

PROCEDURE ADD_LIST_ELEMENT
  (nom_liste   VARCHAR2,
 index_liste, NUMBER
   libellé_liste  VARCHAR2,
   valeur_liste  NUMBER);

PROCEDURE ADD_LIST_ELEMENT
  (nom_liste     ITEM,
   index_liste  VARCHAR2,
   libellé_liste  VARCHAR2,
   valeur_liste  NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation oui

Paramètres

id_liste	Permet d'indiquer l'ID unique que Form Builder attribue lorsqu'il crée l'élément liste. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_liste	Nom que vous avez donné à la liste lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

index_liste	Permet d'indiquer la valeur d'index de la liste. Cet index est fondé sur la valeur 1.

libellé_liste	Permet d'indiquer la chaîne de type VARCHAR2 que vous voulez afficher comme libellé de l'élément liste.

valeur_liste	Valeur réelle de l'élément liste que vous voulez ajouter à l'élément liste.


ADD_LIST_ELEMENT - Restrictions

Pour une liste de table de base dont la propriété Type de liste est définie à Liste instantanée ou Liste de sélection, Form Builder ne vous permet pas d'ajouter un élément Autres valeurs lorsque le bloc contient des enregistrements interrogés ou modifiés. Cet ajout génère une erreur. Ce cas se présente lorsque vous avez utilisé DELETE_LIST_ELEMENT ou CLEAR_LIST pour supprimer l'élément Autres valeurs, indiqué lors de la conception par la définition de la propriété d'élément liste Correspondance d'autres valeurs.

Remarque : L'état du bloc est QUERY lorsqu'un bloc contient des enregistrements interrogés, et CHANGED lorsqu'il contient des enregistrements qui ont été soit insérés soit mis à jour.


ADD_LIST_ELEMENT - Exemples

/*

**  Procédure interne :  ADD_LIST_ELEMENT
**  Exemple : Supprimer la valeur d'index 1 et ajouter la valeur
**            "1997" à l'élément liste appelé "années" lorsque **            l'utilisateur appuie sur un bouton.
**  Déclencheur : When-Button-Pressed
*/
BEGIN
   Delete_List_Element('années',1);
   Add_List_Element('années', 1, '1997', '1997');
END;


ADD_OLEARGS

 Toutes les procédures internes

Description

Permet de définir le type et la valeur d'un argument destiné à être transmis à la méthode de l'objet OLE.

Syntaxe

PROCEDURE ADD_OLEARG
  (newvar NUMBER, vtype VT_TYPE := VT_R8);

...ou...

PROCEDURE ADD_OLEARG
  (newvar VARCHAR2, vtype VT_TYPE := VT_BSTR);

...ou...

PROCEDURE ADD_OLEARG
  (newvar OLEVAR, vtype VT_TYPE := VT_VARIANT);

Type de procédure interne  procédure non restreinte

Paramètres

newvar	Valeur de cet argument. Son type (NUMBER, VARCHAR2 ou OLEVAR) correspond à son type de données (FORMS ou PL/SQL).
vtype	Type de l'argument tel qu'il est compris par la méthode OLE. Dans le cas d'un argument NUMBER, la valeur par défaut est VT_TYPE := VT_R8. Dans le cas d'un argument VARCHAR2, la valeur par défaut est VT_TYPE := VT_BSTR. Dans le cas d'un argument OLEVAR, la valeur par défaut est VT_TYPE := VT_VARIANT.
Notes d'utilisation

Chaque transmission de l'argument requiert un appel ADD_OLEARG distinct. Les appels doivent être effectués dans l'ordre, en commençant par le premier argument.

La liste des arguments OLE VT_TYPE pris en charge est disponible dans Types de variantes OLE.


ADD_PARAMETER - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'ajouter des paramètres à une liste de paramètres. Chaque paramètre se compose d'une clé, d'un type et d'une valeur associée.

Syntaxe

PROCEDURE ADD_PARAMETER
  (liste       VARCHAR2,
   clé         VARCHAR2,
   typeparam   VARCHAR2,
   valeur      VARCHAR2);

PROCEDURE ADD_PARAMETER
  (nom         VARCHAR2,
   clé         VARCHAR2,
   typeparam   VARCHAR2,
   valeur      VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

liste ou nom	Permet d'indiquer la liste de paramètres à laquelle est attribué le paramètre. Le paramètre peut être soit un ID de liste de paramètres de type PARAMLIST, soit le nom de type VARCHAR2 de la liste de paramètres.

clé	Nom du paramètre. Les données de la clé sont de type VARCHAR2.

typeparam	Permet d'indiquer l'un des deux types suivants :

TEXT_PARAMETER Littéral de chaîne de type VARCHAR2.

DATA_PARAMETER Chaîne de type VARCHAR2 indiquant le nom d'un groupe d'enregistrements défini dans l'application Forms en cours. Lorsque Form Builder passe un paramètre de données à Report Builder ou à Graphics Builder, les données du groupe d'enregistrements indiqué peuvent remplacer une interrogation que Report Builder ou Graphics Builder exécuterait normalement pour lancer l'état ou l'affichage.

Valeur	Valeur réelle que vous voulez passer au module appelé. Si vous passez un paramètre texte, la longueur maximum est de 64 000 caractères. Les données de la valeur sont de type VARCHAR2.


ADD_PARAMETER - Restrictions

•	Une liste de paramètres peut ne comporter aucun paramètre.

•	Vous ne pouvez pas créer de liste de paramètres s'il en existe déjà une. Si vous tentez d'en créer une, vous recevrez un message d'erreur. Pour l'éviter, utilisez ID_NULL pour savoir s'il existe déjà une liste de paramètres avant d'en créer une. S'il en existe une, supprimez-la à l'aide de DESTROY_PARAMETER_LIST, puis créez-en une.

•	Vous ne pouvez pas ajouter un paramètre de type DATA_PARAMETER si la liste des paramètres est transmise à une autre application Forms.


ADD_PARAMETER - Exemples

/*

** Procédure interne :  ADD_PARAMETER
** Exemple :  Ajouter un paramètre de valeur à une Liste de
**            paramètres existante, appelée 'DONNEESTEMP', puis
**            ajouter un paramètre de données à la liste pour
**            associer l'interrogation nommée 'INTERRO_DEPT' **            au groupe d'enregistrements 'GROUPENREG_DEPT'.
*/
DECLARE
  pl_id ParamList;
BEGIN
  pl_id := Get_Parameter_List('donnéestemp');
  IF NOT Id_Null(pl_id) THEN
    Add_Parameter(pl_id,'nombre_de_copies',TEXT_PARAMETER,'19');

    Add_Parameter(pl_id, 'interro_dept', DATA_PARAMETER,
         'Groupenreg_dept');
  END IF;
END;


ADD_TREE_DATA - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Permet d'ajouter un ensemble de données sous le noeud indiqué de l'élément de l'arborescence.

Syntaxe

PROCEDURE ADD_TREE_DATA

  (id_élément ITEM,

   noeud FTREE.NODE,

   type_décalage NUMBER,

   décalage NUMBER,

   source_données NUMBER,

   données VARCHAR2);

PROCEDURE ADD_TREE_DATA

  (nom_élément VARCHAR2,

   noeud FTREE.NODE,

   type_décalage NUMBER,

   décalage NUMBER,

   source_données NUMBER,

   données VARCHAR2);

PROCEDURE ADD_TREE_DATA

  (nom_élément VARCHAR2,

   noeud FTREE.NODE,

   type_décalage NUMBER,

   décalage NUMBER,

   source_données NUMBER,

   données RECORDGROUP);

PROCEDURE ADD_TREE_DATA

  (id_élément ITEM,

   noeud FTREE.NODE,

   type_décalage NUMBER,

   décalage NUMBER,

   source_données NUMBER,

   données RECORDGROUP);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
noeud	Indique un noeud valide.
type_décalage	Indique le type de décalage du noeud. Les différentes valeurs possibles sont : PARENT_OFFSET SIBLING_OFFSET Si le paramètre type_décalage est défini sur PARENT_OFFSET, il ajoute immédiatement un sous-ensemble de données sous le noeud spécifié à l'emplacement indiqué par le paramètre décalage parmi ses noeuds fils. Si le paramètre type_décalage est défini sur SIBLING_OFFSET, il ajoute les nouvelles données en tant que copie sous le noeud indiqué.
décalage	Indique la position du nouveau noeud. Si le paramètre type_décalage est défini sur PARENT_OFFSET, la valeur de décalage peut être 1-n ou LAST_CHILD. Si le paramètre type_décalage est défini sur SIBLING_OFFSET, la valeur de décalage peut être NEXT_NODE ou PREVIOUS_NODE.
source_données	Indique le type de source de données. Les différentes valeurs possibles sont : RECORD_GROUP QUERY_TEXT
données	Indique les données à ajouter. Si la source de données est QUERY_TEXT, il s'agit du texte de l'interrogation. Si la source de données est RECORD_GROUP, il s'agit d'un élément de type RECORDGROUP ou du nom d'un groupe d'enregistrements.


ADD_TREE_DATA - Exemples

/*

** Procédure interne :  ADD_TREE_DATA
*/

-- Ce code copie un ensemble de valeurs d'un groupe d'enregistrements

-- et les ajoute comme noeud de niveau supérieur à des noeuds fils

-- indiqués par la structure du groupe d'enregistrements.

-- Le nouveau noeud de niveau supérieur est inséré comme dernier

-- noeud de niveau supérieur.

DECLARE

   htree         ITEM;

   rg_data       RECORDGROUP;

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Rechercher le groupe d'enregistrements.

   rg_data := FIND_GROUP('new_data_rg');

   -- Ajouter le nouveau noeud de niveau le plus haut aux noeuds fils.

   Ftree.Add_Tree_Data(htree,

                       Ftree.ROOT_NODE,

                       Ftree.PARENT_OFFSET,

                       Ftree.LAST_CHILD,

                       Ftree.RECORD_GROUP,

                       rg_data);

END;


ADD_TREE_NODE - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Permet d'ajouter un élément de données à un élément de l'arborescence.

Syntaxe

FUNCTION ADD_TREE_NODE

  (nom_élément VARCHAR2,

   noeud FTREE.NODE,

   type_décalage NUMBER,

   décalage NUMBER,

   état NUMBER,

   libellé VARCHAR2,

   icône VARCHAR2,

   valeur VARCHAR2);

FUNCTION ADD_TREE_NODE

  (id_élément ITEM,

   noeud FTREE.NODE,

   type_décalage NUMBER,

   décalage NUMBER,

   état NUMBER,

   libellé VARCHAR2,

   icône VARCHAR2,

   valeur VARCHAR2);

Type de procédure interne  procédure non restreinte

Retourne  NODE

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
noeud	Indique un noeud valide.
type_décalage	Indique le type de décalage du noeud. Les différentes valeurs possibles sont : PARENT_OFFSET SIBLING_OFFSET
décalage	Indique la position du nouveau noeud. Si le paramètre type_décalage est défini sur PARENT_OFFSET, la valeur de décalage peut être 1-n ou LAST_CHILD. Si le paramètre type_décalage est défini sur SIBLING_OFFSET, la valeur de décalage peut être NEXT_NODE ou PREVIOUS_NODE.
état	Indique l'état du noeud. Les différentes valeurs possibles sont : COLLAPSED_NODE EXPANDED_NODE LEAF_NODE
libellé	Texte affiché du noeud.
icône	Nom de fichier de l'icône du noeud.
valeur	Indique la valeur VARCHAR2 du noeud.


ADD_TREE_NODE - Exemples

/*

** Procédure interne :  ADD_TREE_NODE
*/

-- Ce code copie une valeur d'un élément d'une application Forms et

-- l'ajoute à l'arborescence comme noeud de niveau supérieur. La

-- valeur définie est identique au libellé.

DECLARE

   htree         ITEM;

   top_node      FTREE.NODE;

   new_node      FTREE.NODE;

   item_value    VARCHAR2(30);

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Copier la valeur de l'élément vers une variable locale.

   item_value := :wizard_block.new_node_data;

   -- Ajouter un noeud de niveau supérieur développé à l'arborescence

   -- sans icône.

   new_node := Ftree.Add_Tree_Node(htree,

                                   Ftree.ROOT_NODE,

                                   Ftree.PARENT_OFFSET,

                                   Ftree.LAST_CHILD,

                                   Ftree.EXPANDED_NODE,

                                   item_value,

                                   NULL,

                                   item_value);

END;


APPLICATION_PARAMETER - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'afficher, dans la boîte de dialogue de saisie des valeurs, tous les paramètres associés au menu actuel et leur valeur.

Syntaxe

PROCEDURE APPLICATION_PARAMETER;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Echec :

Si aucun paramètre n'est défini pour le menu actuel, Form Builder affiche le message d'erreur FRM-10201 : Aucun paramètre requis.


BELL - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet de régler le signal sonore du terminal de façon à ce que ce signal soit émis la prochaine fois que l'écran du terminal se synchronise sur l'état interne de l'application Forms. Cette synchronisation peut découler d'un traitement interne ou d'un appel au sous-programme intégré SYNCHRONIZE.

Syntaxe

PROCEDURE BELL;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


BELL - Exemples

Pour que le signal sonore soit émis trois fois :

FOR i in 1..3 LOOP
  BELL;
  SYNCHRONIZE;
END LOOP;


BLOCK_MENU - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet d'afficher une liste de valeurs (LOV) contenant le numéro de séquence et le nom des blocs valides dans votre application Forms. Form Builder définit le point d'insertion au premier élément modifiable du bloc que vous sélectionnez dans la LOV.

Syntaxe

PROCEDURE BLOCK_MENU;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui ; cependant, en mode Saisie interrogation, la navigation hors du bloc en cours n'est pas autorisée.

Paramètres

aucun


BLOCK_MENU - Exemples

/*

** Procédure interne :  BLOCK_MENU
** Exemple : Appeler la liste des blocs de l'application Forms
**           lorsque l'utilisateur clique sur un bouton et
**           imprimer un message si l'utilisateur choisit dans
**           la liste un nouveau bloc auquel passer.
*/
DECLARE
  prev_blk  VARCHAR2(40) := :System.Cursor_Block;
BEGIN
  BLOCK_MENU;
  IF :System.Cursor_Block <> prev_blk THEN
    Message('Le passage à un nouveau bloc a réussi!');
  END IF;
END;


BREAK - Procédure interne

 Exemples	   Restrictions	 Toutes les procédures internes

Description

Permet d'arrêter l'exécution de l'application Forms et d'afficher le Débogueur pendant que l'application en cours s'exécute en mode débogage. Le Débogueur permet d'effectuer des sélections pour afficher les valeurs des variables globales et système. La procédure interne BREAK est surtout utile lorsque vous voulez connaître l'état d'une application Forms pendant l'exécution d'un déclencheur.

Syntaxe

PROCEDURE BREAK;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


BREAK - Restrictions

Si l'application Forms en cours ne s'exécute pas en mode débogage, un appel au sous-programme intégré BREAK est sans effet.


BREAK - Exemples

/*

** Procédure interne :  BREAK
** Exemple : Afficher la fenêtre de débogage pour une valeur
**           particulière de l'élément 'TRAVAIL' chaque fois
**           que l'utilisateur change d'enregistrement.
** Déclencheur : When-New-Record-Instance
*/
BEGIN
  IF :Emp.Job = 'EMPLOYE' THEN
    Break;
    Call_Form('fiche_employé');
    Break;
  END IF;
END;


CALL_FORM - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Exécute l'application Forms indiquée tout en maintenant l'application Forms père active. Form Builder exécute l'application Forms appelée en utilisant les mêmes préférences Runform que l'application Forms père. Lors de la sortie de l'application Forms appelée, le traitement Form Builder reprend dans l'application Forms appelante au point auquel vous avez lancé l'appel à CALL_FORM.

Syntaxe

PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2);

PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2,
   affichage           NUMBER);
PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2,
   affichage           NUMBER,
   remplacement_menu         NUMBER);
PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2,
   affichage           NUMBER,
   remplacement_menu         NUMBER,
   mode_interrogation  NUMBER);
PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2,
   affichage           NUMBER,
   remplacement_menu         NUMBER,
   mode_interrogation  NUMBER,
   mode_données        NUMBER);
PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2,
   affichage           NUMBER,
   remplacement_menu         NUMBER,
   mode_interrogation  NUMBER,
   id_listeparam       PARAMLIST);
PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2,
   affichage           NUMBER,
   remplacement_menu         NUMBER,
   mode_interrogation  NUMBER,
   nom_listeparam      VARCHAR2);
PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2,
   affichage           NUMBER,
   remplacement_menu         NUMBER,
   mode_interrogation  NUMBER,
   mode_données        NUMBER,
   id_listeparam       PARAMLIST);
PROCEDURE CALL_FORM
  (nom_modulAppForms  VARCHAR2,
   affichage           NUMBER,
   remplacement_menu         NUMBER,
   mode_interrogation  NUMBER,
   mode_données        NUMBER,
   nom_listeparam      VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

nom_modulAppForms	Nom de l'application Forms appelée (obligatoirement entre apostrophes). Les données sont de type VARCHAR2.

Affichage	HIDE (option par défaut) Form Builder masque l'application Forms appelante avant de tracer l'application Forms appelée.

NO_HIDE Form Builder affiche l'application Forms appelée sans masquer l'application Forms appelante.

remplacement_menu	NO_REPLACE (option par défaut) Form Builder garde le module Menu par défaut de l'application Forms appelante actif pour l'application Forms appelée.

DO_REPLACE Form Builder remplace le module Menu par défaut de l'application Forms appelante par le module Menu par défaut de l'application Forms appelée.

mode_interrogation	NO_QUERY_ONLY (option par défaut) Form Builder exécute l'application Forms indiquée en mode Normal, ce qui permet à l'utilisateur d'effectuer des insertions, des mises à jour et des suppressions à partir de l'application Forms appelée.

QUERY_ONLY Form Builder exécute l'application Forms indiquée en mode Interrogation seulement, ce qui permet à l'utilisateur d'interroger, mais non d'insérer, de mettre à jour ou de supprimer des enregistrements.

mode_données	NO_SHARE_LIBRARY_DATA (option par défaut) Au moment de l'exécution, Form Builder ne partagera pas les données entre les applications Forms auxquelles sont attachées des bibliothèques identiques (lors de la conception).

SHARE_LIBRARY_DATA Au moment de l'exécution, Form Builder partage les données entre les applications Forms auxquelles sont attachées des bibliothèques identiques (lors de la conception).

id_listeparam	ID unique que Form Builder attribue lorsqu'il crée la liste de paramètres. Vous pouvez, si vous le désirez, inclure une liste de paramètres comme entrée initiale de l'application Forms appelée. Les données sont de type PARAMLIST.

nom_listeparam	Nom que vous avez donné à l'objet liste de paramètres lorsque vous l'avez défini. Les données sont de type VARCHAR2.


CALL_FORM - Restrictions

•	Form Builder ne tient pas compte du paramètre mode_interrogation lorsque l'application Forms appelante s'exécute en mode QUERY_ONLY. Form Builder exécute toute application Forms appelée à partir d'une application Forms QUERY_ONLY comme une application Forms QUERY_ONLY, même si la syntaxe CALL_FORM précise que l'application Forms appelée doit s'exécuter en mode NO_QUERY_ONLY (normal).

•	Une liste de paramètres passée à une application Forms par CALL_FORM ne peut pas contenir de paramètres de type DATA_PARAMETER. Seuls les paramètres de texte peuvent être passés à l'aide de CALL_FORM.

•	Une partie de la mémoire attribuée pour CALL_FORM n'est annulée que lorsque la session Runform prend fin. Procédez avec discernement lorsque vous créez une pile importante d'applications Forms appelées.

•	Lorsque vous exécutez CALL_FORM dans un déclencheur Pre-Logon, On-Logon ou Post-Logon, indiquez toujours le paramètre DO_REPLACE pour remplacer le menu de l'application Forms appelante par le menu d'application Forms appelée. Si vous n'indiquez pas de paramètre DO_REPLACE, aucun menu n'est affiché pour l'application Forms appelée. Vous pouvez également appeler la procédure interne REPLACE_MENU à partir d'un déclencheur When-New-Form-Instance dans l'application Forms appelée.


CALL_FORM - Exemples

/* Exemple 1:

** Appeler une application Forms en mode Interrogation seulement.
*/
BEGIN
  CALL_FORM('consultemp', no_hide, no_replace, query_only);
END;

/* Exemple 2:
** Appeler une application Forms et passer une liste de paramètres ** (si elle existe).
*/
DECLARE
  pl_id        PARAMLIST;
  theformname  VARCHAR2(20);
BEGIN
  theformname := 'ajoutcli';

  /* Essayer de consulter la liste de paramètres 'DONNEESTEMP' */
  pl_id := GET_PARAMETER_LIST('donnéestemp');
  IF ID_NULL(pl_id) THEN
    CALL_FORM(theformname);
  ELSE
    CALL_FORM(theformname,
              hide,
              no_replace,
              no_query_only,
              pl_id);
  END IF;

  CALL_FORM('conscli', no_hide, do_replace, query_only);
END;


CALL_INPUT - Procédure interne

 Restrictions	 Toutes les procédures internes

Description

Permet d'accepter et de traiter les touches de fonction utilisées par  l'utilisateur. Lorsque CALL_INPUT se termine, Form Builder reprend le traitement au point auquel l'appel à CALL_INPUT s'est produit.

Syntaxe

PROCEDURE CALL_INPUT;

Type de procédure interne procédure restreinte

Mode Saisie interrogation non

Paramètres

aucun


CALL_INPUT - Restrictions

CALL_INPUT est inclus pour des raisons de compatibilité avec les versions précédentes. Il n'est pas nécessaire de l'inclure dans les nouvelles applications.


CALL_OLE

 Toutes les procédures internes

Description

Permet de transmettre le contrôle à la méthode objet OLE identifié.

Syntaxe

PROCEDURE CALL_OLE

  (obj OLEOBJ, memberid PLS_INTEGER);

Type de procédure interne  procédure non restreinte

Paramètres

obj	Nom de l'objet OLE.
memberid	ID de membre de la méthode à exécuter.
Notes d'utilisation

•	Avant que cet appel soit effectué, le nombre, le type et la valeur des arguments doivent être définis à l'aide des procédures INIT_OLEARGS et ADD_OLEARGS.

•	Etant donné qu'il s'agit d'un appel de procédure, aucune valeur n'est retournée. Pour qu'une valeur soit retournée par la méthode, utilisez l'une des versions de fonction de cet appel (CALL_OLE_CHAR, _NUM, _OBJ ou _VAR).

•	La méthode peut générer une exception FORM_OLE_FAILURE. Dans ce cas, vous pouvez utiliser la fonction LAST_OLE_EXCEPTION pour obtenir davantage d'informations.


CALL_OLE_returntype;
CALL_OLE_<returntype>

 Toutes les procédures internes

Description

Permet de transmettre le contrôle à la méthode objet OLE identifié. Reçoit une valeur de retour du type indiqué.

Il existe quatre versions de cette fonction (signalées par la valeur de returntype), chacune correspondant à un type d'argument (CHAR, NUM, OBJ et VAR).

Syntaxe

FUNCTION CALL_OLE_CHAR
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN returnval VARCHAR2;

...ou...

FUNCTION CALL_OLE_NUM
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN returnval NUMBER;

...ou...

FUNCTION CALL_OLE_OBJ
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN returnval OLEOBJ;

...ou...

FUNCTION CALL_OLE_VAR
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN returnval OLEVAR;

Type de procédure interne  fonction non restreinte

Retourne  valeur renvoyée par la méthode sous le format indiqué

Paramètres

obj	Nom de l'objet OLE.
memberid	ID de membre de la méthode de l'objet.
Notes d'utilisation

•	Avant que cet appel soit effectué, le nombre, le type et la valeur des arguments doivent être définis à l'aide des procédures INIT-OLEARGS et ADD-OLEARGS.

•	La méthode peut générer une exception FORM_OLE_FAILURE. Dans ce cas, vous pouvez utiliser la fonction LAST_OLE_EXCEPTION pour obtenir davantage d'informations.


CANCEL_REPORT_OBJECT - Procédure interne

 Toutes les procédures internes

Description

Permet d'annuler un état asynchrone à longue durée d'exécution. Vérifiez que cette annulation a été validée en contrôlant le statut de l'état à l'aide de la procédure REPORT_OBJECT_STATUS.

Syntaxe

PROCEDURE CANCEL_REPORT_OBJECT
  (id_état VARCHAR2
);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation oui

Paramètres

id_état	Valeur VARCHAR2 renvoyée par la procédure interne RUN_REPORT_OBJECT. Cette valeur n'identifie que l'état en cours d'exécution localement ou sur un serveur d'états à distance.

Notes d'utilisation

•	La procédure CANCEL_REPORT_OBJECT n'intervient que lorsqu'un état est exécuté de façon asynchrone. Vous ne pouvez pas annuler un état exécuté de façon synchrone.


CHECKBOX_CHECKED - Procédure interne

 Exemples	 Restrictions	  Toutes les procédures internes

Description

Un appel à la fonction CHECKBOX_CHECKED retourne une valeur BOOLEENNE qui correspond à l'état de la case à cocher indiquée. Si l'élément n'est pas une case à cocher, Form Builder retourne le message d'erreur suivant :

FRM-41038: L'élément <nom_élément> n'est pas une case à cocher.

Syntaxe

FUNCTION CHECKBOX_CHECKED
  (id_élément  ITEM);

FUNCTION CHECKBOX_CHECKED
  (nom_élément  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne valeur BOOLEENNE

Mode Saisie interrogation oui

Vous pouvez utiliser un appel à GET_ITEM_PROPERTY(nom_élément, ITEM_TYPE) pour vérifier le type d'élément avant d'appeler CHECKBOX_CHECKED.

Pour définir par programme la valeur d'une case à cocher, attribuez une valeur valide à la case en utilisant la syntaxe des variables de lien standard.

Paramètres

id_élément	Permet d'indiquer l'ID unique que Form Builder attribue à l'élément lorsqu'il le crée. Les données de l'ID sont de type ITEM.

nom_élément	Permet d'indiquer la chaîne que vous avez définie comme nom de l'élément lors de la conception. Les données du nom sont de type VARCHAR2.


CHECKBOX_CHECKED - Restrictions

La procédure interne CHECKBOX_CHECKED retourne une valeur BOOLEENNE concernant l'état de la case à cocher indiquée. Elle ne retourne ni la valeur réelle de la case à cocher, ni la valeur que vous pourriez avoir indiquée pour la propriété Correspondance d'autres valeurs.


CHECKBOX_CHECKED - Exemples

/*

** Procédure interne :  CHECKBOX_CHECKED
** Exemple : Définir une distinction entre majuscules et minuscules pour
**           l'interrogation de l'élément dont le nom est passé sous
**           forme d'argument, en fonction de l'élément case à cocher **           d'un indicateur.
*/
PROCEDURE Set_Case_Sensitivity( it_name VARCHAR2) IS
  indicator_name VARCHAR2(80) := 'control.case_indicator';
  it_id          Item;
BEGIN
  it_id := Find_Item(it_name);

  IF Checkbox_Checked(indicator_name) THEN
    /*
    ** Définir l'élément dont le nom a été passé à l'interrogation avec
    ** distinction entre majuscules et minuscules (c'est-à-dire dont le     ** paramètre Sans distinction maj/min est défini à Faux).
    */
    Set_Item_Property(it_id, CASE_INSENSITIVE_QUERY,
                      PROPERTY_FALSE );
ELSE
    /*
    ** Définir l'élément dont le nom a été passé à l'interrogation sans
    ** distinction entre majuscules et minuscules, c'est-à-dire dont le     ** paramètre Sans distinction maj/min est défini à Vrai).
    */
    Set_Item_Property(it_id,CASE_INSENSITIVE_QUERY,PROPERTY_TRUE);
  END IF;
END;


CHECK_RECORD_UNIQUENESS - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Appelée à partir d'un déclencheur On-Check-Unique, cette procédure interne déclenche le traitement Form Builder par défaut pour vérifier l'unicité de la clé primaire d'un enregistrement.

Cette procédure interne est incluse principalement pour les applications qui s'exécutent sur une source de données non ORACLE.

Syntaxe

PROCEDURE CHECK_RECORD_UNIQUENESS;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


CHECK_RECORD_UNIQUENESS - Restrictions

Cette procédure interne n'est valide que dans un déclencheur On-Check-Unique.


CHECK_RECORD_UNIQUENESS - Exemples

/*

** Procédure interne : CHECK_RECORD_UNIQUENESS
** Exemple : Vérifier l'unicité de l'enregistrement de Form Builder
**           à partir des champs du bloc comportant une marque de clé
**           primaire en fonction d'un indicateur global
**           défini lors du démarrage de l'application
**           Forms, éventuellement fondé sur un paramètre.
** Déclencheur : On-Check-Unique
*/
BEGIN
  /*
  ** Vérifier l'indicateur global défini lors du démarrage de   ** l'application Forms.
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('chkuniq block=EMP');
  /*
  ** Sinon, exécuter la procédure appropriée.
  */
  ELSE
    Check_Record_Uniqueness;
  END IF;
END;


CLEAR_BLOCK - Procédure interne

 Exemples	  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'effacer tous les enregistrements du bloc en cours (c'est-à-dire de le "vider").

Syntaxe

PROCEDURE CLEAR_BLOCK;

PROCEDURE CLEAR_BLOCK
  (mode_commit  NUMBER);

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

Si l'utilisateur a modifié des enregistrements du bloc en cours qui n'ont pas été inscrits ou enregistrés dans la base de données, Form Builder les traite selon les indications de l'argument fourni pour le paramètre de mode_commit :

mode_commit	Le paramètre d'action facultatif accepte comme argument les constantes possibles suivantes :

ASK_COMMIT Form Builder demande à l'utilisateur d'enregistrer les modifications dans la base de données pendant le traitement CLEAR_BLOCK.

DO_COMMIT Form Builder valide les modifications, exécute une opération commit et vide le bloc en cours sans faire intervenir l'utilisateur.

NO_COMMIT Form Builder valide les modifications et vide le bloc en cours sans effectuer d'opération commit ou sans faire intervenir l'utilisateur.

NO_VALIDATE Form Builder vide le bloc en cours sans valider les modifications, sans effectuer d'opération commit ou sans faire intervenir l'utilisateur.


CLEAR_BLOCK - Exemples

/*

** Procédure interne : CLEAR_BLOCK
** Exemple : Effacer le bloc en cours sans enregistrement et
**           intégrer la valeur de clé primaire que l'utilisateur
**           a entrée dans une variable globale qu'un
**           déclencheur Pre-Query utilisera
**           comme critère d'interrogation.
** Déclencheur : When-New-Item-Instance
*/
BEGIN
  IF :Emp.Empno IS NOT NULL THEN
    :Global.Employee_Id := :Emp.Empno;
    Clear_Block(No_Validate);
  END IF;
END;
/*
** Déclencheur : Pre-Query
*/
BEGIN
  Default_Value(NULL, 'Global.Employee_Id');
  IF :Global.Employee_Id IS NOT NULL THEN
    :Emp.Empno := :Global.Employee_Id;
  END IF;
END;


CLEAR_EOL - Procédure interne

 Exemples	  Toutes les procédures internes

Description

Permet d'effacer la valeur de l'élément texte en cours entre la position du curseur et la fin de la ligne.

Syntaxe

PROCEDURE CLEAR_EOL;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui


CLEAR_EOL - Exemples

/*

** Procédure interne : CLEAR_EOL
** Exemple : Effacer le contenu de tout champ numérique lorsque
**           l'utilisateur y accède.
** Déclencheur : When-New-Item-Instance
*/
BEGIN
  IF Get_Item_Property(:System.Trigger_Item, DATATYPE) = 'NUMBER' THEN
      Clear_Eol;
  END IF;
END;


CLEAR_FORM - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'effacer tous les enregistrements de l'application Forms en cours (c'est-à-dire de la vider) et de placer le point d'insertion dans le premier élément du premier bloc.

Syntaxe

PROCEDURE CLEAR_FORM;

PROCEDURE CLEAR_FORM
  (mode_commit  NUMBER);
PROCEDURE CLEAR_FORM
  (mode_commit    NUMBER,
   mode_annulation    NUMBER);

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

Si l'utilisateur a modifié des enregistrements de l'application Forms en cours ou d'une application Forms appelée, lesquels n'ont pas été inscrits ou enregistrés dans la base de données, Form Builder les traite selon les indications de l'argument fourni par le paramètre suivant :

mode_commit	ASK_COMMIT Form Builder demande à l'utilisateur de d'enregistrer les modifications dans la base de données pendant le traitement CLEAR_FORM.

DO_COMMIT Form Builder valide les modifications, exécute une opération commit et vide l'application Forms en cours sans faire intervenir l'utilisateur.

NO_COMMIT Form Builder valide les modifications et vide l'application Forms en cours sans effectuer d'opération commit ou sans faire intervenir l'utilisateur.

NO_VALIDATE Form Builder vide l'application Forms en cours sans valider les modifications, sans effectuer d'opération commit ou sans faire intervenir l'utilisateur.

mode_annulation	TO_SAVEPOINT Form Builder annule toutes les modifications non enregistrées dans la base de données (y compris les modifications inscrites) jusqu'au point d'enregistrement de l'application Forms en cours.

FULL_ROLLBACK Form Builder annule toutes les modifications non enregistrées dans la base de données (y compris les modifications inscrites) qui ont été effectuées pendant la session Runform en cours. Vous ne pouvez pas demander un FULL_ROLLBACK à partir d'une application Forms qui s'exécute en mode Post-only. (Le mode Post-only ne peut exister que lorsque votre application Forms appelle une autre application Forms alors que l'application appelante comporte des enregistrements non inscrits. Pour éviter de perdre les verrous émis par l'application appelante, Form Builder empêche tout traitement commit dans l'application Forms appelée.)


CLEAR_FORM - Restrictions

Si vous utilisez une instruction ROLLBACK PL/SQL dans un bloc anonyme ou un sous-programme défini par l'utilisateur, Form Builder l'interprète comme un sous-programme intégré CLEAR_FORM sans paramètre.


CLEAR_FORM - Exemples

/*

** Procédure interne : CLEAR_FORM
** Exemple : Effacer les modifications apportées à
**           l'application Forms en cours sans demander leur enregistrement.
*/
BEGIN
  Clear_Form(No_Validate);
END;


CLEAR_ITEM - Procédure interne

 Exemples	  Toutes les procédures internes

Description

Permet d'effacer la valeur de l'élément texte en cours, quelle que soit la position du curseur, et de définir la valeur de l'élément texte à NULL.

Syntaxe

PROCEDURE CLEAR_ITEM;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui


CLEAR_ITEM - Exemples

/*

** Procédure interne : CLEAR_ITEM
** Exemple : Effacer le premier élément s'il ne représente
**           pas le premier jour d'un mois.
** Déclencheur : When-New-Item-Instance
*/
BEGIN
  IF TO_CHAR(:Emp.Hiredate,'JJ') <> '01' THEN
    Clear_Item;
    Message('Le format de la date doit être de type 01-MOI-AA');
  END IF;
END;


CLEAR_LIST - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'effacer tous les éléments d'un élément liste. Une liste effacée ne contient plus qu'un élément (l'élément Null) quelle que soit la propriété Obligatoire de l'élément.

Syntaxe

PROCEDURE CLEAR_LIST
  (id_liste  ITEM);

PROCEDURE CLEAR_LIST
  (nom_liste  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_liste	Permet d'indiquer l'ID unique que Form Builder attribue lorsqu'il crée l'élément liste. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_liste	Nom que vous avez donné à la liste lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

Notes d'utilisation

•	N'utilisez pas la procédure interne CLEAR_LIST si la propriété Correspondance d'autres valeurs est définie et si le bloc comporte des enregistrements interrogés, car dans ce cas Form Builder pourrait être dans l'impossibilité d'afficher les enregistrements qui ont déjà été extraits.

Par exemple, supposons qu'un élément liste contient les valeurs A, B et C et que la propriété Correspondance d'autres valeurs est définie. Supposons également que ces valeurs ont été extraites de la base de données (c'est-à-dire qu'une interrogation est ouverte). A ce stade, l'effacement de la liste à l'aide de CLEAR_LIST génère un message d'erreur, car Form Builder tente d'afficher les valeurs préalablement extraites (A, B et C), mais sans succès, car la liste a été effacée.

Avant d'effacer une liste, fermez toutes les interrogations ouvertes. Pour cela, utilisez la procédure interne ABORT_QUERY.

Remarque : L'état du bloc est QUERY lorsqu'il contient des enregistrements interrogés, et CHANGED lorsqu'il contient des enregistrements qui ont été soit insérés soit mis à jour (les enregistrements interrogés ont été modifiés).


CLEAR_LIST - Restrictions

•	Pour un élément liste de type Liste de sélection ou Liste instantanée, CLEAR_LIST n'efface pas de la liste l'élément de valeur par défaut ou l'élément Autres valeurs s'ils ne répondent pas aux critères indiqués pour la suppression de ces éléments à l'aide de DELETE_LIST_ELEMENT.

Lorsque la valeur par défaut ou l'élément Autres valeurs ne peut pas être supprimé, CLEAR_LIST laisse ces éléments dans la liste et efface tous les autres. Pour plus d'informations, reportez-vous aux restrictions concernant DELETE_LIST_ELEMENT.


CLEAR_LIST - Exemples

/*

**  Procédure interne : CLEAR_LIST
**  Exemple : Voir POPULATE_LIST
*/


CLEAR_MESSAGE - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet d'effacer le message en cours de la ligne de message.

Syntaxe

PROCEDURE CLEAR_MESSAGE;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui


CLEAR_MESSAGE - Exemples

/*

** Procédure interne : CLEAR_MESSAGE
** Exemple : Effacer le message de la ligne de message.
*/
BEGIN
  Message('en cours...',No_Acknowledge);
  SELECT current_tax
    INTO :Emp.Tax_Rate
    FROM tax_table
   WHERE state_abbrev = :Emp.State;
  Clear_Message;
END;


CLEAR_RECORD - Procédure interne

 Exemples	  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'effacer du bloc l'enregistrement en cours (c'est-à-dire de le vider), sans effectuer d'enregistrement. Si le bloc comporte une interrogation ouverte, Form Builder extrait le prochain enregistrement pour remplir le bloc, si l'enregistrement n'est plus rempli lorsque l'enregistrement en cours a été supprimé.

Un enregistrement de base de données qui a été effacé n'est pas traité, par le prochain processus des transactions d'inscription et de validation, comme un enregistrement supprimé.

Dans une relation de bloc maître-détail par défaut, la suppression de l'enregistrement maître entraîne la suppression de tous les enregistrements détail correspondants, sans enregistrement.

Syntaxe

PROCEDURE CLEAR_RECORD;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation oui


CLEAR_RECORD - Exemples

/*

** Procédure interne : CLEAR_RECORD
** Exemple : Effacer l'enregistrement en cours s'il n'est
**           pas le dernier du bloc.
*/
BEGIN
  IF :System.Last_Record = 'TRUE' AND :System.Cursor_Record = '1' THEN
    Message('Vous ne pouvez pas effacer la dernière entrée.');
    Bell;
  ELSE
    Clear_Record;
  END IF;
END;


CLOSE_FORM - Procédure interne

 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Dans une application comportant plusieurs applications Forms, permet de fermer celle qui est indiquée. Si l'application Forms indiquée est l'application Forms en cours, CLOSE_FORM équivaut à EXIT_FORM.

Syntaxe

PROCEDURE CLOSE_FORM
  (nom_appliForms  VARCHAR2);

PROCEDURE CLOSE_FORM
  (id_appliForms  FORMMODULE);

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

nom_appliForms	VARCHAR2 correspondant au nom de l'application Forms à fermer.

id_applicationForms	ID unique attribuée dynamiquement à l'application Forms lorsqu'elle est instanciée à l'exécution. Associez la procédure interne FIND_FORM à une variable de type approprié. Le type de données de l'ID de l'application Forms est FORMMODULE.


CLOSE_FORM - Restrictions

•	Vous ne pouvez pas fermer une application Forms désactivée après utilisation de CALL_FORM pour appeler une application Forms modale appelée.

•	Vous ne pouvez pas fermer une application Forms qui vous a appelé. Par exemple, si Form_A appelle Form_B, Form_B ne peut pas fermer Form_A.


CLOSE_SERVER

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Permet de désactiver le serveur OLE associé à un conteneur OLE. Met fin à la connexion entre un serveur et un conteneur OLE.

Syntaxe

PROCEDURE CLOSE_SERVER
  (item_id  Item);

PROCEDURE CLOSE_SERVER
  (item_name  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.


CLOSE_SERVER - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


CLOSE_SERVER - Exemples

/*

** Procédure interne : CLOSE_SERVER
** Exemple :  Désactiver le serveur OLE associé à l'objet
**            dans le conteneur OLE.
** Déclencheur :  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'ELEMOLE';
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('Elément inexistant : '||item_name);
 ELSE
  Forms_OLE.Close_Server(item_id);
 END IF;
END;


COMMIT_FORM - Procédure interne

 Exemples	 Restrictions	 Toutes les procédures internes

Description

Permet de mettre à jour les données de la base de données afin qu'elles correspondent aux données de l'application Forms. Form Builder commence par valider l'application Forms puis supprime, insère et met à jour chaque bloc de la base de données et enfin procède à l'enregistrement dans la base de données. Lorsque l'opération commit est terminée, la base de données libère tous les verrous de ligne et de table.

Si l'utilisateur a inscrit des données dans la base de données, un appel à la procédure interne COMMIT_FORM pendant la session Runform en cours enregistre ces données dans la base de données.

Après une opération commit, Form Builder traite tous les enregistrements de tous les blocs de table de base comme des enregistrements interrogés à partir de la base de données. Il ne reconnaît pas les modifications apportées aux déclencheurs activés pendant le traitement de la validation.

Syntaxe

PROCEDURE COMMIT_FORM;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non


COMMIT_FORM - Restrictions

Une instruction PL/SQL COMMIT utilisée dans un bloc anonyme ou une procédure de niveau application Forms est interprétée par Form Builder comme un appel à la procédure interne COMMIT_FORM.


COMMIT_FORM - Exemples

Exemple 1

/*

** Built-in:  COMMIT_FORM
** Example:   If there are records in the form to be
**            committed, then do so. Raise an error if the
**            commit was not successful.
*/
BEGIN
  /*
  ** Force validation to happen first
  */
  Enter;
  IF NOT Form_Success THEN
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Commit if anything is changed
  */
  IF :System.Form_Status = 'CHANGED' THEN
    Commit_Form;
    /*
    ** A successful commit operation sets Form_Status back
    ** to 'QUERY'.
    */
    IF :System.Form_Status <> 'QUERY' THEN
      Message('An error prevented your changes from being
               committed.');
      Bell;
      RAISE Form_Trigger_Failure;
    END IF;
  END IF;
END;

Exemple 2

/*

** Built-in:  COMMIT_FORM
** Example:   Perform Form Builder database commit during commit
**            processing. Decide whether to use this Built-in
**            or a user exit based on a global flag setup at
**            startup by the form, perhaps based on a
**
** Trigger:   On-Commit
*/
BEGIN
  /*
  ** Check the global flag we set during form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_commit');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Commit_Form;
  END IF;
END;


CONVERT_OTHER_VALUE - Procédure interne
3CONVERT_OTHER_VALUE - Procédure interne

 Exemples	 Restrictions	 Toutes les procédures internes

Description

Permet de convertir la valeur en cours d'une case à cocher, d'un groupe de boutons d'option ou d'un élément liste en valeur associée à l'état de la case à cocher en cours (Coché/Non coché), ou au bouton du groupe de boutons ou à l'élément liste en cours.

Syntaxe

PROCEDURE CONVERT_OTHER_VALUE
  (id_élément   ITEM);

PROCEDURE CONVERT_OTHER_VALUE
  (nom_élément  VARCHAR2);

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder attribue à l'élément lorsqu'il le crée. Les données de l'ID sont de type ITEM.

nom_élément	Chaîne de type VARCHAR2 que vous avez définie comme nom de l'élément lors de la conception.


CONVERT_OTHER_VALUE - Restrictions

Si l'élément n'est pas une case à cocher, un groupe de boutons d'option ou un élément liste, Form Builder retourne le message FRM-41026: Opération non reconnue par ce champ. Pour éviter cette erreur, déterminez le type d'élément en appelant  GET_ITEM_PROPERTY (nom_élément, ITEM_TYPE) avant d'appeler CONVERT_OTHER_VALUE.


CONVERT_OTHER_VALUE - Exemples

/*

** Procédure interne : CONVERT_OTHER_VALUE
** Exemple : Vérifier que la valeur d'une case à cocher
**           donnée représente l'état (Coché ou Non coché)
**           avant de mettre l'enregistrement à jour.
** Déclencheur : Pre-Update
*/
BEGIN
  Convert_Other_Value('Emp.Etat_civil');
END;


COPY - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Permet de copier une valeur d'un élément ou d'une variable dans un autre élément ou dans une autre variable globale. L'existence de cette procédure interne, utilisée pour entrer une valeur dans un élément référencé à l'aide de la procédure interne NAME_IN, se justifie pour les  deux raisons suivantes :

•	vous ne pouvez pas utiliser la syntaxe PL/SQL standard pour déclarer qu'un élément référencé est égal à une valeur ;

•	vous pourriez vouloir introduire par programme des caractères de type opérateurs relationnels dans des champs de type NUMBER et DATE lorsqu'une application Forms est en mode Saisie interrogation.

Syntaxe

PROCEDURE COPY
  (source       VARCHAR2,
   destination  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation oui

Paramètres

source	La source est une valeur littérale.

destination	La destination peut être soit un élément texte soit une autre variable globale.

Notes d'utilisation

•	Si vous utilisez COPY avec des valeurs de date, le format défini dans la propriété BUILTIN_DATE_FORMAT est utilisé si la propriété DATE_FORMAT_COMPATIBILITY_MODE est définie à 5.0. Si la valeur de cette propriété est 4.5, COPY attend des chaînes de date en format américain par défaut.

•	Pour utiliser un élément de texte comme référence source, vous pouvez utiliser le code suivant :

COPY(NAME_IN(source), destination);


COPY - Restrictions

Aucun enregistrement n'est effectué sur une valeur copiée dans un élément texte. Tous les autres types d'élément font néanmoins l'objet de contrôles d'enregistrement standard sur la valeur copiée.


COPY - Exemples

Exemple 1

/*

** Procédure interne : COPY
** Exemple : Imposer une recherche avec caractères génériques
**           sur l'élément NoEmp pendant l'interrogation.
** Déclencheur : Pre-Query
*/
DECLARE
  cur_val VARCHAR2(40);
BEGIN
  /*
  ** Extraire la valeur de EMP.EMPNO sous la forme d'une chaîne.
  */
  cur_val := Name_In('Emp.Empno');
  /*
  ** Ajouter un pourcentage à la fin de la chaîne.
  */
  cur_val := cur_val || '%';
  /*
  ** Recopier la nouvelle valeur dans l'élément pour que
  ** Form Builder l'utilise comme critère d'interrogation.
  */
  Copy( cur_val, 'Emp.Empno' );
END;

Exemple 2

/*

** Procédure interne : COPY
** Exemple : Définir la valeur d'une variable globale dont le
**           nom est généré de manière dynamique.
*/
DECLARE
  global_var_name  VARCHAR2(80);
BEGIN
  IF :Selection.Choice = 5 THEN
    global_var_name := 'Position_1';
  ELSE
    global_var_name := 'Position_2';
  END IF;
  /*
  ** Utiliser le nom figurant dans la variable 'global_var_name'
  ** comme nom de la variable globale dans laquelle la valeur
  ** 'Yes' en cours doit être copiée.
  */
  COPIE( 'Yes', 'GLOBAL.'||global_var_name );
END;


COPY_REGION - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet de copier la région sélectionnée à l'écran d'un texte ou d'une image et de la stocker dans la mémoire tampon de collage jusqu'à ce qu'une autre région sélectionnée soit coupée ou copiée.

Syntaxe

PROCEDURE COPY_REGION;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun

Notes d'utilisation

N'utilisez COPY_REGION ainsi que les autres fonctions d'édition que sur des éléments d'un texte ou d'une image. Les fonctions Couper et Copier transfèrent la région sélectionnée dans le presse-papiers du système jusqu'à ce que vous indiquiez la cible, c'est-à-dire l'endroit où le texte doit être collé. Le contenu  coupé ou copié est alors collé à l'emplacement cible.


COPY_REPORT_OBJECT_OUTPUT - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet de copier la sortie d'un état vers un fichier.

Syntaxe

PROCEDURE COPY_REPORT_OBJECT_OUTPUT
  (id_état VARCHAR2(20),
   fichier_sortie VARCHAR2
);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation oui

Paramètres

id_état	Valeur VARCHAR2 renvoyée par la procédure interne RUN_REPORT_OBJECT. Cette valeur n'identifie que l'état en cours d'exécution localement ou sur un serveur d'états à distance.

fichier_sortie	Nom du fichier dans lequel la sortie de l'état doit être copiée.

Notes d'utilisation

•	Utilisez la propriété Type de destination de l'état pour indiquer le format du fichier de sortie.

•	Pour copier la sortie d'un état provenant d'une machine distante; vous devez définir la propriété Type de destination de l'état sur Cache.


COPY_REPORT_OBJECT_OUTPUT - Exemples

DECLARE

repid REPORT_OBJECT;

v_rep  VARCHAR2(100);

rep_status varchar2(20);

BEGIN

repid := find_report_object('report4');

v_rep := RUN_REPORT_OBJECT(repid);

rep_status := report_object_status(v_rep);

if rep_status = 'FINISHED' then

message('Etat terminé');

copy_report_object_output(v_rep,'d:\temp\local.pdf');

host('netscape d:\temp\local.pdf');

else

message('Erreur pendant l'exécution de l'état.');

end if;

END;


COUNT_QUERY - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Dans un déclencheur On-Count, permet d'exécuter le traitement Form Builder par défaut pour identifier le nombre de lignes qu'une interrogation extraira pour le bloc en cours, puis d'effacer ce bloc. Si le bloc comporte des modifications à enregistrer, Form Builder demande à l'utilisateur de les enregistrer pendant le traitement COUNT_QUERY. Lorsqu'un appel valide à COUNT_QUERY a été effectué, Form Builder retourne le message suivant :

FRM-40355: L'interrogation ramènera <nombre> enregistrements.

Cette procédure interne est incluse principalement pour les applications qui s'exécutent sur une source de données non ORACLE.

Syntaxe

PROCEDURE COUNT_QUERY;

Type de procédure interne procédure restreinte

Mode Saisie interrogation oui

Paramètres

aucun


COUNT_QUERY - Restrictions

Cette procédure n'est valide que dans les déclencheurs qui autorisent les procédures internes restreintes.


COUNT_QUERY - Exemples

Exemple 1

/*

** Procédure interne :  COUNT_QUERY
** Exemple : Afficher le nombre d'enregistrements qui seront
**           extraits par l'interrogation en cours.
*/
BEGIN
  Count_Query;
END;

Exemple 2

/*

** Procédure interne : COUNT_QUERY
** Exemple : Compter le nombre de lignes extraites par Form Builder.
**           Choisir entre cette procédure interne ou un exit utilisateur
**           en fonction d'un indicateur global défini au démarrage de
**           l'application Forms, éventuellement fondé sur un paramètre.
** Déclencheur : On-Count
*/
BEGIN
  /*
  ** Vérifier l'indicateur global défini au démarrage de l'application Forms.
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    /*
    ** Le user exit retourne le nombre de lignes
    ** extraites dans l'élément CONTROL.HITS.
    */
    User_Exit('mon_nombre');
    /*
    ** Insérer le nombre de lignes extraites dans la propriété
    ** de bloc appropriée afin que Form Builder puisse afficher
    ** son message d'état normal.
    */
    Set_Block_Property(:System.Trigger_Block,QUERY_HITS,
                     :control.hits);
  /*
  ** Sinon, effectuer l'opération appropriée.
  */
  ELSE
    Count_Query;
  END IF;
END;


CREATE_GROUP - Procédure interne

 Exemples	  Toutes les procédures internes

Description

Permet de créer un groupe d'enregistrements sans interrogation ayant le nom indiqué. Le nouveau groupe d'enregistrements ne comporte ni colonne ni ligne tant que vous ne les avez pas ajoutées explicitement à l'aide des procédures internes ADD_GROUP_COLUMN, ADD_GROUP_ROW et POPULATE_GROUP_WITH_QUERY.

Syntaxe

FUNCTION CREATE_GROUP
 (nom_RecordGroup        VARCHAR2,
   portée                 NUMBER,
   taille_tableau_extrait NUMBER);

Type de procédure interne  fonction non restreinte

Retourne RecordGroup

Mode Saisie interrogation oui

Paramètres

nom_RecordGroup	Chaîne que vous avez définie comme nom du groupe d'enregistrements lors de la conception. Lorsque Form Builder crée l'objet de groupe d'enregistrements, il lui attribue également un ID unique de type RecordGroup. Vous pouvez appeler le groupe d'enregistrements en indiquant son nom ou son ID dans des appels ultérieurs à des sous-programmes intégrés de colonne de groupe d'enregistrements ou de groupe d'enregistrements.

portée	Permet d'indiquer si le groupe d'enregistrements ne peut être utilisé que dans l'application Forms en cours ou dans toute application Forms d'une application en comportant plusieurs. Utilisez comme arguments les constantes suivantes :

	FORM_SCOPE (par défaut) Permet d'indiquer que le groupe d'enregistrements ne peut être utilisé que dans l'application Forms en cours.
	GLOBAL_SCOPE Permet d'indiquer que le groupe d'enregistrements est global et peut être utilisé dans toutes les applications Forms de l'application. Une fois créé, un groupe global d'enregistrements reste en vigueur pour toute la suite de la session d'exécution.
taille_tableau_extrait	Taille du tableau extrait. La taille par défaut est 20.


CREATE_GROUP - Exemples

/*

** Procédure interne : CREATE_GROUP
** Exemple : Créer un groupe d'enregistrements et remplir ses
**           valeurs à partir d'une interrogation.
*/
DECLARE
  rg_name  VARCHAR2(40) := 'Plage_salaires';
  rg_id    RecordGroup;
  gc_id    GroupColumn;
  errcode  NUMBER;
BEGIN
  /*
  ** Vérifier que le groupe d'enregistrements n'existe pas déjà.
  */
  rg_id := Find_Group(rg_name);
  /*
  ** S'il n'existe pas, le créer et y ajouter les deux
  ** colonnes nécessaires.
  */
  IF Id_Null(rg_id) THEN
    rg_id := Create_Group(rg_name);
    /* Ajouter deux colonnes de type Number au groupe d'enregistrements */
    gc_id := Add_Group_Column(rg_id, 'Base_Sal_Range',
                              NUMBER_COLUMN);
    gc_id := Add_Group_Column(rg_id, 'Emps_In_Range',
                              NUMBER_COLUMN);
  END IF;
  /*
  ** Remplir le groupe en utilisant une interrogation.
  */
  errcode := Populate_Group_With_Query( rg_id,
                  'SELECT SAL-MOD(SAL,1000),COUNT(EMPNO) '
                ||'FROM EMP '
                ||'GROUP BY SAL-MOD(SAL,1000) '
                ||'ORDER BY 1');
END;


CREATE_GROUP_FROM_QUERY - Procédure interne

 Exemples	  Restrictions	 Toutes les procédures internes

Description

Permet de créer un groupe d'enregistrements ayant le nom indiqué. Le groupe comporte des colonnes qui représentent chaque colonne que vous ajoutez dans la liste de sélection de l'interrogation. Ajoutez des lignes au groupe d'enregistrements à l'aide de la procédure interne POPULATE_GROUP.

Remarque : Si vous ne passez pas un nom de colonne formel ou un alias de colonne dans l'instruction SELECT, Form Builder crée ICRGGQ avec un compteur fictif <NUM> lorsque le nom de colonne n'est pas valide. Le premier compteur fictif est toujours le compteur numéro un. Par exemple, l'interrogation SELECT 1 + 1 FROM DUAL générerait une colonne appelée ICRGGQ_1.

Syntaxe

FUNCTION CREATE_GROUP_FROM_QUERY
  (nom_RecordGroup        VARCHAR2,
   interrogation          VARCHAR2,
   portée                 NUMBER,
   taille_tableau_extrait NUMBER);

Type de procédure interne  fonction non restreinte

Retourne RecordGroup

Mode Saisie interrogation oui

Paramètres

nom_RecordGroup	Nom du groupe d'enregistrements. Lorsque Form Builder crée l'objet de groupe d'enregistrements, il attribue également à l'objet un ID unique de type RecordGroup.

Interrogation	Instruction SQL SELECT valide, entre apostrophes. Toute colonne extraite par l'interrogation utilise les types de données des colonnes de la table. Si vous limitez l'interrogation à un sous-ensemble des colonnes de la table, Form Builder ne crée que ces colonnes dans le groupe d'enregistrements.

portée	Permet d'indiquer si le groupe d'enregistrements ne peut être utilisé que dans l'application Forms en cours ou dans toute application Forms d'une application en comportant plusieurs. Utilisez comme arguments les constantes suivantes :

	FORM_SCOPE (par défaut) Permet d'indiquer que le groupe d'enregistrements ne peut être utilisé que dans l'application Forms en cours.
	GLOBAL_SCOPE Permet d'indiquer que le groupe d'enregistrements est global et peut être utilisé dans toutes les applications Forms de l'application. Une fois créé, un groupe global d'enregistrements reste en vigueur pour toute la suite de la session d'exécution.
taille_tableau_extrait	Taille du tableau extrait. La taille par défaut est 20.


CREATE_GROUP_FROM_QUERY - Restrictions

•	 Si un groupe d'enregistrements global est créé (ou rempli) à partir d'une interrogation pendant l'exécution de l'application Forms A et si la chaîne d'interrogation contient des références de variable de lien locales à A (:block.item ou :PARAMETER.param), lorsque l'exécution de l'application Forms A prend fin, le groupe global d'enregistrements d'interrogation est converti en groupe global d'enregistrements sans interrogation (il conserve les données, mais un appel ultérieur à POPULATE_GROUP est considéré comme une erreur).


CREATE_GROUP_FROM_QUERY - Exemples

/*

** Built-in:  CREATE_GROUP_FROM_QUERY
** Example:   Create a record group from a query, and populate it.
*/
DECLARE
  rg_name  VARCHAR2(40) := 'Salary_Range';
  rg_id    RecordGroup;
  errcode  NUMBER;
BEGIN
  /*
  ** Make sure group doesn't already exist
  */
  rg_id := Find_Group( rg_name );
  /*
  ** If it does not exist, create it and add the two
  ** necessary columns to it.
  */
  IF Id_Null(rg_id) THEN
    rg_id := Create_Group_From_Query( rg_name,
                'SELECT SAL-MOD(SAL,1000) BASE_SAL_RANGE,'
               ||'COUNT(EMPNO) EMPS_IN_RANGE '
               ||'FROM EMP '
               ||'GROUP BY SAL-MOD(SAL,1000) '
               ||'ORDER BY 1');
  END IF;
  /*
  ** Populate the record group
  */
  errcode := Populate_Group( rg_id );
END;


CREATE_OLEOBJ

  Rubriques connexes 	 Toutes les procédures internes

Description

Dans un premier temps, permet de créer un objet OLE et de définir la persistance de l'objet. Dans un second temps, permet de modifier la persistance d'un objet OLE déjà instancié.

Syntaxe

FUNCTION CREATE_OLEOBJ
  (name OLEOBJ, persistence_boolean := TRUE)
RETURN objpointer OLEOBJ;

...ou...

FUNCTION CREATE_OLEOBJ
  (localobject VARCHAR2,
   persistence_boolean := TRUE)
RETURN objpointer OLEOBJ;

Type de procédure interne  fonction non restreinte

Retourne  pointeur sur l'objet OLE

Paramètres

name	ID de programme du serveur de l'objet OLE.
localobject	Pointeur dirigé vers l'objet OLE dont l'état doit être modifié de non persistant à persistant.
persistence_boolean	La valeur booléenne TRUE définit l'objet comme étant persistant. Ce paramètre est facultatif. S'il n'est pas défini, la valeur par défaut est persistant.
Notes d'utilisation

Un objet persistant existe pendant plusieurs appels du déclencheur. Un objet non persistant ne peut exister qu'au cours de l'exécution du déclencheur qui a généré l'appel.


CREATE_PARAMETER_LIST - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Permet de créer une liste de paramètres ayant le nom indiqué. Lorsqu'elle est créée, la liste ne comporte pas de paramètres ; ceux-ci doivent être ajoutés à l'aide du sous-programme intégré ADD_PARAMETER. Une liste de paramètres peut être passée comme argument aux sous-programmes intégrés CALL_FORM, NEW_FORM, OPEN_FORM et RUN_PRODUCT.

Syntaxe

FUNCTION CREATE_PARAMETER_LIST
  (nom  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne ParamList

Mode Saisie interrogation oui

Paramètres

nom	Nom VARCHAR2 de l'objet liste de paramètres.

Lorsque Form Builder crée l'objet, il lui attribue un ID unique de type PARAMLIST. Vous pouvez appeler la liste de paramètres en indiquant son nom ou son ID dans les appels ultérieurs aux sous-programmes intégrés associés aux listes de paramètres.


CREATE_PARAMETER_LIST - Restrictions

•	Vous ne pouvez pas créer une liste de paramètres appelée DEFAULT. Ce nom est réservé à la liste de paramètres que Form Builder crée au début d'une session runtime.

•	Vous ne pouvez pas créer de liste de paramètres s'il en existe déjà une. Toute tentative générerait une erreur. Pour l'éviter, utilisez ID_NULL pour vérifier l'existence d'une liste de paramètres avant d'en créer une. S'il existe déjà une liste de paramètres, supprimez-la avant d'en créer une nouvelle.


CREATE_PARAMETER_LIST - Exemples

/*

** Procédure interne : CREATE_PARAMETER_LIST
** Exemple : Créer une liste de paramètres appelée
**           'DONNEESTEMP'. Vérifier tout d'abord que la
**           liste n'existe pas déjà, puis tenter de créer
**           une nouvelle liste. Indiquer une erreur si la
**           liste existe déjà ou si la création de la liste échoue.
*/
DECLARE
  pl_id   ParamList;
  pl_name VARCHAR2(10) := 'donnéestemp';
BEGIN
  pl_id := Get_Parameter_List(pl_name);
  IF Id_Null(pl_id) THEN
    pl_id := Create_Parameter_List(pl_name);
    IF Id_Null(pl_id) THEN
      Message('Erreur lors de la création de la liste de paramètres '||pl_name);
      RAISE Form_Trigger_Failure;
    END IF;
  ELSE
    Message('La liste de paramètres '||pl_name||' existe déjà !');
    RAISE Form_Trigger_Failure;
  END IF;
END;


CREATE_QUERIED_RECORD - Procédure interne

 Exemples	 Restrictions	  Rubriques connexes	 Toutes les procédures internes

Description

Appelée à partir d'un déclencheur On-Fetch, cette procédure interne crée un enregistrement dans la liste d'attente du bloc. Cette liste est une mémoire tampon d'enregistrements qui contient les enregistrements, extraits de la source de données, mais qui n'ont pas encore été placés dans la liste des enregistrements actifs du bloc. Cette procédure est incluse principalement pour les applications qui utilisent des déclencheurs transactionnels pour s'exécuter sur une source de données non ORACLE.

Notez qu'il n'est pas possible de supprimer un enregistrement de la liste d'attente. L'application doit donc vérifier l'existence des données à utiliser pour remplir l'enregistrement par programme.

Syntaxe

PROCEDURE CREATE_QUERIED_RECORD;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


CREATE_QUERIED_RECORD - Restrictions

•	Si les blocs comportent un grand nombre d'enregistrements, cette procédure peut avoir des effets négatifs sur les entrées-sorties sur disque et/ou sur l'allocation de mémoire.


CREATE_QUERIED_RECORD - Exemples

/*

** Procédure interne : CREATE_QUERIED_RECORD
** Exemple : Extraire les N enregistrements suivants de ce
**           bloc. Le nombre d'enregistrements est stocké dans Global.Record_Count.
** Déclencheur : On-Fetch
*/
DECLARE
  fetch_count NUMBER;
  FUNCTION The_Next_Seq
  RETURN NUMBER IS
    CURSOR next_seq IS SELECT uniq_seq.NEXTVAL FROM DUAL;
    tmp NUMBER;
  BEGIN
    OPEN next_seq;
    FETCH next_seq INTO tmp;
    CLOSE next_seq;
    RETURN tmp;
  END;
BEGIN
  /*
  ** Déterminer le nombre d'enregistrements que Form Builder
  ** estime que nous allons extraire.
  */
  fetch_count := Get_Block_Property('MONBLOC',RECORDS_TO_FETCH);
  FOR i IN 1..fetch_count LOOP
    /*
    ** Créer l'enregistrement interrogé dans lequel nous
    ** déposerons les valeurs extraites.
    */
    Create_Queried_Record;
    :Global.Record_Count := NVL(:Global.Record_Count,0)+1;
    /*
    ** Entrer dans l'élément de l'enregistrement interrogé
    ** une fonction de séquence déclarée ci-dessus.
    */
   :myblock.numbercol := the_next_seq;
  END LOOP;
END;


CREATE_RECORD - Procédure interne

 Exemples	  Rubriques connexes	 Toutes les procédures internes

Description

Permet de créer dans le bloc en cours un nouvel enregistrement après l'enregistrement en cours. Form Builder passe alors au nouvel enregistrement.

Syntaxe

PROCEDURE CREATE_RECORD;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


CREATE_RECORD - Exemples

/*

** Procédure interne : CREATE_RECORD
** Exemple : Remplir de nouveaux enregistrements dans un bloc,
**           en fonction des valeurs de retour d'une interrogation.
*/
PROCEDURE Populate_Rows_Into_Block( projid NUMBER)  IS
  CURSOR tempcur( cp_projid NUMBER ) IS
    SELECT milestone_name, due_date
      FROM milestone
     WHERE project_id = cp_projid
    ORDER BY due_date;
BEGIN
  /* Ajouter ces enregistrements à la fin du bloc. */
  Last_Record;
  /* Effectuer une boucle sur les enregistrements dans le curseur. */
  FOR rec IN tempcur( projid ) LOOP
    /*
    ** Créer un enregistrement vide et définir les éléments
    ** Milestone_Name et Due_Date de la ligne en cours.
    */
    Create_Record;
  : Milestone.Milestone_Name := rec.milestone_name;
  : Milestone.Due_Date       := rec.due_date;
  END LOOP;
  First_Record;
END;


CREATE_TIMER - Procédure interne

 Exemples	   Restrictions	 Toutes les procédures internes

Description

Permet de créer un nouveau délai ayant le nom indiqué. Vous pouvez indiquer l'intervalle et préciser si le délai doit être répété après expiration ou ne s'exécuter qu'une fois. A l'expiration du délai, Form Builder active le déclencheur When-Timer-Expired.

Syntaxe

FUNCTION CREATE_TIMER
  (nom_délai     VARCHAR2,
   millisecondes NUMBER,
   itération     NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  Timer

Mode Saisie interrogation  oui

Paramètres

nom_délai	Nom du délai (maximum 30 caractères alphanumériques). Le nom doit commencer par un caractère alphabétique. Les données du nom sont de type VARCHAR2.

millisecondes	Durée du délai en millisecondes. Les valeurs autorisées pour ce paramètre sont comprises entre 1 et 2147483648 millisecondes. Les valeurs supérieures à 2147483648 seront arrondies à 2147483648. Notez que seules les valeurs positives sont autorisées. Les données de ce paramètre sont de type NUMBER. Pour plus d'informations, reportez-vous à Restrictions ci-après.

itération	Permet d'indiquer si le délai doit être répété ou non  après expiration. Utilisez comme arguments les constantes suivantes :

REPEAT (par défaut) Permet d'indiquer que le délai doit être répété après expiration.

NO_REPEAT Permet d'indiquer que le délai ne doit pas être répété après expiration, mais utilisé une seule fois jusqu'à ce qu'il soit explicitement rappelé.


CREATE_TIMER - Restrictions

•	Les valeurs supérieures à 2147483648 sont arrondies à 2147483648.

•	Les millisecondes ne peuvent pas être exprimées sous forme décimale.

•	Deux délais ne peuvent pas avoir le même nom dans la même instance d'application Forms, que leur nom soit en minuscules ou en majuscules.

•	S'il n'y pas de déclencheur When-Timer-Expired défini à l'exécution d'un  délai, Form Builder retourne un message d'erreur.

•	S'il n'y a pas de déclencheur When-Timer-Expired défini à l'exécution d'un délai et si le délai est un délai répété, les répétitions ultérieures sont annulées, mais le délai est maintenu.

•	S'il n'y a pas de déclencheur When-Timer-Expired défini à l'exécution d'un délai et si le délai n'est pas un délai répété, le délai est supprimé.


CREATE_TIMER - Exemples

L'exemple suivant crée un délai appelé EMP_TIMER défini à 60 secondes, avec pour valeur d'itération NO_REPEAT :

DECLARE
    timer_id Timer;
    one_minute NUMBER(5) := 60000;
BEGIN
    timer_id := CREATE_TIMER('emp_timer', one_minute, NO_REPEAT);
END;


CREATE_VAR - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet de créer une variante vide et sans nom.

Cette fonction est disponible en deux versions : l'une pour les scalaires et l'autre pour les tableaux.

Syntaxe

FUNCTION CREATE_VAR
  (persistence BOOLEAN)
RETURN newvar OLEVAR;

...ou...

FUNCTION CREATE_VAR
  (bounds OLE_SAFEARRAYBOUNDS,
   vtype VT_TYPE,
   persistence BOOLEAN)
RETURN newvar OLEVAR;

Type de procédure interne  fonction non restreinte

Retourne  variante OLE créée

Paramètres

persistence	Permet de contrôler la persistance de la variante après sa création. La valeur booléenne TRUE définit la variante comme étant persistante ; la valeur FALSE la définit comme étant non persistante. Ce paramètre est facultatif. S'il n'est pas défini, la valeur par défaut est non persistante.
bounds	Table PL/SQL indiquant les dimensions à attribuer au tableau créé. Pour plus d'informations sur le contenu et sur la présentation de ce paramètre et du type OLE_SAFEARRAYBOUNDS, reportez-vous à Types de tableau pour le support OLE.
vtype	Type de variante OLE (VT_TYPE) des éléments du tableau créé. Si le tableau doit contenir des types d'élément différents, indiquez VT_VARIANT.
Notes d'utilisation

•	La variante créée n'a pas de type, à moins qu'il ne s'agisse d'un tableau. Dans ce cas, ses éléments prennent le type que vous indiquez.

•	La variante créée ne possède pas de valeur. Utilisez la fonction SET_VAR pour attribuer une valeur et un type initiaux à la variante.

•	Une variante persistante peut exister pendant plusieurs appels du déclencheur. Une variante non persistante ne peut exister qu'au cours de l'exécution du déclencheur qui a généré l'appel. Reportez-vous également à DESTROY_VARIANT


CUT_REGION - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet de supprimer de l'écran la région sélectionnée à l'écran d'un texte ou d'une image et de la stocker dans la mémoire tampon de collage jusqu'à ce qu'une autre région sélectionnée soit coupée ou copiée.

Syntaxe

PROCEDURE CUT_REGION;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun

Notes d'utilisation

N'utilisez CUT_REGION ainsi que les autres fonctions d'édition que sur les éléments d'un texte ou d'une image. Les fonctions Couper et Copier transfèrent la région sélectionnée dans le presse-papiers du système jusqu'à ce que vous indiquiez la cible du collage. Le contenu coupé ou copié est alors collé à l'emplacement cible.


DBMS_ERROR_CODE - Procédure interne

 Exemples	  Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le numéro de la dernière erreur de base de données détectée.

Syntaxe

FUNCTION DBMS_ERROR_CODE;

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun

Notes d'utilisation

Comme, pour les erreurs récurrentes, cette procédure interne retourne le code du premier message de la pile, le texte de l'erreur doit être analysé pour retrouver les numéros des messages ultérieurs.


DBMS_ERROR_CODE - Exemples

/*

** Procédure interne : DBMS_ERROR_CODE,DBMS_ERROR_TEXT
** Exemple : Reformuler certains messages d'erreur de Form
**           Builder en fonction du code d'erreur SGBD qui les a générés.
** Déclencheur : On-Error
*/
DECLARE
  errcode     NUMBER        := ERROR_CODE;
  dbmserrcode NUMBER;
  dbmserrtext VARCHAR2(200);
BEGIN
  IF errcode = 40508 THEN
    /*
    ** Form Builder a eu un problème lors de l'INSERTion.
    ** Rechercher dans la base de données l'erreur à l'origine
    ** du problème.
    */
    dbmserrcode := DBMS_ERROR_CODE;
    dbmserrtext := DBMS_ERROR_TEXT;

    IF dbmserrcode = -1438 THEN
      /*
      ** ORA-01438 : " valeur trop grande pour la colonne"
      */
      Message('Nombre trop grand. Recommencez.');
    ELSIF dbmserrcode = -1400 THEN
      /*
      ** ORA-01400 : " Colonne obligatoire NULL"
      */
      Message('Vous avez oublié de fournir une valeur. Recommencez.');
    ELSE
      /*
      ** Imprimer un message générique comportant le
      ** message d'erreur de la base de données.
      */
      Message('Echec d'insertion dû à '||dbmserrtext);
    END IF;
  END IF;
END;


DBMS_ERROR_TEXT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le numéro de message (comme ORA-01438) et le texte du message d'erreur de la base de données.

Syntaxe

FUNCTION DBMS_ERROR_TEXT;

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun

Notes d'utilisation

Vous pouvez utiliser cette fonction pour tester les messages d'erreur de la base de données au cours de l'exécution des routines de traitement des anomalies.

DBMS_ERROR_TEXT retourne toute la séquence des erreurs récurrentes.


DBMS_ERROR_TEXT - Exemples

/*

** Procédure interne : DBMS_ERROR_CODE,DBMS_ERROR_TEXT
** Exemple : Reformuler certains messages d'erreur de Form
**           Builder en fonction du code d'erreur SGBD qui les a générés.
** Déclencheur : On-Error
*/
DECLARE
  errcode     NUMBER        := ERROR_CODE;
  dbmserrcode NUMBER;
  dbmserrtext VARCHAR2(200);
BEGIN
  IF errcode = 40508 THEN
    /*
    ** Form Builder a eu un problème lors de l'INSERTion.
    ** Rechercher dans la base de données l'erreur à l'origine
    ** du problème.
    */
    dbmserrcode := DBMS_ERROR_CODE;
    dbmserrtext := DBMS_ERROR_TEXT;

    IF dbmserrcode = -1438 THEN
      /*
      ** ORA-01438 : " valeur trop grande pour la colonne"
      */
      Message('Nombre trop grand. Recommencez.');
    ELSIF dbmserrcode = -1400 THEN
      /*
      ** ORA-01400 : " Colonne obligatoire NULL"
      */
      Message('Vous avez oublié de fournir une valeur. Recommencez.');
    ELSE
      /*
      ** Imprimer un message générique comportant le
      ** message d'erreur de la base de données.
      */
      Message('Echec d'insertion dû à '||dbmserrtext);
    END IF;
  END IF;
END;


DEBUG_MODE - Procédure interne

 Restrictions	 Toutes les procédures internes

Description

Permet d'activer et de désactiver le mode Débogage dans un menu. Lorsque le mode Débogage est activé dans un menu, Form Builder affiche un message lors de l'exécution d'une commande d'élément de menu.

Syntaxe

PROCEDURE DEBUG_MODE;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


DEBUG_MODE - Restrictions

La procédure interne DEBUG_MODE ne s'applique qu'à un module Menu. Elle ne fait pas passer l'application Forms en mode Débogage.


DEFAULT_VALUE - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de copier une valeur donnée dans la variable indiquée si la valeur de cette variable est NULL. Si la valeur de la variable n'est pas NULL, cette procédure interne est sans effet. Pour les éléments texte, cette procédure interne donne donc les mêmes résultats que la procédure interne COPY sur un élément NULL. Si la variable est une variable globale non définie, Form Builder la crée.

Syntaxe

PROCEDURE DEFAULT_VALUE
  (chaîne_valeur VARCHAR2,
   nom_variable  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

chaîne_valeur	Chaîne, variable ou élément texte de type VARCHAR2 valide contenant une chaîne valide.

nom_variable	Nom de variable, de variable globale ou d'élément texte valide. Les données de nom_variable sont de type VARCHAR2. Tout objet passé comme un argument à cette procédure interne doit être entre apostrophes.


DEFAULT_VALUE - Restrictions

La procédure interne DEFAULT_VALUE n'est pas liée à la propriété d'élément Valeur initiale.


DEFAULT_VALUE - Exemples

/*

** Procédure interne : DEFAULT_VALUE
** Exemple : Vérifier la définition d'une variable globale
**           en lui attribuant une valeur à l'aide de DEFAULT_VALUE
*/
BEGIN
  /*
  ** Définir la valeur par défaut de GLOBAL.Command_Indicator
  ** si elle est NULL ou n'existe pas.
  */
  Default_Value('***','global.command_indicator');
  /*
  ** Si la variable globale est égale à la chaîne définie
  ** par défaut ci-dessus, elle ne doit pas avoir existé auparavant.
  */
  IF :Global.Command_Indicator = '***' THEN
    Message('Vous devez appeler cet écran à partir du menu principal.');
    RAISE Form_Trigger_Failure;
  END IF;
END;


ROUP - Procédures internes

  Examples	    Restrictions	  les procédures internes

Description

Permet de supprimer un groupe d'enregistrements créé par programme.

Syntaxe

PROCEDURE DELETE_GROUP
  (id_groupenreg  RecordGroup);

PROCEDURE DELETE_GROUP
  (nom_groupenreg  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_groupeenreg	ID unique que Form Builder attribue lorsqu'il crée le groupe. Le type de données de l'ID est RecordGroup.

nom_groupeenreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Le type de données du nom est VARCHAR2.


DELETE_GROUP - Restrictions

Cette procédure interne ne peut pas être utilisée pour supprimer un groupe d'enregistrements créé lors de la conception.


DELETE_GROUP - Exemples

/*

** Procédure interne : DELETE_GROUP
** Exemple : Supprimer un groupe d'enregistrements créé par programme.
*/
PROCEDURE Remove_Record_Group( rg_name VARCHAR2 ) IS
  rg_id RecordGroup;
BEGIN
  /*
  ** Vérifier l'existence du groupe d'enregistrements
  ** avant de tenter de le supprimer.
  */
  rg_id := Find_Group( rg_name );
  IF NOT Id_Null(rg_id) THEN
    Delete_Group( rg_id );
  END IF;
END;


DELETE_GROUP_ROW - Procédures internes

 Exemples	  Restrictions	 Toutes les procédures internes

Description

Permet de supprimer la ligne indiquée ou toutes les lignes d'un groupe d'enregistrements donné. Form Builder décrémente automatiquement les numéros de toutes les lignes qui suivent une ligne supprimée. Lorsque des lignes sont supprimées, la mémoire correspondante est libérée et mise à la disposition de Form Builder.

Si vous choisissez de supprimer toutes les lignes du groupe en utilisant la constante ALL_ROWS, Form Builder supprime les lignes, mais le groupe continue à exister jusqu'à ce que vous exécutiez le sous-programme DELETE_GROUP.

Lorsque vous ne supprimez qu'une ligne, les lignes suivantes sont renumérotées pour que les numéros de ligne restent contigus.

Syntaxe

PROCEDURE DELETE_GROUP_ROW
  (id_groupenreg  RecordGroup,
   numéro_ligne    NUMBER);

PROCEDURE DELETE_GROUP_ROW
  (nom_groupenreg VARCHAR2,
   numéro_ligne    NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_groupenreg	ID unique que Form Builder attribue au groupe lorsqu'il le crée. Les données de l'ID sont de type RecordGroup.

nom_groupenreg	Nom que vous donnez au groupe d'enregistrements lorsque vous le créez. Les données du nom sont de type VARCHAR2.

numéro_ligne	Ligne à supprimer du groupe d'enregistrements. Les lignes sont automatiquement renumérotées de 1 à n. Les données du paramètre de numéro de ligne sont de type NUMBER.

ALL_ROWS Permet de supprimer toutes les lignes sans supprimer le groupe d'enregistrements. ALL_ROWS est une constante.


DELETE_GROUP_ROW - Restrictions

Cette procédure interne ne peut pas être utilisée pour supprimer des lignes d'un groupe d'enregistrements statique.


DELETE_GROUP_ROW - Exemples

/*

* Built-in:  DELETE_GROUP_ROW
** Example:   Delete certain number of records from the tail
**            of the specified record group.
*/
PROCEDURE Delete_Tail_Records( recs_to_del NUMBER,
                               rg_name VARCHAR2 ) IS
  rg_id     RecordGroup;
  rec_count NUMBER;
BEGIN
  /*
  ** Check to see if Record Group exists
  */
  rg_id := Find_Group( rg_name );
  /*
  ** Get a count of the records in the record group
  */
  rec_Count := Get_Group_Row_Count( rg_id );
  IF rec_Count < recs_to_del THEN
    Message('There are only '||TO_CHAR(rec_Count)||
           ' records in the group.');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Loop thru and delete the last 'recs_to_del' records
  */
  FOR j IN 1..recs_to_del LOOP
    Delete_Group_Row( rg_id, rec_Count - j + 1 );
  END LOOP;
END;


DELETE_LIST_ELEMENT - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de supprimer un élément d'une liste.

Syntaxe

PROCEDURE DELETE_LIST_ELEMENT
  (nom_liste   VARCHAR2,
   index_liste NUMBER);

PROCEDURE DELETE_LIST_ELEMENT
  (id_liste,    ITEM
   index_liste  NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_liste	Permet d'indiquer l'ID unique que Form Builder attribue lorsqu'il crée l'élément liste. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_liste	Nom que vous avez donné à la liste lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

index_liste	Permet d'indiquer la valeur d'index de la liste. Cet index est fondé sur la valeur 1.

Notes d'utilisation

•	N'utilisez pas la procédure interne DELETE_LIST_ELEMENT si la propriété Correspondance d'autres valeurs est définie et si le bloc comporte des enregistrements interrogés, car dans ce cas Form Builder pourrait être dans l'impossibilité d'afficher les enregistrements déjà extraits.

Par exemple, supposons qu'un élément liste contient les valeurs A, B et C et que la propriété Correspondance d'autres valeurs est définie. Supposons également que ces valeurs ont été extraites de la base de données (c'est-à-dire qu'une interrogation est ouverte). A ce stade, si vous effacez B de la liste à l'aide de DELETE_LIST_ELEMENT, un message d'erreur est généré, car Form Builder tente d'afficher les valeurs préalablement extraites (A, B et C), mais sans succès, car B a été effacé de la liste.

Avant d'effacer un élément liste, fermez toutes les interrogations ouvertes en utilisant la procédure interne ABORT_QUERY.

Remarque : Une liste ne contient pas d'éléments Autres valeurs si aucun n'a été indiqué lors de la conception ou s'il a été supprimé de la liste par programme, lors de l'exécution.


DELETE_LIST_ELEMENT - Restrictions

Pour un élément liste de type liste de sélection ou liste instantanée, Form Builder retourne le message d'erreur FRM-41331: Suppression de l'élément de <élément_liste> impossible, si vous tentez de supprimer l'élément de valeur par défaut.

L'élément de valeur par défaut est l'élément dont le libellé ou la valeur ont été indiqués lors de la conception pour la définition de la propriété Valeur initiale.

Pour un élément de liste de type Zone de liste déroulante, vous ne pouvez supprimer l'élément de valeur par défaut que si la propriété Valeur initiale a été définie à une valeur réelle, et non à un libellé d'élément.

Pour un élément liste de type liste de sélection ou liste instantanée de table de base, Form Builder retourne le message d'erreur FRM-41331: Suppression de l'élément de <élément_liste> impossible, si :

•	vous tentez de supprimer l'élément Autres valeurs, alors que le bloc contient des enregistrements interrogés ou modifiés.

•	vous tentez de supprimer un élément d'une liste qui ne contient pas d'élément Autres valeurs, alors que le bloc contient des enregistrements interrogés ou modifiés.

Remarque : L'état du bloc est QUERY lorsqu'il contient des enregistrements interrogés, et CHANGED lorsqu'il contient des enregistrements qui ont été soit insérés soit mis à jour (les enregistrements interrogés ont été modifiés).


DELETE_LIST_ELEMENT - Exemples

/*

**  Procédure interne : DELETE_LIST_ELEMENT
**  Exemple : Voir ADD_LIST_ELEMENT
*/


DELETE_PARAMETER - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de supprimer de la liste de paramètres le paramètre dont la clé est indiquée.

Syntaxe

PROCEDURE DELETE_PARAMETER
  (list  VARCHAR2,
   key   VARCHAR2);

PROCEDURE DELETE_PARAMETER
  (name  VARCHAR2,
   key   VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

liste ou nom	Liste de paramètres, indiquée par son ID ou par son nom. Le paramètre réel peut être soit un ID de liste de paramètres de type PARAMLIST, soit le nom de type VARCHAR2 de la liste de paramètres.

clé	Nom du paramètre. Les données de la clé sont de type VARCHAR2.


DELETE_PARAMETER - Restrictions

•	La suppression du dernier paramètre d'une liste ne supprime pas automatiquement la liste elle-même. Pour supprimer une liste de paramètres, appelez le sous-programme DESTROY_PARAMETER_LIST.


DELETE_PARAMETER - Exemples

/*

** Procédure interne : DELETE_PARAMETER
** Exemple : Supprimer le paramètre 'NOMBRE_EXEMPLAIRES' de
**           la liste de paramètres 'DONNEESTEMP'.
*/
BEGIN
  Delete_Parameter('donnéestemp','nombre_exemplaires');
END;


DELETE_RECORD - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Utilisée hors d'un déclencheur On-Delete, cette procédure interne permet de supprimer du bloc l'enregistrement en cours et de lui ajouter une marque de suppression. Les enregistrements supprimés à l'aide de cette procédure ne le sont pas un par un, mais sont ajoutés à une liste d'enregistrements qui seront supprimés lors de la prochaine opération commit.

Si l'enregistrement correspond à une ligne de la base de données, Form Builder le verrouille avant de le supprimer et de lui ajouter une marque de suppression.

Si le bloc contient une interrogation ouverte, Form Builder extrait un enregistrement pour remplir le bloc si nécessaire. Voir également la description du sous-programme intégré CLEAR_RECORD.

Dans un déclencheur On-Delete, DELETE_RECORD déclenche le traitement Form Builder par défaut pour supprimer un enregistrement pendant le processus Transactions d'inscription et de validation, comme l'indique l'exemple 2 ci-après.

Syntaxe

PROCEDURE DELETE_RECORD;

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


DELETE_RECORD - Exemples

Exemple 1

/*

** Procédure interne : DELETE_RECORD
** Exemple : Marquer l'enregistrement en cours dans le bloc
**           en cours afin qu'il soit supprimé.
*/
BEGIN
  Delete_Record;
END;

Exemple 2

/*

** Procédure interne : DELETE_RECORD
** Exemple : Effectuer le traitement de suppression d'enregistrements
**           de Form Builder pendant la validation. Choisir d'utiliser
**           cette procédure interne ou un user exit en fonction d'un
**           indicateur global défini lors du démarrage de l'application
**           Forms, éventuellement fondé sur un paramètre.
** Déclencheur : On-Delete
*/
BEGIN
  /*
  ** Vérifier l'indicateur global défini lors du démarrage de l'application Forms.
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_delrec block=EMP');
  /*
  ** Sinon, effectuer l'opération appropriée.
  */
  ELSE
    Delete_Record;
  END IF;
END;


DELETE_TIMER - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de supprimer de l'application Forms le délai indiqué.

Syntaxe

PROCEDURE DELETE_TIMER
  (id_délai  Timer);

PROCEDURE DELETE_TIMER
  (nom_délai VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_délai	ID unique que Form Builder attribue lorsqu'il crée le délai, particulièrement en réponse à un appel à la procédure interne CREATE_TIMER. Utilisez la procédure interne FIND_TIMER pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Timer.

nom_délai	Nom que vous avez donné au délai lorsque vous l'avez défini. Les données du nom de délai sont de type VARCHAR2.


DELETE_TIMER - Restrictions

•	Si vous supprimez un délai, vous devez appeler FIND_TIMER avant de tenter d'appeler ID_NULL pour vérifier la disponibilité de l'objet délai. Ainsi, l'exemple ci-après n'est pas valide, car l'appel à DELETE_TIMER ne définit pas la valeur de l'ID. En d'autres termes, le délai est supprimé, mais l'ID continue à exister même s'il désigne un délai inexistant et de ce fait n'est pas nul.

-- Exemple non valide
   id_délai := Find_Timer('mon_délai');
   Delete_Timer(id_délai);
   IF (ID_Null(id_délai))...


DELETE_TIMER - Exemples

/*

** Procédure interne : DELETE_TIMER
** Exemple : Supprimer un délai après avoir vérifié
**           son existence.
*/
PROCEDURE Cancel_Timer( tm_name VARCHAR2 ) IS
  tm_id Timer;
BEGIN
  tm_id := Find_Timer( tm_name );

  IF NOT Id_Null(tm_id) THEN
    Delete_Timer(tm_id);
  ELSE
    Message('Le délai '||tm_name||' a déjà été annulé.');
  END IF;
END;


DELETE_TREE_NODE - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Supprime l'élément de données de l'arborescence.

Syntaxe

PROCEDURE DELETE_TREE_NODE

  (nom_élément VARCHAR2,

   noeud NODE);

PROCEDURE DELETE_TREE_NODE

  (id_élément ITEM,

   noeud NODE);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
noeud	Indique un noeud valide.
Notes d'utilisation

La suppression d'un noeud de branche entraîne celle de tous les noeuds fils.


REE_NODE - Exemples
DELETE_TREE_NODE - Exemples

/*

** Procédure interne : DELETE_TREE_NODE
*/

-- Ce code recherche un noeud libellé "Zetie"

-- et le supprime, ainsi que tous ses fils.

DECLARE

   htree         ITEM;

   delete_node   FTREE.NODE;

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Rechercher le noeud libellé "Zetie".

   -- Commencer la recherche à la racine de l'arborescence.

   delete_node := Ftree.Find_Tree_Node(htree,

                                       'Zetie',

                                       Ftree.FIND_NEXT,

                                       Ftree.NODE_LABEL,

                                       Ftree.ROOT_NODE,

                                       Ftree.ROOT_NODE);

   -- Supprimer le noeud et tous ses fils.

   IF NOT Ftree.ID_NULL(delete_node) then

      Ftree.Delete_Tree_Node(htree, delete_node);

   END IF;

END;


DESTROY_PARAMETER_LIST - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de supprimer une liste de paramètres créée de manière dynamique, ainsi que tous les paramètres qu'elle contient.

Syntaxe

PROCEDURE DESTROY_PARAMETER_LIST
  (liste VARCHAR2);

PROCEDURE DESTROY_PARAMETER_LIST
  (nom  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

liste ou nom	Liste de paramètres, indiquée par son ID ou par son nom. Le paramètre réel peut être soit un ID de liste de paramètres de type PARAMLIST, soit le nom de type VARCHAR2 de la liste de paramètres.

Notes d'utilisation :

Lorsqu'une liste de paramètres est détruite à l'aide de DESTROY_PARAMETER_LIST, le descripteur de la liste NE prend PAS la valeur NULL.

Utilisez la procédure interne GET_PARAMETER_LIST pour retourner l'ID à une variable de type PARAMLIST.


DESTROY_PARAMETER_LIST - Exemples

/*

** Procédure interne : DESTROY_PARAMETER_LIST
** Exemple : Supprimer la liste de paramètres 'donnéestemp'
**           après avoir vérifié son existence.
*/
DECLARE
  pl_id ParamList;
BEGIN
  pl_id := Get_Parameter_List('donnéestemp');
  IF NOT Id_Null(pl_id) THEN
    Destroy_Parameter_List(pl_id);
  END IF;
END;


DESTROY_VARIANT

 Toutes les procédures internes

Description

Supprime une variante créée par la fonction CREATE_VAR.

Syntaxe

PROCEDURE DESTROY_VARIANT (variant OLEVAR);

Type de procédure interne  procédure non restreinte

Paramètres

variant	Variante OLE à supprimer.


DISPATCH_EVENT - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Indique le mode de distribution des événements de contrôle ActiveX. Par défaut, toutes les procédures d'événement PL/SQL associées aux événements ActiveX sont restreintes. Par conséquent, la procédure go_item ne peut pas être appelée dans le code de procédure et les paramètres OUT ne sont pas respectés. Toutefois, un même événement peut parfois s'appliquer à plusieurs éléments et une procédure go_item peut être nécessaire. Pour cela, l'événement doit être distribué sous forme non restreinte. Le déclencheur On-Dispatch-Event permet d'appeler la procédure DISPATCH_EVENT afin de paramétrer le mode de distribution sur restreint ou non restreint. Pour plus d'informations sur l'utilisation des événements de contrôle ActiveX, reportez-vous à Réaction aux événements de contrôle ActiveX dans le système d'aide en ligne.

Syntaxe

PROCEDURE DISPATCH_EVENT
  (sync NUMBER,
);

PROCEDURE DISPATCH_EVENT
);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

sync	Signale si le mode de distribution est restreint (RESTRICTED) ou non restreint (RESTRICTED_ALLOWED).


DISPATCH_EVENT - Exemples

/*

déclencheur ON-DISPATCH-EVENT
*/
BEGIN
IF SYSTEM.CUSTOM_ITEM_EVENT = 4294966696 THEN
/*lorsque l'événement se produit, laissez-le s'appliquer à différents éléments */
FORMS4W.DISPATCH_EVENT(RESTRICTED_ALLOWED);
ELSE
/*exécutez le déclencheur par défaut, qui ne permet	pas d'application à d'autre élément */
FORMS4W.DISPATCH_EVENT(RESTRICTED_UNALLOWED);
END IF;
END;


DISPLAY_ERROR - Procédure interne

 Toutes les procédures internes

Description

Permet d'afficher l'écran Afficher erreur si une erreur a été consignée. Lorsque l'utilisateur appuie sur une touche de fonction dans cet écran, Form Builder réaffiche l'application Forms. S'il n'y a pas d'erreur à afficher lorsque vous appelez cette procédure interne, Form Builder ne tient pas compte de l'appel et n'affiche pas l'écran.

Syntaxe

PROCEDURE DISPLAY_ERROR;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


DISPLAY_ITEM - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Procédure interne conservée uniquement pour permettre la compatibilité descendante. Dans les nouvelles applications, utilisez la procédure interne SET_ITEM_INSTANCE_PROPERTY. DISPLAY_ITEM permet de modifier la présentation d'un élément en lui affectant l'attribut d'affichage indiqué. Toutefois, il change également la présentation de tous les éléments miroir de l'instance modifiée. SET_ITEM_INSTANCE_PROPERTY ne modifie pas ce type d'élément.

Vous pouvez faire référence à un élément de l'application Forms en cours.

Toute modification découlant de l'utilisation de la procédure interne DISPLAY_ITEM est en vigueur jusqu'à ce que :

•	la même instance de l'élément soit référencée par une autre procédure interne DISPLAY_ITEM ;

•	la même instance de l'élément soit référencée par la procédure interne SET_ITEM_INSTANCE_PROPERTY (avec la propriété VISUAL_ATTRIBUTE) ;

•	jusqu'à ce que l'instance de l'élément soit supprimée (par exemple, par le biais d'une procédure interne CLEAR_RECORD ou d'une interrogation), ou

•	vous modifiiez un enregistrement (dont l'état est NEW), sortiez de cet enregistrement, puis y accédiez de nouveau ;

•	jusqu'à ce que vous quittiez l'application Forms en cours

Syntaxe

PROCEDURE DISPLAY_ITEM
  (id_élément   ITEM,
   attribut     VARCHAR2);

PROCEDURE DISPLAY_ITEM
  (nom_élément  VARCHAR2,
   attribut     VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

 Paramètres

id_élément	ID unique que Form Builder attribue à l'élément lorsqu'il le crée. Les données de l'ID sont de type ITEM.

nom_élément	Chaîne de type VARCHAR2 que vous attribuez à l'élément lorsque vous le créez.

attribut	Attribut visuel nommé qui doit exister. Vous pouvez également indiquer un attribut valide de votre fichier de ressources Oracle*Terminal. Form Builder commence par rechercher l'attribut visuel nommé. Remarque : Vous pouvez choisir la méthode normale pour appliquer à un élément les attributs par défaut ; dans ce cas, votre application Forms ne doit pas contenir d'attribut visuel ou logique (en mode caractère ou dans les autres modes) appelé Normal. Vous pouvez également choisir la méthode NULL pour restaurer les attributs visuels initiaux d'un élément (attributs par défaut, personnalisés ou nommés).


DISPLAY_ITEM - Exemples

/*

** Procédure interne : DISPLAY_ITEM
** Exemple : Modifier l'attribut visuel de chaque élément
**           de l'enregistrement en cours.
*/
DECLARE
  cur_itm   VARCHAR2(80);
  cur_block VARCHAR2(80) := :System.Cursor_Block;
BEGIN
  cur_itm   := Get_Block_Property( cur_block, FIRST_ITEM );
  WHILE ( cur_itm IS NOT NULL ) LOOP
    cur_itm := cur_block||'.'||cur_itm;
    Display_Item( cur_itm, 'Mon_attribut_nommé_favori');
    cur_itm := Get_Item_Property( cur_itm, NEXTITEM );
  END LOOP;
END;


DOWN - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet de passer à l'instance de l'élément de l'enregistrement en cours portant le numéro de séquence suivant. Si nécessaire, Form Builder extrait un enregistrement. S'il doit en créer un, la procédure interne DOWN passe au premier élément de navigation autorisée de l'enregistrement.

Syntaxe

PROCEDURE DOWN;

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


DO_KEY - Procédure interne

 Exemples	   Restrictions	 Toutes les procédures internes

Description

Permet d'exécuter le déclencheur sur touche qui correspond au sous-programme intégré indiqué. Si ce déclencheur n'existe pas, le sous-programme indiqué s'exécute. Ce comportement équivaut à appuyer sur la touche de fonction correspondante.

Syntaxe

PROCEDURE DO_KEY
  (nom_sous-programme_intégré  VARCHAR2);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  oui

Paramètres

nom_sous-programme_intégré	Nom d'un sous-programme intégré valide.

Procédure interne	Déclencheur sur touche	Touche de fonction associée
BLOCK_MENU	Key-MENU	[Menu Bloc]
CLEAR_BLOCK	Key-CLRBLK	[Effacer bloc]
CLEAR_FORM	Key-CLRFRM	[Effacer application Forms]
CLEAR_RECORD	Key-CLRREC	[Effacer enregistrement]
COMMIT_FORM	Key-COMMIT	[Valider]
COUNT_QUERY	Key-CQUERY	[Compter nbre de lignes extraites]
CREATE_RECORD	Key-CREREC	[Insérer enregistrement]
DELETE_RECORD	Key-DELREC	[Supprimer enregistrement]
DOWN	Key-DOWN	[Bas]
DUPLICATE_ITEM	Key-DUP-ITEM	[Dupliquer élément]
DUPLICATE_RECORD	Key-DUPREC	[Dupliquer enregistrement]
EDIT_TEXTITEM	Key-EDIT	[Editer]
ENTER	Key-ENTER	[Entrée]
ENTER_QUERY	Key-ENTQRY	[Saisir interrogation]
EXECUTE_QUERY	Key-EXEQRY	[Exécuter interrogation]
EXIT_FORM	Key-EXIT	[Quitter/Annuler]
HELP	Key-HELP	[Aide]
LIST_VALUES	Key-LISTVAL	[Liste]
LOCK_RECORD	Key-UPDREC	[Verrouiller enregistrement]
NEXT_BLOCK	Key-NXTBLK	[Bloc suivant]
NEXT_ITEM	Key-NEXT-ITEM	[Elément suivant]
NEXT_KEY	Key-NXTKEY	[Clé primaire suivante]
NEXT_RECORD	Key-NXTREC	[Enregistrement suivant]
NEXT_SET	Key-NXTSET	[Ensemble d'enregistrements suivant]
PREVIOUS_BLOCK	Key-PRVBLK	[Bloc précédent]
PREVIOUS_ITEM	Key-PREV-ITEM	[Elément précédent]
PREVIOUS_RECORD	Key-PRVREC	[Enregistrement précédent]
PRINT	Key-PRINT	[Imprimer]
SCROLL_DOWN	Key-SCRDOWN	[Défilement vers le bas]
SCROLL_UP	Key-SCRUP	[Défilement vers le haut]
UP	Key-UP	[Haut]


DO_KEY - Restrictions

La procédure DO_KEY accepte uniquement les noms de procédures internes, et non les noms de clés : DO_KEY(ENTER_QUERY). Pour accepter un nom de clé, utilisez la procédure interne EXECUTE_TRIGGER : EXECUTE_TRIGGER('KEY_F11').


DO_KEY - Exemples

/*

** Procédure interne : DO_KEY
** Exemple : Simuler l'action sur la touche [Exécuter interrogation].
*/
BEGIN
  Do_Key('Exécuter_interrogation');
END;


DUMMY_REFERENCE - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de coder une référence explicite à une variable de lien à laquelle, sinon, il serait fait référence indirectement dans une formule (ou dans une fonction ou une procédure appelée par la formule). Utilisez DUMMY_REFERENCE pour vous assurer qu'un élément calculé par formule (contenant des références indirectes à des variables de lien) sera marqué pour être recalculé par Form Builder.

L'expression peut être une expression arbitraire de type Char, Number ou Date. En général, l'expression se compose d'une seule référence à une variable de lien.

Remarque : Il n'est pas nécessaire d'exécuter DUMMY_REFERENCE pour que la variable de lien référencée soit reconnue par Form Builder (ce qui entraîne le marquage de l'élément associé, calculé par formule, en vue de son recalcul).

Syntaxe

PROCEDURE DUMMY_REFERENCE(expression);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


DUMMY_REFERENCE - Restrictions

aucun


DUPLICATE_ITEM - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'attribuer à l'élément en cours la même valeur que celle de l'instance de cet élément dans l'enregistrement précédent.

Syntaxe

PROCEDURE DUPLICATE_ITEM;

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


DUPLICATE_ITEM - Restrictions

S'il n'existe pas d'enregistrement précédent dans votre session en cours, Form Builder retourne le message d'erreur FRM-41803: Pas d'enregistrement précédent à partir duquel copier la valeur.


DUPLICATE_RECORD - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de copier la valeur de chaque élément de l'enregistrement portant le numéro de séquence précédent dans les éléments correspondants de l'enregistrement en cours. L'enregistrement en cours ne doit pas correspondre à une ligne de la base de données. Si c'est le cas, une erreur se produit.

Remarque : L'enregistrement en double n'hérite pas de l'état d'enregistrement de l'enregistrement source ; son état d'enregistrement est INSERT.

Syntaxe

PROCEDURE DUPLICATE_RECORD;

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


DUPLICATE_RECORD - Restrictions

Votre session en cours doit contenir un enregistrement précédent.


DUPLICATE_RECORD - Exemples

/*

** Procédure interne : DUPLICATE_RECORD;
** Exemple : Copier l'enregistrement en cours et incrémenter
**           l'élément "line_sequence" d'une unité.
*/
DECLARE
  n NUMBER;
BEGIN
  /*
  ** Noter la valeur de 'line_sequence' de
  ** l'enregistrement en cours.
  */
  n := :my_block.line_sequence;
  /*
  ** Créer un nouvel enregistrement et y copier toutes les
  ** valeurs de l'enregistrement précédent.
  */
  Create_Record;
  Duplicate_Record;
  /*
  ** Incrémenter l'élément 'line_sequence' du nouvel
  ** enregistrement d'une unité par rapport au dernier enregistrement.
  */
  :my_block.line_sequence := n + 1;
END;


EDIT_TEXTITEM - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'appeler l'éditeur d'élément Runform pour l'élément texte en cours et de faire passer l'application Forms en mode Edition.

Syntaxe

PROCEDURE EDIT_TEXTITEM;

PROCEDURE EDIT_TEXTITEM
  (x  NUMBER,
   y  NUMBER);
PROCEDURE EDIT_TEXTITEM
  (x        NUMBER,
   y        NUMBER,
   largeur, NUMBER
   hauteur  NUMBER);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  oui

Paramètres

x	Coordonnée x de l'écran où vous voulez placer l'angle supérieur gauche de l'éditeur d'élément instantané.

Y	Coordonnée y de l'écran où vous voulez placer l'angle supérieur gauche de l'éditeur d'élément instantané.

Largeur	Largeur totale de la fenêtre de l'éditeur, boutons compris.

Hauteur	Hauteur totale de la fenêtre de l'éditeur, boutons compris.

Si vous indiquez une hauteur inférieure à 6 cellules de caractère,  Form Builder définit la hauteur à 6.

Vous pouvez utiliser les paramètres facultatifs EDIT_TEXTITEM pour indiquer l'emplacement et les dimensions de la fenêtre instantanée à laquelle l'éditeur d'élément est associé. Si vous n'utilisez pas ces paramètres, Form Builder appelle l'éditeur d'élément avec ses dimensions et son emplacement par défaut.


EDIT_TEXTITEM - Restrictions

•	La largeur doit être suffisante pour permettre au moins l'affichage des boutons au bas de la fenêtre de l'éditeur.


EDIT_TEXTITEM - Exemples

/*

** Procédure interne : EDIT_TEXTITEM
** Exemple : Déterminer la position x de l'élément en cours,
**           puis faire passer l'éditeur sur le côté gauche ou
**           sur le côté droit de l'écran afin qu'il ne
**           recouvre pas l'élément affiché.
*/
DECLARE
  itm_x_pos NUMBER;
BEGIN
  itm_x_pos := Get_Item_Property(:System.Cursor_Item,X_POS);
  IF itm_x_pos > 40 THEN
    Edit_TextItem(1,1,20,8);
  ELSE
    Edit_TextItem(60,1,20,8);
  END IF;
END;


ENFORCE_COLUMN_SECURITY - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'exécuter le traitement par défaut pour vérifier la sécurité sur colonne d'une base de données. Cette procédure interne est incluse principalement pour les applications qui s'exécutent sur une source de données non ORACLE et qui utilisent des déclencheurs transactionnels pour remplacer le traitement des transactions par défaut de Form Builder.

Le traitement par défaut de vérification de sécurité sur colonne fait référence à la séquence d'événements qui se déroule lorsque Form Builder impose la sécurité au niveau colonne de chaque bloc dont la propriété de bloc Imposer sécurité sur colonne est activée. Pour imposer la sécurité sur colonne, Form Builder interroge la base de données pour déterminer les colonnes que l'utilisateur de l'application Forms en cours a le droit de mettre à jour. Pour les colonnes que l'utilisateur n'a pas le droit de mettre à jour, Form Builder définit dynamiquement la propriété d'élément Mise à jour autorisée à Non pour que la mise à jour des éléments de la table de base correspondante, dans l'application Forms, ne soit pas autorisée. Par défaut, Form Builder effectue cette opération lors du démarrage de l'application Forms, en traitant les blocs les uns à la suite des autres.

Pour plus d'informations, reportez-vous à Form Builder Advanced Techniques, Chapitre 4, "Connecting to Non-Oracle Data Sources."

Syntaxe

PROCEDURE ENFORCE_COLUMN_SECURITY

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Notes d'utilisation

Ajoutez ce sous-programme intégré au déclencheur On-Column-Security si vous souhaitez augmenter les fonctionnalités de ce déclencheur, au lieu de le remplacer complètement. Pour plus d'informations, reportez-vous au Chapitre "Déclencheurs," du présent document.


ENFORCE_COLUMN_SECURITY - Restrictions

Cette procédure interne n'est valide que dans un déclencheur On-Column-Security.


ENTER - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de valider les données de l'unité de validation en cours. (L'unité de validation par défaut est Item.)

Syntaxe

PROCEDURE ENTER;

Type de procédure interne procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


ENTER - Exemples

/*

** Built-in:  ENTER
** Example:   Force Validation to occur before calling another
**            form
*/
BEGIN
  Enter;
  IF NOT Form_Success THEN
    RAISE Form_Trigger_Failure;
  END IF;
  Call_Form('newcust');
END;


ENTER_QUERY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Le comportement de la procédure interne ENTER_QUERY dépend des paramètres que vous fournissez.

Syntaxe

PROCEDURE ENTER_QUERY;

PROCEDURE ENTER_QUERY
  (keyword_one  VARCHAR2);
PROCEDURE ENTER_QUERY
  (keyword_two  VARCHAR2);
PROCEDURE ENTER_QUERY
  (keyword_one  VARCHAR2,
   keyword_two  VARCHAR2);
PROCEDURE ENTER_QUERY
  (keyword_one  VARCHAR2,
   keyword_two  VARCHAR2,
   locking      VARCHAR2);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  oui (pour réafficher l'enregistrement de l'exemple à partir de la dernière interrogation exécutée dans le bloc)

Paramètres

pas de paramètres	ENTER_QUERY vide le bloc en cours et fait passer l'application Forms en mode Saisie interrogation. S'il y a des modifications à enregistrer dans la base de données, Form Builder demande à l'utilisateur d'effectuer cette opération pendant le processus ENTER_QUERY.

motclé_un	ENTER_QUERY(ALL_RECORDS) exécute les mêmes opérations que ENTER_QUERY, mais lorsque la procédure interne EXECUTE_QUERY est appelée, Form Builder extrait tous les enregistrements sélectionnés.

motclé_deux	ENTER_QUERY(FOR_UPDATE) exécute les mêmes opérations que ENTER_QUERY, mais lorsque la procédure interne EXECUTE_QUERY est appelée, Form Builder tente de verrouiller immédiatement tous les enregistrements sélectionnés.

motclé_un / motclé_deux	ENTER_QUERY(ALL_RECORDS, FOR_UPDATE) exécute les mêmes opérations que ENTER_QUERY, mais lorsque la procédure interne EXECUTE_QUERY est appelée, Form Builder tente de verrouiller immédiatement tous les enregistrements sélectionnés et les extrait tous.

Verrouillage	Peut être défini à NO_WAIT chaque fois que vous utilisez le paramètre FOR_UPDATE. Lorsque vous utilisez NO_WAIT, Form Builder affiche une boîte de dialogue qui permet de signaler à l'utilisateur qu'un enregistrement ne peut pas être réservé immédiatement en vue de sa mise à jour.

Si le paramètre NO_WAIT n'est pas indiqué, Form Builder continue d'essayer d'obtenir un verrou sans permettre à l'utilisateur d'annuler le processus.

N'utilisez le paramètre NO_WAIT que lorsque vous exécutez une source de données supportant cette fonction.


ENTER_QUERY - Restrictions

Utilisez les paramètres ALL_RECORDS et FOR_UPDATE avec prudence. Le verrouillage et l'extraction d'un grand nombre de lignes peuvent entraîner de longues attentes dues aux nombreuses ressources nécessaires à l'exécution de cette tâche.


ENTER_QUERY - Exemples

/*

** Built-in:  ENTER_QUERY
** Example:   Go Into Enter-Query mode, and exit the form if
**            the user cancels out of enter-query mode.
*/
BEGIN
  Enter_Query;
  /*
  ** Check to see if the record status of the first record
  ** is 'NEW' immediately after returning from enter-query
  ** mode.  It should be 'QUERY' if at least one row was
  ** returned.
  */

  IF :System.Record_Status = 'NEW' THEN
    Exit_Form(No_Validate);
  END IF;
END;


ERASE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de supprimer une variable globale indiquée afin qu'elle n'existe plus et libère la mémoire qui y était associée. Les variables globales affectent toujours 255 octets de mémoire. Pour être certain de ne pas diminuer les performances outre mesure, effacez toujours les variables globales dont vous n'avez plus besoin.

Syntaxe

PROCEDURE ERASE
  (nom_variable_globale  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

nom_variable_globale	Nom d'une variable globale valide.


ERASE exemples
ERASE - Exemples

ERASE('global.var');


ERROR_CODE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le numéro du message d'erreur Form Builder.

Syntaxe

PROCEDURE ERROR_CODE;

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


ERROR_CODE - Exemples

/*

** Procédure interne : ERROR_CODE,ERROR_TEXT,ERROR_TYPE
** Exemple : Reformuler certains messages d'erreur FRM en
**           vérifiant le code d'erreur (Error_Code) dans un déclencheur ON-ERROR.
** Déclencheur : On-Error
*/
DECLARE
  errnum NUMBER       := ERROR_CODE;
  errtxt VARCHAR2(80) := ERROR_TEXT;
  errtyp VARCHAR2(3)  := ERROR_TYPE;
BEGIN
  IF errnum = 40301 THEN
    Message('Vos critères de recherche n'ont pu identifier
             aucune concordance... Recommencez.');
  ELSIF errnum = 40350 THEN
    Message('Votre sélection ne correspond à aucun employé.');
  ELSE
    /*
    ** Imprimer le message qui aurait dû normalement s'afficher.
    **
    ** Le texte du message d'erreur par défaut doit figurer ici.
    */
    Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
    RAISE Form_Trigger_Failure;
  END IF;
END;


ERROR_TEXT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le texte du message d'erreur Form Builder.

Syntaxe

FUNCTION ERROR_TEXT;

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Description

Permet de retourner le texte du message d'erreur Form Builder.

Paramètres

aucun

Notes d'utilisation

Vous pouvez utiliser cette fonction pour tester les messages d'erreur pendant l'exécution des sous-programmes de traitement des anomalies.


ERROR_TEXT - Exemples

/*

** Procédure interne : ERROR_CODE,ERROR_TEXT,ERROR_TYPE
** Exemple : Reformuler certains messages d'erreur FRM en
**           vérifiant le code d'erreur (Error_Code) dans un déclencheur ON-ERROR.
** Déclencheur : On-Error
*/
DECLARE
  errnum NUMBER       := ERROR_CODE;
  errtxt VARCHAR2(80) := ERROR_TEXT;
  errtyp VARCHAR2(3)  := ERROR_TYPE;
BEGIN
  IF errnum = 40301 THEN
    Message('Vos critères de recherche n'ont pu identifier
             aucune concordance... Recommencez.');
  ELSIF errnum = 40350 THEN
    Message('Votre sélection ne correspond à aucun employé.');
  ELSE
    /*
    ** Imprimer le message qui aurait dû normalement s'afficher.
    **
    ** Le texte du message d'erreur par défaut doit figurer ici.
    */
    Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
    RAISE Form_Trigger_Failure;
  END IF;


ERROR_TYPE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le type de message d'erreur de la dernière action exécutée pendant la session Runform en cours.

Syntaxe

FUNCTION ERROR_TYPE;

Type de procédure interne  fonction non restreinte

Retourne l'une des valeurs suivantes :

FRM	message d'erreur Form Builder.

ORA	message d'erreur ORACLE.

Mode Saisie interrogation  oui

Paramètres

aucun

Notes d'utilisation

Vous pouvez utiliser cette fonction pour :

•	tester le résultat d'une action utilisateur (appuyer sur une touche, par exemple) pour déterminer le traitement dans un déclencheur On-Error ;

•	tester le résultat d'une procédure interne pour déterminer les traitements ultérieurs dans un déclencheur.

Pour que ces types de test donnent des résultats corrects, vous devez effectuer le test immédiatement après l'exécution de l'action, et avant qu'une autre action ne se produise.


ERROR_TYPE - Exemples

/*

** Procédure interne : ERROR_CODE,ERROR_TEXT,ERROR_TYPE
** Exemple : Reformuler certains messages d'erreur FRM en
**           vérifiant le code d'erreur (Error_Code) dans un déclencheur ON-ERROR.
** Déclencheur : On-Error
*/
DECLARE
  errnum NUMBER       := ERROR_CODE;
  errtxt VARCHAR2(80) := ERROR_TEXT;
  errtyp VARCHAR2(3)  := ERROR_TYPE;
BEGIN
  IF errnum = 40107 THEN
    Message('Vous ne pouvez pas passer à cet élément non
          affiché... Recommencez.');
  ELSIF errnum = 40109 THEN
    Message('Pour sortir de ce bloc, vous devez commencer
          par annuler le mode Saisie interrogation.');
  ELSE
    /*
    ** Imprimer le message qui aurait dû normalement s'afficher.
    **
    ** Le texte du message d'erreur par défaut doit figurer ici.
    */
    Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
    RAISE Form_Trigger_Failure;
  END IF;
END;


EXEC_VERB

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet au serveur OLE d'exécuter le verbe identifié par le nom de verbe ou l'index de verbe. Un verbe OLE indique une action que vous pouvez exécuter sur un objet OLE.

Syntaxe

PROCEDURE EXEC_VERB
  (id_élément     Item,
   index_verbe  VARCHAR2);

PROCEDURE EXEC_VERB
  (id_élément    Item,
   nom_verbe  VARCHAR2);
PROCEDURE EXEC_VERB
  (nom_élément   VARCHAR2,
   index_verbe  VARCHAR2);
PROCEDURE EXEC_VERB
  (nom_élément  VARCHAR2,
   nom_verbe  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

index_verbe	Index numérique d'un verbe. Utilisez la procédure interne Forms_OLE.Find_OLE_Verb pour obtenir cette valeur. Le type de données de l'index est une chaîne VARCHAR2.

nom_verbe	Nom d'un verbe. Utilisez la procédure interne Forms_OLE.Get_Verb_Name pour obtenir cette valeur. Le type de données du nom est une chaîne VARCHAR2.


EXEC_VERB - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


EXEC_VERB - Exemples

/*

** Procédure interne : EXEC_VERB
** Exemple :  Désactiver le serveur OLE associé à l'objet
**            dans le conteneur OLE.
** Déclencheur :  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'ELEMOLE';
 verb_cnt_str VARCHAR(20);
 verb_cnt NUMBER;
 verb_name VARCHAR(20);
 loop_cntr NUMBER;
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('Elément inexistant : '||item_name);
 ELSE
  verb_cnt_str := Forms_OLE.Get_Verb_Count(item_id);
  verb_cnt := TO_NUMBER(verb_cnt_str);
  FOR loop_cntr in 1..verb_cnt LOOP
    verb_name := Forms_OLE.Get_Verb_Name(item_id,loop_cntr);
    IF verb_name = 'Edit' THEN
   EXEC_VERB(item_id,verb_name);
    END IF;
  END LOOP;
 END IF;
END;


EXECUTE_QUERY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de vider le bloc en cours, d'ouvrir une interrogation et d'extraire le nombre d'enregistrements sélectionnés. S'il y a des modifications à enregistrer dans la base de données, Form Builder demande à l'utilisateur d'effectuer l'opération avant de poursuivre le traitement EXECUTE_QUERY.

Syntaxe

PROCEDURE EXECUTE_QUERY;

PROCEDURE EXECUTE_QUERY
  (motclé_un    VARCHAR2);
PROCEDURE EXECUTE_QUERY
  (motclé_deux  VARCHAR2);
PROCEDURE EXECUTE_QUERY
  (motclé_un    VARCHAR2,
   motclé_deux  VARCHAR2);
PROCEDURE EXECUTE_QUERY
  (motclé_un    VARCHAR2,
   motclé_deux  VARCHAR2,
   verrouillage VARCHAR2);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  oui

Paramètres

pas de paramètre	EXECUTE_QUERY vide le bloc en cours, ouvre une interrogation et extrait le nombre d'enregistrements sélectionnés.

motclé_un	EXECUTE_QUERY(ALL_RECORDS) exécute les mêmes opérations que EXECUTE_QUERY, mais Form Builder extrait tous les enregistrements sélectionnés.

motclé_deux	EXECUTE_QUERY(FOR_UPDATE) exécute les mêmes opérations que EXECUTE_QUERY, mais Form Builder tente de verrouiller immédiatement tous les enregistrements sélectionnés.

motclé_un / motclé_deux	EXECUTE_QUERY(ALL_RECORDS, FOR_UPDATE)exécute les mêmes opérations que EXECUTE_QUERY, mais Form Builder tente de verrouiller immédiatement tous les enregistrements sélectionnés et les extrait tous.

Verrouillage	Peut être défini à NO_WAIT chaque fois que vous utilisez le paramètre FOR_UPDATE. Lorsque vous utilisez NO_WAIT, Form Builder affiche une boîte de dialogue qui permet de signaler à l'utilisateur qu'un enregistrement ne peut pas être réservé immédiatement en vue de sa mise à jour.

Si le paramètre NO_WAIT n'est pas indiqué, Form Builder continue d'essayer d'obtenir un verrou sans permettre à l'utilisateur d'annuler le processus.

N'utilisez le paramètre NO_WAIT que lorsque vous exécutez une source de données supportant cette fonction.


EXECUTE_QUERY - Restrictions

Utilisez les paramètres ALL_RECORDS et FOR_UPDATE avec prudence. L'extraction d'un grand nombre de lignes peut entraîner de longues attentes, et leur verrouillage demande des ressources importantes.


EXECUTE_QUERY - Exemples

/*

** Procédure interne : EXECUTE_QUERY
** Exemple : Accéder à plusieurs blocs et interroger leur
**           contenu, puis revenir au bloc d'origine.
*/
DECLARE
  block_before VARCHAR2(80) := :System.Cursor_Block;
BEGIN
  Go_Block('Liste_exceptions');
  Execute_Query;
  Go_Block('Profil_utilisateur');
  Execute_Query;
  Go_Block('Tâches_achevées');
  Execute_Query;
  Go_Block( block_before );
END;


EXECUTE_TRIGGER - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

EXECUTE_TRIGGER permet d'exécuter le déclencheur indiqué.

Syntaxe

PROCEDURE EXECUTE_TRIGGER
  (nom_déclencheur  VARCHAR2);

Type de procédure interne procédure restreinte (si le déclencheur défini par l'utilisateur appelle des sous-programmes intégrés restreints)

Mode Saisie interrogation  oui

Remarque : EXECUTE_TRIGGER n'est pas la meilleure solution pour exécuter un déclencheur nommé par l'utilisateur : il est préférable d'écrire un sous-programme nommé par l'utilisateur.

Paramètres

nom_déclencheur	Nom d'un déclencheur valide, nommé par l'utilisateur.

Notes d'utilisation

Comme vous ne pouvez pas indiquer de portée pour cette procédure interne, Form Builder recherche toujours le déclencheur depuis le niveau le plus bas.

Pour exécuter une procédure interne associée à une touche, utilisez non pas EXECUTE_TRIGGER, mais DO_KEY. EXECUTE_TRIGGER. Par exemple, au lieu de :

Execute_Trigger ('KEY-NEXT-ITEM');

Utilisez :

Do_Key('NEXT_ITEM');


EXECUTE_TRIGGER - Restrictions

Bien que vous puissiez utiliser EXECUTE_TRIGGER pour exécuter un déclencheur intégré et un déclencheur nommé par l'utilisateur, cette procédure n'est pas conseillée car le comportement d'échec par défaut suit une règle différente de celle utilisée lorsque la procédure est appelée automatiquement par Form Builder pendant le traitement par défaut. Par exemple, dans le traitement par défaut, l'échec du déclencheur When-Validate-Item génère une exception et arrête le traitement de l'application Forms. Cependant, si le déclencheur When-Validate-Item échoue lorsqu'il est appelé par EXECUTE_TRIGGER, le traitement de l'application Forms n'est pas arrêté, et l'échec ne positionne que Form_Failure à FALSE, après la sortie de la procédure interne EXECUTE_TRIGGER.


EXECUTE_TRIGGER - Exemples

/*

** Procédure interne : EXECUTE_TRIGGER
** Exemple : Exécuter dynamiquement un déclencheur à partir
**           du code PL/SQL de l'élément de menu, en fonction
**           de l'état d'une case à cocher de menu.
*/
DECLARE
  Cur_Setting   VARCHAR2(5);
  Advanced_Mode BOOLEAN;
BEGIN
  /*
  ** Vérifier si l'élément de menu 'Avancé' sous le
  ** sous-menu 'Préférences' est coché ou non coché.
  */
  Cur_Setting :=  Get_Menu_Item_Property
                    ('Preferences.Advanced',CHECKED);
  /*
  ** Si l'élément est coché, Advanced_Mode a la valeur
  ** booléenne VRAI.
  */
  Advanced_Mode := (Cur_Setting = 'TRUE');
  /*
  ** Exécuter le déclencheur approprié à partir de l'application Forms sous-jacente.
  **
  */
  IF Advanced_Mode THEN
    Execute_Trigger('Launch_Advanced_Help');
  ELSE
    Execute_Trigger('Launch_Beginner_Help');
  END IF;
END;


EXIT_FORM - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet de quitter une application Forms, de confirmer une opération commit et d'indiquer une action d'annulation.

•	Dans la plupart des contextes, EXIT_FORM navigue « en dehors » de l'application Forms. Si l'application Forms en cours comporte des modifications qui n'ont pas été inscrites ou enregistrées dans la base de données, Form Builder demande à l'utilisateur de les enregistrer avant de poursuivre le traitement de EXIT_FORM.

•	Si l'utilisateur est en mode Saisie interrogation, EXIT_FORM navigue en dehors du mode Saisie interrogation, mais pas de l'application Forms.

•	Pendant une fonction CALL_INPUT, EXIT_FORM met fin à la fonction CALL_INPUT.

Syntaxe

PROCEDURE EXIT_FORM;

PROCEDURE EXIT_FORM
  (mode_commit  NUMBER);
PROCEDURE EXIT_FORM
  (mode_commit  NUMBER,
   mode_annulation  NUMBER);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  oui

Paramètres

mode_commit	ASK_COMMIT Form Builder demande à l'utilisateur d'enregistrer les modifications dans la base de données pendant le traitement de EXIT_FORM.

Toutefois, si la procédure interne RECORD_STATUS est paramétrée sur INSERT mais que l'enregistrement n'est pas valide, Form Builder demande à l'opérateur si l'application Forms doit être fermée. Si la réponse est affirmative, les modifications sont annulées, puis l'application est fermée.

DO_COMMIT Form Builder valide les modifications, les enregistre dans la base de données et sort de l'application Forms en cours sans faire intervenir l'utilisateur.

NO_COMMIT Form Builder valide les modifications et sort de l'application Forms en cours sans effectuer d'opération commit ni faire intervenir l'utilisateur.

NO_VALIDATE Form Builder sort de l'application Forms en cours sans valider les modifications ni faire intervenir l'utilisateur.

mode_annulation	TO_SAVEPOINT Form Builder annule toutes les modifications non enregistrées dans la base de données (y compris les modifications inscrites) jusqu'au point d'enregistrement de l'application Forms en cours.

FULL_ROLLBACK Form Builder annule toutes les modifications non enregistrées dans la base de données (y compris les modifications inscrites), effectuées pendant la session Runform en cours. Vous ne pouvez pas demander un FULL_ROLLBACK à partir d'une application Forms qui s'exécute en mode Post-only. (Le mode Post-only n'est possible que lorsque votre application Forms appelle une autre application Forms, alors que l'application appelante comporte des enregistrements non inscrits. Pour éviter de perdre les verrous émis par l'application appelante, Form Builder empêche tout traitement commit dans l'application Forms appelée.)

NO_ROLLBACK Form Builder sort de l'application Forms en cours sans annuler les modifications jusqu'à un point d'enregistrement. Vous pouvez sortir de l'application Forms de niveau supérieur sans exécuter d'annulation, ce qui signifie que vous pouvez conserver les verrous pendant une opération NEW_FORM. Ces verrous peuvent également se présenter pendant que Form Builder est exécutée à partir d'un programme en langage de troisième génération. Le verrou reste en vigueur lorsque Form Builder rend le contrôle au programme.

Notes d'utilisation

Les paramètres par défaut de la procédure EXIT_FORM sont ASK_COMMIT pour commit_mode et TO_SAVEPOINT pour rollback_mode ; par conséquent, si vous appelez la procédure EXIT_FORM sans indiquer de paramètres dans certains contextes, des résultats non souhaités peuvent survenir. Par exemple, si l'application Forms est uniquement en mode POST et que vous appelez EXIT_FORM sans indiquer de paramètres, vous êtes invité à enregistrer les modifications dans la base de données. Toutefois, quelle que soit votre réponse, le paramètre par défaut rollback_mode de TO_SAVEPOINT annule les modifications malgré l'apparition d'un message confirmant leur application. Pour éviter tout conflit, indiquez explicitement les paramètres.


EXIT_FORM - Exemples

/*

** Procédure interne : EXIT_FORM et POST
** Exemple : Sortir de l'application Forms appelée sans
**           annuler les modifications inscrites afin qu'elles puissent être
**           inscrites et enregistrées par l'application Forms appelante au
**           sein de la même transaction.
*/
BEGIN
  Post;

  /*
  ** Form_Status doit avoir la valeur 'QUERY' si l'inscription
  ** de tous les enregistrements a réussi.
  */
  IF :System.Form_Status <> 'QUERY' THEN
    Message('Une erreur a empêché le système d'inscrire les modifications');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Par défaut, Exit_Form demande une opération commit et exécute
  ** une annulation jusqu'au savepoint. Comme l'inscription a déjà été
  ** effectuée, l'enregistrement dans la base de données n'est pas nécessaire
  ** et les modifications inscrites n'ont pas à être annulées.
  */
  Exit_Form(NO_COMMIT, NO_ROLLBACK);
END;


FETCH_RECORDS - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Appelée à partir d'un déclencheur On-Fetch, cette procédure interne permet de déclencher le traitement Form Builder par défaut qui extrait les enregistrements identifiés par le traitement SELECT.

Syntaxe

PROCEDURE FETCH_RECORDS;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Cette procédure interne est incluse principalement pour les applications qui s'exécutent sur une source de données non ORACLE.

Paramètres

aucun


FETCH_RECORDS - Exemples

/*

** Built-in:  FETCH_RECORDS
** Example:   Perform Form Builder record fetch processing during
**            query time. Decide whether to use this built-in
**            or a user exit based on a global flag setup at
**            startup by the form, perhaps based on a
**            parameter. The block property RECORDS_TO_FETCH
**            allows you to know how many records Form Builder
**            is expecting.
** Trigger:   On-Fetch
*/
DECLARE
  numrecs NUMBER;
BEGIN
  /*
  ** Check the global flag we set during form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    /*
    ** How many records is the form expecting us to
    ** fetch?
    */
    numrecs := Get_Block_Property('EMP',RECORDS_TO_FETCH);
    /*
    ** Call user exit to determine if there are any
    ** more records to fetch from its cursor. User Exit
    ** will return failure if there are no more
    ** records to fetch.
    */
    User_Exit('my_fetch block=EMP remaining_records');
    /*
    ** If there ARE more records, then loop thru
    ** and create/populate the proper number of queried
    ** records. If there are no more records, we drop through
    ** and do nothing. Form Builder takes this as a signal that
    ** we are done.
    */
    IF Form_Success THEN
      /* Create and Populate 'numrecs' records */
      FOR j IN 1..numrecs LOOP
        Create_Queried_Record;
        /*
        ** User exit returns false if there are no more
        ** records left to fetch. We break out of the
        ** if we've hit the last record.
        */
        User_Exit('my_fetch block=EMP get_next_record');
        IF NOT Form_Success THEN
          EXIT;
        END IF;
      END LOOP;
    END IF;
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Fetch_Records;
  END IF;
END;


FIND_ALERT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des alertes valides de Form Builder. Lorsque l'alerte indiquée est localisée, le sous-programme retourne un ID d'alerte, que vous devez diriger vers une variable de type approprié. Donnez à la variable le type Alert.

Syntaxe

FUNCTION FIND_ALERT
  (nom_alerte  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne alerte

Mode Saisie interrogation  oui

Paramètres

nom_alerte	Permet d'indiquer le nom de l'alerte de type VARCHAR2.


FIND_ALERT - Exemples

/*

** Procédure interne : FIND_ALERT
** Exemple : Afficher une alerte de mise en garde.
**           Si l'utilisateur appuie sur le bouton OK, s'assurer qu'il veut VRAIMENT
**           continuer en émettant une autre alerte.
*/
DECLARE
  al_id     Alert;
  al_button NUMBER;
BEGIN
  al_id := Find_Alert('Mise en garde_utilisateur');
  IF Id_Null(al_id) THEN
    Message('L'alerte Mise en garde_utilisateur n'existe pas.');
    RAISE Form_Trigger_Failure;
  ELSE
   /*
   ** Afficher l'alerte de mise en garde.
   */
   al_button := Show_Alert(al_id);
   /*
   ** Si l'utilisateur a appuyé sur OK (bouton 1), afficher un
   ** autre message d'alerte pour confirmer -- les correspondances de bouton
   ** sont indiquées dans la description de l'alerte
   */
   IF al_button = ALERT_BUTTON1 THEN
      al_id := Find_Alert('Voulez-vous vraiment continuer ?');

      IF Id_Null(al_id) THEN
        Message('Alerte : Voulez-vous vraiment continuer ? inexistante');
        RAISE Form_Trigger_Failure;
       ELSE
         al_button := Show_Alert(al_id);
         IF al_button = ALERT_BUTTON2 THEN
           Erase_All_Employee_Records;
         END IF;
       END IF;
     END IF;
   END IF;
END;


FIND_BLOCK - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des blocs valides et de retourner un ID de bloc unique. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type Block.

Syntaxe

FUNCTION FIND_BLOCK
  (nom_bloc  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne bloc

Mode Saisie interrogation  oui

Paramètres

nom_bloc	Nom de bloc de type VARCHAR2.


FIND_BLOCK - Exemples

/*

** Built-in:  FIND_BLOCK
** Example:  Return true if a certain blockname exists
*/
FUNCTION Does_Block_Exist( bk_name VARCHAR2 )
RETURN BOOLEAN IS
  bk_id Block;
BEGIN
  /*
  ** Try to locate the block by name
  */
  bk_id := Find_Block( bk_name );
  /*
  ** Return the boolean result of whether we found it.
  ** Finding the block means that its bk_id will NOT be NULL
  */
  RETURN (NOT Id_Null(bk_id));
END;


FIND_CANVAS - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des canevas et de retourner un ID de canevas lorsqu'un canevas valide du nom indiqué est retrouvé. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type Canvas.

Syntaxe

FUNCTION FIND_CANVAS
  (nom_canevas  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne canevas

Mode Saisie interrogation  oui

Paramètres

nom_canevas	Nom de type VARCHAR2 que vous avez donné au canevas lorsque vous l'avez défini.


FIND_CANVAS - Exemples

DECLARE
  my_canvas Canvas;
BEGIN
  my_canvas := Find_Canvas('mon_canevas');
END;


FIND_COLUMN - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des colonnes du groupe d'enregistrements et de retourner un ID de colonne de groupe lorsqu'une colonne valide du nom indiqué est retrouvée. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type GroupColumn.

Syntaxe

FUNCTION FIND_COLUMN
  (groupenreg.nom_colgroupe  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne ColonneGroupe

Mode Saisie interrogation  oui

Paramètres

groupenreg. nom_colgroupe	Nom complet de la colonne de groupe d'enregistrements de type VARCHAR2.


FIND_COLUMN - Exemples

/*

** Built-in:  FIND_COLUMN
** Example:   Get column IDs for three columns in a record
**            group before performing multiple Get's or Set's
**            of the record group's column values
*/
PROCEDURE Record_Machine_Stats( mach_number NUMBER,
                          pph         NUMBER,
                          temperature NUMBER) IS
  rg_id  RecordGroup;
  col1   GroupColumn;
  col2   GroupColumn;
  col3   GroupColumn;
  row_no NUMBER;
BEGIN
  rg_id := Find_Group('machine');
  col1  := Find_Column('machine.machine_no');
  col2  := Find_Column('machine.parts_per_hour');
  col3  := Find_Column('machine.current_temp');
  /*
  ** Add a new row at the bottom of the 'machine' record
  ** group, and make a note of what row number we just
  ** added.
  */
  Add_Group_Row( rg_id, END_OF_GROUP);
  row_no := Get_Group_Row_Count(rg_id);
  Set_Group_Number_Cell(col1, row_no, mach_number);
  Set_Group_Number_Cell(col2, row_no, pph);
  Set_Group_Number_Cell(col3, row_no, temperature);
END;


FIND_EDITOR - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des éditeurs et de retourner un ID d'éditeur lorsqu'un éditeur valide du nom indiqué est retrouvé. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type Editor.

Syntaxe

FUNCTION FIND_EDITOR
  (nom_éditeur  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne éditeur

Mode Saisie interrogation  oui

Paramètres

nom_éditeur	Nom d'éditeur de type VARCHAR2 valide.


FIND_EDITOR - Exemples

/*

** Procédure interne : FIND_EDITOR
** Exemple : Rechercher et afficher un éditeur défini par l'utilisateur.
*/
DECLARE
  ed_id  Editor;
  status BOOLEAN;
BEGIN
  ed_id := Find_Editor('Fenêtre_d'édition');

  IF NOT Id_Null(ed_id) THEN
    Show_Editor(ed_id, NULL, :emp.comments, status);
  ELSE
    Message('Editeur "Fenêtre_d'édition" introuvable');
    RAISE Form_Trigger_Failure;
  END IF;
END;


FIND_FORM - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des applications Forms et de retourner un ID de module Application Forms lorsqu'une application Forms valide du nom indiqué est retrouvée. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type Formmodule.

Syntaxe

FUNCTION FIND_FORM
  (nom_moduleAppliForms  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne FormModule

Mode Saisie interrogation  oui

Paramètres

nom_moduleAppliForms	Nom d'application Forms de type VARCHAR2 valide.


FIND_FORM - Exemples

/*

** Built-in:  FIND_FORM
** Example:   Find a form's Id before inquiring about several
**            of its properties
*/
DECLARE
  fm_id  FormModule;
  tmpstr VARCHAR2(80);
BEGIN
  fm_id := Find_Form(:System.Current_Form);
  tmpstr := Get_Form_Property(fm_id,CURSOR_MODE);
  tmpstr := tmpstr||','||Get_Form_Property(fm_id,SAVEPOINT_MODE);
  Message('Form is configured as: '||tmpstr);
END;


FIND_GROUP - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des groupes d'enregistrements et de retourner un ID de groupe lorsqu'un groupe valide du nom indiqué est retrouvé. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type RecordGroup.

Syntaxe

FUNCTION FIND_GROUP
  (nom_groupenreg VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne RecordGroup

Mode Saisie interrogation  oui

Paramètres

nom_groupenreg	Nom de groupe d'enregistrements de type VARCHAR2 valide.


FIND_GROUP - Restrictions

Les performances de cette fonction dépendent du nombre de groupes d'enregistrements.


FIND_GROUP - Exemples

/*

** Built-in:  FIND_GROUP
** Example:  See CREATE_GROUP and DELETE_GROUP_ROW
*/


FIND_ITEM - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des éléments d'un bloc donné et de retourner un ID d'élément lorsqu'un élément valide du nom indiqué est retrouvé. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type Item.

Syntaxe

FUNCTION FIND_ITEM
  (nom_bloc.nom_élément  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne Item

Mode Saisie interrogation  oui

Paramètres

nom_bloc.nom_élément	Nom complet de l'élément. Les données du nom sont de type VARCHAR2.


FIND_ITEM - Exemples

/*

** Built-in:  FIND_ITEM
** Example:   Find an item's Id before setting several
**            of its properties.
*/
PROCEDURE Hide_an_Item( item_name VARCHAR2, hide_it BOOLEAN) IS
  it_id   Item;
BEGIN
  it_id := Find_Item(item_name);
  IF Id_Null(it_id) THEN
    Message('No such item: '||item_name);
    RAISE Form_Trigger_Failure;
  ELSE
    IF hide_it THEN
      Set_Item_Property(it_id,VISIBLE,PROPERTY_FALSE);
    ELSE
      Set_Item_Property(it_id,VISIBLE,PROPERTY_TRUE);
      Set_Item_Property(it_id,ENABLED,PROPERTY_TRUE);
      Set_Item_Property(it_id,NAVIGABLE,PROPERTY_TRUE);
    END IF;
  END IF;
END;


FIND_LOV - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste LOV et de retourner un ID de LOV lorsqu'une LOV valide du nom indiqué est retrouvée. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type LOV.

Syntaxe

FUNCTION FIND_LOV
  (nom_LOV  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne LOV

Mode Saisie interrogation  oui

Paramètres

nom_LOV	Nom de LOV de type VARCHAR2 valide.


FIND_LOV - Exemples

/*

** Procédure interne : FIND_LOV
** Exemple : Rechercher si une LOV existe avant de l'afficher.
*/
DECLARE
  lv_id  LOV;
  status BOOLEAN;
BEGIN
  lv_id := Find_LOV('Ma_LOV_partagée');
  /*
  ** Si la LOV 'Ma_LOV_partagée' ne fait pas partie de
  ** l'application Forms en cours, utiliser à la place 'Ma_LOV_privée'.
  */
  IF Id_Null(lv_id) THEN
    lv_id := Find_LOV('Ma_LOV_privée');
  END IF;
  status := Show_LOV(lv_id,10,20);
END;


FIND_MENU_ITEM - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des éléments de menu et de retourner un ID d'élément de menu lorsqu'un élément de menu valide du nom indiqué est retrouvé. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type MenuItem.

Syntaxe

FUNCTION FIND_MENU_ITEM
  (nom_menu.nom_élément_menu  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne MenuItem

Mode Saisie interrogation  oui

Paramètres

nom_menu.nom_élément_menu	Nom complet d'élément de menu de type VARCHAR2.


FIND_MENU_ITEM - Exemples

/*

** Built-in:  FIND_MENU_ITEM
** Example:   Find the id of a menu item before setting
**            multiple properties
*/
PROCEDURE Toggle_AutoCommit_Mode IS
  mi_id MenuItem;
  val   VARCHAR2(10);
BEGIN
  mi_id := Find_Menu_Item('Preferences.AutoCommit');
  /*
  ** Determine the current checked state of the AutoCommit
  ** menu checkbox item
  */
  val := Get_Menu_Item_Property(mi_id,CHECKED);
  /*
  ** Toggle the checked state
  */
  IF val = 'TRUE' THEN
    Set_Menu_Item_Property(mi_id,CHECKED,PROPERTY_FALSE);
  ELSE
    Set_Menu_Item_Property(mi_id,CHECKED,PROPERTY_TRUE);
  END IF;
END;


FIND_OLE_VERB

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner un index de verbe OLE. Un verbe OLE indique l'action que vous pouvez exécuter sur un objet OLE ; chaque verbe OLE possède un index de verbe OLE correspondant. L'index de verbe OLE est retourné sous forme de chaîne VARCHAR2 et doit être converti à NUMBER lorsqu'il est utilisé dans FORMS_OLE.EXE_VERB. Vous devez définir une variable de type approprié pour accepter la valeur retournée.

Syntaxe

FUNCTION FIND_OLE_VERB
  (id_élément    Item,
   nom_verbe  VARCHAR2);

FUNCTION FIND_OLE_VERB
  (nom_élément  VARCHAR2,
   nom_verbe  VARCHAR2);

Retourne  VARCHAR2

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

nom_verbe	Nom d'un verbe OLE. Un verbe OLE indique l'action que vous pouvez exécuter sur un objet OLE. Utilisez la procédure interne Forms_OLE.Get_Verb_Name pour obtenir cette valeur. Le type de données du nom est une chaîne VARCHAR2.


FIND_OLE_VERB - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


FIND_OLE_VERB - Exemples

/*

** Procédure interne : EXEC_VERB
** Exemple : Rechercher un index de verbe OLE à utiliser avec la
**           procédure interne Forms_OLE.Exec_Verb.
** Déclencheur :  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'ELEMOLE';
 verb_index_str VARCHAR(20);
 verb_index NUMBER;
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('Elément inexistant : '||item_name);
 ELSE
  verb_index_str := Forms_OLE.Find_OLE_Verb(item_id,'Edit');
  verb_index := TO_NUMBER(verb_index_str);
  Forms_OLE.Exec_Verb(item_id,verb_index);
 END IF;
END;


FIND_RELATION - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des relations et de retourner un ID de relation lorsqu'une relation valide du nom indiqué est retrouvée. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type Relation.

Syntaxe

FUNCTION FIND_RELATION
  (nom_relation  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne relation

Mode Saisie interrogation  oui

Paramètres

nom_relation	Nom de relation de type VARCHAR2 valide.


FIND_RELATION - Exemples

/*

** Procédure interne : FIND_RELATION
** Exemple : Rechercher l'ID d'une relation avant de procéder
**           à des interrogations au sujet de plusieurs de ses propriétés.
*/
FUNCTION Detail_of( Relation_Name VARCHAR2 )
RETURN VARCHAR2 IS
  rl_id Relation;
BEGIN
  rl_id := Find_Relation( Relation_Name );

  /*
  ** Signaler une erreur si la relation n'existe pas.
  */
  IF Id_Null(rl_id) THEN
    Message('Relation '||Relation_Name||' inexistante');
    RAISE Form_Trigger_Failure;
  ELSE
    RETURN Get_Relation_Property(rl_id,DETAIL_NAME);
  END IF;
END;


FIND_REPORT_OBJECT - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Renvoie l'id_état d'un état donné. Cet ID peut servir de paramètre dans d'autres procédures internes, telles que RUN_REPORT_OBJECT.

Syntaxe

FUNCTION FIND_REPORT_OBJECT
  (nom_état VARCHAR2
);

Type de procédure interne  procédure non restreinte

Retourne	   id_état du type de données REPORT

Mode Saisie interrogation  oui

Paramètres

nom_état	Indique le nom unique de l'état à rechercher.


FIND_REPORT_OBJECT - Exemples

DECLARE

repid REPORT_OBJECT;

v_rep  VARCHAR2(100);

BEGIN

repid := find_report_object('report4');

v_rep := RUN_REPORT_OBJECT(repid);

....

END;


FIND_TAB_PAGE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des pages onglet du canevas à onglets indiqué et de retourner un ID de page onglet lorsqu'une page onglet valide du nom indiqué est retrouvée. Vous devez définir une variable de type TAB_PAGE pour accepter la valeur de retour.

Syntaxe

FUNCTION FIND_TAB_PAGE
  (nom_page_onglet  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne page onglet

Mode Saisie interrogation  oui

Paramètres

nom_page_onglet	Nom de page onglet unique. Les données sont de type VARCHAR2. (Remarque : si plusieurs canevas à onglets ont des pages onglet ayant le même nom, vous devez fournir pour la page onglet un nom complet (par exemple, MY_TAB_CVS.TAB_PAGE_1).


FIND_TAB_PAGE - Exemples

/* Utiliser FIND_TAB_PAGE pour rechercher l'ID de la première

** page onglet du canevas à onglets TAB_PAGE_1, puis utiliser
** cet ID pour définir les propriétés de la page onglet :
*/
DECLARE
  tp_nm   VARCHAR2(30);
  tp_id   TAB_PAGE;

BEGIN
  tp_nm := GET_CANVAS_PROPERTY('tab_page_1', topmost_tab_page);
  tp_id := FIND_TAB_PAGE(tp_nm);
  SET_TAB_PAGE_PROPERTY(tp_id, visible, property_true);
  SET_TAB_PAGE_PROPERTY(tp_id, label, 'Order Info');
END;


FIND_TIMER - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des délais et de retourner un ID de délai lorsqu'un délai valide du nom indiqué est retrouvé. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type Timer.

Syntaxe

FUNCTION FIND_TIMER
  (nom_délai  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  Timer

Mode Saisie interrogation  oui

Paramètres

nom_délai	Nom de délai de type VARCHAR2 valide.


FIND_TIMER - Exemples

/*

** Procédure interne : FIND_TIMER
** Exemple : Si le délai existe, le redéfinir. Sinon
**           le créer.
*/
PROCEDURE Reset_Timer_Interval( Timer_Name VARCHAR2,
                          Timer_Intv NUMBER ) IS
  tm_id       Timer;
  tm_interval NUMBER;
BEGIN
  /*
  ** L'utilisateur fixe l'intervalle en secondes, bien que
  ** les sous-programmes du délai s'attendent à des millisecondes.
  */
  tm_interval := 1000 * Timer_Intv;
  /* Rechercher le délai dont le nom est indiqué. */
  tm_id := Find_Timer(Timer_Name);
  /* Si le délai n'existe pas, le créer. */
  IF Id_Null(tm_id) THEN
    tm_id := Create_Timer(Timer_Name,tm_interval,NO_REPEAT);
  /*
  ** Sinon, relancer le délai avec le nouvel intervalle.
  */
  ELSE
    Set_Timer(tm_id,tm_interval,NO_REPEAT);
  END IF;
END;


FIND_TREE_NODE - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Recherche dans l'arborescence le noeud suivant dont le libellé ou la valeur correspond à la chaîne de recherche.

Syntaxe

FUNCTION FIND_TREE_NODE

  (nom_élément VARCHAR2,

   chaîne_recherche VARCHAR2,

   type_recherche NUMBER,

   recherche_par NUMBER,

   racine_recherche NODE,

   point_départ NODE);

FUNCTION FIND_TREE_NODE

  (id_élément ITEM,

   chaîne_recherche VARCHAR2,

   type_recherche NUMBER,

   recherche_par NUMBER,

   racine_recherche NODE,

   point_départ NODE);

Type de procédure interne  fonction non restreinte

Retourne  NODE

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
chaîne_recherche	Désigne la chaîne de recherche VARCHAR2.
type_recherche	Indique le type de recherche NUMBER. Valeurs possibles : FIND_NEXT FIND_NEXT_CHILD  Recherche uniquement les fils du noeud racine_recherche.
recherche_par	Indique le paramètre NUMBER de recherche. Valeurs possibles : NODE_LABEL NODE_VALUE
racine_recherche	Indique la racine de l'arborescence de recherche.
point_départ	Indique le point de départ de la recherche NODE.


FIND_TREE_NODE - Exemples

/*

** Procédure interne :  FIND_TREE_NODE
*/

-- Ce code recherche un noeud libellé "Doran"

-- dans la sous-arborescence dont le premier noeud

-- est libellé "Zetie".

DECLARE

   htree         ITEM;

   find_node     Ftree.NODE;

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Rechercher le noeud intitulé "Zetie".

   find_node := Ftree.Find_Tree_Node(htree, 'Zetie', Ftree.FIND_NEXT,

                 Ftree.NODE_LABEL, Ftree.ROOT_NODE, Ftree.ROOT_NODE);

   -- Rechercher le noeud libellé "Doran"

   -- à partir de la première occurrence de "Zetie".

   find_node := Ftree.Find_Tree_Node(htree, 'Doran', Ftree.FIND_NEXT,

                Ftree.NODE_LABEL, find_node, find_node);

   IF NOT Ftree.ID_NULL(find_node) then

      ...

   END IF;

END;


FIND_VA - Procédure interne

 Toutes les procédures internes

Description

Recherche les attributs visuels d'un élément dans un bloc donné et renvoie la valeur de cet attribut sous forme de chaîne de caractères.

Syntaxe

FUNCTION FIND_VA

  (va_name PROPERTY);

Type de procédure interne  fonction non restreinte

Retourne  un attribut visuel

Mode Saisie interrogation  oui

Paramètres

nom_av	Nom que vous avez donné à l'attribut visuel lors de sa création. Le type de données est VARCHAR2.


FIND_VIEW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des canevas et de retourner un ID de vue lorsqu'un canevas valide du nom indiqué est retrouvé. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type ViewPort.

Syntaxe

FUNCTION FIND_VIEW
  (nom_vue_canevas  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  ViewPort

Mode Saisie interrogation  oui

Paramètres

nom_vue_canevas	Nom de canevas de type VARCHAR2.


FIND_VIEW - Exemples

/*

** Procédure interne : FIND_VIEW
** Exemple : Changer l'attribut visuel et afficher la position
**           d'une vue empilée avant de la rendre visible
**           à l'utilisateur.
*/
DECLARE
  vw_id ViewPort;
BEGIN
  vw_id := Find_View('Récapitulatif_Ventes');
  Set_Canvas_Property('Récapitulatif_Ventes', VISUAL_ATTRIBUTE,
              'Saumon_sur_Jaune');
  Set_View_Property(vw_id, VIEWPORT_X_POS, 30);
  Set_View_Property(vw_id, VIEWPORT_Y_POS, 5);
  Set_View_Property(vw_id, VISIBLE, PROPERTY_TRUE);
END;


FIND_WINDOW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'explorer la liste des fenêtres et de retourner un ID de fenêtre lorsqu'une fenêtre valide du nom indiqué est retrouvée. Vous devez définir une variable de type approprié pour accepter la valeur de retour. Donnez à la variable le type Window.

Syntaxe

FUNCTION FIND_WINDOW
  (nom_fenêtre  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  fenêtre

Mode Saisie interrogation  oui

Paramètres

nom_fenêtre	Nom de fenêtre de type VARCHAR2 valide.


FIND_WINDOW - Exemples

/*

** Procédure interne : FIND_WINDOW
** Exemple : Ancrer l'angle supérieur gauche de window2 (fenêtre2) sur l'angle
** inférieur droit de window1 (fenêtre1).
*/
PROCEDURE Anchor_Bottom_Right( Window2 VARCHAR2, Window1
VARCHAR2) IS
  wn_id1 Window;
  wn_id2 Window;
  x      NUMBER;
  y      NUMBER;
  w      NUMBER;
  h      NUMBER;
BEGIN
  /*   ** Rechercher window1 (fenêtre1) et extraire sa position
       ** (x,y), sa largeur et sa hauteur.
  */
  wn_id1 := Find_Window(Window1);
  x      := Get_Window_Property(wn_id1,X_POS);
  y      := Get_Window_Property(wn_id1,Y_POS);
  w      := Get_Window_Property(wn_id1,WIDTH);
  h      := Get_Window_Property(wn_id1,HEIGHT);
  /*
  ** Ancrer window2 (fenêtre2) à (x+w,y+h)
  */
  wn_id2 := Find_Window(Window2);
  Set_Window_Property(wn_id2,X_POS, x+w );
  Set_Window_Property(wn_id2,Y_POS, y+h );
END;


FIRST_RECORD - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de passer au premier enregistrement de la liste des enregistrements du bloc.

Syntaxe

PROCEDURE FIRST_RECORD;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


FIRST_RECORD - Exemples

/*

** Procédure interne : FIRST_RECORD
** Exemple : Faire alterner un bouton entre le premier et le
**           dernier enregistrement d'un bloc.
** Déclencheur : When-Button-Pressed
*/
BEGIN
  /*
  ** Si la fin du bloc n'est pas atteinte, passer au dernier enregistrement.
  */
  IF :System.Last_Record <> 'TRUE' THEN
    Last_Record;
  ELSE
    First_Record;
  END IF;
END;


FORM_FAILURE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner une valeur qui indique le résultat de la dernière action exécutée pendant la session Runform en cours.

Résultat	Valeur retournée
succès	FALSE
échec	TRUE
erreur fatale	FALSE

 Si aucune action n'a été exécutée pendant la session Runform en cours, FORM_FAILURE retourne FALSE.

Utilisez FORM_FAILURE pour tester le résultat d'une procédure interne afin de définir la suite du traitement à appliquer ensuite à un déclencheur. Pour obtenir des résultats corrects, vous devez effectuer le test immédiatement après l'exécution de l'action - c'est-à-dire qu'une autre action ne doit pas être exécutée avant le test.

Remarque : Le terme 'autre action' regroupe les procédures internes et les instructions d'affectation PL/SQL. S'il se produit une autre action, FORM_FAILURE peut refléter l'état de la dernière action exécutée et non celui de la procédure interne en cours de test. Il est donc conseillé d'utiliser une technique plus précise : lors de l'exécution d'une procédure COMMIT_FORM, par exemple, vérifiez que la variable SYSTEM.FORM_STATUS est définie à 'QUERY' lorsque l'opération a été exécutée.

Syntaxe

FUNCTION FORM_FAILURE;

Type de procédure interne  fonction non restreinte

Retourne  valeur BOOLEENNE

Mode Saisie interrogation  oui

Paramètres

aucun


FORM_FAILURE - Exemples

/*

** Procédure interne : FORM_FAILURE
** Exemple : Déterminer si la dernière procédure interne
**           exécutée a échoué.
*/
BEGIN
  GO_BLOCK('Success_Factor');
  /*
  ** Si une validation a échoué et empêché la sortie du bloc
  ** en cours, arrêter l'exécution de ce déclencheur.
  **
  ** Généralement, il est conseillé de tester
  **     IF NOT Form_Success THEN ...
  ** au lieu de tester explicitement FORM_FAILURE
  */
  IF Form_Failure THEN
    RAISE Form_Trigger_Failure;
  END IF;
END;


FORM_FATAL - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le résultat de la dernière action exécutée pendant la session Runform en cours.

Résultat	Valeur retournée
succès	FALSE
échec	FALSE
erreur fatale	TRUE

 Utilisez FORM_FATAL pour tester le résultat d'une procédure interne afin de définir la suite du traitement à appliquer ensuite à un déclencheur. Pour obtenir des résultats corrects, vous devez effectuer le test immédiatement après l'exécution de l'action - c'est-à-dire qu'une autre action ne doit pas être exécutée avant le test.

Remarque : Le terme 'autre action' regroupe les procédures internes et les instructions d'affectation PL/SQL. S'il se produit une autre action, FORM_FAILURE peut refléter l'état de la dernière action exécutée et non celui de la procédure interne en cours de test. Il est donc conseillé d'utiliser une technique plus précise : lors de l'exécution d'une procédure COMMIT_FORM, par exemple, vérifiez que la variable SYSTEM.FORM_STATUS est définie à 'QUERY' lorsque l'opération a été exécutée.

Syntaxe

FUNCTION FORM_FATAL;

Type de procédure interne  fonction non restreinte

Type de retour :

BOOLEAN

Mode Saisie interrogation  oui

Paramètres

aucun


FORM_FATAL - Exemples

/*

** Procédure interne : FORM_FATAL
** Exemple : Vérifier si la dernière procédure interne exécutée
**           a généré une erreur fatale.
*/
BEGIN
  User_Exit('Calculate_Line_Integral control.start control.stop');
  /*
  ** Si le code de user exit a retourné une erreur
  ** fatale, imprimer un message et arrêter l'exécution de ce déclencheur.
  **
  ** Généralement, il est conseillé de tester   **
  **     IF NOT FORM_SUCCESS THEN ...   **
  ** plutôt que de tester explicitement FORM_FATAL
  */

  IF Form_Fatal THEN
    Message('Erreur interne : impossible de calculer
             l'intégrale de ligne.');
    RAISE Form_Trigger_Failure;
  END IF;
END;


FORM_SUCCESS - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le résultat de la dernière action exécutée pendant la session Runform en cours.

Résultat	Valeur retournée
succès	TRUE
échec	FALSE
erreur fatale	FALSE
Syntaxe

FUNCTION FORM_SUCCESS;

Type de procédure interne  fonction non restreinte

Type de retour :

BOOLEAN

Mode Saisie interrogation  oui

Paramètres

aucun

Notes d'utilisation

•	Utilisez FORM_SUCCESS pour tester le résultat d'une procédure interne afin de définir la suite du traitement à appliquer à un déclencheur. Pour obtenir des résultats corrects, vous devez effectuer le test immédiatement après l'exécution de l'action - c'est-à-dire qu'une autre action ne doit pas être exécutée avant le test. Le terme "autre action" regroupe les procédures internes et les instructions d'affectation PL/SQL. S'il se produit une autre action, FORM_SUCCES peut refléter l'état de la dernière action exécutée et non celui de la procédure interne en cours de test.

•	Remarque : La procédure interne FORM_SUCCESS ne doit pas être utilisée pour contrôler si la procédure interne COMMIT_FORM ou POST a réussi. Comme COMMIT_FORM peut activer d'autres déclencheurs, lorsque vous évaluez FORM_SUCCESS, cette procédure interne peut ne pas refléter l'état de COMMIT_FORM, mais celui d'une autre procédure interne exécutée ultérieurement. Une technique plus précise consiste à vérifier que la variable SYSTEM.FORM_STATUS est définie à QUERY après l'exécution de l'opération.

•	Sur Microsoft Windows NT, lorsque vous utilisez HOST pour exécuter une application 16 bits, la procédure interne FORM_SUCCESS retourne la valeur TRUE que l'application réussisse ou échoue. Ceci est un problème de Microsoft Win32. Les applications 32 bits et commandes OS retournent correctement la valeur TRUE en cas de réussite et FALSE en cas d'échec. Les commandes non valides retournent la valeur FALSE.

•	Sur les plates-formes Windows 95, la procédure interne FORM_SUCCESS retourne toujours la valeur TRUE pour les commandes HOST qui échouent. Ceci inclut les appels vers les fonctions command.com ou OS, toute application DOS ou graphique 16 bits, ou une commande non valide. FORM_SUCCESS retourne la valeur TRUE pour les applications 32 bits exécutées avec succès et FALSE en cas d'échec.


FORM_SUCCESS - Exemples

/*

** Procédure interne : FORM_SUCCESS
** Exemple : Vérifier si la dernière procédure interne exécutée
**           a réussi.
*/
BEGIN
  /*
  ** Imposer la validation
  */
  Enter;
  /*
  ** Si la validation a réussi, enregistrez les données dans la base de données.
  **

  */
  IF Form_Success THEN
    Commit;
    IF :System.Form_Status <> 'QUERY' THEN
      Message('Erreur : échec validation');
      RAISE Form_Trigger_Failure;
    END IF;
  END IF;
END;


FORMS_DDL - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de lancer des instructions SQL dynamiques lors de l'exécution, notamment des instructions PL/SQL et DDL côté serveur.

Remarque : Toutes les opérations DDL émettent une commande COMMIT implicite et mettent fin à la transaction en cours sans permettre à Form Builder de traiter les modifications en attente.

Syntaxe

FUNCTION FORMS_DDL
  (instruction  VARCHAR2);

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Paramètres

instruction	Toute expression de type chaîne d'un maximum de 32 K :

•	un littéral ;

•	une expression ou une variable représentant le texte d'un bloc d'un code PL/SQL créé dynamiquement ;

•	une instructions DML ; ou

•	une instruction DDL.

Notes d'utilisation

Enregistrez dans la base de données (ou annulez) toutes les modifications en attente avant de lancer la commande FORMS_DDL. Toutes les opérations DDL émettent une commande COMMIT implicite et mettent fin à la transaction en cours sans permettre à Form Builder de traiter les modifications en attente et entraînent la perte des verrous que Form Builder peut avoir acquis.

Certaines procédures stockées fournies émettent des commandes COMMIT ou ROLLBACK qui font partie de leur logique. Assurez-vous que toutes les modifications en attente dans l'application Forms sont enregistrées dans la base de données ou annulées avant d'appeler ces procédures internes. Utilisez la variable SYSTEM.FORM_STATUS pour vérifier si l'application Forms en cours comporte des modifications en attente, avant de lancer la commande FORMS_DDL. (Voir l'exemple 4.)

Si vous utilisez FORMS_DDL pour exécuter un bloc PL/SQL valide :

•	Utilisez des points-virgules (;) aux endroits voulus.

•	Incluez le bloc PL/SQL dans une structure de bloc BEGIN/END valide.

•	Ne terminez pas le bloc PL/SQL par une barre oblique.

•	Les sauts de ligne sont autorisés, mais ne sont pas obligatoires.

Si vous utilisez FORMS_DDL pour exécuter une seule instruction DML ou DDL :

•	Omettez le point-virgule de fin pour éviter la génération d'une erreur de caractère invalide.

Pour vérifier si l'instruction émise à l'aide de FORMS_DDL s'est exécutée correctement, utilisez la fonction booléenne FORM_SUCCESS ou FORM_FAILURE. Si l'instruction ne s'est pas exécutée correctement, recherchez le code d'erreur et son texte en utilisant DBMS_ERROR_CODE et DBMS_ERROR_TEXT. Notez que comme DBMS_ERROR_CODE et DBMS_ERROR_TEXT ne sont pas automatiquement réinitialisées après une exécution réussie, leurs valeurs ne doivent être examinées qu'après la détection d'une erreur par un appel à FORM_SUCCESS ou à FORM_FAILURE.


FORMS_DDL - Restrictions

L'instruction que vous passez à FORMS_DDL peut ne pas contenir de références de variable de lien dans la chaîne, mais les valeurs des variables de lien peuvent être concaténées à l'intérieur de la chaîne avant le passage du résultat à FORMS_DDL. Exemple d'instruction non valide :

Forms_DDL ('Begin Update_Employee (:emp.empno); End;');

Cependant, l'instruction, est valide, et aura l'effet voulu.

Forms_DDL ('Begin Update_Employee ('||TO_CHAR(:emp.empno)
      ||');End;');

Vous pourriez également appeler directement une procédure stockée en utilisant la zone SQL partagée d'Oracle8 sur plusieurs exécutions avec des valeurs de emp.empno différentes :

Update_Employee (:emp.empno);

Les instructions SQL et les blocs PL/SQL exécutés à l'aide de FORMS_DDL ne peuvent pas retourner directement de résultats à Form Builder. (Voir l'exemple 4.)

En outre, certaines opérations DDL ne peuvent pas être exécutées à l'aide de FORMS_DDL, (comme l'abandon d'un lien de base de données ou de table) si Form Builder maintient un curseur ouvert sur l'objet sur lequel porte l'action.


FORMS_DDL - Exemples

Exemple 1

/*

** Procédure interne : FORMS_DDL
** Exemple : L'expression peut être un littéral de type chaîne.
*/
BEGIN
  Forms_DDL('créer la table temp(n NUMBER)');
  IF NOT Form_Success THEN
    Message ('Echec de création de la table');
  ELSE
    Message ('Table créée');
  END IF;
END;

Exemple 2

/*

** Procédure interne : FORMS_DDL
** Exemple : La chaîne peut être une expression ou une
**           variable. Créer une table comportant n colonnes
**           de type NUMBER. TEMP(COL1, COL2, ..., COLn).
*/
PROCEDURE Create_N_Column_Number_Table (n NUMBER) IS
  my_stmt VARCHAR2(2000);
BEGIN
  my_stmt := 'Créer la table temp(COL1 NUMBER';
  FOR I in 2..N LOOP
    my_stmt := my_stmt||',COL'||TO_CHAR(i)||' NUMBER';
  END LOOP;
  my_stmt := my_stmt||')';
  /*
  ** Ensuite, créer la table...
  */
  Forms_DDL(my_stmt);
  IF NOT Form_Success THEN
    Message ('Echec de création de la table');
  ELSE
    Message ('Table créée');
  END IF;
END;

Exemple 3

/*

** Procédure interne : FORMS_DDL
** Exemple : Le paramètre d'instruction peut être un bloc
**           de code PL/SQL créé de façon dynamique.
*/
DECLARE
  procname VARCHAR2(30);
BEGIN
  IF :global.flag = 'TRUE' THEN
    procname := 'Assign_New_Employer';
  ELSE
    procname := 'Update_New_Employer';
  END IF;
  Forms_DDL('Begin '|| procname ||'; End;');
  IF NOT Form_Success THEN
    Message ('Echec de mise à jour de l'employé');
  ELSE
    Message ('Succès de mise à jour de l'employé');
  END IF;
END;

Exemple 4

/*

** Procédure interne : FORMS_DDL
** Exemple : Emettre l'instruction SQL fournie comme
**           argument et retourner une valeur numérique
**           représentant le résultat de l'exécution de l'instruction SQL.
**           Le résultat zéro équivaut au succès de l'opération.
*/
FUNCTION Do_Sql (stmt VARCHAR2, check_for_locks BOOLEAN := TRUE)
RETURN NUMBER
IS
  SQL_SUCCESS CONSTANT NUMBER := 0;
BEGIN
  IF stmt IS NULL THEN
    Message ('DO_SQL: Instruction NULL passée.');
    RETURN SQL_SUCCESS;
  END IF;
  IF Check_For_Locks AND :System.Form_Status = 'CHANGED' THEN
    Message ('DO_SQL: L'application Forms comporte un nombre important de verrous en attente.');
    RETURN SQL_SUCCESS;
  END IF;
    Forms_DDL(stmt);
  IF Form_Success THEN
    RETURN SQL_SUCCESS;
  ELSE
    RETURN Dbms_Error_Code;
  END IF;
END;


GENERATE_SEQUENCE_NUMBER - Procédure interne

 Exemples	   Restrictions	  Toutes les procédures internes

Description

Déclenche le traitement Form Builder par défaut permettant de générer un numéro de séquence unique lors de la création d'un enregistrement. Lorsqu'un objet séquence est défini dans la base de données, vous pouvez y faire référence sous la forme d'une valeur par défaut d'un élément en définissant la propriété Valeur initiale à SEQUENCE.my_seq.NEXTVAL. Par défaut, Form Builder extrait la prochaine valeur de la séquence lors de la création d'un enregistrement. Lorsque vous vous connectez à une source de données autre que Oracle, vous pouvez inclure un appel à cette procédure interne dans le déclencheur On-Sequence-Number

Syntaxe

PROCEDURE GENERATE_SEQUENCE_NUMBER;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


GENERATE_SEQUENCE_NUMBER - Restrictions

Cette procédure interne n'est valide que dans un déclencheur On-Sequence-Number.


GENERATE_SEQUENCE_NUMBER - Exemples

/*

** Built-in:  GENERATE_SEQUENCE_NUMBER
** Example:   Perform Form Builder standard sequence number
**            processing based on a global flag setup at
**            startup by the form, perhaps based on a
**            parameter.
** Trigger:   On-Sequence-Number
*/
BEGIN
  /*
  ** Check the global flag we setup at form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_seqnum seq=EMPNO_SEQ');
  /*
  ** Otherwise, do the right thing.
  */
  ELSE
    Generate_Sequence_Number;
  END IF;
END;


GET_APPLICATION_PROPERTY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Retourne des informations sur l'application Form Builder en cours. Vous devez appeler la procédure interne chaque fois que vous voulez extraire une valeur.

Syntaxe

FUNCTION GET_APPLICATION_PROPERTY
  (propriété  NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

propriété	Indiquez l'une des constantes ci-dessous pour obtenir les informations sur votre application :

APPLICATION_INSTANCE  Retourne la valeur de pointeur d'un identificateur d'instance. Ne s'applique qu'à la plate-forme Microsoft Windows. Pour toutes les autres plates-formes, Form Builder retourne NULL.

BUILTIN_DATE_FORMAT   Retourne la valeur actuelle du masque de format de date de la procédure interne (contenu dans la propriété Builtin_Date_Format).

CALLING_FORM  Retourne le nom de l'application Forms appelante si l'application Forms en cours a été appelée par la procédure interne CALL_FORM. Si l'application Forms en cours n'est pas une application appelée, Form Builder retourne NULL

CONNECT_STRING   Retourne la chaîne de connexion à la base de données de l'opérateur en cours. Si l'opérateur en cours n'a pas de chaîne de connexion, Form Builder retourne NULL.

CURRENT_FORM  Retourne le nom de fichier .FMX de l'application Forms en cours d'exécution.

CURRENT_FORM_NAME  Retourne le nom de l'application Forms indiquée par la propriété Nom du module application Forms.

CURSOR_STYLE  Retourne le nom de la propriété Style du curseur en cours. Les valeurs de retour VARCHAR2 valides sont BUSY, CROSSHAIR, DEFAULT,  HELP et INSERTION.

DATASOURCE  Retourne le nom de la base de données actuellement utilisée. Les valeurs de retour valides sont NULL, ORACLE, DB2, NONSTOP, TERADATA, NCR/3600/NCR/3700 et SQLSERVER. Cet appel ne retourne le nom de la base de données que pour les connexions établies par Form Builder, et non pour celles établies par les déclencheurs On-Logon.

DATE_FORMAT_COMPATIBILITY_MODE  Retourne le paramètre de compatibilité contenu dans cette propriété.

DISPLAY_HEIGHT  Retourne la hauteur de l'affichage. La taille de chaque unité dépend de la façon dont vous avez défini la propriété Système de coordonnées du module application Forms.

DISPLAY_WIDTH Retourne la largeur de l'affichage. La taille de chaque unité dépend de la façon dont vous avez défini la propriété Système de coordonnées du module application Forms.

ERROR_DATE/DATETIME_FORMAT Retourne la valeur actuelle du masque de format de date ou date/heure des erreurs (telle que définie dans la variable d'environnement FORMSnn_Error_Date/Datetime_Format).

FLAG_USER_VALUE_TOO_LONG   Retourne la valeur actuelle de cette propriété, ‘TRUE’ ou ‘FALSE,’ qui contrôle la troncature des valeurs entrées par l'utilisateur, dépassant la propriété de longueur maximale d'un élément.

OPERATING_SYSTEM  Retourne le nom du système d'exploitation en cours. Les valeurs de retour valides sont MSWINDOWS,MSWINDOWS32, WIN32COMMON, UNIX, SunOS, MACINTOSH, VMS et HP-UX.

OUTPUT_DATE/DATETIME_FORMAT Retourne la valeur actuelle du masque de format de date ou date/heure des sorties (telle que définie dans la variable d'environnement FORMSnn_Error_Date/Datetime_Format).

PASSWORD  Retourne le mot de passe de l'opérateur en cours.

PLSQL_DATE_FORMAT   Retourne la valeur actuelle du masque de format de date de PLSQL (contenue dans la propriété PLSQL_Date_Format).

RUNTIME_COMPATIBILITY_MODE  Retourne le paramètre de compatibilité contenu dans cette propriété.

SAVEPOINT_NAME  Retourne le nom du dernier point d'enregistrement émis par Form Builder. Cet appel n'est valide qu'à partir d'un déclencheur On-Savepoint ou On-Rollback. Il est inclus essentiellement pour le développeur qui utilise des déclencheurs transactionnels pour accéder à une source de données autre que Oracle.

TIMER_NAME  Retourne le nom de l'horloge dont le délai a expiré en dernier. Form Builder retourne NULL en réponse à la constante s'il n'y a pas d'horloge.

USER_DATE/DATETIME_FORMAT Retourne la valeur actuelle du masque de format de date ou date/heure de l'utilisateur (telle que définie dans la variable d'environnement FORMSnn_User_Date/Datetime_Format).

USER_INTERFACE  Retourne le nom de l'interface utilisateur en cours d'utilisation. Les valeurs de retour valides sont MOTIF, MACINTOSH, MSWINDOWS, MSWINDOWS32, WIN32COMMON, WEB, PM, CHARMODE, BLOCKMODE, X et UNKNOWN.

USER_NLS_CHARACTER_SET  Retourne la valeur en cours d'une partie du jeu de caractères, uniquement de la variable d'environnement USER_NLS_LANG définie pour l'utilisateur de l'application Forms. Si cette variable n'est pas définie de manière explicite, elle prend par défaut la valeur de la variable NLS_LANG.

USER_NLS_LANG  Retourne toute la valeur en cours de la variable d'environnement USER_NLS_LANG définie pour l'utilisateur de l'application Forms, pour le support de la langue nationale. Si cette variable n'est pas définie de manière explicite, elle prend par défaut la valeur de la variable NLS_LANG. USER_NLS_LANG équivaut à chaîner USER_NLS_LANGUAGE, USER_NLS_TERRITORY et USER_NLS_CHARACTER_SET.

USER_NLS_LANGUAGE  Retourne la valeur en cours uniquement de la partie langue de la variable d'environnement USER_NLS_LANG définie pour l'opérateur d'application Forms. Si cette variable n'est pas définie de manière explicite, elle prend par défaut la valeur de la variable NLS_LANG.

USER_NLS_TERRITORY   Retourne uniquement la valeur en cours de la partie pays de la variable d'environnement USER_NLS_LANG définie pour l'opérateur d'application Forms. Si cette variable n'est pas définie par défaut, elle prend par défaut la valeur de la variable NLS_LANG.

USERNAME  Retourne le nom de l'opérateur en cours. Remarque : Si l'utilisateur se connecte en utilisant un compte OPS$, la procédure GET_APPLICATION_PROPERTY(USERNAME) ne retourne pas le véritable nom d'utilisateur. Dans ce cas, utilisez GET_APPLICATION_PROPERTY(CONNECT_STRING) pour extraire des informations sur le nom d'utilisateur.

Notes d'utilisation

Pour demander une connexion complète, comprenant une chaîne de connexion ajoutée, utilisez les propriétés Username, Password et Connect_String. Par exemple, si l'utilisateur a lancé une session Runform sous Microsoft Windows en indiquant la chaîne de connexion suivante :

ifrun60 my_form scott/tiger@corpDB1

Form Builder retourne, à la suite d'un appel à GET_APPLICATION_PROPERTY(USERNAME), la chaîne suivante :

scott

Form Builder retourne, à la suite d'un appel à GET_APPLICATION_PROPERTY(PASSWORD), la chaîne suivante :

tiger

Form Builder retourne, à la suite d'un appel à GET_APPLICATION_PROPERTY(CONNECT_STRING), la chaîne suivante :

corpDB1


GET_APPLICATION_PROPERTY - Restrictions

Pour extraire le nom de l'horloge exécutée en dernier, vous devez lancer un appel à GET_APPLICATION_PROPERTY à partir d'un déclencheur When-Timer-Expired. Sinon, le résultat de la procédure interne est imprévisible.


GET_APPLICATION_PROPERTY- Exemples

Exemple 1

/*

** Built-in:  GET_APPLICATION_PROPERTY
** Example:   Determine the name of the timer that just
**            expired, and based on the username perform a
**            task.
** Trigger:   When-Timer-Expired
*/
DECLARE
  tm_name  VARCHAR2(40);
BEGIN
  tm_name  := Get_Application_Property(TIMER_NAME);

  IF tm_name = 'MY_ONCE_EVERY_FIVE_MINUTES_TIMER' THEN

  :control.onscreen_clock := SYSDATE;

  ELSIF tm_name = 'MY_ONCE_PER_HOUR_TIMER' THEN

    Go_Block('connected_users');
    Execute_Query;

  END IF;
END;

Exemple 2

/*

** Built-in:  GET_APPLICATION_PROPERTY
** Example:   Capture the username and password of the
**            currently logged-on user, for use in calling
**            another Tool.
*/
PROCEDURE Get_Connect_Info( the_username IN OUT VARCHAR2,
              the_password IN OUT VARCHAR2,
              the_connect  IN OUT VARCHAR2) IS
BEGIN
  the_username := Get_Application_Property(USERNAME);
  the_password := Get_Application_Property(PASSWORD);
  the_connect  := Get_Application_Property(CONNECT_STRING);
END;


GET_BLOCK_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne des informations sur le bloc indiqué. Vous devez lancer un appel à la procédure interne pour chaque valeur de propriété que vous voulez extraire.

Syntaxe

FUNCTION GET_BLOCK_PROPERTY
  (block_id  Block,
   property  NUMBER);

FUNCTION GET_BLOCK_PROPERTY
  (block_name  VARCHAR2,
   property    NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_bloc	ID unique que Form Builder a attribué au bloc lorsque vous l'avez créé. Les données sont de type BLOCK.

nom_bloc	Nom que vous avez donné au bloc lorsque vous l'avez créé. Les données sont de type VARCHAR2.

propriété	Pour obtenir des informations sur le bloc, indiquez l'une des constantes suivantes :

ALL_RECORDS Précise si tous les enregistrements correspondant aux critères d'interrogation doivent être extraits du bloc de données lors de l'exécution d'une requête.

BLOCKSCROLLBAR_X_POS  Retourne la position x de la barre de défilement du bloc en tant que nombre indiqué dans les unités des coordonnées de l'application Forms indiquée par la propriété d'application Forms Système de coordonnées.

BLOCKSCROLLBAR_Y_POS   Retourne la position y de la barre de défilement du bloc en tant que nombre spécifié dans les unités des coordonnées de l'application Forms indiquées par la propriété d'application Forms Système de coordonnées.

COLUMN_SECURITY  Retourne la valeur VARCHAR2 TRUE si la sécurité colonne est définie à Yes, et la chaîne VARCHAR2 FALSE si elle est définie à No.

COORDINATION_STATUS  Pour un bloc détail d'une relation de bloc maître-détail, cette propriété indique l'état de coordination du bloc par rapport à son ou ses blocs maître. Retourne la valeur VARCHAR2 COORDINATED si le bloc est coordonné sur tous ses blocs maîtres. Dans le cas contraire, retourne la valeur VARCHAR2 NON_COORDINATED. Dès que les enregistrements sont transférés au bloc détail, l'état du bloc détail est COORDINATED. Lorsqu'un autre enregistrement devient enregistrement en cours dans le bloc maître, l'état du bloc détail redevient NON_COORDINATED.

CURRENT_RECORD  Retourne le numéro de l'enregistrement en cours.

CURRENT_RECORD_ATTRIBUTE  Retourne le nom VARCHAR2 de l'attribut visuel nommé du bloc indiqué.

CURRENT_ROW_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

CURRENT_ROW_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

CURRENT_ROW_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

CURRENT_ROW_FONT_SIZE  Taille de la police, indiquée en points.

CURRENT_ROW_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

CURRENT_ROW_FONT_STYLE  Style de la police.

CURRENT_ROW_FONT_WEIGHT Epaisseur de la police.

CURRENT_ROW_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

CURRENT_ROW_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

DEFAULT_WHERE Retourne la clause WHERE par défaut en vigueur pour le bloc, indiquée par le paramètre en cours de la propriété de bloc WHERE.

DELETE_ALLOWED  Retourne la valeur VARCHAR2 TRUE si la propriété de bloc Suppression autorisée est définie à Yes, et FALSE si elle est définie à No. Cette propriété détermine si l'opérateur ou l'application sont autorisés à supprimer des enregistrements du bloc.

DML_DATA_TARGET_NAME  Retourne le nom VARCHAR2 de la source DML du bloc.

DML_DATA_TARGET_TYPE  Retourne la valeur VARCHAR2 qui indique la valeur en cours de la propriété Type de cible de données DML. Les valeurs de retour de cette propriété sont NONE, TABLE, STORED PROCEDURE ou TRANSACTIONAL TRIGGER.

ENFORCE_PRIMARY_KEY  Retourne la valeur VARCHAR2 TRUE si la propriété Renforcer clé primaire est définie à Yes pour le bloc. Sinon, si celle propriété est définie à No, le paramètre retourne la valeur VARCHAR2 FALSE.

ENTERABLE   Retourne la valeur VARCHAR2 TRUE si le bloc est modifiable, c'est-à-dire si l'un des éléments du bloc a les propriétés Activé et Navigation autorisée au clavier définies à Yes. Retourne la chaîne VARCHAR2 FALSE si le bloc n'est pas modifiable.

FIRST_DETAIL_RELATION  Retourne le nom VARCHAR2 de la première relation dans laquelle le bloc donné est un bloc détail. Retourne NULL s'il n'existe pas.

FIRST_ITEM  Retourne le nom VARCHAR2 du premier élément du bloc donné.

FIRST_MASTER_RELATION  Retourne le nom VARCHAR2 de la première relation dans laquelle le bloc donné est un bloc maître. Retourne NULL s'il n'existe pas.

INSERT_ALLOWED  Retourne la valeur VARCHAR2 TRUE si la propriété de bloc Insertion autorisée est définie à Yes, FALSE si elle est définie à No. Cette propriété détermine si l'opérateur ou l'application peuvent insérer des enregistrements dans le bloc.

KEY_MODE  Retourne la valeur VARCHAR2 qui indique la valeur en cours de la propriété de bloc Mode clé. Les valeurs de retour de cette propriété sont UNIQUE_KEY, UPDATEABLE_PRIMARY_KEY ou NON_UPDATEABLE_PRIMARY_KEY.

LAST_ITEM  Retourne le nom du dernier élément du bloc donné.

LAST_QUERY  Retourne l'instruction SQL de la dernière interrogation du bloc indiqué.

LOCKING_MODE  Retourne la valeur VARCHAR2 IMMEDIATE si les lignes doivent être verrouillées immédiatement après une modification d'un élément de table de base ; sinon, retourne la valeur VARCHAR2 DELAYED si le verrouillage des lignes doit être tenté immédiatement avant une opération commit.

MAX_QUERY_TIME Retourne la valeur VARCHAR2 qui indique la valeur en cours de la propriété Durée maximum d'interrogation. Cette propriété détermine si l'utilisateur peut mettre fin à une interrogation lorsque la durée de l'interrogation dépasse la valeur de cette propriété.

MAX_RECORDS_FETCHED  Retourne un nombre indiquant le nombre maximum d'enregistrements pouvant être extraits. Cette propriété n'est utile que lorsque la propriété Interroger tous les enregistrements est définie à Yes.

NAVIGATION_STYLE  Retourne la valeur VARCHAR2 qui indique la valeur en cours de la propriété NAVIGATION_STYLE du bloc, SAME_RECORD, CHANGE_RECORD ou CHANGE_BLOCK.

NEXTBLOCK  Retourne le nom du prochain bloc. Retourne NULL si le bloc indiqué est le dernier de l'application Forms. Notez que la valeur de la propriété NEXT_NAVIGATION_BLOCK est sans effet sur la valeur de NEXTBLOCK.

NEXT_NAVIGATION_BLOCK  Retourne le nom VARCHAR2 du prochain bloc de navigation du bloc. Par défaut, le prochain bloc de navigation est le prochain bloc défini par l'ordre des blocs dans le Navigateur d'objet ; cependant, la propriété de bloc NEXT_NAVIGATION_BLOCK peut être définie de manière à remplacer la séquence de navigation de bloc par défaut.

OPTIMIZER_HINT  Retourne un message d'aide sous la forme d'une chaîne VARCHAR2 que Form Builder transmet à l'optimiseur SGBDR lors de la construction des interrogations.

ORDER_BY  Retourne la clause ORDER BY par défaut en vigueur pour le bloc, indiquée par la définition en cours de la propriété de bloc ORDER BY.

PRECOMPUTE_SUMMARIES[En cours d'écriture]

PREVIOUSBLOCK  Retourne le nom du bloc ayant le numéro de séquence immédiatement inférieur, défini par l'ordre des blocs dans le Navigateur d'objet. Retourne NULL si le bloc indiqué est le premier de l'application Forms. Notez que la définition de la propriété PREVIOUS_NAVIGATION_BLOCK du bloc est sans effet sur la valeur de PREVIOUSBLOCK.

PREVIOUS_NAVIGATION_BLOCK  Retourne le nom VARCHAR2 du précédent bloc de navigation du bloc. Par défaut, ce bloc est celui ayant le numéro de séquence immédiatement inférieur, défini par l'ordre des blocs dans le Navigateur d'objet. Cependant, la propriété de bloc NEXT_NAVIGATION_BLOCK peut être définie de manière à remplacer la séquence de navigation de bloc par défaut.

QUERY_ALLOWED  Retourne la valeur VARCHAR2 TRUE si la propriété de bloc Interrogation autorisée est définie à Yes, et FALSE dans le cas contraire. Cette propriété détermine si l'opérateur ou l'opération peuvent interroger les enregistrements du bloc.

QUERY_DATA_SOURCE_NAME  Retourne le nom VARCHAR2 de la source des données d'interrogation du bloc.

QUERY_DATA_SOURCE_TYPE  Retourne la valeur VARCHAR2 qui indique la définition en cours de la propriété Type de source de données d'interrogation. Les valeurs de retour de cette propriété sont NONE, TABLE, STORED PROCEDURE, TRANSACTIONAL TRIGGER ou SUB-QUERY.

QUERY_HITS  Retourne la valeur VARCHAR2 qui indique le nombre d'enregistrements identifiés par l'opération COUNT_QUERY. Si cette valeur est examinée pendant l'extraction des enregistrements d'une interrogation, QUERY_HITS indique le nombre d'enregistrements qui ont été extraits.

QUERY_OPTIONS  Retourne les valeurs VARCHAR2 VIEW, FOR_UPDATE, COUNT_QUERY ou une valeur NULL s'il n'y a pas d'option. Vous pouvez appeler GET_BLOCK_PROPERTY avec ce paramètre à partir d'un déclencheur transactionnel lorsque votre user exit doit connaître le type d'interrogation que Form Builder exécuterait par défaut si vous n'aviez pas annulé le traitement par défaut.

RECORDS_DISPLAYED  Retourne le nombre d'enregistrements que le bloc donné peut afficher. Correspond à la propriété Nombre d'enregistrements affichés.

RECORDS_TO_FETCH  Retourne le nombre d'enregistrements dont Form Builder attend l'extraction et la création, par un déclencheur On-Fetch, sous la forme d'enregistrements interrogés.

STATUS  Retourne la valeur VARCHAR2 NEW si le bloc contient uniquement de nouveaux enregistrements, CHANGED si le bloc contient au moins un enregistrement modifié, et QUERY si le bloc contient uniquement des enregistrements valides qui ont été extraits de la base de données.

TOP_RECORD  Retourne le numéro du premier enregistrement visible du bloc indiqué.

UPDATE_ALLOWED  Retourne la valeur VARCHAR2 TRUE si la propriété de bloc Mise à jour autorisée est définie à Yes, FALSE dans le cas contraire. Cette propriété détermine si l'opérateur ou l'application sont autorisés à mettre à jour les enregistrements du bloc.

UPDATE_CHANGED_COLUMNS  Indique que seules les colonnes mises à jour par un opérateur seront transmises à la base de données. Lorsque la propriété Mettre à jour colonnes modifiées seulement est définie à No, toutes les colonnes sont transmises, qu'elles aient été mises à jour ou non, ce qui peut entraîner une surcharge considérable du réseau, surtout si le bloc contient des données de type LONG.


GET_BLOCK_PROPERTY - Exemples

/*

** Built-in:  GET_BLOCK_PROPERTY
** Example:   Return the screen line of the current record in
**            a multi-record block. Could be used to
**            dynamically position LOV to a place on the
**            screen above or below the current line so as to
**            not obscure the current record in question.
*/
FUNCTION Current_Screen_Line
RETURN NUMBER IS
  cur_blk VARCHAR2(40) := :System.Cursor_Block;
  cur_rec NUMBER;
  top_rec NUMBER;
  itm_lin NUMBER;
  cur_lin NUMBER;
  bk_id   Block;
BEGIN
  /*
  ** Get the block id since we'll be doing multiple
  ** Get_Block_Property operations for the same block
  */
  bk_id := Find_Block( cur_blk );
  /*
  ** Determine the (1) Current Record the cursor is in,
  **               (2) Current Record which is visible at the
  **                   first (top) line of the multirecord
  **                   block.
  */
  cur_rec := Get_Block_Property( bk_id, CURRENT_RECORD);
  top_rec := Get_Block_Property( bk_id, TOP_RECORD);
  /*
  ** Determine the position on the screen the first field in
  ** the multirecord block
  */
  itm_lin := Get_Item_Property( Get_Block_Property
                     (bk_id,FIRST_ITEM),Y_POS);
  /*
  ** Add the difference between the current record and the
  ** top record visible in the block to the screen position
  ** of the first item in the block to get the screen
  ** position of the current record:
  */
  cur_lin := itm_lin + (cur_rec - top_rec);
  RETURN cur_lin;
END;


GET_CANVAS_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne la propriété du canevas indiqué

Syntaxe

FUNCTION GET_CANVAS_PROPERTY
  (canvas_id  Canvas,
   property   NUMBER);

FUNCTION GET_CANVAS_PROPERTY
  (canvas_name  VARCHAR2,
   property     NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_canevas	ID unique que Form Builder attribue à l'objet canevas lorsqu'il le crée. Utilisez la procédure interne FIND_CANVAS pour retourner l'ID à une variable de type CANVAS.

nom_canevas	Nom que vous avez donné à l'objet canevas lorsque vous l'avez défini.

propriété	Propriété dont vous voulez connaître la valeur pour le canevas indiqué. Vous pouvez entrer, pour les valeurs de retour, les constantes suivantes :

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, indiquée en points.

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

HEIGHT  Retourne la hauteur du canevas en unités de coordonnées d'application Forms indiquées par la propriété Système de coordonnées.

TAB_PAGE_X_OFFSET  Retourne la distance entre le bord gauche du canevas onglet et le bord gauche de la page onglet. La valeur retournée dépend du système de coordonnées utilisé : pixel, centimètre, pouce ou point.

TAB_PAGE_Y_OFFSET  Retourne la distance entre le bord supérieur du canevas onglet et le bord supérieur de la page onglet. La valeur retournée dépend du système de coordonnées utilisé : pixel, centimètre, pouce ou point.

TOPMOST_TAB_PAGE  Retourne le nom de la page onglet se trouvant actuellement au début de la pile du canevas onglet nommé.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

WIDTH  Retourne la largeur du canevas en unités de coordonnées indiquées par la propriété Système de coordonnées.

VISUAL_ATTRIBUTE   Retourne le nom de l'attribut visuel en vigueur. Si aucun attribut visuel n'est attribué au canevas, retourne CUSTOM pour un attribut visuel personnalisé ou DEFAULT pour un attribut visuel par défaut.


GET_CANVAS_PROPERTY - Exemples

/*

** Built-in:  GET_CANVAS_PROPERTY
** Example:   Can get the width/height of the canvas.
*/
DECLARE
  the_width  NUMBER;
  the_height NUMBER;
  cn_id      CANVAS;
BEGIN
  cn_id      := FIND_CANVAS('my_canvas_1');
  the_width  := GET_CANVAS_PROPERTY(cn_id, WIDTH);
  the_height := GET_CANVAS_PROPERTY(cn_id,HEIGHT);
END;


GET_CUSTOM_PROPERTY - Procédure interne

  Rubriques connexes

Description

Donne la valeur d'une propriété définie par l'utilisateur dans un composant adaptable Java.

Syntaxe

La procédure interne retourne une valeur VARCHAR2 contenant la chaîne ou les données numériques ou booléennes.

GET_CUSTOM_PROPERTY
  (item,
   row-number,
   prop-name);

Type de procédure interne  procédure non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

élément	Nom ou ID de l'élément associé au composant adaptable Java cible. Le nom peut avoir la forme d'une constante varchar2 ou d'une variable définie à la valeur du nom.

num-ligne	Numéro de ligne de l'instance de l'élément que vous voulez obtenir (les numéros de ligne d'instance commencent à 1).

nom-prop	Propriété du composant Java que vous voulez obtenir.

Notes d'utilisation

•	Dans le composant adaptable Java, chaque type de propriété personnalisé doit être représenté par une seule instance de la classe ID, créée à l'aide de ID.registerProperty.

•	Pour chaque procédure interne Get_Custom_Property exécutée dans l'application Forms, la méthode getProperty du composant Java est appelée.

•	Le nom de l'élément peut être obtenu via Find_Item(‘Item_Name’), ou simplement ‘Item_Name’.


GET_FILE_NAME - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Affiche la boîte de dialogue d'ouverture de fichier dans laquelle l'utilisateur peut sélectionner un fichier existant ou indiquer un nouveau fichier.

Syntaxe

FUNCTION GET_FILE_NAME
  (nom_répertoire      VARCHAR2,
   nom_fichier         VARCHAR2,
   filtre_fichier      VARCHAR2,
   message             VARCHAR2,
   type_dialogue       NUMBER,
   sélection_fichier   BOOLEAN;

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

nom_répertoire	Indique le nom du répertoire contenant le fichier que vous voulez ouvrir. La valeur par défaut est NULL. Si le nom de répertoire est NULL, les interrogations ultérieures peuvent ouvrir le dernier répertoire consulté.

nom_fichier	Indique le nom du fichier que vous voulez ouvrir. La valeur par défaut est NULL.

filtre_fichier	Indique que seuls des fichiers particuliers peuvent être affichés. La valeur par défaut est NULL. Les filtres de fichier prennent diverses formes et ne sont pas pris en compte sur les plates-formes en mode motif et caractère. Sous Windows, ils prennent la forme de "fichiers Write (*.WRI) |*.WRI|" avec pour valeur par défaut "Tous les fichiers (*.*)|*.*|" si NULL. Sous Macintosh, l'attribut accepte une chaîne telle que "Texte."

message	Indique le type de fichier sélectionné. La valeur par défaut est NULL.

type_dialogue	Indique le type de dialogue OPEN_FILE ou SAVE_FILE. La valeur par défaut est OPEN_FILE.

sélection_fichier	Indique si l'utilisateur sélectionne des fichiers ou des répertoires. La valeur par défaut est TRUE. Si le type de dialogue est défini à SAVE_FILE, la sélection de fichier est définie à TRUE.


GET_FILE_NAME - Exemples

/*

** Built-in:  GET_FILE_NAME
** Example:   Can get an image of type TIFF.
*/
DECLARE
  filename VARCHAR2(256)
BEGIN
  filename := GET_FILE_NAME(File_Filter=> 'TIFF Files (*.tif)|*.tif|');
  READ_IMAGE_FILE(filename, 'TIFF', 'block5.imagefld);
END;


GET_FORM_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne des informations sur l'application Forms indiquée. Si votre application comporte plusieurs applications Forms, vous pouvez appeler cette procédure interne pour retourner des informations sur l'application Forms appelante, ainsi que sur l'application Forms en cours ou appelée.

Syntaxe

FUNCTION GET_FORM_PROPERTY
  (formmodule_id  FormModule,
   property       NUMBER);

FUNCTION GET_FORM_PROPERTY
  (formmodule_name  VARCHAR2,
   property         NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_moduleform	ID unique que Form Builder attribue lorsqu'il crée le module application Forms. Utilisez la procédure interne FIND_FORM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type FormModule.

nom_moduleform	Nom VARCHAR2 que vous avez donné au module application Forms lorsque vous l'avez défini.

propriété	Retourne des informations sur des éléments spécifiques de l'application Forms, en fonction des constantes fournies à la procédure interne :

CHARACTER_CELL_HEIGHT  Retourne les dimensions de la cellule VARCHAR2 en unités d'application Forms indiquées dans la propriété Système de coordonnées. Lorsque cette propriété est définie à Cellules de caractère, la valeur est retournée en pixels.

CHARACTER_CELL_WIDTH  Retourne les dimensions de la cellule VARCHAR2 en unités d'application Forms indiquées dans la propriété Système de coordonnées. Lorsque cette propriété est définie à Cellules de caractères, la valeur est retournée en pixels.

COORDINATE_SYSTEM Retourne une chaîne VARCHAR2 indiquant le système de coordonnées utilisé dans le module application Forms :

•	CHARACTER_CELL si le système de coordonnées de l'application Forms est fondé sur des cellules de caractère.

•	POINTS si le système de coordonnées en cours de l'application Forms est défini en points.

•	CENTIMETERS si le système de coordonnées en cours de l'application Forms est défini en centimètres.

•	INCHES si le système de coordonnées en cours de l'application Forms est défini en pouces.

•	PIXELS si le système de coordonnées en cours de l'application Forms est défini en pixels.

CURRENT_RECORD_ATTRIBUTE  Retourne le nom VARCHAR2 de l'attribut visuel nommé à utiliser pour la ligne en cours.

CURRENT_ROW_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

CURRENT_ROW_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

CURRENT_ROW_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

CURRENT_ROW_FONT_SIZE  Taille de la police, indiquée en points.

CURRENT_ROW_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

CURRENT_ROW_FONT_STYLE  Style de la police.

CURRENT_ROW_FONT_WEIGHT Epaisseur de la police.

CURRENT_ROW_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

CURRENT_ROW_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

CURSOR_MODE  Retourne la définition qui indique l'effet que doit avoir une action commit sur les curseurs existants.

DEFER_REQUIRED_ENFORCEMENT  Retourne le paramètre indiquant si la vérification des champs obligatoires a été reportée de la validation des éléments à celle des enregistrements. Les valeurs valides sont TRUE, 4.5 et FALSE.

DIRECTION   Retourne l'orientation de la présentation des objets bidirectionnels. Les valeurs de retour valides sont RIGHT_TO_LEFT et LEFT_TO_RIGHT.

FILE_NAME  Retourne le nom du fichier dans lequel est stockée l'application Forms nommée.

FIRST_BLOCK  Retourne le nom du bloc ayant le numéro de séquence le moins élevé dans l'application Forms indiquée.

FIRST_NAVIGATION_BLOCK  Retourne le nom du bloc dans lequel Form Builder tente de passer par navigation lors du lancement de l'application Forms. Par défaut, le premier bloc de navigation est le premier bloc défini dans le Navigateur d'objet; cependant, la propriété de bloc FIRST_NAVIGATION_BLOCK peut être définie de manière à indiquer un autre bloc comme premier bloc, lors du lancement de l'application Forms.

FORM_NAME Retourne le nom de l'application Forms.

INTERACTION_MODE Retourne le mode d'interaction pour l'application Forms. Les valeurs de retour valides sont : BLOCKING ou NONBLOCKING.

ISOLATION_MODE Retourne le paramètre de mode d'isolation de l'application : READ_COMMITTED ou SERIALIZABLE.

LAST_BLOCK  Retourne le nom du bloc ayant le numéro de séquence le plus élevé dans l'application Forms indiquée.

MAX_QUERY_TIME Retourne la valeur VARCHAR2 qui indique la valeur en cours de la propriété Durée maximum d'interrogation. Cette propriété détermine si l'utilisateur peut mettre fin à une interrogation lorsque la durée de l'interrogation dépasse la valeur de cette propriété.

MAX_RECORDS_FETCHED  Retourne un nombre indiquant le nombre maximum d'enregistrements pouvant être extraits. Cette propriété n'est utile que lorsque la propriété Interroger tous les enregistrements est définie à Yes.

MODULE_NLS_CHARACTER_SET  Retourne la valeur en cours uniquement de la partie jeu de caractères de la variable d'environnement DEVELOPER_NLS_LANG définie pour l'application Forms. Si cette variable n'est pas définie de manière explicite, elle prend par défaut la valeur de la variable NLS_LANG.

MODULE_NLS_LANG  Retourne la totalité de la valeur en cours pour le support de langue nationale contenu dans la variable d'environnement DEVELOPER_NLS_LANG définie pour l'application Forms. Si cette variable n'est pas définie de manière explicite, elle prend par défaut la valeur par défaut de la variable NLS_LANG. MODULE_NLS_LANG équivaut à chaîner MODULE_NLS_LANGUAGE, MODULE_NLS_TERRITORY et MODULE_NLS_CHARACTER_SET.

MODULE_NLS_LANGUAGE  Retourne la valeur en cours uniquement de la partie langue de la variable d'environnement DEVELOPER_NLS_LANG définie par l'application Forms. Si cette variable n'est pas définie de manière explicite, elle prend par défaut la valeur de la variable NLS_LANG.

MODULE_NLS_TERRITORY  Retourne la valeur en cours uniquement de la partie pays de la variable d'environnement DEVELOPER_NLS_LANG définie par l'application Forms. Si cette variable n'est pas définie de manière explicite, elle prend par défaut la valeur de la variable NLS_LANG.

SAVEPOINT_MODE  Retourne PROPERTY_ON ou PROPERTY_OFF  pour indiquer si les points d'enregistrement sont, ou non, pris en compte dans la source de données.

VALIDATION  Retourne TRUE ou FALSE pour indiquer si la validation Form Builder est activée ou non.

VALIDATION_UNIT  Retourne une chaîne VARCHAR2 indiquant l'unité de validation en cours pour l'application Forms :

•	FORM_SCOPE si l'unité de validation en cours est l'application Forms.

•	BLOCK_SCOPE si l'unité de validation en cours est le bloc.

•	RECORD_SCOPE si l'unité de validation en cours est l'enregistrement.

•	ITEM_SCOPE si l'unité de validation en cours est l'élément, ou si cette unité est définie à DEFAULT.


GET_FORM_PROPERTY - Exemples

Exemple 1

/*

** Built-in:  GET_FORM_PROPERTY
** Example:   Determine the name of the first block in the form.
*/
DECLARE
  curform VARCHAR2(40);
  blkname VARCHAR2(40);
BEGIN
  curform := :System.Current_Form;
  blkname := Get_Form_Property(curform,FIRST_BLOCK);
END;

Exemple 2

/*

** Built-in:  GET_FORM_PROPERTY
** Example:   Evaluate the current setting of the
**            Validate property.
*/
BEGIN
  IF Get_Form_Property('curform', VALIDATION) = 'FALSE'
  THEN
    Message ('Form currently has Validation turned OFF');
  END IF;
END;


GET_GROUP_CHAR_CELL - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Retourne la valeur VARCHAR2 ou LONG d'une cellule du groupe d'enregistrements, identifiée par la ligne et la colonne indiquées. Une cellule est l'intersection d'une ligne et d'une colonne.

Syntaxe

FUNCTION GET_GROUP_CHAR_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER);

FUNCTION GET_GROUP_CHAR_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_colonnegroupe	ID unique que Form Builder attribue lorsqu'il crée la colonne de groupe d'enregistrements. Utilisez la procédure interne FIND_COLUMN pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type GroupColumn.

nom_colonnegroupe	Nom, totalement qualifié, que vous avez donné à la colonne de groupe d'enregistrements lorsque vous l'avez définie, précédé du nom du groupe d'enregistrement et d'un point, comme dans nom_enregistrementgroupe.nom_colonnegroupe. Si la colonne a été définie à la suite d'une interrogation, son nom est le même que celui de la colonne de base de données correspondante.

numéro_ligne	Ligne contenant la valeur de la cellule.


GET_GROUP_CHAR_CELL - Restrictions

Le numéro de ligne indiqué doit être dans les limites fournies implicitement par le nombre de lignes du groupe d'enregistrements. Si le numéro de ligne n'existe pas, vous recevez un message d'erreur indiquant que l'index est hors limites.


GET_GROUP_CHAR_CELL - Exemples

/*

** Procédure interne :  GET_GROUP_CHAR_CELL
** Exemple :  Rechercher dans les noms d'un groupe d'enregistrements statiques
**            si la valeur transmise à ce sous-programme
**            existe dans la liste. Retourne le numéro de ligne dans lequel
**            l'enregistrement se trouvait à l'origine, ou zéro (0)
**            si aucune concordance n'est trouvée.
*/
FUNCTION Is_Value_In_List( the_value     VARCHAR2,
               the_rg_name   VARCHAR2,
               the_rg_column VARCHAR2)
RETURN NUMBER IS
  the_Rowcount   NUMBER;
  rg_id          RecordGroup;
  gc_id          GroupColumn;
  col_val        VARCHAR2(80);
  Exit_Function  Exception;
BEGIN
  /*
  ** Déterminer si le groupe d'enregistrements existe et, dans l'affirmative, extraire son ID.
  */
  rg_id := Find_Group( the_rg_name );

  IF Id_Null(rg_id) THEN
    Message('Le groupe d'enregistrements '||the_rg_name||' n'existe pas.');
    RAISE Exit_Function;
  END IF;

  /*
  ** S'assurer que le nom de colonne indiqué existe dans le
  ** groupe d'enregistrements.
  */
  gc_id := Find_Column( the_rg_name||'.'||the_rg_column );

  IF Id_Null(gc_id) THEN
    Message('La colonne'||the_rg_column||'n'existe pas.');
    RAISE Exit_Function;
  END IF;
  /*
  ** Rechercher le nombre d'enregistrements du
  ** groupe.
  */
  the_Rowcount := Get_Group_Row_Count( rg_id );

  /*
  ** Boucler sur les enregistrements en extrayant à chaque itération la valeur de
  ** la colonne indiquée et en la comparant à 'la valeur'
  ** transmise. Comparer les valeurs sans tenir compte de la différence entre
  ** minuscules et majuscules.
  */
  FOR j IN 1..the_Rowcount LOOP
    col_val := GET_GROUP_CHAR_CELL( gc_id, j );
    /*
    ** En cas de concordance, arrêter et revenir au numéro de
    **ligne en cours.
    */
    IF UPPER(col_val) = UPPER(the_value) THEN
      RETURN j;
    END IF;
  END LOOP;

  /*
  ** Un retour ici indique l'absence de correspondance.
  */
  RAISE Exit_Function;
EXCEPTION
  WHEN Exit_Function THEN
    RETURN 0;
END;


GET_GROUP_DATE_CELL - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Retourne la valeur DATE d'une cellule de groupe d'enregistrements, identifiée par la ligne et la colonne indiquées. Une cellule est l'intersection d'une ligne et d'une colonne.

Syntaxe

FUNCTION GET_GROUP_DATE_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER);

FUNCTION GET_GROUP_DATE_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  DATE

Mode Saisie interrogation  oui

Paramètres

id_colonnegroupe	ID unique que Form Builder attribue lorsqu'il crée la colonne de groupe d'enregistrements. Utilisez la procédure interne FIND_COLUMN pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type GroupColumn.

nom_colonnegroupe	Nom, totalement qualifié, que vous avez donné à la colonne de groupe d'enregistrements lorsque vous l'avez définie, précédé du nom du groupe d'enregistrement et d'un point, comme dans nom_enregistrementgroupe.nom_colonnegroupe. Si la colonne a été définie à la suite d'une interrogation, son nom est le même que celui de la colonne de base de données correspondante.

numéro_ligne	Ligne contenant la valeur de la cellule.


GET_GROUP_DATE_CELL - Restrictions

Le numéro de ligne indiqué doit être dans les limites fournies implicitement par le nombre de lignes du groupe d'enregistrements. Si le numéro de ligne n'existe pas, vous recevez un message d'erreur indiquant que l'index est hors limites.


GET_GROUP_DATE_CELL - Exemples

/*

** Built-in:  GET_GROUP_DATE_CELL
** Example:   Lookup a row in a record group, and return the
**            minimum order date associated with that row in
**            the record group. Uses the 'is_value_in_list'
**            function from the GET_GROUP_CHAR_CELL example.
*/
FUNCTION Max_Order_Date_Of( part_no VARCHAR2 )
RETURN DATE IS
  fnd_row NUMBER;
BEGIN
  /*
  ** Try to lookup the part number among the temporary part
  ** list record group named 'TMPPART' in its 'PARTNO'
  ** column.
  */
  fnd_row := Is_Value_In_List( part_no, 'TMPPART', 'PARTNO');
  IF fnd_row = 0 THEN
    Message('Part Number '||part_no||' not found.');
    RETURN NULL;
  ELSE
    /*
    ** Get the corresponding Date cell value from the
    ** matching row.
    */
    RETURN Get_Group_Date_Cell( 'TMPPART.MAXORDDATE', fnd_row );
 END IF;
END;


GET_GROUP_NUMBER_CELL - Procédure interne

 Exemples	   Restrictions	  Toutes les procédures internes

Description

Retourne la valeur NUMBER d'une cellule de groupe d'enregistrements, identifiée par la ligne et la colonne indiquées. Une cellule est l'intersection d'une ligne et d'une colonne.

Syntaxe

FUNCTION GET_GROUP_NUMBER_CELL
  (groupcolumn_id  GroupColumn,
   row_number      NUMBER);

FUNCTION GET_GROUP_NUMBER_CELL
  (groupcolumn_name  VARCHAR2,
   row_number        NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  NUMBER

Mode Saisie interrogation  oui

Paramètres

id_colonnegroupe	ID unique que Form Builder attribue lorsqu'il crée la colonne de groupe d'enregistrements. Utilisez la procédure interne FIND_COLUMN pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type GroupColumn.

nom_colonnegroupe	Nom, totalement qualifié, que vous avez donné à la colonne de groupe d'enregistrements lorsque vous l'avez définie, précédé du nom du groupe d'enregistrement et d'un point, comme dans nom_enregistrementgroupe.nom_colonnegroupe. Si la colonne a été définie à la suite d'une interrogation, son nom est le même que celui de la colonne de base de données correspondante.

numéro_ligne	Ligne contenant la valeur de la cellule.


GET_GROUP_NUMBER_CELL - Restrictions

Le numéro de ligne indiqué doit être dans les limites fournies implicitement par le nombre de lignes du groupe d'enregistrements. Si le numéro de ligne n'existe pas, vous recevez un message d'erreur indiquant que l'index est hors limites.


GET_GROUP_NUMBER_CELL - Exemples

/*

** Built-in:  GET_GROUP_NUMBER_CELL
** Example:   Lookup a row in a record group, and return the
**            minimum order quantity associated with that row
**            in the record group. Uses the
**            'is_value_in_list' function from the
**            GET_GROUP_CHAR_CELL example.
*/
FUNCTION Min_Order_Qty_Of( part_no VARCHAR2 )
RETURN NUMBER IS
  fnd_row NUMBER;
BEGIN
  /*
  ** Try to lookup the part number among the temporary part
  ** list record group named 'TMPPART' in its 'PARTNO'
  ** column.
  */
  fnd_row := Is_Value_In_List( part_no, 'TMPPART', 'PARTNO');

  IF fnd_row = 0 THEN
    Message('Part Number '||part_no||' not found.');
    RETURN NULL;
  ELSE
    /*
    ** Get the corresponding Number cell value from the
    ** matching row.
    */
    RETURN Get_Group_Number_Cell( 'TMPPART.MINQTY', fnd_row );
  END IF;
END;


GET_GROUP_RECORD_NUMBER - Procédure interne

 Exemples	   Restrictions	  Toutes les procédures internes

Description

Retourne le numéro du premier enregistrement du groupe d'enregistrements ayant une valeur de colonne égale au paramètre valeur_cellule. S'il n'y a pas de correspondance, retourne 0 (zéro).

Syntaxe

FUNCTION GET_GROUP_RECORD_NUMBER
  (groupcolumn_id  GroupColumn,
   cell_value      NUMBER);

FUNCTION GET_GROUP_RECORD_NUMBER
  (groupcolumn_name  VARCHAR2,
   cell_value      NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  NUMBER

Mode Saisie interrogation  oui

Paramètres

id_colonnegroupe	ID unique que Form Builder attribue lorsqu'il crée la colonne de groupe d'enregistrements. Utilisez la procédure interne FIND_COLUMN pour retourner l'ID à une variable. Les données de l'ID sont de type GroupColumn.

nom_colonnegroupe	Nom que vous avez donné à la colonne du groupe d'enregistrements lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2

valeur_cellule	Indique la valeur à rechercher dans la colonne de groupe d'enregistrements indiquée. Les données du nom sont de type VARCHAR2, NUMBER ou DATE.


GET_GROUP_RECORD_NUMBER - Restrictions

Le type de données du paramètre valeur_cellule doit correspondre au type de données de la colonne de groupe d'enregistrements. Pour les comparaisons de type VARCHAR2, le programme fait la différence entre les majuscules et les minuscules.


GET_GROUP_RECORD_NUMBER - Exemples

/*

** Procédure interne : GET_GROUP_RECORD_NUMBER
** Exemple :  Rechercher le premier enregistrement du groupe ayant une
**     cellule d'une colonne identique à la valeur
**     indiquée dans le paramètre valeur_cellule.
*/
DECLARE
  rg_id         RecordGroup;
  match         NUMBER := 2212;
  status        NUMBER;
  the_recordnum NUMBER;
BEGIN
  rg_id := Create_Group_From_Query('QGROUP',
          'SELECT ENAME,EMPNO,SAL FROM EMP ORDER BY SAL DESC');
  status := Populate_Group( rg_id );
  */  ***L'état Zéro correspond à la réussite de l'opération***  /
  IF status = 0 THEN
    the_recordnum :=Get_Group_Record_Number('QGROUP.ENAME',match);
    Message('Première concordance : '||to CHAR ( the_recordnum));
  ELSE
    Message('Erreur de création de groupe d'enregistrements de requête.');
    RAISE Form_Trigger_Failure;
  END IF;
END;


GET_GROUP_ROW_COUNT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne le nombre de lignes du groupe d'enregistrements.

Syntaxe

FUNCTION GET_GROUP_ROW_COUNT
  (recordgroup_id  RecordGroup);

FUNCTION GET_GROUP_ROW_COUNT
  (recordgroup_name  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  NUMBER

Mode Saisie interrogation  oui

Paramètres

id_groupenreg	ID unique que Form Builder attribue au groupe d'enregistrements lorsqu'il le crée. Utilisez la procédure interne FIND_GROUP pour retourner l'ID à une variable. Les données de l'ID sont de type RecordGroup.

nom_groupe_enreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Les données du nom sont de type VARCHAR2.


GET_GROUP_ROW_COUNT - Exemples

/*

** Procédure interne :  GET_GROUP_ROW_COUNT
** Exemple :  Déterminer le nombre de lignes extraites par
**            une fonction Populate_Group pour un groupe d'enregistrements d'interrogation.
*/
DECLARE
  rg_id        RecordGroup;
  status       NUMBER;
  the_rowcount NUMBER;
BEGIN
  rg_id := Create_Group_From_Query('MY_QRY_GROUP',
          'SELECT ENAME,EMPNO,SAL FROM EMP ORDER BY SAL DESC');
  status := Populate_Group( rg_id );
  */  ***L'état Zéro correspond à la réussite de l'opération***  /
  IF status = 0 THEN
    the_rowcount := Get_Group_Row_Count( rg_id );
    Message('L'interrogation a extrait'||to_CHAR(the_rowcount)||
           ' record(s)');
  ELSE
    Message(' Erreur de création de message de groupe d'enregistrements d'interrogation.');
    RAISE Form_Trigger_Failure;
  END IF;
END;


GET_GROUP_SELECTION - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Extrait le numéro de séquence de la ligne sélectionnée pour le groupe indiqué.

Syntaxe

FUNCTION GET_GROUP_SELECTION
  (recordgroup_id    RecordGroup,
   selection_number  NUMBER);

FUNCTION GET_GROUP_SELECTION
  (recordgroup_name  VARCHAR2,
   selection_number  NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  NUMBER

Mode Saisie interrogation  oui

Paramètres

id_groupenreg	ID unique que Form Builder attribue au groupe d'enregistrements lorsqu'il le crée. Utilisez la procédure interne FIND_GROUP pour retourner l'ID à une variable. Les données de l'ID sont de type RecordGroup.

nom_groupenreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé.

numéro_sélection	Identifie les lignes sélectionnées, dans l'ordre de leur sélection. Par exemple, si les lignes sélectionnées portent les numéros 3, 7 et 21, leurs valeurs de sélection respectives sont 1, 2 et 3. L'argument Numéro de sélection accepte une valeur de type NUMBER.


GET_GROUP_SELECTION - Exemples

/*

** Procédure interne :  GET_GROUP_SELECTION
** Exemple :  Retourner une liste (chaîne) de numéros de
**            pièces sélectionnées, séparés par des virgules,
**            provenant du groupe d'enregistrement PARTNUMS existant.
*/
FUNCTION Comma_Separated_Partnumbers
RETURN VARCHAR2 IS
  tmp_str      VARCHAR2(2000);
  rg_id        RecordGroup;
  gc_id        GroupColumn;
  the_Rowcount NUMBER;
  sel_row      NUMBER;
  the_val      VARCHAR2(20);
BEGIN
  rg_id := Find_Group('PARTNUMS');
  gc_id := Find_Column('PARTNUMS.PARTNO');
  /*
  ** Rechercher combien de lignes du groupe d'enregistrements ont
  ** été marquées "sélectionnées".
  */
  the_Rowcount := Get_Group_Selection_Count( rg_id );
  FOR j IN 1..the_Rowcount LOOP
    /*
    ** Extraire le numéro de ligne de la ligne j sélectionnée.
    */
    sel_row := Get_Group_Selection( rg_id, j );
    /*
    ** Extraire la valeur VARCHAR2 de la ligne j.
    */
    the_val := Get_Group_CHAR_Cell( gc_id, sel_row );
    IF j = 1 THEN
      tmp_str := the_val;
    ELSE
      tmp_str := tmp_str||','||the_val;
    END IF;
  END LOOP;
  RETURN tmp_str;
END;


GET_GROUP_SELECTION_COUNT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne le nombre de lignes du groupe d'enregistrements indiqué qui ont été marquées, par programme, comme étant sélectionnées par un appel de SET_GROUP_SELECTION.

Syntaxe

FUNCTION GET_GROUP_SELECTION_COUNT
  (recordgroup_id  RecordGroup);

FUNCTION GET_GROUP_SELECTION_COUNT
  (recordgroup_name  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  NUMBER

Mode Saisie interrogation  oui

Paramètres

id_groupenreg	ID unique que Form Builder attribue au groupe d'enregistrements lorsqu'il le crée. Utilisez la procédure interne FIND_GROUP pour retourner l'ID à une variable. Les données de l'ID sont de type RecordGroup.

nom_groupenreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé.


GET_GROUP_SELECTION_COUNT - Exemples

/*

** Procédure interne :  GET_GROUP_SELECTION_COUNT
** Exemple :   Voir GET_GROUP_SELECTION
*/


GET_INTERFACE_POINTER

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

 Retourne un pointeur vers un objet d'automatisation OLE2.

Syntaxe

FUNCTION GET_INTERFACE_POINTER
  (item_id  Item);

FUNCTION GET_INTERFACE_POINTER
  (item_name  VARCHAR2);

Retourne PLS_INTEGER

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.


GET_INTERFACE_POINTER - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


GET_INTERFACE_POINTER - Exemples

/*

** Procédure interne : GET_INTERFACE_POINTER
** Exemple:  Rechercher un pointeur vers un objet OLE
*/
FUNCTION HandleMap(MapName VARCHAR2) RETURN OLE2.obj_type is
BEGIN
 RETURN(Get_interface_Pointer(MapName));
END;


GET_ITEM_INSTANCE_PROPERTY - Procédure interne

 Toutes les procédures internes

Description

Retourne les valeurs de propriété correspondant à l'instance de l'élément indiqué. GET_ITEM_INSTANCE_PROPERTY retourne la valeur initiale ou la valeur définie en dernier par SET_ITEM_INSTANCE_PROPERTY pour l'instance  de l'élément indiqué. Elle ne retourne pas la valeur effective d'une propriété (obtenue en combinant les propriétés indiquées pour l'instance de l'élément, l'élément et les niveaux de bloc). Pour obtenir des informations sur les valeurs de propriété effectives, reportez-vous à SET_ITEM_INSTANCE_PROPERTY.

Syntaxe

FUNCTION GET_ITEM_INSTANCE_PROPERTY
  (item_id  ITEM,
   record_number  NUMBER,
   property  NUMBER);

FUNCTION GET_ITEM_INSTANCE_PROPERTY
  (item_name  VARCHAR2,
   record_number  NUMBER,
   property   NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder attribue à l'objet lorsqu'il le crée. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type ITEM.

nom_élément	Nom que vous avez donné à l'objet lorsque vous l'avez créé.

numéro_enregistrement	Numéro d'enregistrement en cours (ENREGISTREMENT EN COUR)S.

propriété	Propriété dont vous voulez extraire la valeur pour l'élément donné. Les valeurs de propriété valides sont les suivantes :

BORDER_BEVEL  Retourne RAISED , LOWERED ou PLAIN si la propriété BORDER_BEVEL est définie sur RAISED, LOWERED ou PLAIN respectivement au niveau de l'instance de l'élément. Si BORDER_BEVEL n'est pas définie au niveau de l'instance de l'élément, cette propriété retourne " "

INSERT_ALLOWED  Retourne la chaîne VARCHAR2 TRUE si la propriété INSERT_ALLOWED de l'occurrence de l'élément est définie sur vrai. Retourne la chaîne FALSE si la propriété est définie sur faux.

NAVIGABLE  Retourne la chaîne VARCHAR2 TRUE si la propriété NAVIGABLE de l'instance de l'élément est définie sur vrai. Retourne la chaîne FALSE si la propriété est définie sur faux.

REQUIRED  Retourne la chaîne VARCHAR2 TRUE si la propriété REQUIRED de l'instance de l'élément est définie sur vrai. Retourne la chaîne FALSE si la propriété est définie sur faux.

SELECTED_RADIO_BUTTON  Retourne le libellé du bouton d'option sélectionné dans le groupe de l'enregistrement indiqué. Retourne la valeur NULL si aucun bouton n'est sélectionné dans le groupe de boutons d'option de l'enregistrement indiqué, ou si ce dernier a été déplacé en-dehors de la vue.

UPDATE_ALLOWED  Retourne la chaîne VARCHAR2 TRUE si la propriété UPDATE_ALLOWED de l'instance de l'élément est définie sur vrai. Retourne la chaîne FALSE si la propriété est définie sur faux.

VISUAL_ATTRIBUTE  Retourne le nom de l'attribut visuel en vigueur. Si aucun attribut visuel nommé n'est attribué à l'instance de l'élément, retourne DEFAULT pour un attribut visuel par défaut. Retourne '' si VISUAL_ATTRIBUTE n'est pas indiqué au niveau de l'instance de l'élément.


GET_ITEM_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne les valeurs des propriétés de l'élément indiqué. Notez que, dans certains cas, vous pouvez éventuellement lire (get), mais non définir (set), certaines propriétés de l'objet.

Syntaxe

FUNCTION GET_ITEM_PROPERTY
  (item_id,  ITEM
   property  NUMBER);

FUNCTION GET_ITEM_PROPERTY
  (item_name  VARCHAR2,
   property   NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder attribue à l'objet lorsqu'il le crée. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type ITEM.

nom_élément	Nom que vous avez donné à l'objet lorsque vous l'avez créé.

propriété	Propriété dont vous voulez extraire la valeur pour l'élément donné. Les valeurs de propriété valides sont les suivantes :

AUTO_HINT  Retourne la chaîne VARCHAR2 si la propriété Aide automatique est définie à Yes, et FALSE dans le cas contraire.

AUTO_SKIP  Retourne la chaîne VARCHAR2 TRUE si la propriété Saut automatique est définie à Yes pour l'élément, et FALSE dans le cas contraire.

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

BLOCK_NAME  Retourne le nom de bloc VARCHAR2 de l'élément.

BORDER_BEVEL  Retourne RAISED, LOWERED ou PLAIN si la propriété BORDER_BEVEL est définie sur RAISED, LOWERED ou PLAIN respectivement au niveau de l'élément.

CASE_INSENSITIVE_QUERY  Retourne la chaîne VARCHAR2 TRUE si cette propriété est définie à yes pour l'élément, et FALSE dans le cas contraire.

CASE_RESTRICTION  Retourne UPPERCASE si le texte de l'élément doit être affiché en Majuscules, et LOWERCASE dans le cas contraire ou NONE s'il n'y a pas de distinction entre les majuscules et les minuscules.

COLUMN_NAME  Retourne le nom de colonne de la base de données à laquelle l'élément bloc de données est associé.

COMPRESS Retourne une valeur (TRUE ou FALSE) qui indique si l'objet son, lu dans une application Forms depuis un fichier, doit être compressé lors de la conversion en format interne Oracle.

CONCEAL_DATA  Retourne la chaîne VARCHAR2 TRUE si le texte qu'un opérateur entre dans l'élément texte doit être masqué, et FALSE dans le cas contraire.

CURRENT_RECORD_ATTRIBUTE  Retourne le nom VARCHAR2 de l'attribut visuel nommé pour l'élément indiqué.

CURRENT_ROW_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

CURRENT_ROW_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

CURRENT_ROW_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

CURRENT_ROW_FONT_SIZE  Taille de la police, indiquée en points.

CURRENT_ROW_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

CURRENT_ROW_FONT_STYLE  Style de la police.

CURRENT_ROW_FONT_WEIGHT Epaisseur de la police.

CURRENT_ROW_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

CURRENT_ROW_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

DATABASE_VALUE  Pour un élément de table de base, retourne la valeur qui a été à l'origine extraite de la base de données.

DATATYPE  Retourne le type de données de l'élément : ALPHA, CHAR, DATE, JDATE, EDATE, DATETIME, INT, RINT, MONEY, RMONEY, NUMBER, RNUMBER, TIME, LONG, GRAPHICS ou IMAGE. Notez que certains types d'élément, comme les boutons et les graphiques, n'ont pas de type de données. Pour éviter l'apparition d'un message d'erreur dans ces cas, étudiez les types d'éléments avant d'extraire les types de données.

DIRECTION   Retourne l'orientation de la présentation des objets bidirectionnels. Les valeurs de retour valides sont RIGHT_TO_LEFT et LEFT_TO_RIGHT.

DISPLAYED Retourne la chaîne VARCHAR2 TRUE ou FALSE.

ECHO  Retourne la chaîne VARCHAR2 TRUE si la propriété Masquer données est définie à No pour l'élément, et FALSE dans le cas contraire.

EDITOR_NAME  Retourne le nom de l'éditeur attaché à l'élément texte.

EDITOR_X_POS  Retourne la coordonnée x de l'éditeur attaché à l'élément texte (correspond à la propriété Position de l'éditeur).

EDITOR_Y_POS   Retourne la coordonnée y de l'éditeur attaché à l'élément texte. (Correspond à la propriété Position de l'éditeur.)

ENFORCE_KEY  Retourne le nom de l'élément dont la valeur est copiée dans cet élément comme une clé étrangère lors de la création d'un nouvel enregistrement dans le cadre d'une relation maître-détail. (Correspond à la propriété Copie.)

ENABLED  Retourne TRUE si la propriété Activé est définie à Yes, et FALSE dans le cas contraire.

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FIXED_LENGTH  Retourne la chaîne VARCHAR2 TRUE si la propriété est définie à Yes pour l'élément, et FALSE dans le cas contraire.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police indiquée en centièmes d'un point (ex. un élément d'une taille de police de 8 points retourne 800).

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

FORMAT_MASK  Retourne le masque de format utilisé pour l'élément texte.

HEIGHT  Retourne la hauteur de l'élément. La taille des unités dépend du Système de coordonnées et de l'échelle par défaut des polices que vous avez indiquée pour l'application Forms.

HINT_TEXT  Retourne le texte de l'aide sur l'élément, affiché dans la ligne de message lors de l'exécution.

ICON_NAME  Retourne le nom de fichier de la ressource d'icône associée à un élément bouton dont la propriété d'icône est définie à TRUE.

ICONIC_BUTTON  Retourne la valeur VARCHAR2 TRUE si le bouton est défini comme un bouton d'icône, et FALSE dans le cas contraire.

IMAGE_DEPTH  Retourne la profondeur de couleur de l'élément image indiqué.

IMAGE_FORMAT  Retourne le format de l'élément image indiqué.

INSERT_ALLOWED  Retourne la chaîne VARCHAR2 TRUE si la propriété INSERT_ALLOWED est définie sur vrai au niveau de l'élément. Retourne la chaîne FALSE si la propriété est définie sur faux.

ITEM_CANVAS  Retourne le nom du canevas auquel l'élément est attribué.

ITEM_IS_VALID Retourne la chaîne VARCHAR2 TRUE si l'élément en cours est valide, et FALSE dans le cas contraire.

ITEM_NAME  Retourne le nom de l'élément.

ITEM_TAB_PAGE  Retourne le nom de la page onglet à laquelle l'élément est attribué. Notez que l'élément doit être attribué à un canevas onglet pour que Form Builder puisse retourner le nom de la page onglet de l'élément.

ITEM_TYPE  Retourne le type de l'élément : BUTTON si l'élément est un bouton, CHART ITEM si l'élément est un élément graphique, CHECKBOX si l'élément est une case à cocher, DISPLAY ITEM si l'élément est un élément affiché, IMAGE si l'élément est un élément image, LIST si l'élément est un élément liste, OLE OBJECT si l'élément est un contrôle OCX ou un conteneur OLE, RADIO GROUP si l'élément est un groupe de boutons d'option, TEXT ITEM si l'élément est un élément texte, USER AREA si l'élément est une zone utilisateur et VBX CONTROL si l'élément est un élément personnalisé qui est un contrôle VBX.

JUSTIFICATION  Retourne l'alignement des éléments texte et des éléments affichables uniquement. Les valeurs de retour valides sont START, END, LEFT, CENTER et RIGHT.

KEEP_POSITION  Retourne la chaîne VARCHAR2 TRUE si le curseur doit ré-entrer à l'endroit exact où il se trouvait lorsqu'il et sorti de l'élément et FALSE s'il doit ré-entrer à sa position par défaut.

LABEL  Retourne la valeur VARCHAR2 définie pour la propriété Libellé de l'élément. Cette propriété n'est valide que pour les éléments qui ont des libellés comme les boutons et les cases à cocher.

LIST  Retourne la chaîne VARCHAR2 TRUE si l'élément est un élément texte à laquelle une liste de valeur (LOV) est attachée, et FALSE dans le cas contraire.

LOCK_RECORD_ON_CHANGE  Retourne la chaîne VARCHAR2 TRUE si Form Builder doit tenter de verrouiller une ligne en fonction d'une éventuelle modification de cet élément, et FALSE dans le cas contraire.

LOV_NAME  Retourne le nom VARCHAR2 de la LOV associée à l'élément donné. Si le nom de la LOV n'existe pas, un message d'erreur apparaît.

LOV_X_POS Retourne la coordonnée x de la LOV associée à l'élément texte. (Correspond à la propriété Position X de la liste.)

LOV_Y_POS Retourne la coordonnée y de la LOV associée à l'élément texte. (Correspond à la propriété Position Y de la liste.)

MAX_LENGTH  Retourne la longueur maximum définie par l'élément. La valeur est retournée sous la forme d'un NOMBRE entier.

MERGE_CURRENT_ROW_VA Fusionne le contenu de l'attribut visuel précisé avec celui de la ligne actuelle (au lieu de le remplacer).

MERGE_TOOLTIP_ATTRIBUTE Fusionne le contenu de l'attribut visuel précisé avec l'attribut visuel actuel de la bulle d'information (au lieu de le remplacer).

MERGE_VISUAL_ATTRIBUTE  Fusionne le contenu de l'attribut visuel précisé avec l'attribut visuel actuel de l'objet (au lieu de le remplacer).

MOUSE_NAVIGATE  Retourne la chaîne VARCHAR2 TRUE si la propriété Navigation à la souris est définie à Yes pour l'élément, et FALSE dans le cas contraire.

MULTI_LINE  Retourne la valeur VARCHAR2 TRUE si l'élément est un élément texte multiligne, et FALSE dans le cas contraire.

NAVIGABLE  Retourne la chaîne VARCHAR2 TRUE si la propriété NAVIGABLE de l'instance de l'élément est définie sur vrai au niveau de l'élément. Retourne la chaîne FALSE si la propriété est définie sur faux.

NEXTITEM  Retourne le nom du prochain élément de la séquence de navigation par défaut, définie par l'ordre des éléments dans le Navigateur d'objet.

NEXT_NAVIGATION_ITEM  Retourne le nom de l'élément défini comme "élément de navigation suivant" par rapport à cet élément en cours.

POPUPMENU_CONTENT_ITEM  Retourne les définitions de l'une des propriétés d'élément de menu instantané OLE :

•	POPUPMENU_COPY_ITEM

•	POPUPMENU_CUT_ITEM

•	POPUPMENU_DELOBJ_ITEM

•	POPUPMENU_INSOBJ_ITEM

•	POPUPMENU_LINKS_ITEM

•	POPUPMENU_OBJECT_ITEM

•	POPUPMENU_PASTE_ITEM

•	POPUPEMNU_PASTESPEC_ITEM

Retourne la chaîne VARCHAR2 HIDDEN si l'élément de menu instantané OLE n'est pas affiché, et ENABLED si cet élément est affiché et activé. Retourne la chaîne VARCHAR2 DISABLED si l'élément de menu instantané OLE est affiché et non activé, et UNSUPPORTED si la plate-forme n'est pas une plate-forme Microsoft Windows.

PREVIOUSITEM  Retourne le nom du précédent élément.

PREVIOUS_NAVIGATION_ITEM  Retourne le nom de l'élément défini comme "élément de navigation précédent" par rapport à cet élément en cours.

PRIMARY_KEY  Retourne la valeur VARCHAR2 TRUE si l'élément est une clé primaire, et FALSE dans le cas contraire.

PROMPT_ALIGNMENT_OFFSET  Retourne la distance entre l'élément et son invite sous forme de valeur VARCHAR2.

PROMPT_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

PROMPT_DISPLAY_STYLE  Retourne le style d'affichage de l'invite : FIRST_RECORD, HIDDEN ou ALL_RECORDS.

PROMPT_EDGE  Retourne une valeur indiquant le coin auquel est attachée l'invite de l'élément : START, END, TOP ou BOTTOM.

PROMPT_EDGE_ALIGNMENT  Retourne une valeur indiquant le coin sur lequel est alignée l'invite de l'élément : START, END ou CENTER.

PROMPT_EDGE_OFFSET  Retourne la distance entre l'élément et son invite sous forme de valeur VARCHAR2.

PROMPT_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

PROMPT_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

PROMPT_FONT_SIZE  Taille de la police, indiquée en points.

PROMPT_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

PROMPT_FONT_STYLE  Style de la police.

PROMPT_FONT_WEIGHT  Epaisseur de la police.

PROMPT_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

PROMPT_TEXT  Retourne le libellé de texte qui est affiché pour un élément.

PROMPT_TEXT_ALIGNMENT  Retourne une valeur indiquant le mode de justification de l'invite : START, LEFT, RIGHT, CENTER ou END.

PROMPT_VISUAL_ATTRIBUTE Retourne une valeur qui indique l'attribut visuel nommé de l'invite.

PROMPT_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

QUERYABLE  Retourne la chaîne VARCHAR2 TRUE si l'élément peut être inclus dans une interrogation, et FALSE dans le cas contraire.

QUERY_LENGTH  Retourne le nombre de caractères qu'un opérateur est autorisé à entrer dans l'élément texte lorsque l'application Forms est en mode Saisie interrogation.

QUERY_ONLY  Retourne la chaîne VARCHAR2 TRUE si la propriété est définie à Yes pour l'élément, et FALSE dans le cas contraire.

RANGE_HIGH  Retourne la valeur supérieure de la limite. (Correspond à la propriété Plage.)

RANGE_LOW Retourne la valeur basse de la limite. (Correspond à la propriété Plage.)

REQUIRED  Pour les éléments texte multilignes, retourne la chaîne VARCHAR2 TRUE si la propriété REQUIRED de l'instance de l'élément est définie sur vrai au niveau de l'élément. Retourne la chaîne FALSE si la propriété est définie sur faux.

SCROLLBAR  Retourne la chaîne VARCHAR2 TRUE si la propriété Afficher barre de défilement est définie à Yes, et FALSE dans le cas contraire.

SHOW_FAST_FORWARD_BUTTON  Retourne la valeur VARCHAR2 TRUE si [image] est affiché dans l'élément son indiqué, et FALSE dans le cas contraire.

SHOW_PALETTE  Retourne la valeur VARCHAR2 TRUE si la palette de manipulation d'image est affichée à côté de l'élément image indiqué, et FALSE dans le cas contraire.

SHOW_PLAY_BUTTON  Retourne la valeur VARCHAR2 TRUE si [image] est affiché dans l'élément son indiqué, et FALSE dans le cas contraire.

SHOW_RECORD_BUTTON  Retourne la valeur VARCHAR2 TRUE si [image] est affiché dans l'élément son indiqué, et FALSE dans le cas contraire.

SHOW_REWIND_BUTTON  Retourne la valeur VARCHAR2 TRUE si [image] est affiché dans l'élément son indiqué, et FALSE dans le cas contraire.

SHOW_SLIDER  Retourne la valeur VARCHAR2 TRUE si la commande de position Curseur de défilement est affichée dans l'élément son indiqué, et FALSE dans le cas contraire.

SHOW_TIME_INDICATOR  Retourne la valeur VARCHAR2 TRUE si [image] est affiché dans l'élément son indiqué, et FALSE dans le cas contraire.

SHOW_VOLUME_CONTROL  Retourne la valeur VARCHAR2 TRUE si [image] est affiché dans l'élément son indiqué, et FALSE dans le cas contraire.

TOOLTIP_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

TOOLTIP_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

TOOLTIP_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

TOOLTIP_FONT_SIZE  Taille de la police, indiquée en points.

TOOLTIP_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

TOOLTIP_FONT_STYLE  Style de la police.

TOOLTIP_FONT_WEIGHT  Epaisseur de la police.

TOOLTIP_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

TOOLTIP_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

TOOLTIP_TEXT Retourne le texte de bulle d'information de l'élément.

UPDATE_ALLOWED  Retourne la chaîne VARCHAR2 TRUE si la propriété UPDATE_ALLOWED de l'instance de l'élément est définie sur vrai au niveau de l'élément. Retourne la chaîne FALSE si la propriété est définie sur faux.

UPDATE_COLUMN  Retourne la chaîne VARCHAR2 TRUE si Form Builder doit considérer l'élément comme mis à jour, et FALSE dans le cas contraire.

UPDATE_NULL  Retourne la chaîne VARCHAR2 TRUE si l'élément doit être mis à jour uniquement s'il a la valeur NULL, et FALSE dans le cas contraire. (Correspond à la propriété Mettre à jour si NULL.)

UPDATE_PERMISSION  Retourne la chaîne VARCHAR2 TRUE si la propriété UPDATE_PERMISSION est définie à ON, ce qui active les propriétés UPDATEABLE et UPDATE_NULL de l'élément. La chaîne VARCHAR2 FALSE indique que les propriétés UPDATEABLE et UPDATE_NULL sont désactivées.

VALIDATE_FROM_LIST  Retourne la chaîne VARCHAR2 TRUE si Form Builder doit valider la valeur de l'élément texte en la comparant aux valeurs de la LOV attachée, et FALSE dans le cas contraire.

VISIBLE  Retourne la chaîne VARCHAR2 TRUE si la propriété est définie à Yes pour l'élément, et FALSE dans le cas contraire.

VISUAL_ATTRIBUTE  Retourne le nom de l'attribut visuel en vigueur. Si aucun attribut visuel nommé n'est attribué à l'élément, retourne DEFAULT pour un attribut visuel par défaut.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

WIDTH  Retourne la largeur de l'élément.

WINDOW_HANDLE  Retourne une constante VARCHAR2 interne unique, utilisée pour faire référence à des objets. Retourne la valeur VARCHAR2 '0' si la plate-forme n'est pas une plate-forme Microsoft Windows.

WRAP_STYLE  Retourne VARCHAR2 si l'élément a la propriété Type de césure définie à VARCHAR2, WORD si la césure est définie, NONE si aucun type de césure n'est défini pour l'élément.

X_POS   Retourne la coordonnée x qui reflète l'emplacement de l'angle supérieur gauche de l'élément par rapport à l'angle supérieur gauche du canevas.

Y_POS   Retourne la coordonnée y qui reflète l'emplacement de l'angle supérieur gauche de l'élément par rapport à l'angle supérieur gauche du canevas.

Notes d'utilisation

Si vous tentez d'utiliser GET_ITEM_PROPERTY pour obtenir une propriété d'un élément qui n'est pas valide pour celui-ci, vous recevez un message d'erreur, par exemple, lors d'une tentative d'extraction de LIST d'un groupe de boutons d'option, car LIST n'est valide que pour les éléments texte.


GET_ITEM_PROPERTY - Exemples

/*

**  Procédure interne :  GET_ITEM_PROPERTY
**  Exemple :  Passer au prochain élément obligatoire du
**             bloc en cours.      */
PROCEDURE Go_Next_Required_Item IS
  cur_blk        VARCHAR2(40);
  cur_itm        VARCHAR2(80);
  orig_itm       VARCHAR2(80);
  first_itm      VARCHAR2(80);
  wrapped        BOOLEAN := FALSE;
  found          BOOLEAN := FALSE;
  Exit_Procedure EXCEPTION;
  /*
  ** Fonction locale qui retourne le nom de l'élément
  ** après celui qui a été transféré. NVL déclare que l'élément qui
  ** suit le dernier du bloc est égal à nouveau au premier élément.
  */
  FUNCTION The_Item_After(itm VARCHAR2)
  RETURN VARCHAR2 IS
 BEGIN
    RETURN cur_blk||'.'||
      NVL(Get_Item_Property(itm,NEXTITEM),
      first_itm);
 END;
BEGIN
  cur_blk   := :System.Cursor_Block;
  first_itm := Get_Block_Property( cur_blk, FIRST_ITEM );
  orig_itm  := :System.Cursor_Item;
  cur_itm   := The_Item_After(orig_itm);
  /*
  ** Boucler jusqu'au retour au nom de l'élément de départ.
  */
  WHILE (orig_itm <> cur_itm) LOOP

    /*
    ** Si l'élément est obligatoire, définir l'indicateur Trouvé et quitter la procédure.
    */
    IF Get_Item_Property(cur_itm,REQUIRED) = 'TRUE' THEN
      found := TRUE;
      RAISE Exit_Procedure;
    END IF;
    /*
    ** Configuration de la prochaine itération.
    */
    cur_itm := The_Item_After(cur_itm);
  END LOOP;
  /*
  ** Un retour ici indique que la boucle des noms d'éléments du
  ** bloc est terminée.
  */
  wrapped := TRUE;
  RAISE Exit_Procedure;
EXCEPTION
  WHEN Exit_Procedure THEN
    /*
    ** Si un élément est trouvé, sans retour à
    ** l'élément de départ, passer ici.
    */
    IF found AND NOT wrapped THEN
      Go_Item(cur_ itm);
    END IF;
END;


GET_LIST_ELEMENT_COUNT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne le nombre total d'éléments d'une liste, y compris des éléments ayant des valeurs NULL.

Syntaxe

FUNCTION GET_LIST_ELEMENT_COUNT
  (list_id  Item);

FUNCTION GET_LIST_ELEMENT_COUNT
  (list_name  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_liste	Permet d'indiquer l'ID unique que Form Builder attribue lorsqu'il crée l'élément liste. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_liste	Nom que vous avez donné à la liste lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.


GET_LIST_ELEMENT_COUNT - Exemples

/*

**  Procédure interne :  GET_LIST_ELEMENT_COUNT
**  Exemple :  Ajouter un élément à la liste d'éléments.
**             Avant d'ajouter l'élément, s'assurer qu'il ne figure pas
**             dans la liste en cours.
*/
DECLARE
   total_list_count     NUMBER(2);
   loop_index_var       NUMBER(2) := 1;
   list_element         VARCHAR2(50);
   list_element_value  VARCHAR2(50);
   list_element_to_add   VARCHAR2(50);
   list_value_to_add   VARCHAR2(50);
   element_match       VARCHAR2(5) := 'TRUE';
   value_match          VARCHAR2(5) := 'TRUE';
BEGIN
/*
** Déterminer le nombre total d'éléments de la liste.
*/
   total_list_count := Get_List_Element_Count(list_id);
/*
** Comparer les éléments de la liste en cours à ceux
** qui seront ajoutés.
*/
   LOOP
     list_element := Get_List_Element_Value(list_id,
     loop_index_var);
     loop_index_var := loop_index_var + 1;
     IF list_element_to_add = list_element THEN
       element_match := 'FALSE';
     END IF;
     EXIT WHEN list_element = list_element_to_add OR
     loop_index_var = total_list_count;
   END LOOP;
/*
** Comparer les valeurs des éléments de la liste en cours
** à la valeur qui doit être ajoutée.
*/
   loop_index_var := 1;
   LOOP
     list_element_value:= Get_List_Element_Value(list_id,
        loop_index_var);
     loop_index_var := loop_index_var + 1;
     IF list_value_to_add = list_element_value THEN
       value_match := 'FALSE';
     END IF;
     EXIT WHEN list_element_value = list_value_to_add OR
     loop_index_var = total_list_count;
   END LOOP;
/*
**  Ajouter l'élément et la valeur s'ils ne figurent pas dans la liste en cours.
*/
   IF element_match AND value_match = 'TRUE' THEN
     Add_List_Element(list_id, list_name, list_element_to_add,
     list_value_to_add);
   END IF
END;


GET_LIST_ELEMENT_LABEL - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne des informations sur le libellé de l'élément de liste demandé.

Syntaxe

FUNCTION GET_LIST_ELEMENT_LABEL
  (list_id     ITEM,
   list_name   VARCHAR2,
   list_index  NUMBER);

FUNCTION GET_LIST_ELEMENT_LABEL
  (list_name   VARCHAR2,
   list_index  NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_liste	Permet d'indiquer l'ID unique que Form Builder attribue lorsqu'il crée l'élément liste. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_liste	Nom que vous avez donné à la liste lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

index_liste	Indique la valeur de l'index de liste. Cet index est basé sur la valeur 1. S'il est supérieur au nombre d'éléments de la liste, la procédure GET_LIST_ELEMENT_LABEL échoue.

Notes d'utilisation

La valeur associée à un élément de liste n'est pas obligatoirement la valeur en cours de l'élément liste, c'est-à-dire la valeur de :block.list_item.


GET_LIST_ELEMENT_LABEL - Exemples

/*

**  Procédure interne :  GET_LIST_ELEMENT_LABEL
**  Exemple :   Voir GET_LIST_ELEMENT_COUNT
*/


GET_LIST_ELEMENT_VALUE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne la valeur associée à l'élément liste indiqué.

Syntaxe

FUNCTION GET_LIST_ELEMENT_VALUE
  (list_id     ITEM,
   list_index  NUMBER);

FUNCTION GET_LIST_ELEMENT_VALUE
  (list_name   VARCHAR2,
   list_index  NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_liste	Permet d'indiquer l'ID unique que Form Builder attribue lorsqu'il crée l'élément liste. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_liste	Nom que vous avez donné à la liste lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

index_liste	Indique la valeur de l'index de liste. Cet index est basé sur la valeur 1. Elle retourne une chaîne contenant la valeur de l'élément demandé. Si l'index est supérieur au nombre d'éléments de la liste, la procédure GET_LIST_ELEMENT_LABEL échoue.


GET_LIST_ELEMENT_VALUE - Exemples

/*

**  Procédure interne :  GET_LIST_ELEMENT_VALUE
**  Exemple :   Voir GET_LIST_ELEMENT_COUNT
*/


GET_LOV_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne des informations sur une liste de valeurs (LOV) indiquée.

Vous devez lancer un appel à la procédure interne par valeur de propriété que vous voulez extraire.

Syntaxe

FUNCTION GET_LOV_PROPERTY
  (lov_id, property  LOV);

FUNCTION GET_LOV_PROPERTY
  (lov_name  VARCHAR2,
   property  NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_lov	ID unique que Form Builder attribue à l'objet lorsqu'il le crée. Utilisez la procédure interne FIND_LOV pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type LOV.

name_lov	Nom que vous avez donné à l'objet lorsque vous l'avez créé.

propriété	Propriété que vous voulez définir pour la LOV indiquée. Les propriétés possibles sont les suivantes :

AUTO_REFRESH  Retourne la chaîne VARCHAR2 TRUE si la propriété est définie à Yes, c'est-à-dire si Form Builder réexécute l'interrogation chaque fois que la LOV est appelée, et FALSE dans le cas contraire.

GROUP_NAME  Retourne le nom du groupe d'enregistrements associé à cette LOV. Les données du nom sont de type VARCHAR2.

HEIGHT   Retourne la hauteur de la LOV. La taille des unités dépend du Système de coordonnées et de l'échelle de police par défaut que vous avez indiqués pour l'application Forms.

WIDTH  Retourne la largeur de la LOV. La taille des unités dépend du Système de coordonnées et de l'échelle de police par défaut que vous avez indiqués pour l'application Forms.

X_POS   Retourne la coordonnée x qui reflète la position de l'angle supérieur gauche de la LOV par rapport à l'angle supérieur gauche de l'écran.

Y_POS  Retourne la coordonnée y qui reflète la position de l'angle supérieur gauche de la LOV par rapport à l'angle supérieur gauche de l'écran.


GET_LOV_PROPERTY - Exemples

/*

** Procédure interne :  GET_LOV_PROPERTY
** Exemple :  Rechercher la largeur/hauteur de la LOV.
*/
DECLARE
  the_width  NUMBER;
  the_height NUMBER;
  lov_id      LOV;
BEGIN
  lov_id     := Find_LOV('My_LOV_1');
  the_width := Get_LOV_Property(lov_id, WIDTH);
  the_height := Get_LOV_Property(lov_id,HEIGHT);
END;


GET_MENU_ITEM_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne l'état de l'option de menu donnée, ayant la propriété spécifique. Vous pouvez utiliser cette procédure interne pour connaître l'état de la propriété, puis le modifier à l'aide de la procédure interne SET_MENU_ITEM_PROPERTY.

Syntaxe

FUNCTION GET_MENU_ITEM_PROPERTY
  (menuitem_id  MenuItem,
   property     NUMBER);

FUNCTION GET_MENU_ITEM_PROPERTY
  (menu_name.menuitem_name  VARCHAR2,
   property                 NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_élémentmenu	ID élément que Form Builder attribue à l'élément menu lorsque vous le créez. Utilisez la procédure interne FIND_MENU_ITEM pour retourner l'ID à une variable de type approprié. Les données sont de type MenuItem.

nom_menu. nom_élémentmenu	Nom que vous avez donné à l'élément menu lorsque vous l'avez créé. Si vous indiquez le nom de l'élément menu, ajoutez le nom du menu le qualifiant, par exemple nom_menu.nom_élémentmenu. Les données sont de type VARCHAR2.

propriété	Pour extraire des informations sur des éléments menu, indiquez l'une des constantes suivantes :

CHECKED  Retourne la chaîne VARCHAR2 TRUE si un élément de menu de type Case à cocher est Coché, et FALSE dans le cas contraire. Retourne la chaîne VARCHAR2 TRUE si un élément de menu de bouton d'option est l'élément sélectionné dans le groupe de boutons d'option, et FALSE dans le cas contraire. Retourne TRUE pour les autres types d'éléments de menu.

ENABLED  Retourne la chaîne VARCHAR2 TRUE si un élément de menu est activé, et FALSE dans le cas contraire (dans ce cas, l'élément est grisé et non disponible).

ICON_NAME  Retourne le nom de fichier de la ressource d'icône associée à un élément menu dont la propriété Icône dans menu est définie à TRUE.

LABEL  Retourne la chaîne VARCHAR2 du libellé de l'élément de menu.

VISIBLE  Retourne la chaîne VARCHAR2 TRUE si un élément de menu est visible, et FALSE dans le cas contraire.


GET_MENU_ITEM_PROPERTY - Exemples

/*

** Procédure interne :  GET_MENU_ITEM_PROPERTY
** Exemple : Basculer entre l'état activé/désactivé de l'élément de menu
**           dont le nom est transféré. Transférer une chaîne de
**           la forme 'MENUNAME.MENUITEM'.
*/
PROCEDURE Toggle_Enabled( menuitem_name VARCHAR2) IS
  mi_id MenuItem;
BEGIN
  mi_id := Find_Menu_Item( menuitem_name );
  IF Get_Menu_Item_Property(mi_id,ENABLED) = 'TRUE' THEN
    Set_Menu_Item_Property(mi_id,ENABLED,PROPERTY_FALSE);
  ELSE
    Set_Menu_Item_Property(mi_id,ENABLED,PROPERTY_TRUE);
  END IF;
END;


GET_MESSAGE - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Retourne le message en cours, quel que soit son type.

Syntaxe

FUNCTION GET_MESSAGE;

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

aucun


GET_MESSAGE - Restrictions

La procédure GET_MESSAGE n'est instantiée que lorsqu'un message est envoyé à l'unité d'affichage, soit par Form Builder, soit par appel de la procédure interne MESSAGE. Si vous réacheminez des messages en utilisant le déclencheur On-Message, un appel à GET_MESSAGE ne retourne pas de valeur. Pour plus d'informations, reportez-vous au déclencheur On-Message.


GET_MESSAGE - Exemples

/*

** Procédure interne :  GET_MESSAGE
** Exemple :  Saisir le contenu de la ligne de message dans
**            une variable locale.
*/
DECLARE
  string_var VARCHAR2(80);
BEGIN
  string_var := Get_Message;
END;


GET_OLE_proptype;
GET_OLE_<type de propriété>

 Toutes les procédures internes

Description

Permet d'obtenir une propriété OLE.

Cette fonction est disponible en quatre versions (déterminées par la valeur <type de propriété>), une pour chacun des types d'argument CHAR, NUM, OBJ et VAR.

Syntaxe

FUNCTION GET_OLE_CHAR
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN oleprop VARCHAR2;

...ou...

FUNCTION GET_OLE_NUM
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN oleprop NUMBER;

...ou...

FUNCTION GET_OLE_OBJ
  (obj OLEOBJ, memberid PLS_INTEGER)
RETURN oleprop OLEOBJ;

...ou...

FUNCTION GET_OLE_VAR
  (obj OLEOBJ, memberid PLS_INTEGER,
   persistence BOOLEAN)
RETURN oleprop OLEVAR;

Type de procédure interne  fonction non restreinte

Retourne la propriété OLE. Notez que le type varie selon la fonction choisie.

Paramètres

obj	Pointeur vers l'objet OLE.
memberid	ID membre de la propriété OLE.
persistence	Contrôle la persistance de l'argument OLEVAR après son extraction. Ce paramètre est facultatif ; s'il n'est pas indiqué, la valeur par défaut est FALSE (non persistant).
Notes d'utilisation

•	Si les appels INIT_OLEARGS et ADD_OLEARG précèdent cet appel GET_OLE_type et qu'aucun appel GET_OLE, SET_OLE ou CALL_OLE ne soit intervenu, cet appel extrait la propriété à l'aide des arguments indiqués dans les appels INIT_OLEARGS et ADD_OLEARG.

•	Contrairement à un argument OLEVAR retourné, dont l'utilisateur peut contrôler la persistance, un argument OLEOBJ retourné est toujours défini comme étant non persistant.


GET_OLEARG_type;
GET_OLEARG_<type>

 Toutes les procédures internes

Description

Permet d'obtenir le énième argument à partir de la pile d'arguments OLE.

Cette fonction est disponible en quatre versions (déterminées par la valeur <type>), une pour chacun des types d'argument CHAR, NUM, OBJ et VAR.

Syntaxe

FUNCTION GET_OLEARG_CHAR
  (which NUMBER)
RETURN olearg VARCHAR2;

...ou...

FUNCTION GET_OLEARG_NUM
  (which NUMBER)
RETURN olearg NUMBER;

...ou...

FUNCTION GET_OLEARG_OBJ
  (which NUMBER)
RETURN olearg OLEOBJ;

...ou...

FUNCTION GET_OLEARG_VAR
  (which NUMBER, persistence BOOLEAN)
RETURN olearg OLEVAR;

Type de procédure interne  fonction non restreinte

Retourne l'argument indiqué. Notez que le type varie selon la fonction utilisée.

Paramètres

which	Nombre relatif indiquant l'argument à extraire de la pile d'arguments OLE.
persistence	Contrôle la persistance de l'argument OLEVAR après son extraction. Ce paramètre est facultatif ; s'il n'est pas indiqué, la valeur par défaut est FALSE (non persistant).
Notes d'utilisation

•	Utilisez cette fonction pour extraire les arguments dont la valeur peut être changée à la suite de l'appel de la méthode.

•	Contrairement à un argument OLEVAR retourné, dont l'utilisateur peut contrôler la persistance, un argument OLEOBJ retourné est toujours défini comme étant non persistant.


GET-OLE-MEMBERID;
GET_OLE_MEMBERID

 Toutes les procédures internes

Description

Permet d'obtenir l'ID de membre d'une méthode ou propriété nommée d'un objet OLE.

Syntaxe

FUNCTION GET_OLE_MEMBERID
  (obj OLEOBJ, name VARCHAR2)
RETURN memberid PLS_INTEGER;

Type de procédure interne  fonction non restreinte

Retourne l'ID de membre de la méthode ou de la propriété.

Paramètres

obj	Pointeur vers l'objet OLE.
name	Nom de la méthode ou de la propriété de l'objet.
Notes d'utilisation

L'ID de membre est une valeur codée en dur. Le résultat retourné peut varier en fonction du langage utilisé pour l'exécution du serveur OLE.


GET_PARAMETER_ATTR - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Retourne la valeur en cours et le type d'un paramètre d'une liste de paramètres indiquée.

Syntaxe

FUNCTION GET_PARAMETER_ATTR
  (list       VARCHAR2,
   key        VARCHAR2,
   paramtype  NUMBER,
   value      VARCHAR2);

FUNCTION GET_PARAMETER_ATTR
  (name       VARCHAR2,
   key        VARCHAR2,
   paramtype  NUMBER,
   value      VARCHAR2);

Type de procédure interne  procédure non restreinte qui retourne deux paramètres OUT.

Mode Saisie interrogation  oui

Paramètres

liste ou nom	Permet d'indiquer la liste de paramètres à laquelle est attribué le paramètre. Le paramètre peut être soit un ID de liste de paramètres de type PARAMLIST, soit le nom de type VARCHAR2 de la liste de paramètres.

clé	Nom de type VARCHAR2 du paramètre.

typeparam	Paramètre OUT de type NUMBER. Le paramètre que vous indiquez doit être une variable de type NUMBER et non une expression. L'exécution du paramètre définit la valeur de la variable à l'une des constantes numériques suivantes :

DATA_PARAMETER  Indique que la valeur du paramètre est le nom d'un groupe d'enregistrements.

TEXT_PARAMETER  Indique que la valeur du paramètre est une valeur de données réelle.

valeur	Paramètre OUT de type VARCHAR2. Si le paramètre est de type DATA, la valeur est le nom d'un groupe d'enregistrements. Si le paramètre est de type texte, la valeur est un paramètre de texte réel.

Pour toute information sur l'utilisation des paramètres OUT avec les procédures PL/SQL, reportez-vous à PL/SQL 2.0 User's Guide and Reference.


GET_PARAMETER_LIST - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Explore la liste des listes de paramètres et retourne un ID de liste de paramètres lorsqu'il trouve une liste valide ayant le nom indiqué. Vous devez définir une variable de type PARAMLIST pour accepter la valeur de retour. Cette fonction est similaire aux fonctions FIND_ proposées pour d'autres objets.

Syntaxe

FUNCTION GET_PARAMETER_LIST
  (nom   VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne ParamList

Mode Saisie interrogation  oui

Paramètres

nom	Nom de liste de paramètres VARCHAR2 valide.


GET_PARAMETER_LIST - Exemples

Voir CREATE_PARAMETER_LIST


GET_RADIO_BUTTON_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne des informations sur le bouton d'option indiqué.

Syntaxe

FUNCTION GET_RADIO_BUTTON_PROPERTY
  (item_id      ITEM,
   button_name  VARCHAR2,
   property     NUMBER);

FUNCTION GET_RADIO_BUTTON_PROPERTY(
  item_name    VARCHAR2,
  button_name  VARCHAR2,
  property     NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_élément	ID d'élément de groupe de boutons d'option. Form Builder attribue cet ID unique lorsqu'il crée l'objet. Utilisez la procédure interne FIND-ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_élément	Nom du groupe de boutons d'option. Ce groupe est le propriétaire (ou père) des boutons d'option qui lui sont subordonnés. Les données du nom sont de type VARCHAR2.

nom_bouton	Nom du bouton d'option dont vous voulez connaître la propriété. Les données du nom sont de type VARCHAR2.

propriété	Propriété dont vous voulez connaître l'état. Les constantes que vous pouvez indiquer sont les suivantes :

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

ENABLED  Retourne la chaîne VARCHAR2 TRUE si la propriété est définie à Yes, et FALSE dans le cas contraire.

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, indiquée en points.

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

HEIGHT  Retourne la hauteur du bouton d'option. Cette valeur est retournée sous la forme VARCHAR2 et exprimée dans les unités définies pour l'application Forms par la propriété Système de coordonnées du module application Forms.

LABEL  Retourne le libellé réel de chaîne du bouton d'option.

PROMPT_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

PROMPT_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

PROMPT_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

PROMPT_FONT_SIZE  Taille de la police, indiquée en points.

PROMPT_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

PROMPT_FONT_STYLE  Style de la police.

PROMPT_FONT_WEIGHT  Epaisseur de la police.

PROMPT_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

PROMPT_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

VISIBLE  Retourne la chaîne VARCHAR2 TRUE si la propriété est définie à Yes, et FALSE dans le cas contraire.

VISUAL_ATTRIBUTE  Retourne le nom de l'attribut visuel en vigueur. Si aucun attribut visuel nommé n'est attribué au bouton d'option, retourne CUSTOM pour un attribut visuel personnalisé ou DEFAULT pour un attribut visuel par défaut.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

WIDTH  Retourne la largeur du bouton d'option, y compris la partie libellé. La valeur est retournée sous la forme VARCHAR2 et exprimée dans les unités définies pour l'application Forms par la propriété Système de coordonnées du module application Forms.

WINDOW_HANDLE  Retourne la constante VARCHAR2 interne unique qui est utilisée pour faire référence aux objets. Retourne la valeur zéro (0) si la plate-forme n'est pas Microsoft Windows.

X_POS  Retourne la coordonnée x qui indique la position actuelle de l'angle supérieur gauche du bouton par rapport à l'ange supérieur gauche du canevas. La valeur est retournée sous la forme VARCHAR2 et exprimée dans les unités définies par la propriété Système de coordonnées du module application Forms.

Y_POS  Retourne la coordonnée y qui indique la position actuelle de l'angle supérieur gauche du bouton par rapport à l'ange supérieur gauche du canevas. La valeur est retournée sous la forme VARCHAR2 et exprimée dans les unités définies par la propriété Système de coordonnées du module application Forms.


GET_RADIO_BUTTON_PROPERTY - Exemples

/*

** Procédure interne :  GET_RADIO_BUTTON_PROPERTY
** Exemple :  Déterminer si un bouton d'option affiché
**            a un attribut visuel
**            particulier.
*/
DECLARE
  it_id   Item;
  disp    VARCHAR2(5);
  va_name VARCHAR2(40);
BEGIN
  it_id := Find_Item('My_Favorite_Radio_Grp');
  disp    := Get_Radio_Button_Property( it_id, 'REJECTED',                   VISIBLE);
  va_name := Get_Radio_Button_Property( it_id, 'REJECTED',
          VISUAL_ATTRIBUTE);

  IF disp = 'TRUE' AND va_name = 'BLACK_ON_PEACH' THEN
    Message('Bravo ! vous avez gagné !');
  ELSE
    Message('Perdu ! vous n'avez pas de chance aujourd'hui.');
  END IF;
END;


GET_RECORD_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne la valeur de la propriété indiquée, correspondant au numéro d'enregistrement indiqué dans le bloc donné. Les trois paramètres sont obligatoires. Si vous ne transmettez pas les constantes voulues, Form Builder émet un message d'erreur. Par exemple, vous devez transmettre un numéro d'enregistrement valide comme argument du paramètre numéro_enregistrement.

Syntaxe

FUNCTION GET_RECORD_PROPERTY
  (numéro_enregistrement  NUMBER,
   nom_bloc               VARCHAR2,
   propriété              NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

numéro_enregistrement	Enregistrement d'un bloc pour lequel vous voulez des informations de propriété. Le numéro doit correspondre à un numéro d'enregistrement.

nom_bloc	Bloc contenant l'enregistrement cible.

propriété	Propriété dont vous voulez connaître l'état. La seule constante de propriété prise en charge est Status.

STATUS Retourne NEW si l'enregistrement est marqué "nouveau" et si le bloc ne comporte pas d'enregistrement modifié. Retourne CHANGED si l'enregistrement est marqué "modifié". Retourne QUERY si l'enregistrement est marqué "interrogation". Retourne INSERT si l'enregistrement est marqué "insertion".

Notes d'utilisation

Le tableau ci-dessous indique les cas qui retournent l'état NEW.

	Etat enregistrement	Etat bloc	Etat application Forms
Enregistrement créé sans champ modifié	NOUVEAU	<N|Q|C>	<N|Q|C>
... et tous les enregistrements du bloc en cours NEW	NOUVEAU	NOUVEAU	<N|Q|C>
... et tous les blocs de l'application Forms en cours NEW	NOUVEAU	NOUVEAU	NOUVEAU

Le tableau ci-dessous illustre l'effet sur l'état des enregistrements, des blocs et des applications Forms, des modifications apportées aux éléments de table de base et aux éléments de contrôle dans les blocs de contrôle et de table de base.

Type de bloc/type d'élément modifié	Etat enregis- trement avant modification	Etat enregis- trement après modification	Etat bloc	Etat application Forms
Dans un bloc de Table de base : modification d'un élément de table de base	NOUVEAU	INSERTION	MODIFIE	MODIFIE
Dans un bloc de table de base : modification d'un élément de table de base	INTERROGATION	MODIFIE	MODIFIE	MODIFIE
Dans un bloc de table de base : modification d'un élément de contrôle	INTERROGATION	INTERROGATION	<Q|C>	<Q|C>
...et aucun enregistrement du bloc en cours n'est modifié		INTERROGATION	INTERRO-GATION	<Q|C>
...et aucun bloc de l'application Forms en cours n'est modifié		INTERROGATION	INTERROGATION	INTERROGATION
Dans un bloc de table de base : modification d'un élément de contrôle	NOUVEAU	INSERTION	<Q|C>	<Q|C>
Dans un bloc de contrôle : modification d'un élément de contrôle	NOUVEAU	INSERTION	<Q>	<Q|C>
...et aucun enregistrement du bloc en cours n'est modifié		INSERTION	INTERROGATION	<Q|C>
...et aucun bloc de l'application Forms en cours n'est modifié		INSERTION	INTERROGATION	INTERROGATION
Remarque :

En général, toute affectation à un élément de base de données modifie l'état d'un enregistrement de QUERY en CHANGED (ou de NEW en INSERT), même si la valeur affectée est la même que la précédente. Le fait de transmettre un élément à une procédure en tant que paramètre OUT ou IN OUT est considéré comme une affectation.

GET_RECORD_PROPERTY et la variable système SYSTEM.RECORD_STATUS retournent l'état d'un enregistrement d'un bloc donné et, dans la plupart des cas, retournent le même état. Cependant, dans certains cas spécifiques, le résultat peut être différent.

GET_RECORD_PROPERTY a toujours la valeur NEW, CHANGED, QUERY ou INSERT, car cette procédure interne retourne l'état d'un enregistrement spécifique, sans tenir compte de la séquence de traitement ou du fait que l'enregistrement est l'enregistrement en cours.

SYSTEM.RECORD_STATUS, par contre, peut, dans certains cas, retourner la valeur NULL car cette procédure interne n'est pas définie lorsqu'il n'y a pas d'enregistrement en cours dans le système. Par exemple, dans un déclencheur When-Clear-Block Form Builder est au niveau bloc dans sa séquence de traitement, et il n'y a donc pas d'enregistrement en cours sur lequel fonder un état et la valeur de SYSTEM.RECORD_STATUS est NULL.


GET_RECORD_PROPERTY - Exemples

/*

** Procédure interne :  GET_RECORD_PROPERTY
** Exemple :  Obtenir l'état d'un enregistrement d'un bloc donné.
*/
BEGIN
  IF Get_Record_Property(1,'commandes',STATUS) = 'NEW' AND
     Get_Record_Property(1,'clients',STATUS) = 'NEW' THEN
    Message('Commencez par entrer un client et une commande !');
    RAISE Form_Trigger_Failure;
  END IF;
END;


GET_RELATION_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 All Built-ins

Description

Retourne l'état de la propriété de relation donnée.

Syntaxe

FUNCTION GET_RELATION_PROPERTY
  (relation_id  Relation,
   property     NUMBER);

FUNCTION GET_RELATION_PROPERTY
  (relation_name  VARCHAR2,
   property       NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_relation	ID unique que Form Builder attribue lorsqu'il crée la relation. Utilisez la procédure interne FIND_RELATION pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Relation.

nom_relation	Nom VARCHAR2 que vous avez donné à la relation lorsque vous l'avez définie, ou nom que Form Builder a attribué à la relation lorsqu'il l'a créée.

propriété	Propriété dont vous voulez connaître l'état. Les constantes de propriété que vous pouvez utiliser sont les suivantes :

AUTOQUERY  Retourne la valeur VARCHAR2 TRUE si la propriété de relation Interrogation automatique est définie à Yes, et FALSE dans le cas contraire. Lorsque la propriété de relation différée est définie à Yes, cette propriété détermine si Form Builder remplit, ou non, le bloc détail lorsqu'un autre enregistrement devient l'enregistrement en cours dans le bloc maître.

DEFERRED_COORDINATION  Retourne la valeur VARCHAR2 TRUE si la propriété de relation différée est définie à Yes, et FALSE dans le cas contraire. Cette propriété détermine si le bloc détail doit être immédiatement coordonné sur l'enregistrement maître en cours, ou laissé en blanc jusqu'à ce que l'opérateur passe au bloc détail.

DETAIL_NAME  Retourne le nom VARCHAR2 du bloc détail de la relation maître-détail donnée.

MASTER_DELETES  Retourne l'une des valeurs VARCHAR2 ci-dessous pour indiquer la valeur en cours de la propriété Supprimer comportement de l'enregistrement : NON_ISOLATED, ISOLATED ou CASCADING.

MASTER_NAME  Retourne le nom VARCHAR2 du bloc maître de la relation maître-détail donnée.

NEXT_DETAIL_RELATION  Retourne le nom VARCHAR2 de la prochaine relation détail, si elle existe. Pour connaître le nom du premier détail d'un bloc donné, lancez un appel à GET_BLOCK_PROPERTY. Cette procédure interne retourne NULL s'il n'en existe pas.

NEXT_MASTER_RELATION  Retourne le nom VARCHAR2 de la prochaine relation, si elle existe. Pour connaître le nom de la première relation d'un bloc donné, lancez un appel à GET_BLOCK_PROPERTY. Cette procédure interne retourne NULL s'il n'en existe pas.

PREVENT_MASTERLESS_OPERATION  Retourne la valeur VARCHAR2 TRUE si cette propriété de relation est définie à Yes, et FALSE dans le cas contraire. Lorsque la propriété est définie à Yes, Form Builder ne permet pas l'insertion d'enregistrements dans le bloc détail lorsqu'il n'y a pas d'enregistrement maître dans le bloc maître, ni l'interrogation du bloc détail lorsqu'il n'y a pas d'enregistrement maître provenant de la base de données.


GET_RELATION_PROPERTY - Exemples

/*

** Procédure interne :  GET_RELATION_PROPERTY
** Exemple :  Si la relation n'est pas différée,
**            passer à la coordination du bloc détail. Sinon,
**            marquer le bloc détail comme devant être coordonné
**            en vue d'une éventuelle interrogation différée.
*/
PROCEDURE Query_The_Details(rel_id Relation,
    detail VARCHAR2) IS
BEGIN
  IF Get_Relation_Property(rel_id, DEFERRED_COORDINATION)
   = 'FALSE' THEN
    Go_Block(detail);
    IF NOT Form_Success THEN
      RAISE Form_Trigger_Failure;
    END IF;
    Execute_Query;
  ELSE
    Set_Block_Property(detail, coordination_status,
             NON_COORDINATED);
  END IF;
End;


GET_REPORT_OBJECT_PROPERTY - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet d'obtenir par programme une propriété d'un objet état.

Syntaxe

FUNCTION GET_REPORT_OBJECT_PROPERTY
  (report_id REPORT_OBJECT,
   property NUMBER
);

FUNCTION GET_REPORT_OBJECT_PROPERTY
  (report_name VARCHAR2,
   property NUMBER
);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_état	Indique l'ID unique de l'état. Vous pouvez obtenir l'ID d'un état particulier à l'aide de la procédure interne FIND_REPORT_OBJECT.

nom_état	Précise le nom unique de l'état.

propriété	Correspond à l'une des constantes suivantes :

REPORT_EXECUTION_MODE : Retourne une valeur de chaîne du mode d'exécution de l'état (BATCH ou RUNTIME).

REPORT_COMM_MODE : Retourne une valeur de chaîne du mode de communication de l'état (SYNCHRONOUS ou ASYNCHRONOUS).

REPORT_DESTYPE : Retourne une valeur de chaîne du type de destination de l'état (PREVIEW, FILE, PRINTER, MAIL, CACHE ou SCREEN).

REPORT_FILENAME : Retourne une valeur de chaîne du nom de fichier de l'état.

REPORT_SOURCE_BLOCK : Retourne une valeur de chaîne du nom du bloc source de l'état.

REPORT_QUERY_NAME : Retourne une valeur de chaîne du nom de l'interrogation de l'état.

REPORT_DESNAME : Retourne une valeur de chaîne du nom de destination de l'état.

REPORT_DESFORMAT : Retourne une valeur de chaîne du format de destination de l'état.

REPORT_SERVER : Retourne une valeur de chaîne du nom de serveur de l'état.

REPORT_OTHER : Retourne une valeur de chaîne des propriétés de l'état indiquées par l'utilisateur.

Notes d'utilisation

•	GET_REPORT_OBJECT_PROPERTY retourne une valeur de chaîne pour toutes les propriétés. En revanche, SET_REPORT_OBJECT_PROPERTY définit des propriétés à l'aide de valeurs constantes ou de valeurs de chaînes. Le type de la valeur dépend de la propriété définie.


GET_REPORT_OBJECT_PROPERTY - Exemples

DECLARE

repid REPORT_OBJECT;

report_prop VARCHAR2(20);

BEGIN

repid := find_report_object('report4');

report_prop := get_report_object_property(repid,
          REPORT_EXECUTION_MODE);

message('LA PROPRIETE REPORT_EXECUTION_MODE EST ' || report_prop);

report_prop  := get_report_object_property(repid, REPORT_COMM_MODE);

message('LA PROPRIETE REPORT_COMM_MODE EST ' || report_prop);

report_prop  := get_report_object_property(repid, REPORT_DESTYPE);

message('LA PROPRIETE REPORT_DESTYPE EST ' || report_prop);

report_prop := get_report_object_property(repid, REPORT_FILENAME);

message('LA PROPRIETE REPORT_FILENAME EST ' || report_prop);

END;


GET_TAB_PAGE_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne les valeurs de propriété d'une page onglet indiquée.

Syntaxe

FUNCTION GET_TAB_PAGE_PROPERTY
  (tab_page_id  TAB_PAGE,
   property     NUMBER);

FUNCTION GET_TAB_PAGE_PROPERTY
  (tab_page_name  VARCHAR2,
   property       NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_page_onglet	ID unique que Form Builder a attribué à l'objet page onglet lorsque vous l'avez créé. Utilisez la procédure interne FIND_TAB_PAGE pour retourner l'ID à une variable de type TAB_PAGE.

nom_page_onglet	Nom que vous avez donné à l'objet page onglet lorsque vous l'avez créé. Remarque : Si deux pages onglet d'un même module application Forms ont le même nom, vous devez indiquer la page onglet et le canevas (par exemple, CVS_1.TAB_PG_1).

propriété	Propriété dont vous voulez connaître la valeur pour la page onglet indiquée. Les propriétés possibles sont les suivantes :

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

CANVAS_NAME  Retourne le nom VARCHAR2 du canevas auquel la page onglet appartient.

ENABLED  Retourne la chaîne VARCHAR2 TRUE si une page onglet est activée, et FALSE dans le cas contraire (c'est-à-dire si elle est grisée et non disponible).

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, indiquée en points.

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

LABEL   Retourne la chaîne VARCHAR2 du libellé de page onglet.

VISIBLE  Retourne la valeur VARCHAR2 TRUE si la page onglet est visible, et FALSE dans le cas contraire. Une page onglet est considérée comme visible si elle est affichée à l'écran, même si elle est totalement masquée par une autre.

VISUAL_ATTRIBUTE  Retourne le nom de l'attribut visuel en vigueur. Si aucun attribut visuel nommé n'est attribué à la page onglet, retourne CUSTOM pour un attribut visuel personnalisé ou DEFAULT pour un attribut visuel par défaut.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.


GET_TAB_PAGE_PROPERTY - Exemples

/* Utiliser FIND_TAB_PAGE et GET_TAB_PAGE_PROPERTY pour vérifier

** si une page onglet est activée :
*/
DECLARE
  tp_id  TAB_PAGE;
  live   VARCHAR2(32);

BEGIN
  tp_id := FIND_TAB_PAGE('tab_page_1');
  live  := GET_TAB_PAGE_PROPERTY(tp_id, enabled);
END;


GET_TREE_NODE_PARENT - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Retourne le père du noeud sélectionné.

Syntaxe

FUNCTION GET_TREE_NODE_PARENT

  (nom_élément VARCHAR2

   noeud NODE);

FUNCTION GET_TREE_NODE_PARENT

  (id_élément ITEM

   noeud NODE);

Retourne  NODE

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
noeud	Indique un noeud valide.


GET_TREE_NODE_PARENT - Exemples

/*

** Built-in:  GET_TREE_NODE_PARENT
*/

-- This code could be used in a WHEN-TREE-NODE-SELECTED

-- trigger to locate the parent of the node that was

-- clicked on.

DECLARE

   htree         ITEM;

   parent_node   FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Get the parent of the node clicked on.

   parent_node := Ftree.Get_Tree_Node_Parent(htree, :SYSTEM.TRIGGER_NODE);

   ...

END;


GET_TREE_NODE_PROPERTY - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Retourne la valeur de la propriété indiquée du noeud de l'arborescence.

Syntaxe

FUNCTION GET_TREE_NODE_PROPERTY

  (nom_élément VARCHAR2,

   noeud NODE,

   propriété NUMBER);

FUNCTION GET_TREE_NODE_PROPERTY

  (id_élément ITEM,

   noeud NODE,

   propriété NUMBER);

Retourne  VARCHAR2

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
noeud	Indique un noeud valide.
propriété	Indiquez l'une des propriétés suivantes : NODE_STATE   Retourne l'état du noeud de l'arborescence. Il peut s'agir de EXPANDED_NODE, de COLLAPSED_NODE ou de LEAF_NODE. NODE_DEPTH   Retourne le niveau d'imbrication du noeud de l'arborescence. NODE_LABEL   Retourne le libellé. NODE_ICON   Retourne le nom de l'icône. NODE_VALUE   Retourne la valeur du noeud de l'arborescence.


GET_TREE_NODE_PROPERTY - Exemples

/*

** Built-in:  GET_TREE_NODE_PROPERTY
*/

-- This code could be used in a WHEN-TREE-NODE-SELECTED

-- trigger to return the value of the node that was

-- clicked on.

DECLARE

   htree         ITEM;

   node_value    VARCHAR2(100);

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the value of the node clicked on.

   node_value := Ftree.Get_Tree_Node_Property(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_VALUE);

   ...

END;


GET_TREE_PROPERTY - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Retourne les valeurs de propriété de l'arborescence sélectionnée.

Syntaxe

FUNCTION GET_TREE_PROPERTY

  (nom_élément VARCHAR2,

   propriété NUMBER);

FUNCTION GET_TREE_PROPERTY

  (id_élément ITEM,

   propriété NUMBER);

Retourne  VARCHAR2

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom donné à l'objet lors de sa création. Ce nom est de type chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
propriété	Indiquez l'une des propriétés suivantes : DATASOURCE   Retourne la source utilisée pour compléter initialement l'arborescence, soit dans Form Builder, soit en utilisant la procédure interne SET_TREE_PROPERTY. Retourne EXTERNAL si aucune de ces propriétés n'a été définie dans Form Builder. RECORD_GROUP   Retourne le groupe d'enregistrements utilisé pour compléter initialement l'arborescence, soit dans Form Builder, soit en utilisant la procédure interne SET_TREE_PROPERTY. Il peut s'agir d'une chaîne Null. QUERY_TEXT   Retourne le texte de l'interrogation utilisé pour compléter initialement l'arborescence, soit dans Form Builder, soit en utilisant la procédure interne SET_TREE_PROPERTY. Il peut s'agir d'une chaîne Null. NODE_COUNT   Retourne le nombre de lignes de l'ensemble des données de l'arborescence. SELECTION_COUNT   Retourne le nombre de lignes sélectionnées dans l'arborescence. ALLOW_EMPTY_BRANCHES   Retourne la chaîne de caractères TRUE ou FALSE. ALLOW_MULTI-SELECT   Retourne la chaîne de caractères TRUE ou FALSE.
Notes d'utilisation

Les valeurs retournées par les propriétés RECORD_GROUP et QUERY_TEXT de la source de données ne reflètent pas nécessairement les données courantes ou l'état actuel de l'arborescence. Les valeurs retournées sont celles définies dans Form Builder et non celles définies à l'aide de la procédure interne SET_TREE_PROPERTY.


GET_TREE_PROPERTY - Exemples

/*

** Built-in:  GET_TREE_PROPERTY
*/

-- This code could be used to find out how many nodes are

-- in a given tree.

DECLARE

   htree         ITEM;

   node_count    NUMBER;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Get the node count of the tree.

   node_count := Ftree.Get_Tree_Property(htree, Ftree.NODE_COUNT);

   ...

END;


GET_TREE_SELECTION - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Retourne le noeud de données indiqué par la sélection. La sélection est un index dans la liste des noeuds sélectionnés.

Syntaxe

FUNCTION GET_TREE_SELECTION

  (nom_élément VARCHAR2,

   sélection NUMBER);

FUNCTION GET_TREE_SELECTION

  (id_élément ITEM,

   sélection NUMBER);

Retourne  FTREE.NODE

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
sélection	Indique la sélection d'un noeud simple.


GET_TREE_SELECTION - Exemples

/*

** Built-in:  GET_TREE_SELECTION
*/

-- This code will process all tree nodes marked as selected.  See the

-- Ftree.Set_Tree_Selection built-in for a definition of "selected".

DECLARE

   htree         ITEM;

   num_selected  NUMBER;

   current_node  FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the number of nodes marked as selected.

   num_selected := Ftree.Get_Tree_Property(htree, Ftree.SELECTION_COUNT);

   -- Loop through selected nodes and process them. If you are deleting

   -- nodes, be sure to loop in reverse!

   FOR j IN 1..num_selected LOOP

      current_node := Ftree.Get_Tree_Selection(htree, j);

      ...

   END LOOP;

END;


GET_VA_PROPERTY - Procédure interne

 Toutes les procédures internes

Description

Retourne les valeurs de propriété des attributs visuels pour la propriété sélectionnée.

Syntaxe

FUNCTION GET_VA_PROPERTY

  (id_av VISUALATTRIBUTE

   propriété NUMBER);

FUNCTION GET_VA_PROPERTY

  (nom_av VARCHAR2

   propriété NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_av	ID unique que Form Builder donne à l'attribut visuel lors de sa création. Le type de données de l'ID est VISUALATTRIBUTE.
nom_av	Nom que vous avez donné à l'attribut visuel lors de sa création. Le type de données est VARCHAR2.
propriété	Indiquez l'une des propriétés suivantes : BACKGROUND_COLOR Couleur de la zone d'arrière-plan de l'objet. FILL_PATTERN Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan. FONT_NAME Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles varie en fonction du système. FONT_SIZE Taille de la police, indiquée en centaines de points. Par exemple, 8 pt équivaut à 800. FONT_SPACING Largeur de la police, c'est-à-dire la quantité d'espace entre les caractères (crénage). FONT_STYLE Style de la police. FONT_WEIGHT Epaisseur de la police. FOREGROUND_COLOR Couleur de la zone de premier plan de l'objet. Dans le cas des éléments, l'attribut Couleur de premier plan définit la couleur de texte affichée dans l'élément. WHITE_ON_BLACK Indique que l'objet doit apparaître sur une unité d'affichage bitmap monochrome sous forme de texte blanc sur fond noir.


GET_VAR_BOUNDS

 Toutes les procédures internes

Description

Permet d'obtenir les limites d'un tableau de variante OLE.

Syntaxe

PROCEDURE GET_VAR_BOUNDS
  (var OLEVAR, bounds OLE_SAFEARRAYBOUNDS);

Type de procédure interne  procédure non restreinte

Paramètres

var	Variante.
bounds	Table PL/SQL complétée avec les limites du tableau. Pour plus d'informations sur le contenu et sur la présentation de ce paramètre, reportez-vous à Types de tableaux pour la prise en charge OLE


GET_VAR_DIMS

 Toutes les procédures internes

Description

Détermine si une variante OLE est un tableau ; le cas échéant, obtient les dimensions de ce tableau.

Syntaxe

FUNCTION GET_VAR_DIMS
  (var OLEVAR)
RETURN vardims PLS_INTEGER;

Type de procédure interne  fonction non restreinte

Retourne la valeur zéro (0) lorsque la variante n'est pas un tableau. Sinon, la valeur de retour correspond au nombre de dimensions du tableau.

Paramètres

var	Variante.


GET_VAR_TYPE

 Toutes les procédures internes

Description

Permet d'obtenir le type d'une variante OLE.

Syntaxe

FUNCTION GET_VAR_TYPE
  (var OLEVAR)
RETURN vartype VT_TYPE;

Type de procédure interne  fonction non restreinte

Retourne le type de la variable.

Paramètres

var	Variante.
vartype	Type de la variante.
Notes d'utilisation

La liste des VT_TYPE pris en charge est disponible dans Types de variantes OLE.


GET_VERB_COUNT

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Retourne le nombre de verbes reconnus par le serveur OLE. Un verbe OLE indique l'action que vous pouvez exécuter sur un objet OLE ; le nombre de verbes disponibles dépend du serveur OLE. Le nombre de verbes est retourné sous forme de chaîne VARCHAR2 et doit être converti à NUMBER afin de déterminer l'index de verbe et le nom de verbe pour chacun des verbes. Vous devez définir une variable de type approprié pour accepter la valeur retournée.

Syntaxe

FUNCTION GET_VERB_COUNT
  (item_id  Item);

FUNCTION GET_VERB_COUNT
  (item_name VARCHAR2);

Retourne  VARCHAR2

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.


GET_VERB_COUNT - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


GET_VERB_COUNT - Exemples

/*

** Procédure interne : GET_VERB_COUNT
** Exemple :  Obtenir le nombre de verbes émis et reconnus par
** le serveur OLE lors de l'exécution depuis le conteneur OLE.
** Déclencheur :  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'OLEITM';
 verb_cnt_str VARCHAR(20);
 verb_cnt NUMBER;
 verb_name VARCHAR(20);
 loop_cntr NUMBER;
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('No such item: '||item_name);
 ELSE
  verb_cnt_str := Get_Verb_Count(item_id);
  verb_cnt := TO_NUMBER(verb_cnt_str);
  FOR loop_cntr in 1..verb_cnt LOOP
    verb_name := Get_Verb_Name(item_id,loop_cntr);
    IF verb_name = 'Edit' THEN
   Exec_Verb(item_id,verb_name);
    END IF;
  END LOOP;
 END IF;
END;


GET_VERB_NAME

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Retourne le nom du verbe associé à l'index de verbe indiqué. Un verbe OLE indique l'action que vous pouvez exécuter sur un objet OLE ; chaque verbe OLE a un index de verbe OLE correspondant. Vous devez définir une variable de type approprié pour accepter la valeur retournée.

Syntaxe

FUNCTION GET_VERB_NAME
  (item_id     Item,
   verb_index  VARCHAR2);

FUNCTION GET_VERB_NAME
  (item_name   VARCHAR2,
   verb_index  VARCHAR2);

Retourne  VARCHAR 2

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

index_verbe	Index numérique d'un verbe. Utilisez la procédure interne FIND_OLE_VERB pour obtenir cette valeur. Le type de données de l'index est VARCHAR2.


GET_VERB_NAME - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


GET_VERB_NAME - Exemples

/*

** Procédure interne : GET_VERB_COUNT
** Exemple :  Voir EXEC_VERB et GET_VERB_COUNT
*/


GET_VIEW_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Retourne la définition de la propriété indiquée pour le canevas indiqué.

Syntaxe

FUNCTION GET_VIEW_PROPERTY
  (view_id   ViewPort,
   property  NUMBER);

FUNCTION GET_VIEW_PROPERTY
  (view_name  VARCHAR2,
   property   NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_vue	ID unique que Form Builder attribue au canevas lorsqu'il crée l'objet. Utilisez la procédure interne FIND_VIEW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ViewPort.

nom_vue	Nom que vous avez donné à l'objet lorsque vous l'avez défini.

propriété	Propriété dont vous voulez connaître l'état pour le canevas donné. Vous devez lancer un appel à GET_VIEW_PROPERTY pour chaque propriété dont vous voulez connaître la définition, comme l'indique l'exemple ci-après. Pour obtenir les valeurs de retour entrez l'une des constantes suivantes :

DIRECTION   Retourne l'orientation de la présentation des objets bidirectionnels. Les valeurs de retour valides sont RIGHT_TO_LEFT et LEFT_TO_RIGHT.

HEIGHT  Retourne la hauteur de la vue. Pour une Vue intégrale, la hauteur de la vue est en fait la hauteur de la fenêtre dans laquelle la vue est affichée. La taille de chaque unité dépend de la façon dont vous avez défini la propriété Système de coordonnées du module application Forms.

VIEWPORT_X_POS  Pour un canevas empilé, retourne la coordonnée x qui indique la position actuelle de l'angle supérieur gauche de la vue par rapport à l'angle supérieur gauche du canevas intégral en cours de la fenêtre. Pour une vue intégrale, retourne la valeur zéro (0). La valeur est retournée sous la forme VARCHAR2 et exprimée dans les unités définies par la propriété Système de coordonnées du module application Forms.

VIEWPORT_Y_POS  Pour un canevas empilé, retourne la coordonnée y qui indique la position actuelle de l'angle supérieur gauche de la vue par rapport à l'angle supérieur gauche du canevas intégral en cours de la fenêtre. Pour une vue intégrale, retourne la valeur zéro (0). La valeur est retournée sous la forme VARCHAR2 et exprimée dans les unités définies par la propriété Système de coordonnées du module application Forms.

VIEWPORT_X_POS_ON_CANVAS   Retourne la coordonnée x qui indique la position actuelle de l'angle supérieur gauche de la vue par rapport à l'angle supérieur gauche de son canevas. La valeur est retournée sous la forme VARCHAR2 et exprimée dans les unités définies par la propriété Système de coordonnées pour le module application Forms.

VIEWPORT_Y_POS_ON_CANVAS  Retourne la coordonnée y qui indique la position actuelle de l'angle supérieur gauche de la vue par rapport à l'angle supérieur gauche de son canevas. La valeur est retournée sous la forme VARCHAR2 et exprimée dans les unités définies par la propriété Système de coordonnées pour le module application Forms.

VISIBLE  Retourne la valeur VARCHAR2 TRUE si la vue est visible, et FALSE dans le cas contraire. Une vue est considérée comme visible lorsqu'elle est a) devant toutes les autres vues de la fenêtre ou b) uniquement partiellement masquée par une autre vue. Une vue est considérée comme non visible lorsqu'elle est a) empilée derrière la vue intégrale ou b) totalement masquée par une seule vue empilée. Notez que cette propriété est indépendante de l'état d'affichage de la fenêtre en cours. Une vue peut donc être considérée comme visible même si sa fenêtre est masquée ou icônifiée.

WIDTH  Retourne la largeur de la vue. Pour une vue intégrale, la largeur de la vue est en fait la largeur de la fenêtre dans laquelle la vue est affichée. La taille de chaque unité dépend de la façon dont vous avez défini la propriété Système de coordonnées pour le module application Forms.

WINDOW_NAME  Retourne le nom de la fenêtre dans laquelle ce canevas est affiché.


GET_VIEW_PROPERTY - Exemples

/*

** Procédure interne :  GET_VIEW_PROPERTY
** Exemple :  Utiliser la Largeur et la position d'affichage
**            d'une vue empilée (View1) pour déterminer où en placer
**            une autre (View2) immédiatement à sa
**            droite.
*/
PROCEDURE Anchor_To_Right( View2 VARCHAR2, View1 VARCHAR2) IS
  vw_id1 ViewPort;
  vw_id2 ViewPort;
  x      NUMBER;
  y      NUMBER;
  w      NUMBER;
BEGIN
  /*
  ** Rechercher View1 et sa position (x,y), largeur
  */
  vw_id1 := Find_View(View1);
  x      := Get_View_Property(vw_id1,VIEWPORT_X_POS);
  y      := Get_View_Property(vw_id1,VIEWPORT_Y_POS);
  w      := Get_View_Property(vw_id1,WIDTH);
  /*
  ** Anchor View2 at (x+w,y+h)
  */
  vw_id2 := Find_View(View2);
  Set_View_Property(vw_id2,VIEWPORT_X_POS, x+w );
  Set_View_Property(vw_id2,VIEWPORT_Y_POS, y );
END;


GET_WINDOW_PROPERTY - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Retourne la définition actuelle de la propriété de fenêtre indiquée.

Syntaxe

FUNCTION GET_WINDOW_PROPERTY
  (window_id  Window,
   property   NUMBER);

FUNCTION GET_WINDOW_PROPERTY
  (window_name  VARCHAR2,
   property     NUMBER);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Notes d'utilisation

Sous Microsoft Windows, vous pouvez faire référence à la fenêtre d'application MDI, au moyen de la constante FORMS_MDI_WINDOW.

Paramètres

id_fenêtre	ID unique que Form Builder attribue à la fenêtre lors de sa création. Utilisez la procédure interne FIND_WINDOW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Window.

nom_fenêtre	Nom que vous avez donné à la fenêtre lorsque vous l'avez créée.

propriété	Vous devez lancer un appel à GET_WINDOW_PROPERTY pour chaque propriété dont vous voulez connaître la définition, comme indiqué dans l'exemple FIND_WINDOW. Pour obtenir la valeur ou l'état en cours de la propriété, indiquez l'une des constantes suivantes :

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

DIRECTION   Retourne l'orientation de la présentation des objets bidirectionnels. Les valeurs de retour valides sont RIGHT_TO_LEFT et LEFT_TO_RIGHT.

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, indiquée en points.

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

HEIGHT  Retourne la hauteur de la fenêtre

HIDE_ON_EXIT  Retourne la valeur VARCHAR2 TRUE si la fenêtre a la propriété Fermeture sur sortie définie à Yes, et FALSE dans le cas contraire.

ICON_NAME  Retourne le nom de fichier de la ressource d'icône associée à un élément de fenêtre lorsqu'elle est réduite.

TITLE  Retourne le titre de la fenêtre.

VISIBLE  Retourne la valeur VARCHAR2 TRUE si la fenêtre est visible, et FALSE dans le cas contraire. Une fenêtre est considérée comme visible si elle est affichée à l'écran, même si elle est entièrement masquée derrière une autre ou icônifiée (réduite au minimum).

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

WIDTH  Retourne la largeur de la fenêtre.

WINDOW_HANDLE  Retourne la constante VARCHAR2 interne unique qui est utilisée pour faire référence aux objets. Retourne la valeur zéro (0) si la plate-forme n'est pas Microsoft Windows.

WINDOW_SIZE  Retourne la largeur et la hauteur de la fenêtre sous la forme d'une chaîne, dont les éléments sont séparés par des virgules.

WINDOW_STATE  Retourne l'état d'affichage en cours de la fenêtre, sous la forme d'une chaîne VARCHAR2 NORMAL, MAXIMIZE ou MINIMIZE.

X_POS  Retourne la coordonnée x qui indique la position d'affichage de la fenêtre à l'écran.

Y_POS  Retourne la coordonnée y qui indique la position d'affichage de la fenêtre à l'écran.


GO_BLOCK - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

GO_BLOCK permet de faire passer par navigation au bloc indiqué. Si le bloc cible n'est pas modifiable, un message d'erreur apparaît.

Syntaxe

PROCEDURE GO_BLOCK
  (nom_bloc  VARCHAR2);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

nom_bloc	Nom que vous avez donné au bloc lorsque vous l'avez défini. Les données du nom sont de type VARCHAR2


GO_BLOCK - Exemples

/*

** Procédure interne :  GO_BLOCK
** Exemple :  Passer au bloc dont vous indiquez le nom. Penser à vérifier
**            la réussite de l'opération en vérifiant FORM_SUCCES
*/
BEGIN
  IF :Global.Flag_Indicator = 'NIGHT' THEN
    Go_Block('Night_Schedule');
    /*
    ** Première méthode de vérification de la réussite de l'opération.
    */
    IF NOT FORM_SUCCESS THEN
      RAISE Form_Trigger_Failure;
    END IF;
  ELSIF :Global.Flag_Indicator = 'DAY' THEN
    Go_Block('Day_Schedule');
    /*
    ** Deuxième méthode de vérification de la réussite de l'opération.
    ** Si le bloc dans lequel se trouve le curseur n'a pas été
    ** modifié après une opération de navigation, l'opération n'a pas été exécutée
    ** correctement. Cette méthode est plus fiable que la simple vérification de
    ** FORM_SUCCESS.
    */
    IF :System.Trigger_Block = :System.Cursor_Block THEN
      RAISE Form_Trigger_Failure;
    END IF;
  END IF;
  Execute_Query;
  Go_Block('Main');
END;


GO_FORM - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Dans une multi-application Forms, passe de l'application Forms en cours à l'application cible indiquée. Lors de l'utilisation de GO_FORM, aucune validation n'est effectuée et aucun déclencheur n'est activé, sauf WHEN-WINDOW-DEACTIVATED, qui est activé pour l'application Forms qui a lancé la navigation et WHEN-WINDOW-ACTIVATED, qui est activé pour la fenêtre cible de l'application Forms cible.

Toute tentative de passage par navigation à une application Forms qui n'est pas encore ouverte déclenche la génération d'une erreur.

Syntaxe

PROCEDURE GO_FORM
  (form_id  FORMMODULE);

PROCEDURE GO_FORM
  (form_name  VARCHAR2);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

id_appliform	ID unique qui a été attribué dynamiquement à l'application Forms lorsqu'elle a été instanciée lors de l'exécution. Utilisez la procédure interne FIND_FORM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type FORMODULE.

nom_appliform	Nom de l'application Forms cible. Les données du nom sont de type VARCHAR2. La procédure interne GO_FORM tente de rechercher le nom du module de l'application Forms, et non le nom du fichier .fmx.


GO_FORM - Restrictions

L'application Forms cible ne peut pas être désactivée à la suite de l'appel d'une autre application Forms à l'aide de CALL_FORM.


GO_ITEM - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

GO_ITEM permet de passer par navigation à un élément indiqué. Cette procédure interne réussit même si la propriété Navigation au clavier de l'élément cible est définie à No.

Syntaxe

PROCEDURE GO_ITEM
  (item_id  Item);

PROCEDURE GO_ITEM
  (item_name  VARCHAR2);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder a attribué à l'élément lorsqu'il l'a créé. Les données de l'ID sont de type Item.

nom_élément	Permet d'indiquer la chaîne que vous avez définie comme nom de l'élément lors de la conception. Les données du nom sont de type VARCHAR2.


GO_ITEM - Restrictions

GO_ITEM('emp.ename');

•	En mode Saisie interrogation, GO_ITEM ne peut pas être utilisé pour passer par navigation à un élément d'un autre bloc.

•	Vous ne pouvez pas utiliser GO_ITEM pour passer à un élément de navigation non autorisée, par exemple un élément VARCHAR2 ou un élément d'affichage.


GO_ITEM - Exemples

/*

** Procédure interne :  GO_ITEM
** Exemple :  Appeler une fenêtre de dialogue
**            en passant à un élément du canevas affiché par
**            la fenêtre.
*/
PROCEDURE Open_Preference_Dialog IS
BEGIN
 Go_Item('pref_dialog.printer_name');
END;


GO_RECORD - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Passe par navigation à l'enregistrement dont le numéro est indiqué.

Syntaxe

PROCEDURE GO_RECORD
  (numéro_enregistrement  NUMBER);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

numéro_enregistrement	Valeur entière que PL/SQL peut évaluer à un nombre - y compris les valeurs dérivées des appels aux variables système comme TO_NUMBER(:SYSTEM.TRIGGER_RECORD) + 8.

Vous pouvez, à l'aide des variables système SYSTEM.CURSOR_RECORD ou SYSTEM.TRIGGER_RECORD, déterminer le numéro de séquence d'un enregistrement.


GO_RECORD - Restrictions

•	Si l'interrogation est ouverte et si le numéro d'enregistrement indiqué est supérieur au nombre d'enregistrements déjà extraits, Form Builder extrait d'autres enregistrements pour réaliser l'appel à cette procédure interne.


GO_RECORD - Exemples

/*

** Procédure interne :  GO_RECORD
** Exemple :  Passer par navigation à un enregistrement du bloc en cours
**            à l'aide de son numéro. Voir également les procédures internes
**            FIRST_RECORD et LAST_RECORD.
*/
BEGIN
  Go_Record( :control.last_record_number );
END;


HELP - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'afficher le message d'aide de l'élément en cours dans la ligne de message. Si ce message est déjà affiché, HELP affiche l'écran d'aide détaillé de l'élément.

Syntaxe

PROCEDURE HELP;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


HELP - Exemple

/*

** Procédure interne : HELP
** Exemple : Donne une aide ou un message d'aide de niveau élément.
*/
BEGIN
  Help;
END;


HIDE_MENU - Procédure interne

 Exemples	  Toutes les procédures internes

Description

Sur les plates-formes en mode caractère, cette procédure interne permet de masquer le menu en cours s'il est affiché, pour laisser apparaître toute partie de l'affichage de l'application Forms jusqu'alors dissimulée par le menu. Le menu s'affiche à nouveau si la procédure interne SHOW_MENU est appelée ou si l'utilisateur appuie sur [Menu].

Syntaxe

PROCEDURE HIDE_MENU;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


HIDE_MENU - Exemple

/*

** Procédure interne : HIDE_MENU
** Exemple : Masquer le menu sur les écrans en mode caractère
**           ou en mode bloc.
*/
BEGIN
  Hide_Menu;
END;


HIDE_VIEW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de masquer le canevas indiqué.

Syntaxe

PROCEDURE HIDE_VIEW
  (id_vue   ViewPort);

PROCEDURE HIDE_VIEW
  (nom_vue  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Description

Permet de masquer le canevas indiqué.

Paramètres

id_vue	 ID unique que Form Builder attribue à la vue lors de sa création. Utilisez la procédure interne FIND_VIEW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ViewPort.

nom_vue	Nom que vous avez donné à la vue lorsque vous l'avez créée.


HIDE_VIEW - Exemple

/*

** Procédure interne : HIDE_VIEW
** Exemple : Masquer par programme une vue empilée de l'écran
**           de l'utilisateur.
*/
PROCEDURE Hide_Button_Bar IS
BEGIN
  Hide_View('Button_Bar');
END;


HIDE_WINDOW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de masquer la fenêtre indiquée. HIDE_WINDOW équivaut à désactiver VISIBLE en appelant SET_WINDOW_PROPERTY.

Syntaxe

PROCEDURE HIDE_WINDOW
  (id_fenêtre  Window);

PROCEDURE FIND_WINDOW
  (nom_fenêtre  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_fenêtre	ID unique que Form Builder attribue à la fenêtre lors de sa création. Utilisez la procédure interne FIND_WINDOW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Window.

nom_fenêtre	Nom que vous avez donné à la fenêtre lorsque vous l'avez créée.


HIDE_WINDOW - Exemple

/*

** Procédure interne : HIDE_WINDOW
** Exemple : Lorsqu'une fenêtre principale est fermée, masquer
**           automatiquement les autres fenêtres "subordonnées". Pour établir
**           cette hiérarchie de fenêtres, définir un groupe d'enregistrements
**           statique dans l'application Forms appelée 'WINDOW_HIERARCHY', ayant la structure suivante :
**
**               Parent_Window       Child_Window
**               -------------       ------------
**                 MAIN               DETAIL1
**                 MAIN               DETAIL2
**                 DETAIL1            DETAIL3
**                 DETAIL1            DETAIL4
**                 DETAIL2            DETAIL5
**                 DETAIL3            DETAIL6
**
**           Il convient également de s'assurer du passage
**           à un élément qui ne figure pas sur les canevas affichés dans
**           les fenêtres en cours de fermeture, sinon la fenêtre sera
**           réaffichée automatiquement par les applications Forms
**           puisqu'elle contient le point d'insertion.
*/
PROCEDURE Close_Window( wn_name VARCHAR2,
           dest_item VARCHAR2 ) IS
  rg_id        RecordGroup;
  gc_parent    GroupColumn;
  gc_child     GroupColumn;
  the_Rowcount NUMBER;
  /*
  ** Appel récurrent de la fonction locale pour fermer les
  ** fenêtres fils à tous les niveaux de la hiérarchie.
  */
  PROCEDURE Close_Win_With_Children( parent_win VARCHAR2 ) IS
    the_child  VARCHAR2(40);
    the_parent VARCHAR2(40);
  BEGIN
    FOR j IN 1..the_Rowcount LOOP
      the_parent := Get_Group_Char_Cell(gc_parent,j);
      /* Si une fenêtre père correspondante figure dans la
         table */
      IF UPPER(the_parent) = UPPER(parent_win) THEN
    the_child := Get_Group_Char_Cell(gc_child,j);
    /*
    ** Fermer cette fenêtre fils et tous ses fils
    */
    Close_Win_With_Children( the_child );
      END IF;
    END LOOP;
    /*
    ** Fermer la fenêtre père
    */
    Hide_Window( parent_win );
  END;
BEGIN
  /*
  ** Définition
  */
  rg_id        := Find_Group('WINDOW_HIERARCHY');
  gc_parent    := Find_Column('WINDOW_HIERARCHY.PARENT_WINDOW');
  gc_child     := Find_Column('WINDOW_HIERARCHY.CHILD_WINDOW');
  the_Rowcount := Get_Group_Row_Count(rg_id);
  /* Fermer toutes les fenêtres fils de 'wn_name' */
  Close_Win_With_Children( wn_name );
  /* Passer à l'élément de destination fourni par l'appelant */
  Go_Item( dest_item );
END;


HOST - Procédure interne

 Exemples	  Toutes les procédures internes

Description

Permet d'exécuter une commande donnée du système d'exploitation.

Syntaxe

PROCEDURE HOST
  (chaîne_commande_system  VARCHAR2);

PROCEDURE HOST
  (chaîne_commande_system  VARCHAR2);
   action_écran          NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

chaîne_commande_système	Commande système que vous voulez transmettre à votre système d'exploitation.

action_écran	Permet d'indiquer l'une des constantes suivantes :

aucun paramètre  Demande à Form Builder :

n	d'effacer l'écran,

n	d'inviter l'utilisateur à quitter la commande.

NO_PROMPT  Demande à Form Builder :

n	d'effacer l'écran (sans demander à l'utilisateur de quitter la commande).

NO_SCREEN  Demande à Form Builder :

n	de ne pas effacer l'écran,

n	de ne pas inviter l'utilisateur à quitter la commande système.

(La commande HOST ne doit pas envoyer de sortie à l'écran lorsque le paramètre NO_SCREEN est utilisé.)

Notes d'utilisation

•	Le paramètre action_écran ne concerne que les applications qui s'exécutent en mode caractère, pour lesquelles la sortie de la commande HOST est affichée dans la même fenêtre que l'application Forms. Dans les applications à interface graphique, la sortie de la commande HOST est affichée dans une fenêtre distincte.

•	Notez que l'interpréteur de commande de Microsoft Windows NT est cmd, tandis que sur Windows 95 il s'agit de command. Avant d'utiliser la procédure interne HOST pour exécuter une commande externe, vérifiez le système d'exploitation employé et transmettez la chaîne de commande appropriée.

•	Sur Microsoft Windows NT, lorsque vous utilisez HOST pour exécuter une application 16 bits, la procédure interne FORM_SUCCESS retourne la valeur TRUE que l'application réussisse ou échoue. Ceci est un problème de Microsoft Win32. Les applications 32 bits et les commandes OS retournent correctement la valeur TRUE en cas de réussite et FALSE en cas d'échec. Les commandes non valides retournent la valeur FALSE.

•	Sur les plates-formes Windows 95, la procédure interne FORM_SUCCESS retourne toujours la valeur TRUE pour les commandes HOST qui échouent. Ceci inclut les appels vers les fonctions command.com ou OS, toute application DOS 16 bits ou de type GUI, ou une commande non valide. Les applications 32 bits retournent correctement la valeur TRUE en cas de réussite et FALSE en cas d'échec.


HOST - Exemple

/*

** Procédure interne : HOST
** Exemple : Exécuter une commande de système d'exploitation
**           dans un sous-processus ou un sous-shell. Utiliser
**           la procédure 'Get_Connect_Info' de l'exemple
**           GET_APPLICATION_PROPERTY.
*/
PROCEDURE Mail_Warning( send_to VARCHAR2) IS
  the_username VARCHAR2(40);
  the_password VARCHAR2(40);
  the_connect  VARCHAR2(40);
  the_command  VARCHAR2(2000);
BEGIN
  /*
  ** Extraire les informations sur le nom utilisateur, le mot de passe et la connexion.
  */
  Get_Connect_Info(the_username,the_password,the_connect);
  /*
  ** Chaîner le texte statique et les valeurs des variables
  ** locales pour préparer la chaîne de commande du système
  ** d'exploitation.
  */
  the_command := 'orasend '||
      ' to='||send_to||
      ' std_warn.txt '||
      ' subject="## LATE PAYMENT ##"'||
      ' user='||the_username||
      ' password='||the_password||
      ' connect='||the_connect;

  Message('Transmission de message en cours...', NO_ACKNOWLEDGE);
  Synchronize;
  /*
  ** Exécuter la chaîne de commande sous la forme d'une commande de système d'exploitation.
  ** L'option NO_SCREEN demande à l'application Forms de ne pas effacer l'écran
  ** pendant le déroulement "silencieux" de la procédure au niveau du système d'exploitation..
  */
  Host( the_command, NO_SCREEN );
  /*
  ** Vérifier si la commande a réussi ou échoué.
  */
  IF NOT Form_Success THEN
    Message('Erreur -- Message non transmis.');
  ELSE
    Message('Message transmis.');
  END IF;
END;


ID_NULL - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner une valeur BOOLEAN indiquant si l'ID d'objet est disponible.

Syntaxe

FUNCTION ID_NULL
  (Alert  BOOLEAN);

FUNCTION ID_NULL
  (Block  BOOLEAN);
FUNCTION ID_NULL
  (Canvas  BOOLEAN);
FUNCTION ID_NULL
  (Editor  BOOLEAN);
FUNCTION ID_NULL
  (FormModule  BOOLEAN);
FUNCTION ID_NULL
  (GroupColumn  BOOLEAN);
FUNCTION ID_NULL
  (Item  BOOLEAN);
FUNCTION ID_NULL
  (LOV  BOOLEAN);
FUNCTION ID_NULL
  (MenuItem  BOOLEAN);
FUNCTION ID_NULL
  (ParamList  BOOLEAN);
FUNCTION ID_NULL
  (RecordGroup  BOOLEAN);
FUNCTION ID_NULL
  (Relation  BOOLEAN);
FUNCTION ID_NULL
(Timer  BOOLEAN);
FUNCTION ID_NULL
  (Viewport  BOOLEAN);
FUNCTION ID_NULL
  (Window  BOOLEAN);

Type de procédure interne  fonction non restreinte

0	Retourne  valeur BOOLEENNE

1	Mode Saisie interrogation  oui

Paramètres

id_objet	Vous pouvez appeler cette fonction pour tester le résultat des types d'ID d'objet suivants :

n	Alert

n	Block

n	Canvas

n	Editor

n	FormModule

n	GroupColumn

n	Item

n	LOV

n	MenuItem

n	ParamList

n	RecordGroup

n	Relation

n	Timer

n	Viewport

n	Window

Notes d'utilisation

0	Utilisez ID_NULL pour vérifier l'existence d'un objet créé dynamiquement lors de l'exécution. Par exemple, si vous tentez de créer un groupe d'enregistrements qui existe déjà, vous recevez un message d'erreur. Pour effectuer cette vérification, procédez de la manière suivante :

n	Utilisez la procédure interne FIND appropriée pour obtenir l'ID d'objet.

n	Utilisez ID_NULL pour vérifier l'existence de cet objet.

n	Si cet objet n'existe pas, créez-le.

Si vous prévoyez de vérifier plusieurs fois l'existence d'un objet (au cours d'une même exécution), vous devez chaque fois relancer la procédure FIND_ appropriée (avant chaque utilisation d'ID_NULL).


ID_NULL - Exemple

Voir CREATE_GROUP.


IMAGE_SCROLL - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet de faire défiler l'élément Image aussi près que possible du décalage spécifié (cordoonnées X,Y). Cette procédure interne s'avère utile lorsque la taille de l'image est supérieure à celle de l'élément Image.

Syntaxe

PROCEDURE IMAGE_SCROLL
  (nom_élément VARCHAR2,
   X NUMBER,
   Y NUMBER
);

PROCEDURE IMAGE_SCROLL
  (id_élément ITEM,
   X NUMBER,
   Y NUMBER
);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	Précise l'ID unique attribué par Form Builder lors de la création de l'élément Image.

nom_élément	Précise le nom que vous avez donné à l'image lors de sa définition.

X	Coordonnée X du décalage.

Y	Coordonnée Y du décalage.


IMAGE_SCROLL - Exemple

Supposez, par exemple, que la taille de l'image soit deux fois plus grande que celle de l'élément Image, c'est-à-dire que les coordonnées de l'image soient 0, 200 et celles de l'élément 0, 100. Pour centrer l'image de façon approximative, vous pouvez paramétrer les coordonnées X, Y d'IMAGE_SCROLL sur 50, 50. L'angle supérieur gauche de l'élément est ainsi défini sur 50, 50 au lieu de 0, 0, ce qui a pour effet de décaler l'image de façon à ce que son affichage passe de 50 à 150.


IMAGE_ZOOM - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'effectuer un zoom avant ou arrière sur l'image en utilisant l'effet indiqué dans type_zoom et la valeur définie dans facteur_zoom.

Syntaxe

PROCEDURE IMAGE_ZOOM
  (id_image  ITEM,
  (type_zoom  NUMBER);

PROCEDURE IMAGE_ZOOM
  (nom_image  VARCHAR2,
   type_zoom   NUMBER);
PROCEDURE IMAGE_ZOOM
  (id_image     ITEM,
   type_zoom    NUMBER,
   facteur_zoom  NUMBER);
PROCEDURE IMAGE_ZOOM
  (name_image   VARCHAR2,
   type_zoom    NUMBER,
   facteur_zoom  NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_image	ID unique que Form Builder attribue lorsqu'il crée l'élément image. Les données de l'ID sont de type ITEM.

nom_image	Nom que vous avez donné à l'image lorsque vous l'avez définie.

type_zoom	Permet d'indiquer, pour définir l'effet recherché sur l'image affichée, l'une des constantes suivantes :

ADJUST_TO_FIT Met l'image à l'échelle, aux dimensions du rectangle affiché : l'image est visible en totalité et remplit une partie aussi importante que possible de l'élément image sans déformation.

SELECTION_RECTANGLE Met l'image à l'échelle afin que la région sélectionnée remplisse totalement l'élément image.

ZOOM_IN_FACTOR Agrandit l'image en fonction du facteur_zoom indiqué.

ZOOM_OUT_FACTOR Réduit l'image en fonction du facteur_zoom indiqué.

ZOOM_PERCENT Met l'image à l'échelle, au pourcentage indiqué par facteur_zoom.

facteur_zoom	Facteur ou pourcentage de zoom à appliquer à l'image. Pour cet argument, indiquez un nombre entier.

Notes d'utilisation

n	Assurez-vous que la valeur de facteur_zoom est raisonnable. Par exemple, un ZOOM_IN_FACTOR de 100 multiplierait la taille de l'image par 100, ce qui risquerait d'entraîner un dépassement de la capacité de mémoire de votre application.

n	Pour définir ZOOM_IN_FACTOR ou ZOOM_OUT_FACTOR, vous pouvez utiliser pour facteur_zoom n'importe quel entier positif, mais vous obtiendrez des performances optimales en utilisant 2, 4 ou 8.

n	Pour définir ZOOM_PERCENT, vous pouvez utiliser pour facteur_zoom n'importe quel entier positif. Pour agrandir l'image, indiquez un pourcentage supérieur à 100.

n	L'utilisateur doit faire appel à la souris pour sélectionner une région avant d'indiquer SELECTION_RECTANGLE, sinon Form Builder retourne un message d'erreur.

n	Les images qui utilisent SELECTION_RECTANGLE doivent comporter des barres de défilement.

n	Cette procédure interne est valide pour les images en couleur aussi bien que pour les images en noir et blanc.


IMAGE_ZOOM - Exemple

L'exemple ci-dessous affiche un déclencheur When-Button-Pressed qui double la taille de l'image chaque fois que l'utilisateur appuie sur le bouton.

Image_Zoom('mon_image', zoom_in_factor, 2);


INIT-OLEARGS;
INIT_OLEARGS

 Toutes les procédures internes

Description

Permet d'établir le nombre d'arguments définis et transmis à la méthode d'objet OLE

Syntaxe

PROCEDURE INIT_OLEARGS (num_args NUMBER);

Type de procédure interne  procédure non restreinte

Paramètres

num_args	Nombre d'arguments transmis à la méthode - plus un.
Notes d'utilisation

•	Cette procédure interne doit être appelée avant l'établissement des types et des valeurs d'arguments avec ADD_OLEARG.

•	Cette procédure interne et ADD_OLEARG permettent également de préparer aux appels GET_OLE_* en cas d'accès à la propriété (par exemple, avec un index).

•	Il n'est pas nécessaire d'utiliser INIT_OLEARGS avant un appel GET_OLE_* si ce dernier ne prend pas les paramètres OLE.

•	Remarquez que le nombre indiqué dans num_args doit dépasser le nombre d'arguments réels (plus un). Par exemple, si quatre arguments doivent être transmis, paramétrez num_arg sur cinq. Cette augmentation n'est nécessaire que lors de la préparation aux appels GET_OLE_*. Dans le cas d'appels CALL_OLE, elle n'est pas nécessaire, sans être pour autant déconseillée.


INITIALIZE_CONTAINER

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'insérer un objet OLE dans un conteneur OLE à partir d'un fichier compatible avec le serveur.

Syntaxe

PROCEDURE INITIALIZE_CONTAINER
  (id_élément    Item,
   nom_fichier  VARCHAR2);

PROCEDURE INITIALIZE_CONTAINER
  (nom_élément  VARCHAR2,
   nom_fichier  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

nom_fichier	Nom du fichier contenant l'objet à insérer dans le conteneur OLE. Comprend le chemin du fichier.


INITIALIZE_CONTAINER - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


INITIALIZE_CONTAINER - Exemple

/*

** Procédure interne : INITIALIZE_CONTAINER
** Exemple :  Initialiser un conteneur OLE en insérant un objet
**            dans un conteneur OLE à partir d'un fichier.
** Déclencheur :  When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'ELEMOLE';
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('Elément inexistant : '||item_name);
 ELSE
  Initialize_Container(item_id,'c:\OLE\oleobj.xls');
 END IF;
END;


INSERT_RECORD - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Appelée à partir d'un déclencheur On-Insert, cette procédure interne permet d'insérer l'enregistrement en cours dans la base de données au cours du traitement des transactions d'inscription et de validation. Elle est incluse principalement pour les applications qui doivent s'exécuter sur une source de données non ORACLE.

Syntaxe

PROCEDURE INSERT_RECORD;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


INSERT_RECORD - Restrictions

Cette procédure interne n'est valide que dans un déclencheur On-Insert.


INSERT_RECORD - Exemple

/*

** Procédure interne : INSERT_RECORD
** Exemple : Effectuer le traitement standard d'insertion de
**           Form Builder en fonction d'un indicateur global
**           défini au démarrage de l'application Forms, éventuellement fondé sur un paramètre.
** Déclencheur : On-Insert
*/
BEGIN
  /*
  ** Vérifier l'indicateur global défini lors du démarrage de l'application Forms.
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_insrec block=EMP');
  /*
  ** Sinon, effectuer l'opération appropriée.
  */
  ELSE
    Insert_Record;
  END IF;
END;


ISSUE_ROLLBACK - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Appelée à partir d'un déclencheur On-Rollback, cette procédure interne permet de lancer le traitement par défaut de Form Builder pour effectuer une annulation jusqu'au point d'enregistrement indiqué.

Cette procédure interne est incluse principalement pour les applications qui s'exécutent sur une source de données non ORACLE.

Syntaxe

PROCEDURE ISSUE_ROLLBACK
  (nom_savepoint  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

nom_savepoint	Nom du point d'enregistrement jusqu'où vous voulez effectuer une annulation. Un nom nul déclenche une annulation globale.


ISSUE_ROLLBACK - Restrictions

Si la procédure interne ISSUE_ROLLBACK est utilisée en dehors d'un déclencheur On-Rollback ou avec un savepoint autre que celui fourni par un appel à GET_APPLICATION_PROPERTY(NOM_SAVEPOINT), les résultats sont imprévisibles.


ISSUE_ROLLBACK - Exemple

/*

** Procédure interne : ISSUE_ROLLBACK
** Exemple : Effectuer le traitement standard d'annulation de
**           Form Builder. Choisir d'utiliser cette procédure
**           interne en fonction d'un indicateur global défini
**           lors du démarrage de l'application Forms, éventuellement fondé sur un paramètre.
** Déclencheur : On-Rollback
*/
DECLARE
  sp_name VARCHAR2(80);
BEGIN
  /*
  ** Rechercher le nom du savepoint jusqu'où Form Builder doit
  ** effectuer l'annulation. (NULL = Annulation globale?)
  */
  sp_name := Get_Application_Property(NOM_SAVEPOINT);
  /*
  ** Vérifier l'indicateur global défini lors du démarrage de l'application Forms.
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_rollbk name='||sp_name);
  ELSE
    Issue_Rollback(sp_name);
 END IF;
END;


ISSUE_SAVEPOINT - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Appelée à partir d'un déclencheur On-Savepoint, cette procédure interne permet de déclencher le traitement par défaut pour générer un point d'enregistrement. Vous pouvez utiliser GET_APPLICATION_PROPERTY (NOM_SAVEPOINT) pour déterminer le nom du point d'enregistrement que Form Builder doit définir par défaut, en l'absence de déclencheur On-Savepoint.

Cette procédure interne est incluse principalement pour les applications qui doivent s'exécuter sur une source de données non ORACLE.

Syntaxe

PROCEDURE ISSUE_SAVEPOINT
  (nom_savepoint  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

nom_savepoint	Nom du point d'enregistrement à générer.


ISSUE_SAVEPOINT - Restrictions

Ne générez jamais de point d'enregistrement désigné par FM_<numéro>, à moins que ce nom n'ait été fourni par un appel à GET_APPLICATION_PROPERTY. Des conflits avec des points d'enregistrement générés par Form Builder pourraient se produire.


ISSUE_SAVEPOINT - Exemple

/*

** Built-in:  ISSUE_SAVEPOINT
** Example:   Perform Form Builder standard savepoint processing.
**            Decide whether to use this built-in based on a
**            global flag setup at startup by the form,
**            perhaps based on a parameter.
** Trigger:   On-Savepoint
*/
DECLARE
 sp_name VARCHAR2(80);
BEGIN
  /*  Get the name of the savepoint Form Builder needs to issue
  */
  sp_name := Get_Application_Property(SAVEPOINT_NAME);
  /*  Check the global flag we setup at form startup
  */
  IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_savept name='||sp_name);
  /*  Otherwise, do the right thing.
  */
  ELSE
    Issue_Savepoint(sp_name);
  END IF;
END;


ITEM_ENABLED - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner la valeur booléenne TRUE si l'élément de menu est activé, et la valeur booléenne FALSE si l'élément de menu est désactivé.

Remarque : ITEM_ENABLED équivaut à GET_MENU_ITEM_PROPERTY (MENU_ITEM, ENABLED).

Syntaxe

FUNCTION ITEM_ENABLED
  (nom_menu  VARCHAR2,
   nom_élém  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne valeur BOOLEENNE

Mode Saisie interrogation  oui

Paramètres

nom_menu	Nom de menu de type VARCHAR2.

nom_élém	Nom d'élément de menu de type VARCHAR2.


LAST_OLE_ERROR

 Toutes les procédures internes

Description

Permet de retourner le numéro identifiant la condition d'erreur OLE la plus récente.

Syntaxe

FUNCTION LAST_OLE_ERROR RETURN number;

Type de procédure interne  fonction non restreinte

Retourne  nombre

Paramètres  Aucun

Notes d'utilisation

•	Cette fonction peut être utilisée pour la plupart des conditions d'erreur. Cependant, si l'erreur est une exception PL/SQL, utilisez la fonction LAST_OLE_EXCEPTION à la place.

•	Pour plus d'informations sur les valeurs d'erreur et leur signification, reportez-vous au fichier winerror.h. Winerror.h est fourni par votre revendeur de compilateur C.


LAST_OLE_EXCEPTION

 Toutes les procédures internes

Description

Permet de retourner le numéro identifiant l'exception OLE la plus récente survenue dans l'objet appelé.

Syntaxe

FUNCTION LAST_OLE_EXCEPTION
  (source OUT VARCHAR2, description OUT VARCHAR2,
   helpfile OUT VARCHAR2,
   helpcontextid OUT PLS_INTEGER)
RETURN errornumber PLS_INTEGER;

Type de procédure interne  fonction non restreinte

Retourne  numéro d'erreur attribué par le serveur OLE à cette condition d'exception

Paramètres

source	Nom du serveur OLE ayant détecté la condition d'exception.
description	Texte du message d'erreur.
helpfile	Nom du fichier dans lequel le serveur OLE possède des informations d'erreur supplémentaires.
helpcontextid	ID d'un document spécifique dans le fichier d'aide ci-dessus.
Notes d'utilisation

Cette fonction peut être utilisée après l'apparition d'une exception PL/SQL FORM_OLE_FAILURE, suite à l'appel d'un serveur d'objets OLE. Pour obtenir des informations sur les autres types d'erreurs, (sauf en ce qui concerne les exceptions PL/SQL), utilisez la fonction LAST_OLE_ERROR.


LAST_RECORD - Procédure interne

 Exemples	  Toutes les procédures internes

Description

Permet de passer au dernier enregistrement de la liste d'enregistrements du bloc. Si le bloc comporte une interrogation ouverte, Form Builder extrait les enregistrements sélectionnés restants de la liste et ferme l'interrogation.

Syntaxe

PROCEDURE LAST_RECORD;

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


LAST_RECORD - Exemple

Voir FIRST_RECORD


LIST_VALUES - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet d'afficher la liste de valeurs (LOV) de l'élément en cours, tant que le point d'insertion est dans un élément texte associé à une LOV. La liste de valeurs reste affichée jusqu'à ce que l'utilisateur quitte la LOV ou sélectionne une valeur.

Par défaut, LIST_VALUES utilise le paramètre NO_RESTRICT ne permet pas à Oracle  Builder de faire appel à la fonction automatique de recherche et d'insertion. Si vous utilisez le paramètre RESTRICT, Form Builder utilise la fonction automatique de recherche et d'insertion.

Fonction automatique de recherche et d'insertion Cette fonction permet à une LOV de considérer la valeur en cours d'un élément texte comme valeur de recherche - c'est-à-dire que si un utilisateur appuie sur [Liste] dans un élément texte qui comporte une LOV, Form Builder vérifie si l'élément contient une valeur.

Si l'élément texte contient une valeur, Form Builder l'utilise automatiquement comme si l'utilisateur avait entré cette valeur dans le champ de recherche de la LOV, et avait appuyé sur [Liste] pour réduire la liste.

Si la valeur de l'élément réduit la liste à une seule valeur, Form Builder n'affiche pas la LOV, mais entre automatiquement la valeur correcte dans le champ.

Syntaxe

PROCEDURE LIST_VALUES
  (mot_clé  NUMBER);

Type de procédure interne procédure restreinte

Mode Saisie interrogation  non

Paramètres

mot_clé	Permet d'indiquer l'une des constantes suivantes :

NO_RESTRICT Demande à Form Builder de ne pas utiliser la fonction automatique de recherche et d'insertion.

RESTRICT Demande à Form Builder d'utiliser la fonction automatique de recherche et d'insertion.


LOCK_RECORD - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Cette procédure interne tente de verrouiller la ligne de la base de données qui correspond à l'enregistrement en cours. Elle verrouille immédiatement l'enregistrement, que la propriété de bloc Mode Verrouillage soit définie à Immédiat (par défaut) ou à Différé.

Exécutée à partir d'un déclencheur On-Lock, cette procédure interne déclenche le verrouillage par défaut de la base de données. Cette technique est illustrée par l'exemple ci-après.

Syntaxe

PROCEDURE LOCK_RECORD;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

aucun


LOCK_RECORD - Exemple

/*

** Procédure interne : LOCK_RECORD
** Exemple : Effectuer le verrouillage standard
**           d'enregistrement de Form Builder sur l'enregistrement interrogé
**           qui vient d'être supprimé ou mis à jour. Choisir d'utiliser
**           le traitement par défaut ou un user exit en consultant un
**           indicateur global défini lors du démarrage de l'application
**           Forms, éventuellement fondé sur un paramètre.
** Déclencheur : On-Lock
*/
BEGIN
  /*
  ** Vérifier l'indicateur global défini lors du démarrage de l'application Forms.
  */
  IF :Global.Non_Oracle_Datasource = 'TRUE' THEN
    User_Exit('my_lockrec block=EMP');
  /*
  ** Sinon, effectuer l'opération appropriée.
  */
  ELSE
    Lock_Record;
  END IF;
END;


LOGON - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'exécuter le traitement de connexion par défaut de Form Builder, en utilisant le nom utilisateur et le mot de passe indiqués. Appelez cette procédure à partir d'un déclencheur On-Logon si vous voulez compléter le traitement de connexion par défaut.

Syntaxe

PROCEDURE LOGON
  (nom_utilisateur  VARCHAR2,
   mot_de_passe  VARCHAR2);

PROCEDURE LOGON
  (nom_utilisateur  VARCHAR2,
   mot_de_passe  VARCHAR2,
   écran_connexion_si_erreur  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

Cette procédure interne accepte les arguments suivants :

nom_utilisateur	Tout nom utilisateur valide, d'un maximum de 80 caractères.

mot_de_passe	Tout mot de passe valide d'un maximum de 80 caractères, y compris une chaîne de connexion de base de données.

écran_connexion_si_erreur	Paramètre facultatif de type BOOLEAN qui, lorsque défini à TRUE (par défaut), demande à Form Builder d'afficher automatiquement l'écran de connexion si la connexion indiquée échoue (généralement à la suite de l'indication d'un nom utilisateur ou d'un mot de passe non valide). Lorsque écran_connexion_si_erreur est défini à FALSE et que la connexion échoue, l'écran de connexion n'est pas affiché, et FORMS_FAILURE est défini à TRUE afin que le programmeur puisse traiter la condition de manière appropriée.

Notes d'utilisation :

Si vous utilisez LOGON pour vous connecter à une base de données OPS$, utilisez la barre oblique '/' comme nom utilisateur et le nom de base de données comme mot de passe.


LOGON - Restrictions

n	Si vous identifiez une base de données éloignée, il doit y avoir une connexion SQL*Net à cette base de données lors de l'exécution.

n	Form Builder ne peut se connecter qu'à une base de données à la fois. Il est néanmoins possible d'utiliser des liaisons de base de données pour accéder à plusieurs bases à l'aide d'une seule connexion.


LOGON - Exemple

/*

** Built-in:  LOGON
** Example:   Perform Form Builder standard logon to the ORACLE
**            database.  Decide whether to use Form Builder
**            built-in processing or a user exit by consulting a
**            global flag setup at startup by the form,
**            perhaps based on a parameter. This example
**            uses the 'Get_Connect_Info' procedure from the
**            GET_APPLICATION_PROPERTY example.
** Trigger:   On-Logon
*/
DECLARE
  un  VARCHAR2(80);
  pw  VARCHAR2(80);
  cn  VARCHAR2(80);
BEGIN
  /*
  ** Get the connection info
  */
  Get_Connect_Info(un,pw,cn);
  /*
  ** If at startup we set the flag to tell our form that we
  ** are not running against ORACLE, then call our
  ** appropriate MY_LOGON userexit to logon.
  */
  IF :Global.Non_Oracle_Datasource = 'TRUE' THEN
User_Exit('my_logon username='||un||' password='||pw);
  /*
  ** Otherwise, call the LOGON built-in
  */
  ELSE

  /*

  ** Use the following to place a slash in the username field for OPS$ logon

  */

    IF un IS NULL THEN

      un:='/';

    END IF

    IF cn IS NOT NULL THEN
      LOGON(un,pw||'@'||cn);
    ELSE
      LOGON(un,pw);
    END IF;
  END IF;
END;


LOGON_SCREEN - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'afficher l'écran de connexion Form Builder par défaut et de demander un nom utilisateur et un mot de passe valides. Dans la plupart des cas, ce sous-programme intégré sera inclus dans un déclencheur On-Logon pour établir la connexion à une source de données non ORACLE.

Syntaxe

PROCEDURE LOGON_SCREEN;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


LOGON_SCREEN - Restrictions

n	Vous devez appeler la procédure interne LOGON pour établir la connexion à votre source de données.


LOGON_SCREEN - Exemple

/*

** Built-in:  LOGON_SCREEN
** Example:   Use the default Form Builder logon screen to prompt
**            for username and password before logging on to
**            the database. This uses the 'Get_Connect_Info'
**            procedure from the GET_APPLICATION_PROPERTY
**            example.
*/
DECLARE
  un  VARCHAR2(80);
  pw  VARCHAR2(80);
  cn  VARCHAR2(80);
BEGIN
  /*
  ** Bring up the logon screen
  */
  Logon_Screen;
  /*
  ** Get the username, password and
  ** connect string.
  */
  Get_Connect_Info( un, pw, cn );
  /*
  ** Log the user onto the database
  */
  IF cn IS NOT NULL THEN
    LOGON(un,pw||'@'||cn);
  ELSE
    LOGON(un,pw);
  END IF;
END;


LOGOUT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de déconnecter l'application du SGBDR ORACLE. Tous les curseurs ouverts sont automatiquement fermés lorsque vous appelez  la procédure interne LOGOUT. Vous pouvez rétablir la connexion par programme en utilisant LOGON. Si vous vous déconnectez d'une application comportant plusieurs applications Forms à connexions multiples, Form Builder tente de rétablir toutes ces connexions lorsque vous exécutez par la suite la fonction LOGON.

Syntaxe

PROCEDURE LOGOUT;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


LOGOUT - Exemple

/*

** Procédure interne : LOGOUT
** Exemple : Exécuter une déconnexion standard Form Builder.
**           Choisir d'utiliser le traitement interne de Form Builder ou un user exit en
**           consultant un indicateur global défini lors du
**           démarrage de l'application Forms, éventuellement
**           fondé sur un paramètre.
** Déclencheur : On-Logout
*/
BEGIN
  /*
  ** Vérifier l'indicateur défini lors du démarrage de l'application Forms.
  */
  IF :Global.Non_Oracle_Datasource = 'TRUE' THEN
    User_Exit('my_logout');
  /*
  ** Sinon, effectuer l'opération appropriée.
  */
  ELSE
    Logout;
  END IF;


MENU_CLEAR_FIELD - Procédure interne

 Restrictions	  Toutes les procédures internes

Description

Permet de supprimer la valeur du champ en cours entre la position du curseur et la fin du champ. Si le curseur se trouve à droite du dernier caractère non blanc, cette procédure interne efface la  totalité du champ et lui donne la valeur NULL.

Syntaxe

PROCEDURE MENU_CLEAR_FIELD;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


MENU_CLEAR_FIELD - Restrictions

La boîte de dialogue Entrer les valeurs des paramètres doit être affichée.


MENU_NEXT_FIELD - Procédure interne

 Restrictions	  Toutes les procédures internes

Description

Permet de passer au champ suivant d'une boîte de dialogue Entrer les valeurs des paramètres.

Syntaxe

PROCEDURE MENU_NEXT_FIELD;

Type de procédure interne procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


MENU_NEXT_FIELD - Restrictions

La boîte de dialogue Entrer les valeurs des paramètres doit être affichée.


MENU_PARAMETER - Procédure interne

 Restrictions	 	 Toutes les procédures internes

Description

Permet d'afficher tous les paramètres associés au menu en cours, ainsi que leurs valeurs, dans la boîte de dialogue Entrer les valeurs des paramètres.

Syntaxe

PROCEDURE MENU_PARAMETER;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


MENU_PARAMETER - Restrictions

Cette procédure interne n'est valide que pour les menus affichés en mode plein écran.


MENU_PREVIOUS_FIELD - Procédure interne

 Restrictions	  Toutes les procédures internes

Description

Permet de revenir au champ précédent d'une boîte de dialogue Entrer les valeurs des paramètres.

Syntaxe

PROCEDURE MENU_PREVIOUS_FIELD;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


MENU_PREVIOUS_FIELD - Restrictions

La boîte de dialogue Entrer les valeurs des paramètres doit être affichée.


MENU_REDISPLAY - Procédure interne

 Restrictions	  Toutes les procédures internes

Description

Permet de redessiner l'écran d'un menu.

Syntaxe

PROCEDURE MENU_REDISPLAY;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


MENU_REDISPLAY - Restrictions

Vous devez utiliser une plate-forme en mode caractère ou en mode bloc.


MENU_SHOW_KEYS - Procédure interne

 Restrictions	 	 Toutes les procédures internes

Description

Permet d'afficher l'écran Touches du module Menu lors de l'exécution.

Syntaxe

PROCEDURE MENU_SHOW_KEYS;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


MENU_SHOW_KEYS - Restrictions

MENU_SHOW_KEYS est utilisable dans tous les contextes.


MESSAGE - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'afficher le texte indiqué dans la ligne de message.

Syntaxe

PROCEDURE MESSAGE
  (chaîne_message  VARCHAR2,
   réponse_utilisateur   NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

chaîne_message	Chaîne de caractères entre apostrophes ou variable dont les données sont de type VARCHAR2.

réponse_utilisateur	Permet d'indiquer l'une des constantes suivantes :

ACKNOWLEDGE (valeur par défaut) Demande à Form Builder d'afficher une alerte modale que l'utilisateur doit annuler explicitement, chaque fois que deux messages consécutifs sont générés. Le premier message doit faire l'objet d'un accusé de réception pour que le second puisse être affiché.

NO_ACKNOWLEDGE Indique que, lorsque deux messages consécutifs sont générés, l'utilisateur n'a pas à répondre au premier pour que Form Builder affiche le second. L'utilisateur risque donc de ne pas voir le premier message, puisque le second recouvre celui-ci immédiatement, sans demander à l'utilisateur d'accuser réception.


MESSAGE - Restrictions

La chaîne de message peut comporter jusqu'à 200 caractères. Notez cependant que le nombre maximum de caractères est conditionné par différents facteurs, dont la police utilisée et les limitations imposées par le gestionnaire de fenêtres runtime.


MESSAGE - Exemple

/*

** Procédure interne : MESSAGE
** Exemple : Afficher plusieurs messages dans la ligne de
**           commande pendant le déroulement d'un
**           sous-programme donné. Le paramètre NO_ACKNOWLEDGE
**           permet d'éviter que l'utilisateur n'ait à
**           accuser réception de chaque message.
*/
PROCEDURE Do_Large_Series_Of_Updates IS
BEGIN
  Message('En cours... (0%)', NO_ACKNOWLEDGE);
  /*
  ** Instruction de mise à jour de longue durée
  */

  SYNCHRONIZE;
  Message('En cours... (30%)', NO_ACKNOWLEDGE);
  /*
  ** Autre instruction de mise à jour de longue durée
  */
  Message('En cours... (80%)', NO_ACKNOWLEDGE);
  /*
  ** Dernière instruction de longue durée
  */
  Message('Terminé...', NO_ACKNOWLEDGE);
END;


MESSAGE_CODE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le numéro du dernier message généré par Form Builder pendant la session Runform en cours. Cette procédure interne retourne zéro au début d'une session lorsque Form Builder n'a encore généré aucun message.

Utilisez MESSAGE_CODE pour tester le résultat d'une action utilisateur (action sur une touche, par exemple) pour déterminer le traitement dans un déclencheur On-Message.

La liste des messages et de leur numéro figure à l'annexe Messages.

Syntaxe

FUNCTION MESSAGE_CODE;

Type de procédure interne  fonction non restreinte

Retourne  NUMBER

Mode Saisie interrogation  oui

Paramètres

aucun


MESSAGE_CODE - Exemple

/*

** Procédure interne : MESSAGE_CODE,MESSAGE_TEXT,MESSAGE_TYPE
** Exemple : Reformuler certains messages FRM en vérifiant le
**           code de message d'un déclencheur ON-MESSAGE.
** Déclencheur : On-Message
*/
DECLARE
  msgnum NUMBER       := MESSAGE_CODE;
  msgtxt VARCHAR2(80) := MESSAGE_TEXT;
  msgtyp VARCHAR2(3)  := MESSAGE_TYPE;
BEGIN
  IF msgnum = 40400 THEN
    Message('Vos modifications sont désormais permanentes.');
  ELSIF msgnum = 40401 THEN
    Message('Aucune modification non enregistrée en attente.');
  ELSE     /*
    /*
    ** Imprimer le message qui aurait dû normalement s'afficher.
    **
    **  FRM-12345: Texte du message
    */
    Message(msgtyp||'-'||TO_CHAR(msgnum)||': '||msgtxt);
  END IF;
END;


MESSAGE_TEXT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le texte du dernier message généré par Form Builder pendant la session Runform en cours. Cette procédure interne retourne NULL au début d'une session lorsque Form Builder n'a encore généré aucun message.

Utilisez MESSAGE_TEXT pour tester le résultat d'une action utilisateur (action sur une touche, par exemple) pour déterminer le traitement dans un déclencheur On-Message.

Remarque : Si vos applications doivent être prises en charge dans plusieurs langues, utilisez non pas la procédure interne MESSAGE_TEXT, mais MESSAGE_CODE. La référence à des codes de message et non à un texte de message est particulièrement utile dans les applications qui offrent un support de langue nationale.

Syntaxe

FUNCTION MESSAGE_TEXT;

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

aucun


MESSAGE_TEXT - Exemple

/*

** Procédure interne : MESSAGE_CODE,MESSAGE_TEXT,MESSAGE_TYPE
** Exemple : Reformuler certains messages FRM en vérifiant le
**           code de message d'un déclencheur ON-MESSAGE.
** Déclencheur : On-Message
*/
DECLARE
  msgnum NUMBER       := MESSAGE_CODE;
  msgtxt VARCHAR2(80) := MESSAGE_TEXT;
  msgtyp VARCHAR2(3)  := MESSAGE_TYPE;
BEGIN
  IF msgnum = 40400 THEN
    Message('Vos modifications sont désormais permanentes.');
  ELSIF msgnum = 40401 THEN
    Message('Aucune modification non enregistrée en attente.');
  ELSE     /*
    /*
    ** Imprimer le message qui aurait dû normalement s'afficher.
    **
    **  FRM-12345: Texte du message
    */
    Message(msgtyp||'-'||TO_CHAR(msgnum)||': '||msgtxt);
  END IF;
END;


MESSAGE_TYPE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner le type du dernier message généré par Form Builder pendant la session Runform en cours.

Utilisez MESSAGE_TYPE pour tester le résultat d'une action utilisateur (action sur une touche, par exemple) pour déterminer le traitement dans un déclencheur On-Message.

Syntaxe

FUNCTION MESSAGE_TYPE;

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

MESSAGE_TYPE retourne l'une des trois valeurs suivantes :

FRM	Indique qu'un message Form Builder a été généré.

ORA	Indique qu'un message ORACLE a été généré.

NULL	Indique que Form Builder n'a pas encore généré de message au cours de la session.

Mode Saisie interrogation  oui

Paramètres

aucun


MESSAGE_TYPE - Exemple

/*

** Procédure interne : MESSAGE_CODE,MESSAGE_TEXT,MESSAGE_TYPE
** Exemple : Reformuler certains messages FRM en vérifiant le
**           code de message d'un déclencheur ON-MESSAGE.
** Déclencheur : On-Message
*/
DECLARE
  msgnum NUMBER       := MESSAGE_CODE;
  msgtxt VARCHAR2(80) := MESSAGE_TEXT;
  msgtyp VARCHAR2(3)  := MESSAGE_TYPE;
BEGIN
  IF msgnum = 40400 THEN
    Message('Vos modifications sont désormais permanentes.');
  ELSIF msgnum = 40401 THEN
    Message('Aucune modification non enregistrée en attente.');
  ELSE     /*
    /*
    ** Imprimer le message qui aurait dû normalement s'afficher.
    **
    **  FRM-12345: Texte du message
    */
    Message(msgtyp||'-'||TO_CHAR(msgnum)||': '||msgtxt);
  END IF;
END;


MOVE_WINDOW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de déplacer la fenêtre indiquée jusqu'à l'emplacement désigné par les coordonnées.

Si vous avez choisi la valeur Caractère comme propriété Système de coordonnées d'application Forms, vos coordonnées x et y sont indiquées sous forme de caractères. Si vous avez choisi la valeur Réel, vos coordonnées x et y sont indiquées en unités réelles sélectionnées -- pixels, pouces, centimètres ou points.

Syntaxe

FUNCTION MOVE_WINDOW
  (id_fenêtre  Window,
   x          NUMBER,
   y          NUMBER);

FUNCTION MOVE_WINDOW
  (nom_fenêtre  VARCHAR2,
   x            NUMBER,
   y            NUMBER);

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Paramètres

id_fenêtre	ID unique que Form Builder attribue à la fenêtre lors de sa création. Utilisez la procédure interne FIND_WINDOW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Window.

nom_fenêtre	Nom que vous avez donné à la fenêtre lorsque vous l'avez créée.

x	Coordonnée x de l'écran où vous voulez placer l'angle supérieur gauche d'une fenêtre.

y	Coordonnée y de l'écran où vous voulez placer l'angle supérieur gauche d'une fenêtre.


MOVE_WINDOW - Exemple

/*

** Procédure interne : MOVE_WINDOW
** Exemple : Déplacer Fenêtre2 pour l'ancrer à l'angle
**           inférieur droit de Fenêtre1.
*/
PROCEDURE Anchor_Bottom_Right2(Fenêtre2 VARCHAR2, Fenêtre1 VARCHAR2) IS
  wn_id1 Window;
  wn_id2 Window;
  x      NUMBER;
  y      NUMBER;
  w      NUMBER;
  h      NUMBER;
BEGIN
  /*
  ** Rechercher Fenêtre1 et extraire sa position (x,y),
  ** sa largeur et sa hauteur.
  */
  wn_id1 := Find_Window(Fenêtre1);
  x      := Get_Window_Property(wn_id1,X_POS);
  y      := Get_Window_Property(wn_id1,Y_POS);
  w      := Get_Window_Property(wn_id1,WIDTH);
  h      := Get_Window_Property(wn_id1,HEIGHT);
  /*
  ** Ancrer Fenêtre2 à (x+w,y+h)
  */
  wn_id2 := Find_Window(Fenêtre2);
  Move_Window( wn_id2, x+w, y+h );
END;


NAME_IN - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de retourner la valeur de la variable indiquée.

La valeur retournée se présente sous la forme d'une chaîne de caractères. Vous pouvez cependant utiliser NAME_IN pour retourner des valeurs numériques et des dates sous la forme de chaînes de caractères, puis convertir ces chaînes en types de données appropriés. Vous pouvez utiliser la valeur retournée comme n'importe quelle valeur d'une instruction exécutable.

Si vous imbriquez la fonction NAME_IN, Form Builder évalue les différentes fonctions NAME_IN de l'intérieur vers l'extérieur.

Syntaxe

FUNCTION NAME_IN
  (nom_variable  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

nom_variable	 Variable ou élément texte valide. Les données du nom sont de type VARCHAR2.

Notes d'utilisation

Si la valeur retournée est une chaîne de date, NAME_IN utilise le masque de format indiqué dans la propriété BUILTIN_DATE_FORMAT. Si la propriété DATE_FORMAT_COMPATIBILITY_MODE est définie à 4.5, le format américain par défaut est utilisé pour formater la chaîne retournée.


NAME_IN - Exemples

/*

** Built-in:  NAME_IN
** Example:  Simple implementation of a Last-In-First-Out
**           stack mechanism using Global variables.
**           For each named stack, a global variable
**           GLOBAL.<stackname>_PTR points to the largest
**           element on the stack. PUSH increments this
**           value as new elements are added.  Values
**           PUSH'ed on or POP'ed off the named stack are
**           actually stored in GLOBAL variables of a
**           conveniently formed name: GLOBAL.<stackname>nnn
**           where 'nnn' is the number of the element on the
**           stack.
**
**           Usage:
**           Push('MYSTACKNAME', '1');
**           Push('MYSTACKNAME', '2');
**
**           str_var := Pop('MYSTACKNAME');  -- Gets '2'
**           str_var := Pop('MYSTACKNAME');  -- Gets '1'
**           str_var := Pop('MYSTACKNAME');  -- Gets 'EOS'
**
*/
PROCEDURE Push ( the_stackname VARCHAR2,
         the_value     VARCHAR2 ) IS

  ptr_name VARCHAR2(40); -- This stack's pointer name
  prefix   VARCHAR2(40); -- Common prefix for storage vars
  elt_name VARCHAR2(40); -- Name of storage element
  new_idx  VARCHAR2(4) ; -- New stack pointer value
BEGIN
  /*
  ** For any named stack that we reference, the global
  ** variables used for storing the stack's values and the
  ** stack's pointer all begin with a common prefix:
  ** GLOBAL.<stackname>
  */
  prefix := 'GLOBAL.' || the_stackname;
  /*
  ** This named stack's pointer resides in
  ** GLOBAL.<stackname>_PTR Remember that this is the *name*
  ** of the pointer.
  */
  ptr_name := prefix || '_PTR';
  /*
  ** Initialize the stack pointer with a default value of
  ** zero if the stack pointer did not exist previously, ie
  ** the GLOBAL.<stackname>_PTR had yet to be created.
  */
  Default_Value( '0', ptr_name );
  /*
  ** Since we're PUSH'ing a new element on the stack,
  ** increment the stack pointer to reflect this new
  ** element's position.  Remember that GLOBAL variables are
  ** always of type VARCHAR2, so we must convert them TO_NUMBER
  ** before any calculations.
  */
  new_idx  := TO_CHAR( TO_NUMBER( Name_In( ptr_name ) ) + 1 ) ;
  Copy( new_idx   , ptr_name );
  /*
  ** Determine the name of the global variable which will
  ** store the value passed in, GLOBAL.<stackname><new_idx>.
  ** This is simply the prefix concatenated to the new index
  ** number we just calculated above.
  */
  elt_name := prefix||new_idx;
  Copy( the_value , elt_name );
END;

FUNCTION Pop ( the_stackname VARCHAR2)
RETURN VARCHAR2 IS
  ptr_name VARCHAR2(40); -- This stack's pointer name
  prefix   VARCHAR2(40); -- Common prefix for storage vars
  elt_name VARCHAR2(40); -- Name of storage element
  new_idx  VARCHAR2(4) ; -- New stack pointer value
  cur_idx  VARCHAR2(4) ; -- Current stack pointer value
  the_val  VARCHAR2(255);

  EMPTY_STACK   CONSTANT VARCHAR2(3) := 'EOS';
  NO_SUCH_STACK CONSTANT VARCHAR2(3) := 'NSS';
BEGIN
  /*
  ** For any named stack that we reference, the global
  ** variables used for storing the stack's values and the
  ** stack's pointer all begin with a common prefix:
  ** GLOBAL.<stackname>
  */
  prefix   := 'GLOBAL.' || the_stackname;
  /*
  ** This named stack's pointer resides in
  ** GLOBAL.<stackname>_PTR Remember that this is the *name*
  ** of the pointer.
  */
  ptr_name := prefix || '_PTR';
  /*
  ** Force a default value of NULL so we can test if the
  ** pointer exists (as a global variable). If it does not
  ** exist, we can test in a moment for the NULL, and avoid
  ** the typical error due to referencing non-existent
  ** global variables.
  */
  Default_Value( NULL, ptr_name );
  /*
  ** If the *value* contained in the pointer is NULL, then
  ** the pointer must not have existed prior to the
  ** Default_Value statement above. Return the constant
  ** NO_SUCH_STACK in this case and erase the global
  ** variable that the Default_Value implicitly created.
  */
 IF Name_In( ptr_name ) IS NULL THEN
   the_val := NO_SUCH_STACK;
  Erase( ptr_name );
 /*
 ** Otherwise, the named stack already exists. Get the
 ** index of the largest stack element from this stack's
 ** pointer.
 */
 ELSE
   cur_idx := Name_In( ptr_name ) ;
   /*
   ** If the index is zero, then the named stack is already
   ** empty, so return the constant EMPTY_STACK, and leave
   ** the stack's pointer around for later use, ie don't
   ** ERASE it.
   **
   ** Note that a stack can only be empty if some values
   ** have been PUSH'ed and then all values subsequently
   ** POP'ed.  If no values were ever PUSH'ed on this named
   ** stack, then no associated stack pointer would have
   ** been created, and we would flag that error with the
   ** NO_SUCH_STACK case above.
   */
   IF cur_idx = '0' THEN
     the_val := EMPTY_STACK;
    /*
    ** If the index is non-zero, then:
    ** (1) Determine the name of the global variable in
    **     which the value to be POP'ed is stored,
    **     GLOBAL.<stackname><cur_idx>
    ** (2) Get the value of the (cur_idx)-th element to
    **     return
    ** (3) Decrement the stack pointer
    ** (4) Erase the global variable which was used for
    **     value storage
    */
    ELSE
      elt_name:= prefix || cur_idx;
      the_val := Name_In( elt_name );
      new_idx := TO_CHAR( TO_NUMBER( Name_In(ptr_name) ) - 1 ) ;
      Copy( new_idx , ptr_name );
      Erase( elt_name );
    END IF;
  END IF;
  RETURN the_val;
END;


NEW_FORM - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de sortir de l'application Forms en cours et d'accéder à l'application Forms indiquée. L'application Forms appelante est fermée en tant qu'application Forms père. Si l'application Forms appelante a été appelée par une applications Forms de niveau supérieur, Form Builder maintient l'appel de niveau supérieur actif et le considère comme un appel à la nouvelle application Forms. Form Builder libère la mémoire (les curseurs de base de données, par exemple) qui était utilisée par l'application Forms fermée.

Form Builder exécute la nouvelle application Forms en utilisant les mêmes options Runform que l'application Forms père. Si celle-ci était une application appelée, Form Builder exécute la nouvelle application Forms en utilisant les mêmes options que l'application Forms père.

Syntaxe

PROCEDURE NEW_FORM
  (nom_modulAppForms  VARCHAR2);

PROCEDURE NEW_FORM
  (nom_moduleAppli     VARCHAR2,
   mode_annulation     NUMBER);
PROCEDURE NEW_FORM
  (nom_moduleAppli     VARCHAR2,
   mode_annulation     NUMBER,
   mode_interrogation  NUMBER);
PROCEDURE NEW_FORM
  (nom_moduleAppli     VARCHAR2,
   mode_annulation     NUMBER,
   mode_interrogation  NUMBER,
   mode_données        NUMBER);
PROCEDURE NEW_FORM
  (nom_moduleAppli     VARCHAR2,
   mode_annulation     NUMBER,
   mode_interrogation  NUMBER,
   id_listparam        PARAMLIST);
PROCEDURE NEW_FORM
  (nom_moduleAppli     VARCHAR2,
   mode_annulation     NUMBER,
   mode_interrogation  NUMBER,
   nom_listparam       VARCHAR2);
PROCEDURE NEW_FORM
  (nom_moduleAppli     VARCHAR2,
   mode_annulation     NUMBER,
   mode_interrogation  NUMBER,
   mode_données        NUMBER,
   id_listparam        PARAMLIST);
PROCEDURE NEW_FORM
  (nom_moduleAppli     VARCHAR2,
   mode_annulation     NUMBER,
   mode_interrogation  NUMBER,
   mode_données        NUMBER,
   nom_listparam       VARCHAR2);

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

nom_moduleAppli	Nom de l'application Forms appelée (obligatoirement entre apostrophes). Les données du nom sont de type VARCHAR2.

mode_annulation	TO_SAVEPOINT (valeur par défaut) Form Builder annule toutes les modifications non enregistrées (y compris les modifications inscrites) jusqu'au savepoint de l'application Forms en cours.

NO_ROLLBACK Form Builder sort de l'application Forms en cours sans revenir à un savepoint. Vous pouvez quitter l'application Forms de niveau supérieur sans effectuer d'annulation. Dans ce cas, vous conservez les verrous pendant une opération NEW_FORM. Ces verrous peuvent également se présenter lors de l'appel de Form Builder à partir d'un programme externe en langage de troisième génération. Les verrous restent en vigueur jusqu'à ce que vous repreniez le contrôle à partir de Form Builder.

FULL_ROLLBACK Form Builder annule toutes les modifications non enregistrées (y compris les modifications inscrites) qui ont été effectuées pendant la session Runform en cours. Vous ne pouvez pas demander un FULL_ROLLBACK à partir d'une application Forms qui s'exécute en mode Post-only. (Le mode Post-only ne peut se présenter que lorsque votre application Forms appelle à une autre application Forms alors que l'application Forms appelante comporte des enregistrements non inscrits. Pour éviter de perdre les verrous émis par l'application Forms appelante, Form Builder empêche tout traitement commit dans l'application Forms appelée.)

mode_interrogation	NO_QUERY_ONLY (valeur par défaut) Exécute normalement l'application Forms indiquée, en permettant à l'utilisateur d'y effectuer des opérations d'insertion, de mise à jour et de suppression.

QUERY_ONLY Exécute l'application Forms indiquée en mode Interrogation seulement ; les utilisateurs peuvent interroger les enregistrements, mais ne peuvent pas y effectuer d'insertions, de mises à jour ou de suppressions.

mode_données	NO_SHARE_LIBRARY_DATA (option par défaut) Au moment de l'exécution, Form Builder ne partagera pas les données entre les applications Forms auxquelles sont attachées des bibliothèques identiques (lors de la conception).

SHARE_LIBRARY_DATA Au moment de l'exécution, Form Builder partage les données entre les applications Forms auxquelles sont attachées des bibliothèques identiques (lors de la conception).

id_listparam	ID unique que Form Builder attribue lorsqu'il crée la liste de paramètres. Indiquez une liste de paramètres si vous voulez transmettre des paramètres de l'application Forms appelante à la nouvelle application Forms. Les données sont de type PARAMLIST. Une liste de paramètres transmise à une application Forms à l'aide de NEW_FORM ne peut pas contenir de paramètres de type DATA_PARAMETER (pointeur sur un groupe d'enregistrements).

nom_listparam	Nom que vous avez donné à l'objet liste de paramètres lorsque vous l'avez défini. Les données sont de type VARCHAR2. Une liste de paramètres transmise à une application Forms à l'aide de NEW_FORM ne peut pas contenir de paramètres de type DATA_PARAMETER (pointeur sur un groupe d'enregistrements).


NEW_FORM - Exemples

/* Créer une procédure générique d'appel de

** l'application Forms transmise suivant la méthode
** indiquée par les paramètres 'newform' et 'queryonly'.
*/
PROCEDURE GENERIC_CALL(formname   VARCHAR2,
                       newform    VARCHAR2,
                       queryonly  VARCHAR2) IS

  msglvl          VARCHAR2(2);
  error_occurred  EXCEPTION;
BEGIN
  /*
  ** Noter le niveau de message en cours et le
  ** définir temporairement à 10 pour supprimer
  ** les erreurs si le nom d'application Forms appelé n'est pas valide.
  */
  msglvl := :SYSTEM.MESSAGE_LEVEL;
  :SYSTEM.MESSAGE_LEVEL := '10';

  IF newform = 'Y' THEN
     IF queryonly = 'Y' THEN
        NEW_FORM(formname, to_savepoint, query_only);
     ELSIF queryonly = 'N' THEN
        NEW_FORM(formname);
     END IF;
  ELSIF newform = 'N' THEN
     IF queryonly = 'Y' THEN
        CALL_FORM(formname, hide, no_replace, query_only);
     ELSIF queryonly = 'N' THEN
        CALL_FORM(formname);
     END IF;
  END IF;
  IF NOT form_success THEN
     MESSAGE('Impossible d'appeler l'application Forms '||UPPER(formname)||
             '. Veuillez contacter votre administrateur système.');
     RAISE error_occurred;
  END IF;
  :SYSTEM.MESSAGE_LEVEL := msglvl;
EXCEPTION
  WHEN error_occurred THEN
     :SYSTEM.MESSAGE_LEVEL := msglvl;
    RAISE form_trigger_failure;
END;


NEXT_BLOCK - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Passe au premier élément de navigation autorisée du bloc modifiable ayant le numéro de séquence suivant, selon l'ordre des blocs défini dans le Navigateur d'objet. Cependant, la propriété du Bloc de navigation suivant peut, pour des opérations de navigation, être définie sur un bloc différent.

Si ce bloc n'existe pas, NEXT_BLOCK passe au bloc modifiable ayant le plus petit numéro de séquence.

Syntaxe

PROCEDURE NEXT_BLOCK;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


NEXT_BLOCK - Exemples

/*

** Built-in:  NEXT_BLOCK
** Example:   If the current item is the last item in the
**            block, then skip to the next block instead of
**            the default of going back to the first item in
**            the same block
** Trigger:   Key-Next-Item
*/
DECLARE
  cur_itm VARCHAR2(80) := :System.Cursor_Item;
  cur_blk VARCHAR2(80) := :System.Cursor_Block;
  lst_itm VARCHAR2(80);
BEGIN
  lst_itm := cur_blk||'.'||Get_Block_Property(cur_blk,LAST_ITEM);
  IF cur_itm = lst_itm THEN
    Next_Block;
  ELSE
    Next_Item;
  END IF;
END;


NEXT_FORM - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Dans une application comportant plusieurs applications Forms, permet de passer à l'application Forms indépendante ayant le numéro de séquence suivant. (Les applications Forms sont classées dans l'ordre dans lequel elles ont été appelées lors de l'exécution.) Si cette application n'existe pas, NEXT_FORM passe à l'application Forms ayant le plus petit numéro de séquence.  Sinon, l'application Forms en cours reste l'application active.

Lorsque vous naviguez à l'aide de NEXT_FORM, aucun enregistrement n'est effectué et aucun déclencheur n'est activé, sauf WHEN-WINDOW-DEACTIVATED pour l'application Forms ayant déclenché la navigation, et WHEN-WINDOW-ACTIVATED pour l'application Forms cible.

Syntaxe

PROCEDURE NEXT_FORM;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non


NEXT_FORM - Restrictions

L'application Forms cible ne peut pas être désactivée à la suite de l'appel d'une autre application Forms à l'aide de CALL_FORM.


NEXT_ITEM - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de passer à l'élément de navigation autorisée ayant le numéro de séquence suivant. Si cet élément n'existe pas, NEXT_ITEM passe à l'élément ayant le plus petit numéro de séquence. Sinon, NEXT_ITEM passe à l'élément en cours.

Si l'unité de navigation est l'élément, NEXT_ITEM enregistre les champs dont le numéro de séquence est supérieur à l'élément en cours ou inférieur à l'élément cible.

La fonction de NEXT_ITEM à partir du dernier élément de navigation autorisée du bloc dépend de la définition de la propriété de bloc Type de navigation. Les options valides pour cette propriété sont les suivantes :

Même enregistrement (valeur par défaut) : Une opération NEXT_ITEM à partir du dernier élément d'un bloc fait passer le point d'insertion dans le premier élément de navigation autorisée du bloc du même enregistrement.

Changer d'enregistrement : Une opération NEXT_ITEM à partir du dernier élément d'un bloc fait passer le point d'insertion dans le premier élément de navigation autorisée du bloc de l'enregistrement suivant. Si l'enregistrement en cours est le dernier du bloc et s'il n'y a pas d'interrogation ouverte, Form Builder crée un nouvel enregistrement. S'il y a une interrogation ouverte dans le bloc (c'est-à-dire si le bloc contient des enregistrements interrogés), Oracle Forms extrait les enregistrements supplémentaires nécessaires.

Changer de bloc de données : Une opération NEXT_ITEM à partir du dernier élément d'un bloc fait passer le point d'insertion dans le premier élément de navigation autorisée du premier enregistrement du bloc suivant.

Syntaxe

PROCEDURE NEXT_ITEM;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


NEXT_ITEM - Exemple

/*

** Procédure interne : NEXT_ITEM
** Exemple : Voir NEXT_BLOCK.
*/


NEXT_KEY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de passer  à l'élément de clé primaire activé et de navigation autorisée ayant le numéro de séquence suivant. Si cet élément n'existe pas, NEXT_KEY passe à l'élément de clé primaire activé et de navigation autorisée ayant le plus petit numéro de séquence. Si cet élément n'existe pas dans le bloc en cours, une erreur est générée.

Si l'unité de validation est l'élément, NEXT_KEY valide les champs dont le numéro de séquence est supérieur à l'élément en cours ou inférieur à l'élément cible.

Syntaxe

PROCEDURE NEXT_KEY;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


NEXT_KEY - Exemples

/*

** Procédure interne : NEXT_KEY
** Exemple : Faire passer le curseur dans le prochain élément
**           de clé primaire du bloc en cours.
*/
BEGIN
  Next_Key;
END;


NEXT_MENU_ITEM - Procédure interne

 Restrictions	 Toutes les procédures internes

Description

Permet de passer au prochain élément de menu du menu en cours.

Syntaxe

PROCEDURE NEXT_MENU_ITEM;

Type de procédure interne  procédure restreinte

Paramètres

aucun


NEXT_MENU_ITEM - Restrictions

NEXT_MENU_ITEM ne s'applique qu'aux menus personnalisés de type plein écran.


NEXT_RECORD - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de passer au premier élément activé et de navigation autorisée de l'enregistrement ayant le numéro de séquence suivant. Si cet enregistrement n'existe pas, Form Builder extrait ou crée un enregistrement. Si l'enregistrement en cours est un nouvel enregistrement, NEXT_RECORD échoue.

Syntaxe

PROCEDURE NEXT_RECORD;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


NEXT_RECORD - Restrictions

Cette procédure interne n'est pas autorisée en mode Saisie interrogation.


NEXT_RECORD - Exemples

/*

** Procédure interne : NEXT_RECORD
** Exemple : Si l'élément en cours est le dernier du bloc,
**           passer au prochain enregistrement au lieu de
**           revenir par défaut au premier élément du même
**           bloc.
** Déclencheur : Key-Next-Item
*/
DECLARE
  cur_itm VARCHAR2(80) := :System.Cursor_Item;
  cur_blk VARCHAR2(80) := :System.Cursor_Block;
  lst_itm VARCHAR2(80);
BEGIN
  lst_itm := cur_blk||'.'||Get_Block_Property(cur_blk,LAST_ITEM);
  IF cur_itm = lst_itm THEN
    Next_Record;
  ELSE
    Next_Item;
  END IF;
END;


NEXT_SET - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'extraire de la base de données un autre ensemble d'enregistrements et de passer au premier enregistrement extrait. NEXT_SET réussit si le bloc en cours comporte une interrogation ouverte.

Syntaxe

PROCEDURE NEXT_SET;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


NEXT_SET - Exemples

/*

** Procédure interne : NEXT_SET
** Exemple : Extraire de la base de données le prochain
**           ensemble d'enregistrements lorsque l'utilisateur appuie sur un bouton.
** Déclencheur : When-Button-Pressed
*/
BEGIN
  Next_Set;
END;


OLEVAR_EMPTY

 Toutes les procédures internes

Description

Variante OLE de type VT_EMPTY.

Syntaxe

OLEVAR_EMPTY OLEVAR;

Notes d'utilisation

Il s'agit d'une variable qui ne peut pas être paramétrée. Elle est utile si vous devez entrer des arguments vides ou inexistants pour un appel OLE.


OPEN_FORM - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'ouvrir l'application Forms indiquée. Faites appel à OPEN_FORM pour créer des applications comportant plusieurs applications Forms, c'est-à-dire des applications qui ouvrent plusieurs applications Forms à la fois.

Syntaxe

PROCEDURE OPEN_FORM
  (nom_appliForms  VARCHAR2);

PROCEDURE OPEN_FORM
  (nom_appliForms   VARCHAR2,
   mode_activation  NUMBER);
PROCEDURE OPEN_FORM
  (nom_appliForms   VARCHAR2,
   mode_activation  NUMBER,
   mode_session     NUMBER);
PROCEDURE OPEN_FORM
  (nom_appliForms   VARCHAR2,
   mode_activation  NUMBER,
   mode_session     NUMBER,
   mode_données     NUMBER);
PROCEDURE OPEN_FORM
  (nom_appliForms   VARCHAR2,
   mode_activation  NUMBER,
   mode_session     NUMBER,
   nom_listparam    VARCHAR2);
PROCEDURE OPEN_FORM
  (nom_appliForms   VARCHAR2,
   mode_activation  NUMBER,
   mode_session     NUMBER,
   id_listparam     PARAMLIST);
PROCEDURE OPEN_FORM
  (nom_appliForms   VARCHAR2,
   mode_activation  NUMBER,
   mode_session     NUMBER,
   mode_données     NUMBER,
   nom_listparam    VARCHAR2);
PROCEDURE OPEN_FORM
  (nom_appliForms   VARCHAR2,
   mode_activation  NUMBER,
   mode_session     NUMBER,
   mode_données     NUMBER,
   id_listparam     PARAMLIST);

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres:

nom_appliForms	Nom de l'application Forms à ouvrir. Le type de données est VARCHAR2.  Requis

mode_activation	ACTIVATE (valeur par défaut) Place le point d'insertion dans l'application Forms pour qu'elle devienne l'application active.

NO_ACTIVATE Ouvre l'application Forms sans y placer le point d'insertion. L'application Forms en cours reste l'application active.

mode_session	NO_SESSION (valeur par défaut) Indique que l'application Forms ouverte doit partager la même session de base de données que l'application Forms en cours. Dans une application Forms, les opérations POST et COMMIT entraînent les traitements d'inscription et d'enregistrement dans la base de données pour toutes les applications Forms utilisées au cours de la même session.

SESSION Indique qu'une nouvelle session de base de données distincte doit être créée pour l'application Forms ouverte.

mode_données	NO_SHARE_LIBRARY_DATA (option par défaut) Au moment de l'exécution, Form Builder ne partagera pas les données entre les applications Forms auxquelles sont attachées des bibliothèques identiques (lors de la conception).

SHARE_LIBRARY_DATA Au moment de l'exécution, Form Builder partage les données entre les applications Forms auxquelles sont attachées des bibliothèques identiques (lors de la conception).

nom_listparam	Nom d'une liste de paramètres à transmettre à l'application Forms ouverte. Les données sont de type VARCHAR2.

id_listparam	ID unique que Form Builder attribue à la liste de paramètres lors de sa création. Utilisez la procédure GET_PARAMETER_LIST pour retourner l'ID à une variable de type PARAMLIST.

Notes d'utilisation

•	n	Que ACTIVATE ou NO_ACTIVATE soit indiqué lorsque vous ouvrez une application Forms, les déclencheurs de démarrage habituels s'exécutent dans l'application Forms ouverte. (Cependant, reportez-vous à la remarque ci-dessous concernant SESSION.)

•	n	Lorsque vous ouvrez une application Forms pour laquelle ACTIVATE a été indiqué (par défaut), cette application reçoit immédiatement le point d'insertion ; les instructions de déclenchement qui suivent l'appel à OPEN_FORM ne sont jamais exécutées.

•	Lorsque vous ouvrez une application Forms pour laquelle NO_ACTIVATE a été indiqué, les instructions de déclenchement qui suivent l'appel à OPEN_FORM s'exécutent après le chargement en mémoire de l'application Forms ouverte et l'exécution de ses déclencheurs initiaux.

•	Lorsque vous ouvrez une application Forms pour laquelle SESSION a été indiqué, les déclencheurs PRE-LOGON, ON-LOGON et POST-LOGON ne sont pas exécutés.

•	Si l'application Forms qui émet la procédure interne OPEN_FORM s'exécute en mode QUERY_ONLY, l'application Forms ouverte est également exécutée dans ce mode.

•	n	Sous Microsoft Windows, si une fenêtre de l'application Forms qui ouvre l'application Forms indépendante est agrandie, la première fenêtre affichée par l'application Forms ouverte l'est également, quel que soit le paramètre défini lors de la conception. (L'état d'affichage d'une fenêtre est défini par la propriété Window_State.)

•	n	Dans la plupart des applications, évitez de faire appel à OPEN_FORM pour des applications Forms contenant des fenêtres principales. Comme il ne peut y avoir qu'une fenêtre principale affichée à la fois, les canevas attribués à la fenêtre principale dans l'application Forms en cours et dans l'application Forms ouverte sont affichés dans la même fenêtre. L'application Forms ouverte prend le pas sur la fenêtre principale de l'application Forms d'origine, masquant ainsi partiellement ou totalement les canevas de l'application Forms d'origine.


OPEN_FORM - Restrictions

•	Vous pouvez définir une session pour tous les appels à Runform en donnant à la variable d'environnement FORMSnn_SESSION la valeur TRUE. Lorsque vous définissez cette variable, tous les appels à Runform héritent sa définition, à moins que vous n'annuliez cette variable en définissant l'option Session à partir de la ligne de commande de Runform.

•	Si vous définissez mode_session à SESSION lorsque vous utilisez OPEN_FORM pour créer une application comportant plusieurs applications Forms, vous ne pouvez pas définir mode_données à SHARE_LIBRARY_DATA (si vous le faites, Form Builder affiche un message d'erreur d'exécution).


PASTE_REGION - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet de coller le contenu du presse-papiers (c'est-à-dire la dernière région sélectionnée, puis coupée ou copiée), en positionnant l'angle supérieur gauche de la région collée à l'emplacement du curseur.

Syntaxe

PROCEDURE PASTE_REGION;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun

Notes d'utilisation

N'utilisez PASTE_REGION ainsi que les autres fonctions d'édition que sur du texte et des éléments image. Les fonctions Couper et Copier transfèrent la région sélectionnée dans le presse-papiers du système jusqu'à ce que vous indiquiez la cible du collage. Le contenu coupé ou copié est alors collé à l'emplacement cible.


PAUSE - Procédure interne

 Toutes les procédures internes

Description

Permet de suspendre le traitement jusqu'à ce que l'utilisateur appuie sur une touche de fonction. PAUSE peut éventuellement afficher une alerte.

Syntaxe

PROCEDURE PAUSE;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Description

Permet de suspendre le traitement jusqu'à ce que l'utilisateur appuie sur une touche de fonction. PAUSE peut éventuellement afficher une alerte.

Paramètres

aucun


PLAY_SOUND - Procédure interne

 Exemples	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'exécuter l'objet son dans l'élément son indiqué.

Syntaxe

PLAY_SOUND(id_élément ITEM);

PLAY_SOUND(nom_élément VARCHAR2);

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres:

id_élément	ID unique que Form Builder a donné à l'élément son lorsque vous l'avez créé.

nom_élément	Nom que vous avez donné à l'élément son lorsque vous l'avez créé.


PLAY_SOUND - Exemples

/* Exemple 1 : Cet appel de procédure (attaché à un élément)

**             de menu) exécute un objet son de l'élément son indiqué.
*/
GO_ITEM('about.abc_inc');
PLAY_SOUND('about.abc_inc');

/* Exemple 2 : Ces appels de procédure (attachés à un déclencheur
** When-Button-Pressed) lisent un objet son dans le système de fichiers
** et l'exécutent. Remarque : Comme le point d'insertion doit être
** dans un élément pour qu'un son puisse être exécuté, le code de déclencheur
** comporte un appel à la procédure interne GO_ITEM :
*/
BEGIN
  IF :clerks.last_name EQ 'BARNES' THEN
    GO_ITEM('orders.filled_by');
    READ_SOUND_FILE('t:\orders\clerk\barnes.wav',
                    'wave',
                    'orders.filled_by');
    PLAY_SOUND('orders.filled_by');
  END IF;
END;


POPULATE_GROUP - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'exécuter l'interrogation associée au groupe d'enregistrements indiqué et de retourner une valeur numérique précisant le succès ou l'échec de l'interrogation. Si l'interrogation réussit, POPULATE_GROUP retourne 0 (zéro). Si l'interrogation échoue, un numéro d'erreur ORACLE correspondant à l'échec de l'instruction SELECT est généré. Les lignes extraites à la suite d'une interrogation réussie remplacent les lignes du groupe.

Remarque : Notez que la procédure interne POPULATE_GROUP extrait 100 enregistrements à la fois. Pour améliorer les performances du réseau, vous aurez peut-être intérêt à limiter les interrogations de façon à limiter la charge du réseau.

Syntaxe

FUNCTION POPULATE_GROUP
  (id_groupenreg   RecordGroup);

FUNCTION POPULATE_GROUP
  (nom_groupenreg VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  NUMBER

Mode Saisie interrogation  oui

Paramètres

id_groupeenreg	ID unique que Form Builder attribue lorsqu'il crée le groupe. Le type de données de l'ID est RecordGroup.

nom_groupeenreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Le type de données du nom est VARCHAR2.


POPULATE_GROUP - Restrictions

Cette procédure interne n'est valide que pour les groupes d'enregistrements :

•	créés lors de la conception avec une interrogation ;

•	créés par un appel à la procédure interne CREATE_GROUP_FROM_QUERY ;

•	préalablement remplis à l'aide de la procédure interne POPULATE_GROUP_WITH_QUERY (qui associe une interrogation au groupe d'enregistrements).


POPULATE_GROUP - Exemples

/*

** Procédure interne : POPULATE_GROUP
** Exemple : Voir GET_GROUP_ROW_COUNT et CREATE_GROUP_FROM_QUERY.
*/


POPULATE_GROUP_FROM_TREE - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Remplit un groupe d'enregistrements à l'aide des données issues de l'arborescence.

Syntaxe

PROCEDURE POPULATE_GROUP_FROM_TREE

  (nom_groupe VARCHAR2,

   nom_élément VARCHAR2,

   nœud NODE);

PROCEDURE POPULATE_GROUP_FROM_TREE

  (nom_groupe VARCHAR2,

   id_élément ITEM,

   nœud NODE);

PROCEDURE POPULATE_GROUP_FROM_TREE

  (id_groupe RECORDGROUP,

   nom_élément VARCHAR2,

   nœud NODE);

PROCEDURE POPULATE_GROUP_FROM_TREE

  (id_groupe RECORDGROUP,

   id_élément ITEM,

   nœud NODE);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

nom_groupe	Indique le nom du groupe.
id_groupe	Indique l'ID attribué au groupe.
nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
nœud	Indique un nœud valide. S'il est défini, il indique la sous-arborescence utilisée pour remplir la valeur du groupe d'enregistrements (RecordGroup), y compris le nœud spécifié.
Notes d'utilisation

Le groupe d'enregistrements est effacé avant l'insertion de l'ensemble de données de l'arborescence.


POPULATE_GROUP_FROM_TREE - Exemples

/*

** Built-in:  POPULATE_GROUP_FROM_TREE
*/

-- This code will transfer all the data from a hierarchical tree

-- that is parented by the node with a label of "Zetie" to a

-- pre-created record group.  Please see the documentation

-- for the structure of the required record group.

DECLARE

   htree         ITEM;

   find_node     NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Find the node with a label "Zetie".

   find_node := Ftree.Find_Tree_Node(htree, 'Zetie', Ftree.FIND_NEXT,

                Ftree.NODE_LABEL, Ftree.ROOT_NODE, Ftree.ROOT_NODE);

   -- Populate the record group with the tree data.

   -- The record group must already exist.

   Ftree.Populate_Group_From_Tree('tree_data_rg', htree, find_node);

END;


POPULATE_GROUP_WITH_QUERY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de charger l'interrogation indiquée dans un groupe d'enregistrements. Le groupe d'enregistrements est effacé et les lignes extraites remplacent les lignes du groupe d'enregistrements.

Si l'instruction SELECT échoue, Form Builder retourne un numéro d'erreur ORACLE. Si l'interrogation réussit, cette procédure interne retourne 0 (zéro).

Vous pouvez utiliser cette procédure interne pour remplir des groupes d'enregistrements créés par un appel :

•	à la procédure interne CREATE_GROUP, ou

•	à la procédure interne CREATE_GROUP_FROM_QUERY

Lorsque vous utilisez cette procédure interne, l'interrogation indiquée devient l'interrogation par défaut du groupe, et s'exécute chaque fois que la procédure interne POPULATE_GROUP est appelée.

Remarque : Notez que la procédure interne POPULATE_GROUP_WITH_QUERY extrait 20 enregistrements à la fois. Pour améliorer les performances du réseau, vous aurez peut-être intérêt à limiter les interrogations de façon à limiter la charge du réseau.

Syntaxe

FUNCTION POPULATE_GROUP_WITH_QUERY
  (id_groupeenreg  RecordGroup,
   interrogation    VARCHAR2);

FUNCTION POPULATE_GROUP_WITH_QUERY
  (nom_groupeenreg  VARCHAR2,
   interrogation    VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  NUMBER

Mode Saisie interrogation  oui

Paramètres

id_groupeenreg	ID unique que Form Builder attribue lorsqu'il crée le groupe. Le type de données de l'ID est RecordGroup.

nom_groupeenreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Le type de données du nom est VARCHAR2.

interrogation	Instruction SELECT valide, délimitée par des apostrophes. Les colonnes extraites par l'interrogation héritent des types de données des colonnes de la table. Si vous limitez l'interrogation à un sous-ensemble des colonnes de la table, Form Builder ne crée que ces colonnes dans le groupe d'enregistrements. Les données de l'interrogation sont de type VARCHAR2.


POPULATE_GROUP_WITH_QUERY - Restrictions

•	Le nombre et le type des colonnes indiquées dans l'instruction SELECT doivent correspondre à ceux des colonnes du groupe d'enregistrements.


POPULATE_GROUP_WITH_QUERY - Exemples

/*

** Procédure interne : POPULATE_GROUP_WITH_QUERY
** Exemple : Voir CREATE_GROUP.
*/


POPULATE_LIST - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de supprimer le contenu de la liste en cours et de charger dans la liste les valeurs d'un groupe d'enregistrements. Le groupe d'enregistrements doit être créé lors de l'exécution et avoir la structure en deux colonnes (VARCHAR2) suivante :

Colonne 1 :	Colonne 2 :

libellé de liste	valeur de liste

Syntaxe

PROCEDURE POPULATE_LIST
  (id_liste        ITEM,
   id_groupenreg   RecordGroup);

PROCEDURE POPULATE_LIST
  (id_liste        ITEM,
   nom_groupenreg  VARCHAR2);
PROCEDURE POPULATE_LIST
  (nom_liste       VARCHAR2,
   id_groupenreg   RecordGroup);
PROCEDURE POPULATE_LIST
  (nom_liste       VARCHAR2,
   nom_groupenreg  VARCHAR2);

Type de procédure interne

procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_liste	Permet d'indiquer l'ID unique que Form Builder attribue lorsqu'il crée l'élément liste. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_liste	Nom que vous avez donné à la liste lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

id_groupenreg	ID unique que Form Builder attribue au groupe d'enregistrements lors de sa création. Les données de l'ID sont de type RecordGroup.

nom_groupenreg	Nom de type VARCHAR2 que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé.

Notes d'utilisation

•	N'utilisez pas la procédure interne POPULATE_LIST si la propriété Correspondance d'autres valeurs est définie et que le bloc comporte des enregistrements interrogés, car Form Builder pourrait être dans l'impossibilité d'afficher les enregistrements déjà extraits.

Supposons, par exemple, qu'un élément liste contient les valeurs A, B et C et que la propriété Correspondance d'autres valeurs est définie. Supposons également que ces valeurs ont été extraites de la base de données (c'est-à-dire qu'une interrogation est ouverte). A ce stade, si vous remplissez la liste à l'aide de POPULATE_LIST, Form Builder tente d'afficher les valeurs extraites précédemment (A, B et C), mais sans succès, car ces valeurs ont été supprimées de la liste et remplacées par de nouvelles - ce qui génère une erreur.

•	Avant de remplir une liste, fermez les interrogations ouvertes. Pour ce faire, utilisez la procédure interne ABORT_QUERY.


POPULATE_LIST - Restrictions

POPULATE_LIST retourne l'erreur FRM-41337: Chargement de liste impossible à partir du groupe d'enregistrements dans les conditions suivantes :

•	Si le groupe d'enregistrements ne contient ni l'élément de valeur par défaut ni l'élément Autres valeurs et si la liste ne répond pas aux critères indiqués pour la suppression de ces éléments à l'aide de DELETE_LIST_ELEMENT. Pour plus d'informations, reportez-vous aux restrictions concernant DELETE_LIST_ELEMENT.

•	Si le groupe d'enregistrements contient un élément Autres valeurs, mais que la liste ne corresponde pas aux critères indiqués pour l'ajout d'un élément Autres valeurs à l'aide de ADD_LIST_ELEMENT. Pour plus d'informations, reportez-vous aux restrictions concernant ADD_LIST_ELEMENT.


POPULATE_LIST - Exemples

/*

**  Procédure interne : POPULATE_LIST
**  Exemple : Extraire les valeurs de l'élément liste en cours du premier
**            groupe d'enregistrements, effacer la liste et la remplir avec les
**            valeurs du second groupe d'enregistrements
**            lorsque l'utilisateur appuie sur un bouton.
**  Déclencheur : When-Button-Pressed
*/
BEGIN
   Retrieve_List(list_id, 'RECGRP_ONE');
   Clear_List(list_id);
   Populate_List(list_id, 'RECGRP_TWO');
END;


POPULATE_TREE - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Efface toutes les données figurant déjà dans l'arborescence et obtient l'ensemble de données indiqué par l'une des propriétés RecordGroup ou QueryText.

Syntaxe

PROCEDURE POPULATE_TREE

  (nom_élément VARCHAR2);

PROCEDURE POPULATE_TREE

  (id_élément ITEM);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.


POPULATE_TREE - Exemples

/*

** Built-in:  POPULATE_TREE
*/

-- This code will cause a tree to be re-populated using

-- either the record group or query already specified

-- for the hierarchical tree.

DECLARE

   htree         ITEM;

   top_node      FTREE.NODE;

   find_node     FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Populate the tree with data.

   Ftree.Populate_Tree(htree);

END;


POST - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'entrer les données de l'application Forms dans la base de données sans procéder à une opération COMMIT de celle-ci. Form Builder commence par enregistrer l'application Forms. S'il y a des modifications à inscrire dans la base de données, pour chaque bloc de l'application Forms, Form Builder effectue des opérations d'écriture, de suppression, d'insertion et de mise à jour de la base de données.

Les données inscrites dans la base de données y sont enregistrées par la prochaine procédure COMMIT_FORM exécutée pendant la session Runform en cours. Ces données peuvent également être annulées par la prochaine procédure CLEAR_FORM.

Syntaxe

PROCEDURE POST;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun

Notes d'utilisation

Si cette application Forms est appelée via OPEN_FORM et si le paramètre NO_SESSION est spécifié, POST valide et écrit les données dans cette application et dans l'application appelante.


POST - Exemples

/*

** Procédure interne : EXIT_FORM et POST
** Exemple : Sortir de l'application Forms appelée sans
**           annuler les modifications inscrites afin qu'elles puissent être
**           inscrites et enregistrées par l'application Forms appelante au sein de la même
**           transaction.
*/
BEGIN
  Post;

  /*
  ** Form_Status doit avoir la valeur 'QUERY' si l'inscription
  ** de tous les enregistrements a réussi.
  */
  IF :System.Form_Status <> 'QUERY' THEN
    Message('Une erreur a empêché le système d'inscrire les modifications');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Par défaut, Exit_Form demande une opération commit et exécute
  ** une annulation jusqu'au savepoint. Comme l'inscription a déjà été
  ** effectuée, l'enregistrement dans la base de données n'est pas nécessaire
  ** et les modifications inscrites n'ont pas à être annulées.
  */
  Exit_Form(NO_COMMIT, NO_ROLLBACK);
END;


PREVIOUS_BLOCK - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de passer au premier élément de navigation autorisée du bloc modifiable ayant le numéro de  séquence précédent, selon l'ordre des blocs défini dans le Navigateur d'objet. Cependant, la propriété de bloc Bloc de navigation précédent peut, pour des opérations de navigation, être définie à un bloc différent.

Si ce bloc n'existe pas, NEXT_BLOCK passe au bloc modifiable ayant le plus grand numéro de séquence.

Syntaxe

PROCEDURE PREVIOUS_BLOCK;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


PREVIOUS_BLOCK - Exemples

/*

** Procédure interne : PREVIOUS_BLOCK
** Exemple :  Si l'élément en cours est le premier du bloc,
**            passer au bloc précédent au lieu de
**            revenir par défaut au dernier
**            élément du même bloc.
** Déclencheur : Key-Previous-Item
*/
DECLARE
  cur_itm VARCHAR2(80) := :System.Cursor_Item;
  cur_blk VARCHAR2(80) := :System.Cursor_Block;
  frs_itm VARCHAR2(80);
BEGIN
  frs_itm := cur_blk||'.'||Get_Block_Property(cur_blk,FIRST_ITEM);
  IF cur_itm = frs_itm THEN
    Previous_Block;
  ELSE
    Previous_Item;
  END IF;
END;


PREVIOUS_FORM - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Dans une application comportant plusieurs applications Forms, permet de passer à l'application Forms ayant le numéro de séquence immédiatement précédent. (Les applications Forms sont classées dans l'ordre dans lequel elles ont été appelées lors de l'exécution.) Si cette application Forms n'existe pas, PREVIOUS_FORM passe à l'application Forms ayant le plus grand numéro de séquence. Sinon, l'application Forms en cours reste l'application active.

Lorsque vous naviguez à l'aide de PREVIOUS_FORM, aucun enregistrement n'est effectué et aucun déclencheur n'est activé, sauf WHEN-WINDOW-DEACTIVATED, pour l'application Forms ayant déclenché la navigation, et WHEN-WINDOW-ACTIVATED, pour l'application Forms cible.

Syntaxe

PROCEDURE PREVIOUS_FORM;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non


PREVIOUS_FORM - Restrictions

L'application Forms cible ne peut pas être désactivée à la suite de l'appel d'une autre application Forms à l'aide de CALL_FORM.


PREVIOUS_ITEM - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de passer à l'élément de navigation autorisée ayant le numéro de séquence précédent. Si cet élément n'existe pas, PREVIOUS_ITEM passe à l'élément ayant le plus grand numéro de séquence. Sinon, PREVIOUS_ITEM passe à l'élément en cours.

La fonction de PREVIOUS_ITEM à partir du premier élément de navigation autorisée du bloc dépend de la définition de la propriété de bloc Type de navigation. Les options valides de cette propriété sont les suivantes :

Même enregistrement (valeur par défaut) : Une opération PREVIOUS_ITEM à partir du premier élément d'un bloc fait passer le point d'insertion dans le dernier élément de navigation autorisée du bloc du même enregistrement.

Changer d'enregistrement : Une opération PREVIOUS_ITEM à partir du premier élément d'un bloc fait passer le point d'insertion dans le dernier élément de navigation autorisée du bloc de l'enregistrement suivant.

Changer de bloc de données : Une opération PREVIOUS_ITEM à partir du premier élément d'un bloc fait passer le point d'insertion dans le dernier élément de navigation autorisée de l'enregistrement en cours du bloc précédent.

Syntaxe

PROCEDURE PREVIOUS_ITEM;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


PREVIOUS_ITEM - Exemples

/*

** Procédure interne : PREVIOUS_ITEM
** Exemple : Voir PREVIOUS_BLOCK.
*/


PREVIOUS_MENU - Procédure interne

 Restrictions	 Toutes les procédures internes

Description

Permet de passer au dernier élément de menu actif du menu précédent.

Syntaxe

PROCEDURE PREVIOUS_MENU;

Type de procédure interne  procédure restreinte

Paramètres

aucun


PREVIOUS_MENU - Restrictions

PREVIOUS_MENU ne s'applique qu'aux menus de types barre et plein écran.


PREVIOUS_MENU_ITEM - Procédure interne

 Restrictions	 Toutes les procédures internes

Description

Permet de passer à l'élément de menu précédent du menu en cours.

Syntaxe

PROCEDURE PREVIOUS_MENU_ITEM;

Type de procédure interne  procédure restreinte

Paramètres

aucun


PREVIOUS_MENU_ITEM - Restrictions

PREVIOUS_MENU_ITEM ne s'applique qu'aux menus plein écran.


PREVIOUS_RECORD - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de passer au premier élément activé et de navigation autorisée de l'enregistrement ayant le numéro de séquence précédent.

Syntaxe

PROCEDURE PREVIOUS_RECORD;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


PREVIOUS_RECORD - Exemples

/*

** Procédure interne : PREVIOUS_RECORD
** Exemple : Si l'élément en cours est le premier du bloc,
**           passer à l'enregistrement précédent au lieu de
**           revenir par défaut au dernier élément du même
**           bloc.
** Déclencheur : Key-Previous-Item
*/
DECLARE
  cur_itm VARCHAR2(80) := :System.Cursor_Item;
  cur_blk VARCHAR2(80) := :System.Cursor_Block;
  frs_itm VARCHAR2(80);
BEGIN
  frs_itm := cur_blk||'.'||Get_Block_Property(cur_blk,FIRST_ITEM);
  IF cur_itm = frs_itm THEN
    Previous_Record;
  ELSE
    Previous_Item;
  END IF;
END;


PRINT - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet d'envoyer la fenêtre en cours dans un fichier d'impression ou à l'imprimante.

Syntaxe

PROCEDURE PRINT;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


PRINT - Exemples

/*

** Procédure interne : PRINT
** Exemple : Imprimer la fenêtre en cours.
*/
BEGIN
  Print;
END;


PTR_TO_VAR

 Toutes les procédures internes

Description

Crée en premier lieu une variante OLE de type VT_PTR contenant l'adresse indiquée, puis transmet cette variante et ce type à l'aide de la fonction VARPTR_TO_VAR.

Syntaxe

FUNCTION PTR_TO_VAR
  (address PLS_INTEGER, vtype VT_TYPE)
RETURN newvar OLEVAR;

Type de procédure interne  fonction non restreinte

Retourne la variante OLE créée et transformée.

Paramètres

address	Variable dont la valeur est une adresse.
vtype	Type à attribuer à la version finale de la variante OLE (après son traitement par la fonction VARPTR_TO_VAR).
Notes d'utilisation

Dans la plupart des applications, l'utilisation de cette fonction s'avère inutile. Si vous l'utilisez toutefois, vérifiez que l'adresse correcte est placée dans la nouvelle variante.


QUERY_PARAMETER - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Permet d'afficher la boîte de dialogue Paramètres d'interrogation qui affiche les valeurs en cours des paramètres de substitution indiqués. L'utilisateur peut définir la valeur d'un paramètre que vous incluez dans la liste.

Cette boîte de dialogue est modale, et le contrôle n'est rendu à la procédure ou au déclencheur appelant que lorsque l'utilisateur accepte ou annule la boîte de dialogue. Les instructions PL/SQL qui suivent l'appel à QUERY_PARAMETER ne sont donc exécutées qu'après la sortie de la boîte de dialogue Paramètres d'interrogation.

Syntaxe

PROCEDURE QUERY_PARAMETER
  (chaîne_paramètres  VARCHAR2);

Type de procédure interne  procédure non restreinte

Paramètres

chaîne_paramètres	Chaîne de paramètres de substitution d'un élément de menu. Dans la syntaxe permettant d'indiquer ce paramètre, la perluète (&) est obligatoire : &parm_name. Les paramètres de substitution sont référencés dans le code PL/SQL à l'aide de la syntaxe à deux-points ":param_name" utilisée pour toutes les variables de lien.


QUERY_PARAMETER - Exemples

/*

** Procédure interne : QUERY_PARAMETER
** Exemple : Demander par programme plusieurs paramètres
**           de menu et valider leur contenu.
*/
PROCEDURE Update_Warehouse IS
  validation_Err BOOLEAN;
BEGIN
  WHILE TRUE LOOP
    Query_Parameter('&p1 &q2 &z6');
    /*
    ** Si l'utilisateur n'a pas annulé la case, la procédure
    ** Menu_Success retourne la valeur booléenne TRUE.
    */
    IF Menu_Success THEN
      IF TO_NUMBER( :q2 ) NOT BETWEEN 100 AND 5000 THEN
      Message('La quantité doit être comprise entre 100 et 5000');
      Bell;
      Validation_Err := TRUE;
        END IF;
    /*
    ** Démarrer un sous-bloc pour pouvoir détecter une
    ** anomalie Value_Error dans un indicateur local.
    */
      BEGIN
    IF TO_DATE( :z6 ) < SYSDATE THEN
      Message('La date cible doit faire référence à un jour ultérieur.');
      Bell;
      Validation_Err := TRUE;
    END IF;
      EXCEPTION
    WHEN VALUE_ERROR THEN
      Message('La date cible doit être indiquée sous la forme JJ-MOI-AA');
      Bell;
      Validation_Err := TRUE;
      END;
      /*
      ** A ce stade, tous les paramètres sont valides.
      ** Exécuter l'instruction Update.
      */
      IF NOT Validation_Err THEN
    UPDATE WAREHOUSE
      SET QTY_TO_ORDER = QTY_TO_ORDER*0.18
    WHERE TARGET_DATE = TO_DATE(:z6)
      AND QTY_ON_HAND > TO_NUMBER(:q2)
      AND COST_CODE LIKE :p1||'%';
      END IF;
    ELSE
      /*
      ** Si Menu_Success a la valeur booléenne FALSE, sortir
      ** de la procédure, car l'utilisateur a annulé la boîte de dialogue.
      */
      RETURN;
    END IF;
  END LOOP;
END;


READ_IMAGE_FILE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de lire une image d'un type donné dans le fichier indiqué et de l'afficher dans l'élément image Form Builder.

Syntaxe

PROCEDURE READ_IMAGE_FILE
  (nom_fichier  VARCHAR2,
   type_fichier VARCHAR2,
   id_élément   ITEM);

PROCEDURE READ_IMAGE_FILE
  (nom_fichier  VARCHAR2,
   type_fichier VARCHAR2,
   nom_élément  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

nom_fichier	Nom de fichier valide. Le nom peut comporter une instruction de chemin d'accès complet propre à votre système d'exploitation.

type_fichier	Type de fichier image valide : BMP, CALS, GIF, JFIF, JPG, PICT, RAS, TIFF ou TPIC. (Remarque : Le type de fichier est facultatif, car Form Builder tente de le déduire du fichier image source. Cependant, il est conseillé de l'utiliser, car il permet d'optimiser les performances.)

id_élément	ID unique que Form Builder attribue à l'élément image lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données sont de type ITEM.

nom_élément	Nom que vous avez donné à l'élément image lorsque vous l'avez créé. Les données sont de type VARCHAR2.

Notes d'utilisation

Form Builder recherche le fichier image en suivant le même chemin par défaut que lorsqu'il recherche un fichier .FMX. Pour plus d'informations sur le chemin de recherche propre à votre plate-forme, reportez-vous à la documentation Form Builder de votre système d'exploitation.


READ_IMAGE_FILE - Exemples

/* Lire une image du système de fichiers dans un élément

** image de l'application Forms. Dans cet exemple, l'identification de
** l'image numérisée de chaque employé n'est PAS enregistrée dans
** la base de données, mais stockée dans le système de fichiers.
** La photo d'un employé est une image TIFF stockée dans un fichier
** appelé <userid>.TIF. L'ID utilisateur de chaque employé est unique.
** Déclencheur : Post-Query
*/
DECLARE
  tiff_image_dir VARCHAR2(80) := '/usr/staff/photos/';
  photo_filename VARCHAR2(80);
BEGIN
  /*
  ** Définir un niveau de message élevé pour pouvoir traiter
  ** éventuellement une erreur de lecture du fichier.
  */
  :System.Message_Level := '25';
  /*
  ** Après extraction de l'enregistrement d'un employé,
  ** prendre l'ID utilisateur de l'employé et le chaîner à
  ** l'extension '.TIF' pour en déduire le nom de fichier
  ** à partir duquel sera chargée l'image TIFF. L'enregistrement EMP a
  ** un élément image non base de données appelé 'EMP_PHOTO' dans lequel l'image est lue.
  */
  photo_filename := tiff_image_dir||LOWER(:emp.userid)||'.tif';

  /*
  ** Par exemple 'photo_filename' pourrait se présenter de la manière suivante :
  **
  **     /usr/staff/photos/jgetty.tif
  **                       ------
  **
  ** Lire ensuite l'image appropriée.
  */

  READ_IMAGE_FILE(photo_filename, 'TIFF', 'emp.emp_photo');
  IF NOT FORM_SUCCESS THEN
    MESSAGE('Aucune photo de cet employé dans le fichier.');
  END IF;
  :SYSTEM.MESSAGE_LEVEL := '0';
END;


READ_SOUND_FILE - Procédure interne

 Exemples	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de lire un objet son d'un fichier donné dans l'élément son indiqué.

Syntaxe

READ_SOUND_FILE(nom_fichier  VARCHAR2,
                type_fichier VARCHAR2,
                id_élément ITEM);

READ_SOUND_FILE(nom_fichier  VARCHAR2,
                type_fichier VARCHAR2,
                nom_élément  VARCHAR2);

Type de procédure interne

procédure non restreinte

Mode Saisie interrogation  oui

Paramètres:

nom_fichier	Nom complet du fichier contenant l'objet son à lire.

type_fichier	Type du fichier de données son. Les valeurs valides sont : AU, AIFF, AIFF-C et WAVE.

id_élément	ID unique que Form Builder a donné à l'élément son lorsque vous l'avez créé.

nom_élément	Nom que vous avez donné à l'élément son lorsque vous l'avez créé.

Notes d'utilisation

•	Le type du fichier son est facultatif. Cependant, si vous le connaissez, l'indiquer peut permettre d'augmenter les performances.


READ_SOUND_FILE - Restrictions


READ_SOUND_FILE - Exemples

/* Ces appels de procédure (attachés à un déclencheur

** When-Button-Pressed) lisent un objet son dans
** le système de fichiers et l'exécutent. Remarque : Comme le
** point d'insertion doit être dans un élément pour qu'un son puisse être exécuté,
** le code de déclencheur comporte un appel à la procédure interne GO_ITEM :
*/
BEGIN
  IF :clerks.last_name EQ 'BARNES' THEN
    GO_ITEM('orders.filled_by');
    READ_SOUND_FILE('t:\orders\clerk\barnes.wav',
                    'wave',
                    'orders.filled_by');
    PLAY_SOUND('orders.filled_by');
  END IF;
END;


RECALCULATE - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de marquer la valeur de l'élément calculé de la formule indiquée (dans chaque enregistrement du bloc) afin que cet élément soit recalculé. En général, vous utiliserez cette procédure interne lorsque la formule (ou encore la fonction ou la procédure qui l'appelle) fait référence à une variable système ou à une procédure interne qui, dans le cas présent, retournerait une valeur différente.

Notez que l'élément n'est pas recalculé immédiatement. Parfois, il est recalculé après marquage, mais avant que la nouvelle valeur de l'élément calculé soit référencée ou affichée sur l'écran de l'utilisateur. La logique de votre application ne doit pas dépendre du moment auquel un élément calculé est recalculé.

Syntaxe

PROCEDURE RECALCULATE
  (nom_élément  VARCHAR2);

PROCEDURE RECALCULATE
  (id_élément   Item);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

nom_élément	Nom que vous avez donné à l'élément lorsque vous l'avez défini. Les données sont de type VARCHAR2.

id_élément	ID unique que Form Builder attribue à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données sont de type Item.


RECALCULATE - Restrictions

Vous ne pouvez utiliser la procédure interne RECALCULATE que pour recalculer des éléments calculés d'une formule. Si vous indiquez un élément récapitulatif (ou un élément non calculé) comme argument de RECALCULATE, Form Builder retourne le message d'erreur suivant :

   FRM-41379: Recalcul impossible de l'élément <nom_bloc.nom_élément> qui n'est pas une formule.


REDISPLAY - Procédure interne

 Toutes les procédures internes

Description

Permet de redessiner l'écran, ce qui efface les éventuels messages système affichés.

Syntaxe

PROCEDURE REDISPLAY;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


RELEASE_OBJ

 Toutes les procédures internes

Description

Met fin à la connexion à l'objet OLE.

Syntaxe

PROCEDURE RELEASE_OBJ
  (obj OLEOBJ, kill_persistence_boolean := NULL);

Type de procédure interne  procédure non restreinte

Paramètres

obj	Pointeur de l'objet OLE à libérer.
Kill_persistence_boolean	La valeur booléenne NULL libère l'objet et met un terme à sa persistance. Une valeur booléenne TRUE libère uniquement un objet persistant. Si vous ne disposez d'aucun pointeur vers un objet persistant, votre code risque de ne pas fonctionner correctement. Une valeur booléenne FALSE libère uniquement un objet non persistant. Si vous ne disposez d'aucun pointeur vers un objet non persistant, l'erreur FRM-40935 apparaît. Il s'agit d'un paramètre facultatif. En l'absence de valeur, la valeur par défaut est NULL (libère les objets sans aucune condition).
Notes d'utilisation

En général, vous ne devez pas accéder à un objet que vous avez libéré.

La forme conditionnelle de cette procédure (valeur booléenne TRUE ou FALSE) doit être utilisée uniquement dans les cas peu fréquents où deux instances d'un objet ont été créées, chacune comportant des valeurs de persistance différentes, et où le pointeur est ambigu. La procédure libère l'un des objets, conservant l'autre comme instance unique.


REPLACE_CONTENT_VIEW - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de remplacer le canevas intégral affiché dans la fenêtre indiquée.

Syntaxe

PROCEDURE REPLACE_CONTENT_VIEW
  (id_fenêtre  Window,
   id_vue      ViewPort);

PROCEDURE REPLACE_CONTENT_VIEW
  (nom_fenêtre    VARCHAR2,
   id_vue         ViewPort);
PROCEDURE REPLACE_CONTENT_VIEW
  (id_fenêtre     Window,
   nom_vue        VARCHAR2);
PROCEDURE REPLACE_CONTENT_VIEW
  (nom_fenêtre    VARCHAR2,
   nom_vue        VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_fenêtre	ID unique que Form Builder attribue à la fenêtre lors de sa création. Utilisez la procédure interne FIND_WINDOW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Window.

nom_fenêtre	Nom que vous avez donné à la fenêtre lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

id_vue	ID unique que Form Builder attribue à la vue lorsqu'il crée l'objet. Utilisez la procédure interne FIND_VIEW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ViewPort.

nom_vue	Nom que vous avez donné à l'objet lorsque vous l'avez défini. Les données du nom sont de type VARCHAR2.


REPLACE_CONTENT_VIEW - Restrictions

•	Le canevas qui remplace le canevas intégral affiché dans la fenêtre doit avoir été attribué à cette fenêtre lors de la conception. Vous ne pouvez donc pas remplacer une vue intégrale de fenêtre par une vue intégrale d'une fenêtre différente.

•	Si vous remplacez un canevas intégral contenant l'élément dans lequel se trouve le point d'insertion, Form Builder annule immédiatement le remplacement pour que cet élément reste visible pour l'utilisateur.


REPLACE_CONTENT_VIEW - Exemples

/*

** Procédure interne : REPLACE_CONTENT_VIEW
** Exemple : Remplacer la vue 'salaire' par la vue
**           'historique' dans la fenêtre 'état_employé'.
*/
BEGIN
  Replace_Content_View('état_employé','historique');
END;


REPLACE_MENU - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de remplacer le menu en cours par le menu indiqué sans activer ce dernier. REPLACE_MENU vous permet également de modifier le mode d'affichage du menu, ainsi que son rôle.

Comme REPLACE_MENU n'active pas le nouveau menu, Form Builder ne permet pas au menu de masquer une partie quelconque du canevas actif. La totalité ou une partie du menu n'apparaît donc pas à l'écran si le canevas actif risque de le masquer.

Syntaxe

REPLACE_MENU;

PROCEDURE REPLACE_MENU
  (nom_module_Menu  VARCHAR2);
PROCEDURE REPLACE_MENU
  (nom_module_Menu  VARCHAR2,
   type_menu        NUMBER);
PROCEDURE REPLACE_MENU
  (nom_module_Menu  VARCHAR2,
   type_menu        NUMBER,
   nom_menu_démarrage  VARCHAR2);
PROCEDURE REPLACE_MENU
  (nom_module_Menu  VARCHAR2,
   type_menu        NUMBER,
   menu_démarrage      VARCHAR2,
   nom_groupe       VARCHAR2);
PROCEDURE REPLACE_MENU
  (nom_module_Menu   VARCHAR2,
   type_menu         NUMBER,
   menu_démarrage       VARCHAR2,
   nom_groupe        VARCHAR2,
   fichier_utiliser  BOOLEAN);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Notes d'utilisation

REPLACE_MENU remplace le menu dans toutes les fenêtres de l'application. Si vous utilisez CALL_FORM, REPLACE_MENU remplace le menu de l'application Forms appelante et de l'application Forms appelée par le menu indiqué.

Paramètres

nom_module_Menu	Nom du module Menu qui doit remplacer le module Menu en cours. Les données sont de type VARCHAR2. Ce paramètre est facultatif. S'il est omis, Form Builder exécute l'application Forms sans menu.

type_menu	Type d'affichage du menu. Les constantes qui peuvent être transmises comme arguments de ce paramètre sont les suivantes :

PULL_DOWN Indique que vous voulez que Form Builder affiche les menus en mode déroulant, caractéristique de la plupart des plates-formes à interface graphique et de certaines plates-formes en mode caractère.

BAR Indique que vous voulez que Form Builder affiche le menu sous la forme d'une barre horizontale, en haut de la fenêtre principale.

FULL_SCREEN Indique que vous voulez que Form Builder affiche le menu en plein écran.

menu_démarrage	Indique le menu du module Menu que Form Builder doit utiliser comme menu de démarrage. Les données du nom sont de type VARCHAR2.

nom_groupe	Indique le rôle autorisé que Form Builder doit utiliser. Si vous n'indiquez pas de nom de rôle, Form Builder utilise le nom d'utilisateur en cours pour déterminer ce rôle.

fichier_à_utiliser	Indique comment Form Builder doit localiser le fichier .MMX à exécuter. Correspond à la propriété de module Application Forms Source de menu. Les données de fichier_à_utiliser sont de type BOOLEAN.

NULL Indique que Form Builder doit lire la propriété Source de menu de l'application Forms en cours et exécuter REPLACE_MENU en conséquence. Par exemple, si la propriété de module Application Forms Source de menu est définie à  oui pour l'application Forms en cours, Form Builder exécute REPLACE_MENU comme si le paramètre réel fichier_à_utiliser avait la valeur TRUE.

FALSE Indique que Form Builder doit traiter la valeur de module_Menu comme une référence à un module Menu .MMB (binaire) de la base de données et interroger ce module pour connaître le nom réel du module .MMX (exécutable).

TRUE Indique que Form Builder doit traiter la valeur module_Menu comme une référence directe à un fichier exécutable de menu .MMX, dans le système de fichiers.


REPLACE_MENU - Exemples

/*

** Procédure interne : REPLACE_MENU
** Exemple : Utiliser une procédure standard pour changer le
**           menu principal de l'application de menu en cours
**           qui apparaît dans la barre de menus. Une application de menu
**           peut avoir plusieurs "menus principaux" qu'une application peut définir
**           dynamiquement lors de l'exécution.
*/
PROCEDURE Change_Root_To(root_menu_name VARCHAR2) IS
BEGIN
  Replace_Menu('MYAPPLSTD', PULL_DOWN, root_menu_name);
END;


REPORT_OBJECT_STATUS - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Fournit l'état d'un objet état exécuté dans une application Forms par la procédure interne RUN_REPORT_OBJECT.

Syntaxe

FUNCTION REPORT_OBJECT_STATUS
  (id_état VARCHAR2(20)
);

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Paramètres

id_état	Valeur VARCHAR2 retournée par la procédure interne RUN_REPORT_OBJECT. Cette valeur identifie de façon unique l'état en cours d'exécution localement ou sur un serveur Report éloigné.

Notes d'utilisation

•	Il existe huit valeurs de retour possibles pour cette procédure interne : Terminé, Exécution, Annulé, Ouverture_état, Mis_en_file_d'attente, Travail_non_valide, Terminé_avec_erreurs et En_panne.


REPORT_OBJECT_STATUS - Exemples

DECLARE

repid REPORT_OBJECT;

v_rep  VARCHAR2(100);

rep_status varchar2(20);

BEGIN

repid := find_report_object('report4');

v_rep := RUN_REPORT_OBJECT(repid);

rep_status := REPORT_OBJECT_STATUS(v_rep);

if rep_status = 'FINISHED' then

message('Etat terminé');

copy_report_object_output(v_rep,'d:\temp\local.pdf');

host('netscape d:\temp\local.pdf');

else

message('Erreur pendant l'exécution de l'état.');

end if;

END;


RESET_GROUP_SELECTION - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'annuler la sélection des lignes dans le groupe indiqué. Utilisez cette procédure pour annuler la sélection de toutes les lignes de groupe d'enregistrements qui ont reçu par programme une marque de sélection, en exécutant SET_GROUP_SELECTION sur chacune des lignes.

Syntaxe

PROCEDURE RESET_GROUP_SELECTION
  (id_groupenreg   RecordGroup);

PROCEDURE RESET_GROUP_SELECTION
  (nom_groupenreg  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_groupenreg	ID unique que Form Builder attribue lorsqu'il crée le groupe. Le type de données de l'ID est RecordGroup.

nom_groupenreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Le type de données du nom est VARCHAR2.


RESET_GROUP_SELECTION - Exemples

/*

** Procédure interne : RESET_GROUP_SELECTION
** Exemple : Si l'utilisateur appuie sur la touche (Annuler),
**           ne pas tenir compte des enregistrements du
**           groupe 'SELUTIL' qui peuvent avoir été marqués
**           préalablement comme sélectionnés.
** Déclencheur : When-Button-Pressed
*/
BEGIN
  Reset_Group_Selection( 'selutil' );
END;


RESIZE_WINDOW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet de modifier la taille d'une fenêtre donnée en fonction de la largeur et de la hauteur indiquées. Un appel à RESIZE_WINDOW définit la largeur et la hauteur de la fenêtre, même si elle n'est pas affichée. RESIZE_WINDOW ne modifie pas la position de la fenêtre, indiquée par les coordonnées x et y de son angle supérieur gauche sur l'écran.

Sous Microsoft Windows, vous pouvez redimensionner une fenêtre d'application MDI en indiquant comme nom de fenêtre la constante FORMS_MDI_WINDOW.

Vous pouvez également redimensionner une fenêtre en utilisant SET_WINDOW_PROPERTY.

Syntaxe

PROCEDURE RESIZE_WINDOW
  (id_fenêtre  Window,
   largeur     NUMBER,
   hauteur     NUMBER);

PROCEDURE RESIZE_WINDOW
  (nom_fenêtre VARCHAR2,
   largeur     NUMBER,
   hauteur     NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_fenêtre	ID unique que Form Builder attribue à la fenêtre lors de sa création. Utilisez la procédure interne FIND_WINDOW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Window.

nom_fenêtre	Nom que vous avez donné à la fenêtre lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

Largeur	Nouvelle largeur de la fenêtre, en unités du système de coordonnées de l'application Forms.

Hauteur	Nouvelle hauteur de la fenêtre, en unités du système de coordonnées de l'application Forms.


RESIZE_WINDOW - Exemples

/*

** Procédure interne : RESIZE_WINDOW
** Exemple : Définir Fenêtre2 à la même taille que Fenêtre1.
*/
PROCEDURE Make_Same_Size_Win( Fenêtre1 VARCHAR2, Fenêtre2 VARCHAR2) IS
  wn_id1 Window;
  w      NUMBER;
  h      NUMBER;
BEGIN
  /*
  ** Rechercher Fenêtre1 et extraire sa largeur et sa hauteur.
  */
  wn_id1 := Find_Window(Fenêtre1);
  w      := Get_Window_Property(wn_id1,WIDTH);
  h      := Get_Window_Property(wn_id1,HEIGHT);
  /*
  ** Donner la même taille à Fenêtre2.
  */
  Resize_Window( Fenêtre2, w, h );
END;


RETRIEVE_LIST - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'extraire le contenu de la liste en cours et de le stocker dans le groupe d'enregistrements indiqué. Le groupe d'enregistrements cible doit avoir la structure en deux colonnes (VARCHAR2) suivante :

Colonne 1 :	Colonne 2 :

libellé de liste	valeur de liste

Stocker le contenu d'un élément liste permet de restaurer la liste avec son précédent contenu.

Syntaxe

PROCEDURE RETRIEVE_LIST
  (id_liste        ITEM,
   id_groupenreg   VARCHAR2);

PROCEDURE RETRIEVE_LIST
  (id_liste        ITEM,
   nom_groupenreg  VARCHAR2);
PROCEDURE RETRIEVE_LIST
  (nom_liste       VARCHAR2,
   id_groupenreg   RecordGroup);
PROCEDURE RETRIEVE_LIST
  (nom_liste       VARCHAR2,
   nom_groupenreg  VARCHAR2);

Type de procédure interne  procédure non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_liste	Permet d'indiquer l'ID unique que Form Builder attribue lorsqu'il crée l'élément liste. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ITEM.

nom_liste	Nom que vous avez donné à la liste lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

id_groupenreg	ID unique que Form Builder attribue au groupe d'enregistrements lors de sa création. Les données de l'ID sont de type RecordGroup.

nom_groupenreg	Nom de type VARCHAR2 que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé.


RETRIEVE_LIST - Exemples

/*

**  Procédure interne : RETRIEVE_LIST
**  Exemple : Voir POPULATE_LIST.
*/


RUN_PRODUCT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'appeler l'un des produits Oracle pris en charge et d'indiquer le nom du module ou le module à exécuter. Si le produit appelé n'est pas disponible au moment de l'appel, Form Builder envoie un message à l'utilisateur.

Si vous créez une liste de paramètres, puis y faites référence dans l'appel à RUN_PRODUCT, l'application Forms peut transmettre au produit appelé des paramètres de texte et de données qui représentent des valeurs des paramètres de ligne de commande, des références de lien ou des références lexicales et des interrogations nommées. Les paramètres de type DATA_PARAMETER sont des pointeurs sur des groupes d'enregistrements de Form Builder. Vous pouvez transmettre des paramètres de données (DATA_PARAMETER) à Report Builder et à Graphics Builder, mais pas à Form Builder.

Pour exécuter un état dans l'application Forms, vous pouvez aussi utiliser la procédure interne d'intégration d'état dédié RUN_REPORT_OBJECT.

Syntaxe

PROCEDURE RUN_PRODUCT
  (produit      NUMBER,
   module       VARCHAR2,
   modecomm     NUMBER,
   modeexéc     NUMBER,
   emplacement  NUMBER,
   id_listeparam          VARCHAR2,
   affichage    VARCHAR2);

PROCEDURE RUN_PRODUCT
  (produit      NUMBER,
   module       VARCHAR2,
   modecomm     NUMBER,
   modeexéc     NUMBER,
   emplacement  NUMBER,
   nom_listeparam          VARCHAR2,
   affichage    VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

produit	Constante numérique du produit Oracle que vous voulez appeler : FORMS indique une session Runform, GRAPHICS indique Graphics Builder, REPORTS indique Report Builder et BOOK indique Oracle Book.

Module	Nom de type VARCHAR2 du module ou module à exécuter par le produit appelé. Les valeurs valides sont le nom d'un module Application Forms, d'un état, d'un affichage Graphics Builder ou d'un module Oracle Book. L'application recherche le nom du module ou le module dans les chemins par défaut définis pour le produit appelé.

Modecomm	Mode de communication à utiliser lors de l'exécution du produit appelé. Les constantes numériques valides pour ce paramètre sont SYNCHRONOUS et ASYNCHRONOUS.

SYNCHRONOUS Le contrôle n'est rendu à Form Builder qu'après la sortie du produit appelé. L'utilisateur ne peut pas travailler sur l'application Forms pendant que le produit appelé s'exécute.

ASYNCHRONOUS Le contrôle est rendu immédiatement à l'application appelante, même si l'application appelée n'a pas achevé son affichage.

Modeexéc	Mode d'exécution à utiliser lors de l'exécution du produit appelé. Les constantes numériques valides pour ce paramètre sont BATCH et RUNTIME. Lorsque vous exécutez Report Builder et Graphics Builder, le mode d'exécution peut être soit BATCH soit RUNTIME. Lorsque vous exécutez Form Builder, définissez toujours ce mode à RUNTIME.

Emplacement	Emplacement du nom de module ou du module que vous voulez faire exécuter par le produit appelé : système de fichiers ou base de données. Les constantes valides pour cette propriété sont FILESYSTEM et DB.

nom ou ID_listeparam	Liste de paramètres à transmettre au produit appelé. Les valeurs valides pour ce paramètre sont le nom de type VARCHAR2 de la liste de paramètres, l'ID de la liste de paramètres ou une chaîne NULL (''). Pour indiquer un ID de liste de paramètres, utilisez une variable de type PARAMLIST.

Vous pouvez transmettre des paramètres texte aux produits appelés en mode SYNCHRONOUS et en mode ASYNCHRONOUS. Cependant, les listes de paramètres qui contiennent des paramètres de type DATA_PARAMETER (pointeurs sur des groupes d'enregistrements) ne peuvent être transmises à Report Builder et à Graphics Builder qu'en mode SYNCHRONOUS. (Le mode SYNCHRONOUS est obligatoire lors de l'appel à Graphics Builder pour qu'il retourne un affichage Graphics Builder qui s'affichera dans un élément graphique d'application Forms.)

Remarque : Pour empêcher Graphics Builder de se connecter, transmettez une liste de paramètres comprenant un paramètre dont clé est défini à LOGON et valeur à NO.

Remarque : Vous ne pouvez pas transmettre de paramètres de données (DATA_PARAMETER) à une interrogation fils de Report Builder. La transmission n'est prise en charge que pour les interrogations maître.

Affichage	Nom de type VARCHAR2 de l'élément graphique de Form Builder qui contiendra l'affichage (un graphique à secteurs, à barres, etc.) généré par Graphics Builder. Le nom de l'élément graphique doit se présenter sous la forme nom_bloc_nom.élément. (Ce paramètre n'est obligatoire que lorsque vous utilisez un élément graphique de Graphics Builder dans une application Forms.)


RUN_PRODUCT - Exemples

/*

** Procédure interne : RUN_PRODUCT
** Exemple : Appeler un état de Report Builder en
**           transmettant les données dans le groupe données dans le
**           groupe d'enregistrements 'EMP_RECS' pour remplacer
**           l'interrogation de l'état 'EMP_QUERY'. Présupposer que
**           le groupe d'enregistrements Emp_Recs existe déjà et a la même structure
**           de type de colonnes et de données que l'interrogation Emp_Query de l'état.
*/
PROCEDURE Run_Emp_Report IS
  pl_id ParamList;
BEGIN
  /*
  ** Vérifier l'existence de la liste de paramètres 'donnéestemp'.
  */
  pl_id := Get_Parameter_List('donnéestemp');
  /*
  ** Si la liste existe, la supprimer avant de la créer à
  ** nouveau si elle contient des paramètres qui ne sont pas
  ** utiles dans ce cas.
  */
  IF NOT Id_Null(pl_id) THEN
    Destroy_Parameter_List( pl_id );
  END IF;
  /*
  ** Créer une nouvelle liste de paramètres 'donnéestemp'.
  */
  pl_id := Create_Parameter_List('donnéestemp');
  /*
  ** Ajouter un paramètre de données à cette liste qui
  ** établira la relation entre l'interrogation nommée
  ** 'EMP_QUERY' dans l'état et le groupe d'enregistrements
  ** nommé 'EMP_RECS' dans l'application Forms.
  */
  Add_Parameter(pl_id,'EMP_QUERY',DATA_PARAMETER,'EMP_RECS');
  /*
  ** Fournir un paramètre dans PARAMFORM de manière à ne pas afficher la boîte de
  ** dialogue Paramètres lorsque ceux-ci y sont transmis.
  */

  Add_Parameter(pl_id, 'PARAMFORM', TEXT_PARAMETER, 'NO');

  /*
  ** Exécuter l'état de manière synchrone, en transmettant la liste de paramètres
  */
  Run_Product(REPORTS, 'empreport', SYNCHRONOUS, RUNTIME,
           FILESYSTEM, pl_id, NULL);
END;


RUN_REPORT_OBJECT - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Utilisez cette procédure interne pour exécuter un état depuis une application Forms. Vous pouvez exécuter les états à partir d'un serveur local ou d'un serveur de base de données éloigné. Exécuter cette procédure interne revient à utiliser la procédure RUN_PRODUCT dans un état.

Syntaxe

FUNCTION RUN_REPORT_OBJECT
  (id_état REPORT_OBJECT
);

Type de procédure interne  procédure non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_état	Indique l'ID unique de l'état à exécuter. Vous pouvez obtenir l'ID d'un état particulier en utilisant la procédure interne FIND_REPORT_OBJECT.

Notes d'utilisation

•	Retourne une valeur VARCHAR2 qui identifie de façon unique l'état en cours d'exécution localement ou sur un serveur d'état éloigné. Vous pouvez utiliser cette chaîne d'ID d'état comme paramètre pour REPORT_OBJECT_STATUS, COPY_REPORT_OBJECT et CANCEL_REPORT_OBJECT.

Lorsque vous appelez Run_Report_Object avec une propriété Report Server vide, la valeur retournée est NULL. Dans ce cas, vous ne pouvez pas utiliser les procédures internes Report_Object_Status et Copy_Report_Object_Output, parce qu'elles requièrent une valeur ID réelle.


RUN_REPORT_OBJECT - Exemples

DECLARE

repid REPORT_OBJECT;

v_rep  VARCHAR2(100);

rep_status varchar2(20);

BEGIN

repid := find_report_object('report4');

v_rep := RUN_REPORT_OBJECT(repid);

......

END;


SCROLL_DOWN - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Fait défiler la liste des enregistrements du bloc en cours pour rendre visible les enregistrements précédemment masqués et ayant des numéros de séquence supérieurs. S'il y a des enregistrements disponibles et si une interrogation est ouverte dans le bloc, Form Builder extrait les enregistrements pendant le traitement SCROLL_DOWN. Dans un bloc ne comportant qu'une ligne, SCROLL_DOWN affiche le prochain enregistrement de la liste des enregistrements du bloc. SCROLL_DOWN place le point d'entrée dans l'instance de l'élément en cours de l'enregistrement affiché ayant le numéro de séquence le moins élevé.

Syntaxe

PROCEDURE SCROLL_DOWN;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


SCROLL_DOWN - Exemples

/*

** Procédure interne :  SCROLL_DOWN
** Exemple :  Faire défiler l'enregistrement vers le bas.
*/
BEGIN
Scroll_Down;
END;


SCROLL_UP - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Fait défiler la liste des enregistrements du bloc en cours pour rendre visible les enregistrements masqués précédemment et ayant des numéros de séquence inférieurs. Cette action affiche les enregistrements qui étaient "au-dessus" de l'affichage du bloc

SCROLL_UP place le point d'entrée dans l'instance de l'élément en cours de l'enregistrement affiché ayant le numéro de séquence le plus élevé.

Syntaxe

PROCEDURE SCROLL_UP;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


SCROLL_UP - Exemples

/*

** Procédure interne :  SCROLL_UP
** Exemple :  Faire défiler l'enregistrement vers le haut.
*/
BEGIN
  Scroll_Up;
END;


SCROLL_VIEW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Déplace la vue sur son canevas en changeant les propriétés Position Lucarne X et Position Lucarne  Y. L'opérateur voit alors une région différente du canevas, mais la position de la vue dans la fenêtre est inchangée.

Remarque : Pour un canevas intégral ou de barre d'outil, la fenêtre par laquelle le canevas est affiché représente la vue de ce canevas. Pour un canevas empilé, la taille de la vue est commandée par la définition des propriétés Largeur et Hauteur de la lucarne.

Syntaxe

PROCEDURE SCROLL_VIEW
  (id_vue    ViewPort,
   x         NUMBER,
   y         NUMBER);

PROCEDURE SCROLL_VIEW
  (nom_vue  VARCHAR2,
   x         NUMBER,
   y         NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_vue	ID unique que Form Builder attribue à la vue lorsqu'il crée l'objet. Utilisez la procédure interne FIND_VIEW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ViewPort.

nom_vue	Nom que vous avez donné à l'objet lorsque vous l'avez défini. Les données du nom sont de type VARCHAR2.

x	Coordonnée x de l'angle supérieur gauche de la vue, par rapport à l'angle supérieur gauche du canevas.

y	Coordonnée y de l'angle supérieur gauche de la vue, par rapport à l'angle supérieur gauche du canevas.


SCROLL_VIEW - Exemples

/*

** Procédure interne :  SCROLL_VIEW
** Exemple :  Faire défiler la vue dont le nom est déplacé de 10 % vers
**            la droite ou la gauche en fonction des paramètres
**            direction.
*/
PROCEDURE Scroll_Ten_Percent( nomvue VARCHAR2,
                 direction VARCHAR2 ) IS
  vw_id        ViewPort;
  vw_wid       NUMBER;
  vw_x         NUMBER;
  cn_id        Canevas;
  cn_wid       NUMBER;
  ten_percent  NUMBER;
  new_x        NUMBER;
  old_y        NUMBER;
BEGIN
  /*
  ** Lire l'ID de la vue et du canevas correspondant
  */
  vw_id := Find_View( nomvue );
  cn_id := Find_Canvas( nomvue );

  /*
  ** Déterminer la largeur de la vue et la largeur du canevas
  ** correspondant.
  */
  vw_wid := Get_View_Property(vw_id,WIDTH);
  cn_wid := Get_Canvas_Property(cn_id,WIDTH);
  /*
  ** Calculer le nombre d'unités de largeur de canevas qui se trouvent à l'extérieur
  ** de la vue, et calculer 10 % de cette valeur.
  */
  ten_percent  := 0.10 * (cn_wid - vw_wid);
  /*
  ** Déterminer la position horizontale de la vue sur le
  ** canevas correspondant
  */
  vw_x := Get_View_Property(vw_id,VIEWPORT_X_POS_ON_CANVAS);
  /*
  ** Calculer la nouvelle position x de la vue sur son canevas
  ** pour effectuer le défilement de 10 % dans la direction voulue.
  ** Rapprocher à moins de 10 % de la distance par rapport au bord vers
  ** lequel nous nous déplaçons, puis positionner la vue
  ** contre ce bord.
  */
  IF direction='GAUCHE' THEN
    IF vw_x > ten_percent THEN
      new_x  := vw_x - ten_percent;
    ELSE
      new_x  := 0;
    END IF;
  ELSIF direction='DROITE' THEN
    IF vw_x < cn_wid - vw_wid - ten_percent THEN
      new_x  := vw_x + ten_percent;
    ELSE
      new_x  := cn_wid - vw_wid;
    END IF;
  END IF;
  /*
  ** Faire défiler horizontalement la vue de cette valeur
  */
  old_y  := Get_View_Property(vw_id,VIEWPORT_Y_POS_ON_CANVAS);
  Scroll_View( vw_id, new_x , old_y );
END;


SELECT_ALL - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Sélectionne le texte de l'élément en cours. Appelez cette procédure avant d'émettre un appel à CUT_REGION ou COPY_REGION lorsque vous voulez couper ou copier la totalité d'un élément texte.

Syntaxe

PROCEDURE SELECT_ALL;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


SELECT_RECORDS - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Appelée à partir d'un déclencheur On-Select, cette procédure déclenche un traitement SELECT Form Builder par défaut. Elle a été essentiellement développée pour les applications qui s'exécutent sur une source de données autre que Oracle et utilisent des déclencheurs transactionnels pour remplacer le traitement des transactions par défaut de Form Builder.

Syntaxe

PROCEDURE SELECT_RECORDS;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


SELECT_RECORDS - Restrictions

Valide uniquement dans un déclencheur On-Select.


SELECT_RECORDS - Exemples

/*

** Procédure interne :  SELECT_RECORDS
** Exemple :  Exécuter le traitement SELECT standard de Form Builder
**            en fonction d'un indicateur global configuré au démarrage
**            par l'application Forms, éventuellement en fonction d'un paramètre.
** Déclencheur :  On-Select
*/
BEGIN
  /*
  ** Vérifier la variable d'indicateur définie lors du démarrage de l'application Forms.
  */
  IF  :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_select block=EMP');
  /*
  ** Sinon, exécuter la procédure appropriée.
  */
  ELSE
    Select_Records;
  END IF;
END;


FORMS_OLE.SERVER_ACTIVE;
SERVER_ACTIVE

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'indiquer si le serveur associé à un conteneur donné est actif ou inactif :

•	Retourne TRUE si le serveur OLE est actif.

•	Retourne FALSE si le serveur OLE est inactif.

Vous devez définir une variable de type approprié pour accepter la valeur retournée.

Syntaxe

FUNCTION SERVER_ACTIVE
  (id_élément  Item);

FUNCTION SERVER_ACTIVE
  (nom_élément  VARCHAR2);

Retourne valeur BOOLEENNE

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  non

Paramètres

id_élément	ID unique que Form Builder attribut à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié. Le type de données de l'ID est Item.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.


SERVER_ACTIVE  - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


SERVER_ACTIVE - Exemple

/*

** Procédure interne : SERVER_ACTIVE
** Exemple : Vérifier si le serveur OLE est actif.
** Déclencheur : When-Button-Pressed
*/
DECLARE
 item_id  ITEM;
 item_name VARCHAR(25) := 'ELEMOLE';
 active_serv BOOLEAN;
BEGIN
 item_id := Find_Item(item_name);
 IF Id_Null(item_id) THEN
  message('Elément inexistant : '||item_name);
 ELSE
  active_serv := Forms_OLE.Server_Active(item_id);
  IF active_serv = FALSE THEN
   Forms_OLE.Activate_Server(item_id);
  END IF;
 END IF;
END;


SET_ALERT_BUTTON_PROPERTY - Procédure interne

 Toutes les procédures internes

Description

Modifie le libellé de l'un des boutons d'un message d'alerte.

Syntaxe

PROCEDURE SET_ALERT_BUTTON_PROPERTY
  (id_alerte   ALERT,
   bouton      NUMBER,
   propriété   VARCHAR2,
   valeur      VARCHAR2);

PROCEDURE SET_ALERT_BUTTON_PROPERTY
  (nom_alerte  VARCHAR2,
   bouton      NUMBER,
   propriété   VARCHAR2,
   valeur      VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_alerte	ID unique (de type ALERT) que Form Builder attribue au message d'alerte lorsqu'il le crée. Utilisez FIND_ALERT pour retourner l'ID à une variable de type approprié.

nom_alerte	Nom VARCHAR2 du message d'alerte.

bouton	Constante qui indique le bouton d'alerte que vous voulez modifier, ALERT_BUTTON1, ALERT_BUTTON2 ou ALERT_BUTTON3.

propriété	LABEL  Texte de libellé du bouton d'alerte.

valeur	Valeur VARCHAR2 à appliquer à la propriété que vous avez indiquée.

Notes d'utilisation

Si le libellé indiqué est NULL, le libellé de bouton reprend le libellé indiqué lors de la conception.


SET_ALERT_PROPERTY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Modifie le texte du message d'une alerte existante.

Syntaxe

SET_ALERT_PROPERTY
  (id_alerte  ALERT,
   propriété  NUMBER,
   message   VARCHAR2);

SET_ALERT_PROPERTY
  (nom_alerte  VARCHAR2,
   propriété    NUMBER,
   message     VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_alerte	ID unique (de type ALERT que Form Builder attribue au message d'alerte lorsqu'il le crée. Retourne l'ID à une variable de type approprié.

nom_alerte	Nom VARCHAR2 du message d'alerte.

propriété	Propriété du message d'alerte que vous définissez :

ALERT_MESSAGE_TEXT  Indique que vous définissez le texte du message d'alerte.

TITLE  Titre du message d'alerte. Remplace la valeur indiquée dans Form Builder si la valeur de la propriété n'est pas NULL.

message	Message qui doit remplacer le message d'alerte en cours. Transmettez le message sous la forme d'une chaîne entre apostrophes, d'une variable ou d'une construction chaîne/variable.


SET_ALERT_PROPERTY - Restrictions

Si le texte du message dépasse 200 caractères, il est tronqué.


SET_ALERT_PROPERTY - Exemples

/*

** Procédure interne :  SET_ALERT_PROPERTY
** Exemple :  Met le message d'erreur dans un message d'alerte défini par l'utilisateur appelé 'My_Error_Alert', et affiche l'alerte.
** Déclencheur :   On-Error
*/
DECLARE
  err_txt   VARCHAR2(80)  := Error_Text;
  al_id     Alert;
  al_button Number;
BEGIN
  al_id  := Find_Alert('My_Error_Alert');
  Set_Alert_Property(al_id, alert_message_text, err_txt );
  al_button  := Show_Alert( al_id );
END;


SET_APPLICATION_PROPERTY - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Définit (ou réinitialise) la propriété de l'application actuelle.

Syntaxe

SET_APPLICATION_PROPERTY
  (propriété  NUMBER,
   valeur     VARCHAR2)

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

propriété	Propriété que vous voulez définir pour l'application donnée. Les propriétés possibles sont les suivantes :

BUILTIN_DATE_FORMAT  Indique le masque de format de date.

CURSOR_STYLE  Style de curseur pour l'application donnée.

DATE_FORMAT_COMPATIBILITY_MODE  Indique la manière dont certaines opérations de conversion de format de date sont exécutées.

FLAG_USER_VALUE_TOO_LONG   Indique comment Form Builder doit gérer les valeurs entrées par l'utilisateur, dépassant la propriété de longueur maximale d'un élément. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

PLSQL_DATE_FORMAT  Indique le masque de format de date PLSQL.

value	Nouvelle valeur à définir pour cette propriété.


SET_BLOCK_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Définit les caractéristiques du bloc indiqué.

Syntaxe

SET_BLOCK_PROPERTY
  (id_bloc	Bloc,
   propriété	VARCHAR,
   valeur	VARCHAR);

SET_BLOCK_PROPERTY
  (id_bloc	Bloc,
   propriété	VARCHAR,
   x	NUMBER);

SET_BLOCK_PROPERTY
  (id_bloc  Bloc,
   propriété VARCHAR,

   x	NUMBER
   y	NUMBER);

SET_BLOCK_PROPERTY
  (nom_bloc	VARCHAR2,
   propriété	VARCHAR,
   valeur	VARCHAR);

SET_BLOCK_PROPERTY
  (nom_bloc	VARCHAR2,
   propriété	VARCHAR,
   x	NUMBER);

SET_BLOCK_PROPERTY
  (nom_bloc	VARCHAR2,
   propriété	VARCHAR,
   x	NUMBER,
   y	NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_bloc	ID unique que Form Builder a attribué au bloc lorsque vous l'avez créé. Les données sont de type BLOCK.

nom_bloc	Nom que vous avez donné au bloc lorsque vous l'avez créé. Les données sont de type VARCHAR2.

Propriété	Indiquez l'une des constantes suivantes :

ALL_RECORDS Précise si tous les enregistrements correspondant aux critères d'interrogation doivent être extraits du bloc de données lors de l'exécution d'une requête.

BLOCKSCROLLBAR_POSITION   Indique à la fois les coordonnées x et y précisant la position de la barre de défilement du bloc, en unités de coordonnées de l'application Forms, indiquées par la propriété Système de coordonnées de cette application.

BLOCKSCROLLBAR_X_POS   Indique la coordonnée x précisant la position de la barre de défilement du bloc, en unités de coordonnées de l'application Forms, indiquées par la propriété Système de coordonnées de cette application.

BLOCKSCROLLBAR_Y_POS   Indique la coordonnée y, précisant la position de la barre de défilement du bloc, en unités de coordonnées de l'application Forms, indiquées par la propriété Système de coordonnées de cette application.

COORDINATION_STATUS Etat qui précise si un bloc détail, qui est une relation maître-détail, est coordonné avec tous ses blocs maîtres, c'est-à-dire si les enregistrements détail du bloc correspondent correctement à l'enregistrement maître du bloc maître. Les valeurs valides sont COORDINATED et NON_COORDINATED.

CURRENT_RECORD_ATTRIBUTE  Nom VARCHAR2 d'un attribut visuel nommé, à associer au bloc donné. Si l'attribut visuel nommé n'existe pas, un message d'erreur est émis.

CURRENT_ROW_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

CURRENT_ROW_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

CURRENT_ROW_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

CURRENT_ROW_FONT_SIZE  Taille de la police, indiquée en points.

CURRENT_ROW_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

CURRENT_ROW_FONT_STYLE  Style de la police.

CURRENT_ROW_FONT_WEIGHT Epaisseur de la police.

CURRENT_ROW_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

CURRENT_ROW_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

DEFAULT_WHERE  Clause WHERE par défaut pour le bloc, qui remplace les clauses WHERE préalables. (Remarque : cette clause ne remplace pas une valeur attribuée à la propriété de clause WHERE du bloc de données lors du développement via la Palette de propriétés.)

Cette clause doit être entre apostrophes. Le nom réservé WHERE est facultatif. La clause WHERE par défaut peut comporter des références à des variables globales, à des paramètres d'application Forms et à des valeurs d'élément, indiqués avec une syntaxe de variable de lien standard.

DELETE_ALLOWED  Indique si l'opérateur ou l'application sont autorisés à supprimer des enregistrements dans le bloc donné. Les valeurs valides sont PROPERTY_TRUE ou PROPERTY_FALSE.

DML_DATA_TARGET NAME  Nom de la source de données DML du bloc.

ENFORCE_PRIMARY_KEY  Indique que les enregistrements insérés ou mis à jour dans le bloc doivent avoir une caractéristique unique pour pouvoir être enregistrés dans la base de données. Les valeurs valides sont PROPERTY_TRUE ou PROPERTY_FALSE.

INSERT_ALLOWED  Indique si l'opérateur ou l'application est autorisé à insérer des enregistrements dans le bloc donné. Les valeurs valides sont PROPERTY_TRUE ou PROPERTY_FALSE.

KEY_MODE  Mode de saisie du bloc, ce qui est particulièrement utile lors de l'exécution de Form Builder sur des sources de données autres que Oracle. Les valeurs valides sont UPDATEABLE_PRIMARY_KEY et NONUPDATEABLE_PRIMARY_KEY.

LOCKING_MODE   Propriété LOCKING_MODE du bloc. Les valeurs valides sont DELAYED or IMMEDIATE.

MAX_QUERY_TIME  Durée maximum de l'interrogation. L'opérateur peut arrêter une interrogation lorsque le temps imparti de l'interrogation excède la valeur de cette propriété.

MAX_RECORDS_FETCHED  Nombre maximum d'enregistrements pouvant être extrait. Cette propriété n'est utile que lorsque la propriété QUERY_ALL_RECORDS est définie à Yes.

NAVIGATION_STYLE  Propriété NAVIGATION_STYLE du bloc. Les valeurs valides sont SAME_RECORD, CHANGE_RECORD ou CHANGE_BLOCK.

NEXT_NAVIGATION_BLOCK  Nom du prochain bloc de navigation du bloc. Par défaut, le prochain bloc de navigation est le bloc ayant le numéro de séquence immédiatement supérieur; cependant, la propriété de bloc NEXT_NAVIGATION_BLOCK peut être définie de manière à remplacer la séquence de navigation de bloc par défaut.

OPTIMIZER_HINT  Message que Form Builder transmet à l'optimiseur SGBDR lors de la construction des interrogations, ce qui permet au développeur d'applications Forms d'obtenir des performances optimales lors de l'interrogation des blocs.

ORDER_BY  Clause ORDER BY par défaut pour le bloc, qui remplace toute clause ORDER BY précédente. Cette clause doit être entre guillemets mais ne doit pas comporter les mots 'ORDER BY'. Form Builder ajoute automatiquement "ORDER BY" au début de l'instruction que vous fournissez.

PRECOMPUTE_SUMMARIES[En cours d'écriture]

PREVIOUS_NAVIGATION_BLOCK Nom du précédent bloc de navigation du bloc. Par défaut, le précédent bloc de navigation est le bloc ayant le numéro de séquence immédiatement inférieur; cependant, la propriété de bloc NEXT_NAVIGATION_BLOCK peut être définie de manière à remplacer la séquence de navigation de bloc par défaut.

QUERY_ALLOWED  Indique si une interrogation peut être lancée à partir du bloc, soit par l'opérateur soit par programme. Les valeurs valides sont PROPERTY_TRUE ou PROPERTY_FALSE.

QUERY_DATA_SOURCE NAME   Nom de la source des données d'interrogation du bloc. Remarque : vous ne pouvez pas définir la constante QUERY_DATA_SOURCE_NAME d'un bloc lorsque la source de données de celui-ci est une procédure.

QUERY_HITS  Valeur de type NUMBER qui précise la nombre d'enregistrements identifiés par l'opération COUNT_QUERY.

UPDATE_ALLOWED  Indique si l'opérateur ou l'application sont autorisés à mettre des enregistrements à jour dans le bloc donné. Les valeurs valides sont PROPERTY_TRUE ou PROPERTY_FALSE.

UPDATE_CHANGED_COLUMNS  Indique que seules les colonnes mises à jour par un opérateur seront transmises à la base de données. Lorsque la propriété Mettre à jour colonnes modifiées seulement est définie à No, toutes les colonnes sont transmises, qu'elles aient été mises à jour ou non, ce qui peut entraîner une surcharge considérable du réseau, surtout si le bloc contient des données de type LONG.

valeur	Les constantes suivantes peuvent être transmises sous forme d'arguments aux valeurs de propriétés décrites ci-dessus :

COORDINATED  Indique que la propriété COORDINATION_STATUS doit être définie à COORDINATED pour un bloc détail d'une relation maître-détail.

DELAYED  Indique que vous voulez que Form Builder ne verrouille les enregistrements détail que lors de l'exécution d'une action commit.

IMMEDIATE  Indique que vous voulez que Form Builder verrouille immédiatement les enregistrements détail chaque fois qu'un enregistrement de base de données est modifié.

NON_COORDINATED  Indique que la propriété COORDINATION_STATUS doit être définie à NON_COORDINATED pour un bloc détail d'une relation maître-détail.

NON_UPDATEABLE_PRIMARY_KEY  Indique que vous voulez que Form Builder traite les enregistrements du bloc en se fondant sur le fait que la source des données sous-jacente ne permet pas la mise à jour des clés primaires.

PROPERTY_TRUE   Indique que la propriété doit être définie à TRUE. Plus précisément, cette propriété peut être fournie sous la forme de la valeur de DELETE_ALLOWED, INSERT_ALLOWED, QUERY_HITS et UPDATE_ALLOWED.

PROPERTY_FALSE   Indique que la propriété doit être définie à l'état FALSE.

UNIQUE_KEY  Indique que vous voulez que Form Builder traite les enregistrements du bloc en se fondant sur le fait que la source de données sous-jacente utilise une forme quelconque de clé unique, ou ROWID.

UPDATEABLE_PRIMARY_KEY  Indique que vous voulez que Form Builder traite les enregistrements du bloc en se fondant sur le fait que la source des données sous-jacente permet la mise à jour des clés primaires.

x	Valeur numérique (NUMBER) de la coordonnée de l'axe indiqué dans l'unité du système de coordonnées de l'application Forms. Si vous définissez à la fois les coordonnées x et y, cette valeur fait référence à la coordonnée x. Lorsque vous définissez uniquement la coordonnée y, cette valeur fait référence à la coordonnée y.

y	Valeur numérique (NUMBER) de la coordonnée de l'axe indiquée dans l'unité du système de coordonnées de l'application Forms. Cette valeur s'applique lorsque vous définissez à la fois les coordonnées x et y, et peut être ignorée pour toutes les autres propriétés.


SET_BLOCK_PROPERTY - Exemples

/*

** Procédure interne :  SET_BLOCK_PROPERTY
** Exemple :  Empêcher que les futures insertions, mises à jour et suppressions
**            portent sur des enregistrements interrogés dans le bloc dont le nom
**            est transmis sous la forme d'un argument à cette procédure.
*/
PROCEDURE Make_Block_Query_Only( blk_name IN VARCHAR2 )
IS
  blk_id Block;
BEGIN
  /* Lire l'ID interne du bloc */
  blk_id  := Find_Block(blk_name);
  /*
  ** Si le bloc existe (c'est-à-dire si son ID n'est pas NULL), définir les
  ** trois propriétés de ce bloc. Sinon, indiquer une
  ** erreur.
  */
  IF NOT Id_Null(blk_id) THEN
    Set_Block_Property(blk_id,INSERT_ALLOWED,PROPERTY_FALSE);
    Set_Block_Property(blk_id,UPDATE_ALLOWED,PROPERTY_FALSE);
    Set_Block_Property(blk_id,DELETE_ALLOWED,PROPERTY_FALSE);
  ELSE
    Message('le bloc'||nom_de_bloc||'n'existe pas.');
    RAISE Form_Trigger_Failure;
  END IF;
END;

Utilisation de BLOCKSCROLLBAR_POSITION :

/*

** Procédure interne :  SET_BLOCK_PROPERTY
** Exemple :   Définir les coordonnées x et y, précisant la position de la barre de
** défilement du bloc sur les coordonnées x et y transférées

*/
PROCEDURE Set_Scrollbar_Pos( blk_name IN VARCHAR2, xpos IN

NUMBER, ypos IN NUMBER )
IS
BEGIN
   Set_Block_Property(blk_name, BLOCKSCROLLBAR_POSITION, xpos, ypos);

END;


SET_CANVAS_PROPERTY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Définit la propriété du canevas indiqué.

Syntaxe

SET_CANVAS_PROPERTY
  (id_canevas  CANVAS,
   propriété   NUMBER,
   valeur      VARCHAR2);

SET_CANVAS_PROPERTY
  (id_canevas  CANVAS,
   propriété   NUMBER,
   x           NUMBER);
SET_CANVAS_PROPERTY
  (id_canevas  CANVAS,
   propriété   NUMBER,
   x           NUMBER,
   y           NUMBER);
SET_CANVAS_PROPERTY
  (nom_canevas VARCHAR2,
   propriété   NUMBER,
   valeur      VARCHAR2);
SET_CANVAS_PROPERTY
  (nom_canevas VARCHAR2,
   propriété   NUMBER,
   x           NUMBER);
SET_CANVAS_PROPERTY
  (nom_canevas VARCHAR2,
   propriété   NUMBER,
   x           NUMBER,
   y           NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_canevas	ID unique que Form Builder a attribué à l'objet canevas lorsque vous l'avez créé. Utilisez la procédure interne FIND_CANVAS pour retourner l'ID à une variable de type CANVAS.

nom_canevas	Nom que vous avez donné à l'objet canevas lorsque vous l'avez défini. Les données sont de type VARCHAR2.

propriété	Propriété que vous voulez définir pour le canevas donné. Les propriétés possibles sont :

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

CANVAS_SIZE  Dimensions du canevas (largeur, hauteur).

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, indiquée en points.

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

HEIGHT  Hauteur du canevas, en caractères.

TOPMOST_TAB_PAGE  Nom de la page onglet qui apparaît sur le dessus de la pile (c'est-à-dire qui recouvre toutes les autres pages onglet du canevas onglet)

VISUAL_ATTRIBUTE  Attribut visuel nommé valide, existant dans l'application Forms en cours, ou nom d'une définition d'attribut logique d'un fichier de ressources runtime que vous voulez que Form Builder applique au canevas.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

WIDTH  Largeur du canevas, en caractères.

valeur	Valeur VARCHAR2 à appliquer à la propriété que vous avez indiquée.

x	Valeur NUMBER de la coordonnée x ou de la largeur, selon la propriété que vous avez indiquée. Indiquez l'argument en unités du système de coordonnées de l'application Forms.

y	Valeur NUMBER de la coordonnée y ou de la hauteur, selon la propriété que vous avez indiquée. Indiquez l'argument en unités du système de coordonnées de l'application Forms.


SET_CANVAS_PROPERTY - Restrictions

•	Vous ne pouvez pas entrer un attribut visuel nommé qui n'existe pas.

•	Si Form Builder ne peut pas trouver d'attribut visuel nommé ayant le nom que vous avez indiqué, il recherche l'attribut affiché dans votre fichier de ressources Oracle*Terminal.


SET_CANVAS_PROPERTY - Exemples

/* Changer la "couleur d'arrière-plan" en définissant dynamiquement la

** canvas color at runtime to the name of a visual attribute
** you created:
*/
BEGIN
  SET_CANVAS_PROPERTY('my_cvs', visual_attribute, 'blue_txt');
END;


SET_CUSTOM_ITEM_PROPERTY - Procédure interne

Remarque :

Cette procédure interne a été remplacée par SET_CUSTOM_PROPERTY. Nous vous conseillons d'utiliser cette dernière dans toute nouvelle application Forms. Les informations ci-après ne sont fournies qu'à des fins de maintenance.

Description

Définit la valeur d'une propriété d'un composant JavaBean associé à un élément de zone JavaBean.

Syntaxe

La procédure interne est disponible pour les types VARCHAR2, NUMBER ou BOOLEAN.

SET_CUSTOM_ITEM_PROPERTY
  (item,
   prop-name,
   varchar2 value);

SET_CUSTOM_ITEM_PROPERTY
  (item,
   prop-name,
   number value);

SET_CUSTOM_ITEM_PROPERTY
  (item,
   prop-name,
   boolean value);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

élément	Nom l'élément de zone JavaBean associé au composant JavaBean cible. Le nom peut avoir la forme d'une constante varchar2 ou d'une variable définie à la valeur du nom.

nom-prop	Propriété particulière du conteneur JavaBean associé à cette zone JavaBean.

valeur	Valeur de la propriété indiquée. Elle doit être de type varchar2, integer ou boolean.

Notes d'utilisation

•	Dans le conteneur JavaBean, chaque type de propriété doit être représenté par une seule instance de la classe ID créée à l'aide d'ID.registerProperty.

•	Pour chaque procédure interne Set_Custom_Item_Property exécutée dans l'application Forms, la méthode setProperty du conteneur Java est appelée.

•	Le nom de l'élément de zone JavaBean peut être obtenu par l'intermédiaire de Find_Item(‘Item_Name’) ou simplement via ‘Item_Name’.


SET_CUSTOM_PROPERTY - Procédure interne

  Rubriques connexes   [image]  Exemples

Description

Définit la valeur d'une propriété définie par l'utilisateur dans un composant adaptable Java.

Syntaxe

La procédure interne est disponible pour les types VARCHAR2, NUMBER ou BOOLEAN.

SET_CUSTOM_PROPERTY
  (item,
   row-number,
   prop-name,
   value   VARCHAR2);

SET_CUSTOM_PROPERTY
  (item,
   row-number,
   prop-name,
   value   NUMBER);

SET_CUSTOM_PROPERTY
  (item,
   row-number,
   prop-name,
   value   BOOLEAN);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

élément	Nom ou ID de l'élément associé au composant adaptable Java cible. Le nom peut avoir la forme d'une constante varchar2 ou d'une variable définie à la valeur du nom.

numéro-ligne	Numéro de ligne de l'instance de l'élément à définir. (Les numéros de ligne d'instance commencent à 1.) Pour définir toutes les instances, indiquez la constante ALL_ROWS.

nom-prop	Propriété particulière du composant Java que vous voulez définir.

valeur	Nouvelle valeur de la propriété indiquée. Elle doit être de type varchar2, number ou boolean.

Notes d'utilisation

•	Dans le composant adaptable Java, chaque propriété personnalisée doit être représentée par une seule instance de classe ID, créée à l'aide d'ID.registerProperty.

•	Pour chaque procédure interne Set_Custom_Property exécutée dans l'application Forms, la méthode getProperty du composant Java est appelée.

•	Le nom de l'élément de zone JavaBean peut être obtenu par l'intermédiaire de Find_Item(‘Item_Name’) ou simplement via ‘Item_Name’.


SET_CUSTOM_PROPERTY - Procédure interne : exemple

Dans cet exemple, le composant adaptable Java est un composant JavaBean. Pour voir tout le contexte de ce code partiel, consultez l'exemple complet.

Dans le conteneur du composant JavaBean:

     private static final ID SETRATE = ID.registerProperty(«SetAnimationRate»);

Dans l'application Forms, avec le code PL/SQL activé par un déclencheur When_Button_Pressed d'un bouton «plus rapide» sur l'écran de l'utilisateur final :

   NewAnimationRate := gb.CurAnimationRate + 25

     . . .

   Set_Custom_Property(’Juggler_Bean’, ALL_ROWS, ’SetAnimationRate’, NewAnimationRate);

Dans cette procédure interne Set_Custom_Property :

•	Juggler_Bean est le nom de l'élément de zone de JavaBean dans l'application Forms. L'élément est associé au conteneur du composant JavaBean.

•	SetAnimationRate est une propriété du conteneur du composant JavaBean.

•	NewAnimationRate est une variable contenant la nouvelle valeur de la propriété qui est transmise au conteneur JavaBean.


SET_FORM_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Définit une propriété de l'application Forms donnée.

Syntaxe

SET_FORM_PROPERTY
  (id_moduleappli   FormModule,
   propriété        NUMBER,
   valeur           NUMBER);

SET_FORM_PROPERTY
  (nom_moduleappli  VARCHAR2,
   propriété        NUMBER,
   valeur           NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_moduleappli	ID unique que Form Builder a attribué à l'application Forms lors de sa création. Les données de l'ID sont de type FormModule.

nom_moduleappli	Nom du module que vous avez donné à l'application Forms lors de la création. Les données du nom sont de type VARCHAR2.

propriété	Propriété que vous voulez définir pour l'application Forms :

CURRENT_RECORD_ATTRIBUTE  Nom VARCHAR2 d'un attribut visuel nommé, à associer à l'application Forms donnée. Si l'attribut visuel nommé n'existe pas, un message d'erreur est émis.

CURRENT_ROW_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

CURRENT_ROW_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

CURRENT_ROW_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

CURRENT_ROW_FONT_SIZE  Taille de la police, indiquée en points.

CURRENT_ROW_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

CURRENT_ROW_FONT_STYLE  Style de la police.

CURRENT_ROW_FONT_WEIGHT Epaisseur de la police.

CURRENT_ROW_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

CURRENT_ROW_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

CURSOR_MODE  Etat du curseur que Form Builder doit tenter de définir. Essentiellement utilisé lors de la connexion à des sources de données autres que Oracle. Les valeurs valides sont OPEN_AT_COMMIT et CLOSE_AT_COMMIT.

DEFER_REQUIRED_ENFORCEMENT  Indique si la vérification des champs obligatoires a été reportée de la validation des éléments à celle des enregistrements. Les valeurs valides sont PROPERTY_TRUE, PROPERTY_4_5 et PROPERTY_FALSE.

DIRECTION  Orientation de la présentation pour les objets bidirectionnels. Les valeurs valides sont DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

FIRST_NAVIGATION_BLOCK  Retourne le nom du bloc dans lequel Form Builder tente de passer par navigation lors du lancement de l'application Forms. Par défaut, le premier bloc de navigation est le premier bloc défini dans le Navigateur d'objet; cependant, la propriété de bloc FIRST_NAVIGATION_BLOCK peut être définie de manière à indiquer un autre bloc comme premier bloc, lors du lancement de l'application Forms.

SAVEPOINT_MODE  Indique si Form Builder doit émettre des points d'enregistrement. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

VALIDATION  Indique si Form Builder doit exécuter une validation par défaut. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

VALIDATION_UNIT  Indique la portée de la validation de l'application Forms. Les valeurs valides sont DEFAULT_SCOPE, BLOCK_SCOPE, RECORD_SCOPE et ITEM_SCOPE.

valeur	Les constantes suivantes peuvent être transmises sous forme d'arguments aux valeurs de propriétés décrites ci-dessus :

BLOCK_SCOPE  Indique que vous voulez que Form Builder valide les données uniquement au niveau bloc, ce qui signifie, par exemple, que Form Builder valide tous les enregistrements d'un bloc, lorsqu'un événement de navigation impose une validation en sortant du bloc.

CLOSE_AT_COMMIT  Indique que vous ne voulez pas que les curseurs restent ouverts d'une validation de base de données à l'autre; par exemple, lorsqu'une application Forms s'exécute sur une base de données autre que Oracle.

DEFAULT_SCOPE  Définit à la valeur par défaut de la propriété de module d'application Forms unité de validation. Sous les gestionnaires de fenêtre d'interface graphique, l'unité de validation par défaut est ITEM.

FORM_SCOPE  Indique que vous voulez que la validation se produise uniquement au niveau application Forms uniquement.

ITEM_SCOPE.  Indique que vous voulez que Form Builder exécute une validation au niveau élément, ce qui signifie, par exemple, que Form Builder valide chaque élément qui a été modifié lorsqu'il sort d'un élément à la suite d'un événement de navigation.

OPEN_AT_COMMIT  Indique que vous voulez que les curseurs restent ouverts d'une validation de base de données à l'autre, ce qui est la valeur normale lors de l'exécution sous ORACLE.

PROPERTY_TRUE  Indique que la propriété doit être définie à l'état TRUE.

PROPERTY_FALSE   Indique que la propriété doit être définie à l'état FALSE.

RECORD_SCOPE  Indique que vous voulez que FORM Builder exécute une validation au niveau enregistrement, ce qui signifie, par exemple, que Form Builder valide chaque enregistrement modifié, par exemple, lorsqu'il quitte l'enregistrement.


SET_FORM_PROPERTY - Exemples

Exemple 1

/*

** Procédure interne :  SET_FORM_PROPERTY
** Exemple :  Définir la propriété mode Curseur dans l'application Forms
**            en cours à CLOSE_AT_COMMIT et modifier l'unité de
**            validation de l'application Forms au niveau Bloc.
*/
DECLARE
  fm_id FormModule;
BEGIN
    fm_id  := Find_Form( :System.Current_Form);
    Set_Form_Property(fm_id,CURSOR_MODE,CLOSE_AT_COMMIT);
    Set_Form_Property(fm_id,VALIDATION_UNIT,BLOCK_SCOPE);
END;

Exemple 2

/*

** Procédure interne :  SET_FORM_PROPERTY
** Exemple :  Définir les propriétés d'application Forms et de bloc nécessaires pour
**            l'exécution sur une source de données particulière autre que Oracle.
**            La procédure accepte comme argument les constantes
**            numériques appropriées, comme DELAYED.
**
** Usage :     Setup_Non_Oracle(PROPERTY_FALSE,
**                             CLOSE_AT_COMMIT,
**                             UPDATEABLE_PRIMARY_KEY,
**                             DELAYED);
*/
PROCEDURE Setup_Non_Oracle( the_savepoint_mode NUMBER,
                    the_cursor_mode    NUMBER,
                    the_key_mode       NUMBER,
                    the_locking_mode   NUMBER ) IS
  fm_id   FormModule;
  bk_id   Block;
  bk_name VARCHAR2(40);
BEGIN
  /* ** Valider les définitions des paramètres ** */
  IF the_savepoint_mode NOT IN (PROPERTY_TRUE,PROPERTY_FALSE) THEN
    Message('Définition non valide pour le mode Savepoint.');
    RAISE Form_Trigger_Failure;
  END IF;
  IF the_cursor_mode NOT IN (CLOSE_AT_COMMIT,OPEN_AT_COMMIT) THEN
    Message('Définition non valide pour le mode Curseur.');
    RAISE Form_Trigger_Failure;
  END IF;
  IF the_key_mode NOT IN (UNIQUE_KEY,UPDATEABLE_PRIMARY_KEY,
              NON_UPDATEABLE_PRIMARY_KEY) THEN
    Message('Définition non valide pour le mode Clé.');
    RAISE Form_Trigger_Failure;
  END IF;
  IF the_locking_mode NOT IN (IMMEDIATE,DELAYED) THEN
    Message('Définition non valide pour le mode Verrouillage.');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Lire l'ID de l'application Forms en cours
  */
  fm_id  := Find_Form( :System.Current_Form);
  /*
  ** Définir les deux propriétés de niveau application Forms
  */
  Set_Form_Property(fm_id, SAVEPOINT_MODE, the_savepoint_mode);
  Set_Form_Property(fm_id, CURSOR_MODE, the_cursor_mode);
  /*
  ** Définir les propriétés de bloc pour chaque bloc de l'application Forms
  */
  bk_name  := Get_Form_Property(fm_id,FIRST_BLOCK);
  WHILE bk_name IS NOT NULL LOOP
    bk_id  := Find_Block(bk_name);

    Set_Block_Property(bk_id,LOCKING_MODE,the_locking_mode);

    Set_Block_Property(bk_id,KEY_MODE,the_key_mode);
    IF the_key_mode IN (UPDATEABLE_PRIMARY_KEY,
               NON_UPDATEABLE_PRIMARY_KEY) THEN
      Set_Block_Property(bk_id,PRIMARY_KEY,PROPERTY_TRUE);
    END IF;

    bk_name  := Get_Block_Property(bk_id, NEXTBLOCK);
  END LOOP;
END;


SET_GROUP_CHAR_CELL - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Définit la valeur de la cellule du groupe d'enregistrements, identifiée par la ligne et la colonne.

Syntaxe

SET_GROUP_CHAR_CELL
  (id_colgroupe  GroupColumn,
   numéro_ligne      NUMBER,
   valeur_cellule      VARCHAR2);

SET_GROUP_CHAR_CELL
  (nom_colgroupe  VARCHAR2,
   numéro_ligne        NUMBER,
   valeur_cellule        VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_colgroupe	ID unique que Form Builder attribue lorsqu'il crée la colonne du groupe d'enregistrements. Utilisez la procédure interne FIND_COLUMN pour retourner l'ID vers une variable de type approprié. Les données de l'ID sont de type GroupColumn.

nom_colgroupe	Nom que vous avez donné à la colonne lorsque vous l'avez créée, précédée du nom de groupe d'enregistrements et d'un point, comme dans nom_groupenreg.nom_colgroupe. Les données du nom sont de type VARCHAR2.

numéro_ligne	Numéro de la ligne qui contient la cellule dont vous voulez définir la valeur. A indiquer sous la forme d'un nombre entier.

valeur_cellule	Pour une colonne de type VARCHAR2, indique la valeur VARCHAR2 que vous voulez entrer dans une cellule. Pour une colonne de type LONG, indique la valeur LONG que vous voulez entrer dans une cellule.


SET_GROUP_CHAR_CELL - Restrictions

•	Vous devez créer la ligne indiquée avant de définir la valeur d'une cellule de cette ligne. Form Builder ne crée pas automatiquement une nouvelle ligne lorsque vous en indiquez une dans cette procédure interne. Ajoutez explicitement la ligne en utilisant la procédure interne ADD_GROUP_ROW ou remplissez le groupe en utilisant POPULATE_GROUP ou POPULATE_GROUP_WITH_QUERY.

•	Non valide pour un groupe d'enregistrements statique, c'est-à-dire un groupe d'enregistrements créé lors du développement, dont la propriété Type de groupe d'enregistrements a été définie à Statique.


SET_GROUP_CHAR_CELL - Exemples

/*

** Procédure interne :  SET_GROUP_CHAR_CELL
** Exemple :  See ADD_GROUP_ROW
*/


SET_GROUP_DATE_CELL - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Définit la valeur de la cellule du groupe d'enregistrements, identifiée par la ligne et la colonne.

Syntaxe

SET_GROUP_DATE_CELL
  (id_colgroupe    GroupColumn,
   numéro_ligne    NUMBER,
   valeur_cellule  DATE);

SET_GROUP_DATE_CELL
  (nom_colgroupe   VARCHAR2,
   numéro_ligne    NUMBER,
   valeur_cellule  DATE);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_colgroupe	ID unique que Form Builder attribue lorsqu'il crée la colonne du groupe d'enregistrements. Utilisez la procédure interne FIND_COLUMN pour retourner l'ID vers une variable de type approprié. Les données de l'ID sont de type GroupColumn.

nom_colgroupe	Nom que vous avez donné à la colonne lorsque vous l'avez créée, précédée du nom de groupe d'enregistrements et d'un point, comme dans nom_groupenreg.nom_colgroupe. Les données du nom sont de type VARCHAR2.

numéro_ligne	Numéro de la ligne qui contient la cellule dont vous voulez définir la valeur. A indiquer sous la forme d'un nombre entier.

valeur_cellule	Valeur de type DATE que vous voulez entrer dans une cellule.


SET_GROUP_DATE_CELL - Restrictions

•	Vous devez créer la ligne indiquée avant de définir la valeur d'une cellule de cette ligne. Form Builder ne crée pas automatiquement une nouvelle ligne lorsque vous en indiquez une dans cette procédure interne. Ajoutez explicitement la ligne en utilisant la procédure interne ADD_GROUP_ROW ou remplissez le groupe en utilisant POPULATE_GROUP ou POPULATE_GROUP_WITH_QUERY.

•	Non valide pour un groupe d'enregistrements statique, c'est-à-dire un groupe d'enregistrements créé lors du développement, dont la propriété Type de groupe d'enregistrements a été définie à Statique.


SET_GROUP_DATE_CELL - Exemples

/*

** Procédure interne :  SET_GROUP_DATE_CELL
** Exemple :  Lire une ligne d'un groupe d'enregistrements et définir
**            la date d'ordre minimum associée à cette ligne dans
**            le groupe d'enregistrements. Utiliser la fonction 'is_value_in_list'
**            de l'exemple GET_GROUP_CHAR_CELL.
*/
PROCEDURE Set_Max_Order_Date_Of( part_no  VARCHAR2,
                     new_date DATE ) IS
  fnd_row NUMBER;
BEGIN
  /*
  ** Essayer de lire le numéro de pièce dans le groupe d'enregistrements
  ** de la liste des pièces temporaires appelée 'PIECETMP' dans sa colonne 'NOPIECE'.
  */
  fnd_row  := Is_Value_In_List( part_no, 'PIECETMP', 'OPIECE');

  IF fnd_row = 0 THEN
    Message('Numéro de pièce '||no_pièce||' introuvable.');
    RETURN;
  ELSE
    /*
    ** Définir la valeur de la cellule Date correspondante, à partir de la
    ** ligne correspondante.
    */
    Set_Group_Date_Cell('TMPPART.MAXORDDATE',fnd_row,new_date );
  END IF;
END;


SET_GROUP_NUMBER_CELL - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Définit la valeur de la cellule du groupe d'enregistrements, identifiée par la ligne et la colonne.

Syntaxe

SET_GROUP_NUMBER_CELL
  (id_colgroupe    GroupColumn,
   numéro_ligne    NUMBER,
   valeur_cellule  NUMBER);

SET_GROUP_NUMBER_CELL
  (nom_colgroupe   VARCHAR2,
   numéro_ligne    NUMBER,
   valeur_cellule  NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_colgroupe	ID unique que Form Builder attribue lorsqu'il crée la colonne du groupe d'enregistrements. Utilisez la procédure interne FIND_COLUMN pour retourner l'ID vers une variable de type approprié. Les données de l'ID sont de type GroupColumn.

nom_colgroupe	Nom que vous avez donné à la colonne lorsque vous l'avez créée, précédée du nom de groupe d'enregistrements et d'un point, comme dans nom_groupenreg.nom_colgroupe. Les données du nom sont de type VARCHAR2.

numéro_ligne	Numéro de la ligne qui contient la cellule dont vous voulez définir la valeur. A indiquer sous la forme d'un nombre entier.

valeur_cellule	Valeur de type NUMBER que vous voulez entrer dans une cellule.


SET_GROUP_NUMBER_CELL - Restrictions

•	Vous devez créer la ligne indiquée avant de définir la valeur d'une cellule de cette ligne. Ajoutez explicitement la ligne en utilisant la procédure interne ADD_GROUP_ROW ou remplissez le groupe en utilisant POPULATE_GROUP ou POPULATE_GROUP_WITH_QUERY.

•	Non valide pour un groupe d'enregistrements statique, c'est-à-dire un groupe d'enregistrements créé lors du développement, dont la propriété Type de groupe d'enregistrements a été définie à Statique.


SET_GROUP_NUMBER_CELL - Exemples

/*

** Procédure interne :  SET_GROUP_NUMBER_CELL
** Exemple :  Voir ADD_GROUP_ROW
*/


SET_GROUP_SELECTION - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Marque la ligne indiquée dans le groupe d'enregistrements donné, en vue d'opérations ultérieures programmées sur les lignes. Les lignes sont numérotées de manière séquentielle à partir de 1. Si vous sélectionnez les lignes 3, 8 et 12, par exemple, ces lignes sont considérées par Form Builder comme les sélections 1, 2 et 3. Pour annuler des sélections de ligne de la totalité du groupe, appelez la procédure interne RESET_GROUP_SELECTION.

Syntaxe

SET_GROUP_SELECTION
  (id_groupenreg  RecordGroup,
   numéro_ligne      NUMBER);

SET_GROUP_SELECTION
  (nom_groupenreg  VARCHAR2,
   numéro_ligne        NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_groupe_enreg	ID unique que Form Builder attribue au groupe d'enregistrements lors de sa création. Utilisez la procédure interne FIND_GROUP pour retourner l'ID à une variable. Les données de l'ID sont de type RecordGroup.

nom_groupe_enreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Les données du nom sont de type VARCHAR2.

no_ligne	Numéro de la ligne de groupe d'enregistrement que vous voulez sélectionner. La valeur à indiquer est de type NUMBER.


SET_GROUP_SELECTION - Exemples

/*

** Procédure interne :  SET_GROUP_SELECTION
** Exemple :  Définir toutes les lignes paires sélectionnées dans le
**            groupe d'enregistrements dont l'ID est transmise sous la forme d'un
**            paramètre.
*/
PROCEDURE Select_Even_Rows ( rg_id RecordGroup ) IS
BEGIN
  FOR j IN 1..Get_Group_Row_Count(rg_id) LOOP
    IF MOD(j,2)=0 THEN
      Set_Group_Selection( rg_id, j );
    END IF;
  END LOOP;
END;


SET_INPUT_FOCUS - Procédure interne

 Exemples	   Restrictions	 Toutes les procédures internes

Description

Définit le point d'insertion dans le menu de l'application Forms en cours. Lorsque le traitement des déclencheurs est terminé, Form Builder active le menu.

Syntaxe

SET_INPUT_FOCUS
  (MENU  );

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

MENU


SET_INPUT_FOCUS - Restrictions

Cette procédure ne peut être utilisée que dans les environnements en mode Caractère et en mode Bloc.


SET_INPUT_FOCUS - Exemples

/*

** Procédure interne :  SET_INPUT_FOCUS
** Exemple :  Envoie le point d'insertion d'un utilisateur sur le Menu lorsqu'il est
**            utilisé avec le seul paramètre de support, Menu.
**            N'a d'effet que sur les unités en mode Caractère et en mode
**            Bloc.
*/
BEGIN
  Set_Input_Focus(MENU);
END;


SET_ITEM_INSTANCE_PROPERTY - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Modifie l'instance de l'élément en cours d'un bloc en changeant la propriété indiquée. SET_ITEM_INSTANCE_PROPERTY ne modifie pas l'apparence des éléments qui reflètent l'instance actuelle.

Vous pouvez faire référence à n'importe quel élément de l'application Forms en cours. Remarquez que la procédure SET_ITEM_INSTANCE_PROPERTY n'a d'incidence que sur l'affichage de l'instance actuelle de l'élément ; les autres instances de l'élément indiqué ne sont pas modifiées. Cela signifie que si vous indiquez une modification de l'affichage d'un élément existant dans un bloc multi-enregistrement, SET_ITEM_INSTANCE_PROPERTY ne modifie que l'instance de l'élément appartenant à l'enregistrement en cours du bloc. Pour modifier toutes les instances d'un élément dans un bloc multi-enregistrement, utilisez SET_ITEM_PROPERTY .

Toute modification apportée par une procédure SET_ITEM_INSTANCE_PROPERTY reste en vigueur :

•	jusqu'à ce que la même instance d'élément soit référencée par une autre procédure SET_ITEM_INSTANCE_PROPERTY, ou

•	jusqu'à ce que la même instance d'élément soit référencée par la procédure interne DISPLAY_ITEM, ou

•	jusqu'à ce que l'instance de l'élément soit supprimée (par exemple, par le biais d'une procédure interne CLEAR_RECORD ou d'une interrogation), ou

•	jusqu'à ce que vous quittiez l'application Forms en cours

Syntaxe

SET_ITEM_INSTANCE_PROPERTY
  (id_élément     ITEM,
   numéro_enreg   NUMBER,
   propriété NUMBER,
    valeur         VARCHAR2);

SET_ITEM_INSTANCE_PROPERTY
  (nom_élément    VARCHAR2,
   numéro_enreg   NUMBER,
   propriété   NUMBER,
   valeur         VARCHAR2);

SET_ITEM_INSTANCE_PROPERTY
  (nom_élément    VARCHAR2,
   numéro_enreg   NUMBER,
   propriété   NUMBER,
   valeur         NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder a attribué à l'objet lorsqu'il l'a créé. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type ITEM.

numéro_enreg	Numéro de l'enregistrement que vous voulez définir. Ce numéro correspond à la position de l'enregistrement dans le bloc. Indiquez un nombre entier. Indiquez CURRENT_RECORD si vous voulez définir l'enregistrement en cours du bloc.

nom_élément	Nom que vous avez donné à l'élément lorsque vous l'avez créé. Les données sont de type VARCHAR2.

propriété	Propriété que vous voulez définir pour l'élément donné. Les propriétés possibles sont :

BORDER_BEVEL  Relief de la bordure de l'élément pour l'instance d'élément indiquée. Les valeurs valides sont RAISED, LOWERED, PLAIN (non Relief), ou " ". Si vous indiquez " ", le relief de la bordure est déterminé par la valeur indiquée au niveau élément lors de la conception ou par SET_ITEM_PROPERTY à l'exécution.

Remarque : Vous ne pouvez pas définir BORDER_BEVEL si la propriété Relief d'un élément est définie sur Aucun dans Form Builder.

INSERT_ALLOWED  Ne s'applique qu'aux enregistrements qui ne sont pas extraits de la base de données. Lorsque cette propriété est définie à PROPERTY_TRUE aux niveaux instance d'élément, élément et bloc, l'utilisateur final peut modifier l'instance de l'élément. Si vous paramétrez cette propriété sur PROPERTY_FALSE aux niveaux instance d'élément, élément ou bloc, l'utilisateur final ne peut pas modifier l'instance de l'élément.

NAVIGABLE  Si cette propriété est définie sur PROPERTY_TRUE aux niveaux instance d'élément et élément, l'utilisateur final peut accéder à l'instance de l'élément en utilisant la navigation au clavier par défaut. Si vous paramétrez cette propriété sur PROPERTY_FALSE aux niveaux instance d'élément ou élément, vous désactivez la navigation au clavier par défaut vers l'instance de l'élément.

REQUIRED  Indiquez la constante PROPERTY_TRUE si vous voulez obliger l'utilisateur final à entrer une valeur non NULL pour l'instance de l'élément. Si vous paramétrez cette propriété sur PROPERTY_FALSE aux niveaux instance d'élément et élément, vous indiquez que l'instance d'élément n'est pas obligatoire.

UPDATE_ALLOWED  Ne s'applique qu'aux enregistrements extraits de la base de données. Lorsque cette propriété est définie à PROPERTY_TRUE aux niveaux instance d'élément, élément et bloc, l'utilisateur final peut modifier l'instance de l'élément. Lorsqu'elle est définie à PROPERTY_FALSE aux niveaux instance, élément ou bloc, l'utilisateur final ne peut pas modifier l'instance de l'élément.

VISUAL_ATTRIBUTE  Entrez '' ou un attribut visuel nommé valide, existant dans l'application Forms en cours. Si vous précisez '', vous laissez un attribut visuel non spécifié au niveau de l'instance d'élément.

Notes d'utilisation

Si vous utilisez des propriétés précisées à plusieurs niveaux (instance d'élément, élément et bloc), tenez compte des instructions ci-après :

•	Les propriétés obligatoires indiquées à plusieurs niveaux sont reliées par OR

•	Les autres propriétés booléennes précisées à plusieurs niveaux sont reliées par AND

La valeur dérivée de la combinaison des propriétés indiquées aux niveaux instance d'élément, élément et bloc est appelée valeur effective. Ces deux règles ont notamment les effets suivants :

•	Définir INSERT_ALLOWED à TRUE est sans effet au niveau d'instance d'élément, à moins que cette propriété ne soit définie de manière cohérente aux niveaux bloc et élément. Par exemple, votre utilisateur ne peut pas entrer de données dans une instance d'élément si la propriété INSERT_ALLOWED est définie à TRUE au niveau instance, mais non aux niveaux élément ou bloc.

•	Définir NAVIGABLE à TRUE est sans effet au niveau d'instance d'élément, à moins que cette propriété ne soit définie de manière cohérente aux niveaux élément et instance d'élément.

•	Définir NAVIGABLE sur TRUE peut déterminer si le bloc est modifiable ou non. La propriété Modifiable en lecture seule d'un bloc est TRUE si et seulement si son enregistrement actuel contient une instance d'élément dont la valeur effective pour la propriété NAVIGABLE est TRUE.

•	Définir REQUIRED à FALSE est sans effet au niveau d'instance d'élément, à moins que cette propriété ne soit définie de manière cohérente aux niveaux élément et instance d'élément.

•	Définir UPDATE_ALLOWED à TRUE est sans effet au niveau d'instance d'élément, à moins que cette propriété ne soit définie de manière cohérente aux niveaux bloc, élément et instance d'élément.

•	Définir BORDER_BEVEL au niveau d'instance d'élément remplace le paramètre de niveau d'élément BORDER_BEVEL, sauf dans les cas où la propriété de l'instance d'élément BORDER_BEVEL n'est pas précisée (c'est-à-dire, lorsqu'elle est définie sur " ").

•	Définir VISUAL_ATTRIBUTE au niveau d'instance d'élément remplace les propriétés aux niveaux élément et bloc, à moins que vous n'indiquiez un attribut visuel partiel, cas dans lequel l'attribut visuel partiel et l'attribut visuel de l'élément seront fusionnés. Si la propriété VISUAL_ATTRIBUTE est définie sur " " au niveau de l'instance d'élément, les paramètres au niveau élément de cette propriété sont utilisés.

•	Lorsqu'un nouvel enregistrement est créé, ses propriétés d'instance d'élément sont définies à des valeurs qui ne remplacent pas les valeurs indiquées aux niveaux supérieurs. Par exemple, les propriétés BORDER_BEVEL et VISUAL_ATTRIBUTE sont définies sur " ", REQUIRED est définie sur FALSE et les autres propriétés booléennes sont définies sur TRUE.

Définir une propriété d'instance d'élément est sans effet sur les propriétés d'instance des éléments qui reflètent l'élément indiqué.

Une instance de liste instantanée affiche, lorsqu'elle est sélectionnée, une valeur NULL supplémentaire si sa valeur en cours est NULL ou si sa propriété Required est définie à FALSE. Lors de la sélection de la valeur en cours d'une instance d'une liste de texte (liste-t), elle ne sera pas sélectionnée (c'est-à-dire que la liste-t n'aura pas de valeur sélectionnée) si sa propriété Required est définie à FALSE. Si sa propriété Required est définie à TRUE, la sélection de la valeur en cours d'une instance de liste-t sera sans effet, c'est-à-dire que la valeur restera sélectionnée.


SET_ITEM_INSTANCE_PROPERTY - Exemples

/*

** Procédure interne :  SET_ITEM_INSTANCE_PROPERTY
** Exemple : Modifier l'attribut visuel de chaque instance
** d'élément dans l'enregistrement actuel

*/
DECLARE
  cur_itm   VARCHAR2(80);
  cur_block VARCHAR2(80) := :System.Cursor_Block;
BEGIN
  cur_itm   := Get_Block_Property( cur_block, FIRST_ITEM );
  WHILE ( cur_itm IS NOT NULL ) LOOP
    cur_itm := cur_block||'.'||cur_itm;
    Set_Item_Instance_Property( cur_itm, CURRENT_RECORD,
        VISUAL_ATTRIBUTE,'Mon_attribut_nommé_favori');
    cur_itm := Get_Item_Property( cur_itm, NEXTITEM );
  END LOOP;
END;


SET_ITEM_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Modifie toutes les instances d'un élément d'un bloc en changeant la propriété d'un élément indiqué. Notez que, dans certains cas, vous pourrez lire mais non définir certaines propriétés d'objet.

Syntaxe

SET_ITEM_PROPERTY
  (item_id   ITEM,
   property  NUMBER,
   value     VARCHAR2);

SET_ITEM_PROPERTY
  (item_name  VARCHAR2,
   property   NUMBER,
   value      VARCHAR2);

SET_ITEM_PROPERTY
  (item_id   ITEM,
   property  NUMBER,
   x         NUMBER);

SET_ITEM_PROPERTY
  (item_name  VARCHAR2,
   property   NUMBER,
   x          NUMBER);

SET_ITEM_PROPERTY
  (item_id   ITEM,
   property  NUMBER,
   x         NUMBER,
   y         NUMBER);

SET_ITEM_PROPERTY
  (item_name  VARCHAR2,
   property   NUMBER,
   x          NUMBER,
   y          NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder a attribué à l'objet lorsqu'il l'a créé. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type ITEM.

nom_élément	Nom que vous avez donné à l'élément lorsque vous l'avez créé. Les données sont de type VARCHAR2.

propriété	Propriété que vous voulez définir pour l'élément donné. Les propriétés possibles sont :

ALIGNMENT  Alignement du texte (élément texte et élément affiché uniquement). Les valeurs valides sont ALIGNMENT_START, ALIGNMENT_END, ALIGNMENT_LEFT, ALIGNMENT_ CENTER, ALIGNMENT_RIGHT.

AUTO_HINT  Indique si Form Builder affichera automatiquement des messages d'aide dans la ligne d'état lorsque le point d'insertion sera dans l'élément indiqué. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

AUTO_SKIP  Indique si le curseur doit sauter automatiquement au prochain élément lorsque l'utilisateur final entre le dernier caractère d'un élément texte. Cette propriété n'est valide que pour un élément texte. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

BORDER_BEVEL  Indique le relief de bordure d'élément pour l'instance d'élément indiquée. Les valeurs valides sont RAISED, LOWERED ou PLAIN (sans relief).

Remarque : Vous ne pouvez pas définir BORDER_BEVEL si la propriété Relief d'un élément est définie sur Aucun dans Form Builder.

CASE_INSENSITIVE_QUERY  Indique si les conditions d'interrogation entrées dans l'élément doivent être indiquées en majuscules ou en minuscules. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

CASE_RESTRICTION  Indique les restrictions de casse appliquées à un texte entré dans l'élément texte indiqué. Les valeurs valides sont UPPERCASE, LOWERCASE ou NONE.

COMPRESSIndique si les données audio d'un objet son doivent être compressées avant que Form Builder enregistre les données dans le fichier. Les valeurs valides sont COMPRESSION_ON, COMPRESSION_OFF et ORIGINAL_SETTING (conserve la définition de compression par défaut des données).

CONCEAL_DATA  Indiquez la constante PROPERTY_TRUE si vous voulez que l'élément reste en blanc ou soit masqué lorsque l'utilisateur final entre une valeur. Indiquez la constante PROPERTY_FALSE si vous voulez qu'une valeur entrée dans l'élément texte soit visible.

CURRENT_RECORD_ATTRIBUTE  Nom VARCHAR2 d'un attribut visuel nommé qui doit être associé à l'élément donné. Si l'attribut visuel nommé n'existe pas, un message d'erreur est émis.

CURRENT_ROW_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

CURRENT_ROW_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

CURRENT_ROW_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

CURRENT_ROW_FONT_SIZE  Taille de la police, indiquée en points.

CURRENT_ROW_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

CURRENT_ROW_FONT_STYLE  Style de la police.

CURRENT_ROW_FONT_WEIGHT Epaisseur de la police.

CURRENT_ROW_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

CURRENT_ROW_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

DIRECTION  Orientation de la présentation pour les objets bidirectionnels. Les valeurs valides sont DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

DISPLAYED Indique si l'élément est affiché/activé ou masqué/désactivé.

ECHO  Indique si les caractères qu'un utilisateur final entre dans un élément texte doivent être visibles. Lorsque la propriété Echo est définie sur FALSE, les caractères entrés sont masqués, d'où son utilisation pour la protection par mot de passe. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

ENABLED  Indique si les utilisateurs finaux doivent pouvoir manipuler un élément. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

Remarque :  Définir Enabled sur FALSE entraîne la modification des autres paramètres de propriété d'élément. Pour tous détails, reportez-vous à la section "Propagation des changements de propriétés".

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FIXED_LENGTH  Indique si la valeur de l'élément doit être comparée à la définition de la propriété Longueur max de l'élément. Lorsque la propriété FIXED_LENGTH est TRUE, l'élément n'est valide que si le nombre de caractères de sa valeur est égal à Longueur max. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, en centièmes de point (ex. pour une police de 8 points, la valeur doit être définie à 800).

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

FORMAT_MASK  Format d'affichage et l'entrée acceptée pour les données des éléments texte.

HEIGHT  Hauteur de l'élément.

HINT_TEXT Indique le texte d'aide spécifique à l'élément, affiché sur la ligne de message lors de l'exécution. Si le texte indiqué est NULL, le texte original du message d'aide, indiqué dans Form Builder, est restauré.

ICON_NAME  Indique le nom de fichier de la ressource d'icône associée à un élément bouton dont la propriété Iconique est définie à YES.

IMAGE_DEPTH  Profondeur de la couleur à appliquer à un élément image.

INSERT_ALLOWED  Dans un nouvel enregistrement, cette propriété, lorsqu'elle est définie à PROPERTY_TRUE, permet à l'utilisateur final d'insérer normalement des éléments. Indiquez PROPERTY_FALSE pour que l'élément n'accepte pas de modification, mais soit affiché normalement (sans être grisé). (Insert_Allowed ne transmet pas les modifications à la propriété Enabled.)

ITEM_IS_VALID  Indique si l'élément en cours doit être considéré comme valide. Définissez cette propriété à PROPERTY_TRUE ou PROPERTY_FALSE.

ITEM_SIZE  Largeur et hauteur de l'élément, sous la forme de deux nombres séparés par une virgule. Utilisez la syntaxe comprenant x et y.

KEEP_POSITION Indique si la propriété Conserver position du curseur doit être définie à TRUE ou FALSE. Lorsque cette propriété est définie à TRUE, le curseur revient à la position qu'il occupait lorsqu'il a quitté l'élément texte. Lorsque cette propriété est définie à FALSE, le curseur revient à la position par défaut dans l'élément texte. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

LABEL  Chaîne de type VARCHAR2 que vous voulez afficher comme libellé de l'élément. Cette propriété n'est valide que pour les éléments qui ont des libellés, par exemple les boutons.

LOCK_RECORD_ON_CHANGE  Indiquez la constante PROPERTY_TRUE si vous voulez que l'enregistrement soit verrouillé lorsque cet élément est modifié. Indiquez la constante PROPERTY_FALSE si vous ne voulez pas que l'enregistrement soit verrouillé lorsque cet élément est modifié. Utilisez essentiellement cette propriété lors de la connexion à une source donnée, autre que Oracle, qui n'a pas de verrouillage au niveau ligne.

LOV_NAME  Indiquez le nom VARCHAR2 d'une LOV à associer à l'élément donné. Si le nom de la LOV n'existe pas, un message d'erreur est émis.

MERGE_CURRENT_ROW_VA Fusionne le contenu de l'attribut visuel précisé avec celui de la ligne actuelle (au lieu de le remplacer).

MERGE_TOOLTIP_ATTRIBUTE Fusionne le contenu de l'attribut visuel précisé avec l'attribut visuel actuel de la bulle d'information (au lieu de le remplacer).

MERGE_VISUAL_ATTRIBUTE  Fusionne le contenu de l'attribut visuel précisé avec l'attribut visuel actuel de l'objet (au lieu de le remplacer).

MOUSE_NAVIGATE  Indique si Form Builder doit passer à l'élément suivant et y définir le point d'insertion lorsque l'utilisateur final active l'élément à l'aide de la souris. Indiquez la constante PROPERTY_TRUE si vous voulez que l'utilisateur final puisse passer à l'élément en utilisant la navigation à la souris. Indiquez la constante PROPERTY_FALSE si vous voulez qu'un clic de la souris maintienne le point d'insertion dans l'élément en cours.

NAVIGABLE  Indiquez la constante PROPERTY_TRUE si vous voulez que l'utilisateur final puisse Passer à l'élément en utilisant la navigation au clavier par défaut. Indiquez la constante PROPERTY_FALSE si vous voulez désactiver la navigation au clavier par défaut pour l'élément. (Navigation autorisée au clavier ne propage pas les modifications à la propriété Activé.)

NEXT_NAVIGATION_ITEM  Précise le nom de l'élément défini comme "élément de navigation suivant", par rapport à cet élément en cours.

POPUPMENU_CONTENT_ITEM  Indique l'option choisie pour l'une des propriétés d'élément de menu instantané OLE :

•	POPUPMENU_COPY_ITEM

•	POPUPMENU_CUT_ITEM

•	POPUPMENU_DELOBJ_ITEM

•	POPUPMENU_INSOBJ_ITEM

•	POPUPMENU_LINKS_ITEM

•	POPUPMENU_OBJECT_ITEM

•	POPUPMENU_PASTE_ITEM

•	POPUPEMNU_PASTESPEC_ITEM

Indiquez la chaîne de caractères HIDDEN pour que l'élément de menu instantané OLE ne soit pas affiché dans le menu instantané OLE. Indiquez la chaîne de caractères ENABLED pour que l'élément de menu instantané OLE soit affiché et activé. Indiquez la chaîne de caractères DISABLED pour que l'élément de menu instantané OLE soit affiché mais ne soit pas activé.

POSITION  Indique les coordonnées x, y des éléments sous la forme de valeurs numériques (NUMBER) séparées par des virgules. Utilisez la syntaxe qui comprend x, y.

PREVIOUS_NAVIGATION_ITEM  Nom de l'élément défini comme "élément de navigation précédent", par rapport à l'élément en cours.

PRIMARY_KEY  Indiquez, à l'aide de la constante PROPERTY_TRUE, que les enregistrements insérés ou mis à jour dans le bloc doivent avoir une caractéristique unique pour être enregistrés dans la base de données. Sinon, indiquez la constante PROPERTY_FALSE.

PROMPT_ALIGNMENT_OFFSET  Indique la distance entre l'élément et son invite.

PROMPT_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

PROMPT_DISPLAY_STYLE  Indique le style d'affichage de l'invite : PROMPT_FIRST_RECORD, PROMPT_HIDDEN ou PROMPT_ALL_RECORDS.

PROMPT_EDGE  Indique l'arête à laquelle est attachée l'invite de l'élément : START_EDGE, END_EDGE, TOP_EDGE ou BOTTOM_EDGE.

PROMPT_EDGE_ALIGNMENT  Indique l'arête sur laquelle est alignée l'invite de l'élément : ALIGNMENT_START, ALIGNMENT_END ou ALIGNMENT_CENTER.

PROMPT_EDGE_OFFSET  Indique la distance entre l'élément et son invite sous la forme d'une valeur VARCHAR2.

PROMPT_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

PROMPT_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

PROMPT_FONT_SIZE  Taille de la police, indiquée en points.

PROMPT_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

PROMPT_FONT_STYLE  Style de la police.

PROMPT_FONT_WEIGHT  Epaisseur de la police.

PROMPT_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

PROMPT_TEXT  Indique le libellé de texte affiché pour un élément.

PROMPT_TEXT_ALIGNMENT  Indique le mode de justification de l'invite : ALIGNMENT_START, ALIGNMENT_LEFT, ALIGNMENT_RIGHT, ALIGNMENT_CENTER ou ALIGNMENT_END.

PROMPT_VISUAL_ATTRIBUTE Permet d'indiquer l'attribut visuel nommé à appliquer à l'invite lors de l'exécution.

PROMPT_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

QUERYABLE  Indiquez la constante PROPERTY_TRUE si vous voulez que l'utilisateur final puisse lancer une interrogation de l'élément. Indiquez la constante PROPERTY_FALSE si vous voulez désactiver l'utilisation de l'élément dans une interrogation.

QUERY_ONLY   Indiquez l'élément à interroger, en l'empêchant de faire partie des instructions d'insertion ou de mise à jour. QUERY_ONLY s'applique aux éléments texte, aux groupes de boutons d'options et aux cases à cocher. Le nom de l'élément totalement qualifié doit être entre apostrophes.

REQUIRED  Indiquez la constante PROPERTY_TRUE si vous voulez obliger l'utilisateur final à entrer une valeur pour l'élément. Indiquez la constante PROPERTY_FALSE si l'élément ne doit pas être obligatoire.

SHOW_FAST_FORWARD_BUTTON  Indiquez la constante PROPERTY_TRUE pour afficher [image] sur un élément son, PROPERTY_FALSE pour le masquer.

SHOW_PLAY_BUTTON  Indiquez la constante PROPERTY_TRUE pour afficher [image] sur un élément son, PROPERTY_FALSE pour le masquer. Notez que Form Builder masquera [image] ou [image], mais ne masquera pas les deux.

SHOW_RECORD_BUTTON  Indiquez la constante PROPERTY_TRUE pour afficher [image] sur un élément son, PROPERTY_FALSE pour le masquer. Notez que Form Builder masquera [image] ou [image], mais ne masquera pas les deux.

SHOW_REWIND_BUTTON  Indiquez la constante PROPERTY_TRUE pour afficher [image] sur un élément son, PROPERTY_FALSE pour le masquer.

SHOW_SLIDER  Indiquez la constante PROPERTY_TRUE pour afficher [image] sur un élément son, PROPERTY_FALSE pour le masquer.

SHOW_TIME_INDICATOR  Indiquez la constante PROPERTY_TRUE pour afficher [image] sur un élément son, PROPERTY_FALSE pour le masquer.

SHOW_VOLUME_CONTROL  Indiquez la constante PROPERTY_TRUE pour afficher [image] sur un élément son, PROPERTY_FALSE pour le masquer.

TOOLTIP_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

TOOLTIP_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

TOOLTIP_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

TOOLTIP_FONT_SIZE  Taille de la police, indiquée en points.

TOOLTIP_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

TOOLTIP_FONT_STYLE  Style de la police.

TOOLTIP_FONT_WEIGHT  Epaisseur de la police.

TOOLTIP_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

TOOLTIP_TEXT Indique le texte de la bulle d'information de l'élément.

TOOLTIP_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

UPDATE_ALLOWED  Indiquez la constante PROPERTY_TRUE si vous voulez que l'utilisateur final puisse mettre l'élément à jour. Indiquez la constante PROPERTY_FALSE si vous voulez que l'élément soit protégé contre la mise à jour.

UPDATE_COLUMN  Indiquez la constante PROPERTY_TRUE si cette colonne doit être considérée comme mise à jour et incluse dans les colonnes à entrer dans la base de données. Indiquez la constante PROPERTY_FALSE si cette colonne doit être considérée comme non mise à jour et ne doit pas être incluse dans les colonnes à entrer dans la base de données.

UPDATE_NULL  Indiquez la constante PROPERTY_TRUE si vous voulez que l'utilisateur final puisse mettre cet élément à jour uniquement si sa valeur est NULL. Indiquez la constante PROPERTY_FALSE si vous voulez que l'utilisateur final puisse mettre à jour la valeur de l'élément, que sa valeur soit NULL ou non.

UPDATE_PERMISSION  Utilisez UPDATE_ ALLOWED si vous exécutez votre programme sur des sources de données autres que Oracle. Indiquez la constante PROPERTY_TRUE pour activer les propriétés UPDATEABLE et UPDATE_NULL de l'élément. Indiquez la constante PROPERTY_FALSE pour désactiver les propriétés UPDATEABLE et UPDATE_NULL de l'élément.

VALIDATE_FROM_LIST  Indique que Form Builder doit valider la valeur de l'élément texte par comparaison aux valeurs de la LOV attachée lorsque cette propriété est définie à PROPERTY_TRUE. Indiquez, à l'aide de PROPERTY_FALSE que Form Builder ne doit pas utiliser la LOV pour la validation.

VISIBLE  Indique si l'élément indiqué doit être visible ou masqué. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

Remarque :  Définir Visible à FALSE entraîne la modification d'autres paramètres de propriété d'élément. Pour tous détails, reportez-vous à la section "Propagation des changements de propriétés".

VISUAL_ATTRIBUTE  Attribut visuel nommé valide, existant dans l'application Forms en cours.

Remarque :  Vous ne pouvez pas définir l'attribut visuel pour un élément image.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

WIDTH  Largeur de l'élément sous la forme d'une valeur numérique (NUMBER). La taille des unités dépend de la définition de la propriété Système de coordonnées et de la mise à l'échelle des polices par défaut de l'application Forms.

X_POS  Coordonnée x sous la forme d'une valeur numérique (NUMBER).

Y_POS  Coordonnée y sous la forme d'une valeur numérique (NUMBER)

valeur	Valeur à appliquer à la propriété donnée. Le type de données de la propriété détermine le type de données de la valeur que vous entrez. Par exemple, si vous voulez définir la propriété VISIBLE à TRUE, vous devez indiquer la constante PROPERTY_TRUE pour la valeur. Si vous voulez modifier le libellé (LABEL) de l'élément, indiquez la valeur, en d'autre termes le libellé, sous la forme d'une chaîne de type VARCHAR2.

PROPERTY_TRUE Indique que la propriété doit être définie à l'état TRUE.

PROPERTY_FALSE   Indique que la propriété doit être définie à l'état FALSE.

Pour réinitialiser la propriété sur la valeur qui lui a été attribuée initialement lors de la conception, entrez deux apostrophes sans les séparer par un espace : ''. Par exemple, SET_ITEM_PROPERTY('DEPTNO', FORMAT_MASK, '') réinitialise ce masque de format sur la valeur choisie lors de sa conception.

x	Valeur de type NUMBER de la coordonnée x ou largeur, en fonction de la propriété que vous avez définie. Indiquez l'argument en unités du système de coordonnées de grille.

y	Valeur de type NUMBER de la coordonnée y ou hauteur, en fonction de la propriété que vous avez définie. Indiquez l'argument en unités du système de coordonnées de grille.

Notes d'utilisation

Lorsque vous décidez de la façon d'appliquer certaines valeurs de propriété à un élément, prenez en compte les éléments suivants :

•	validation des modifications de propriété

•	propagation des modifications de propriété

Validation des changements de propriété  Lorsque vous indiquez une modification en utilisant la procédure interne SET_ITEM_PROPERTY, Form Builder valide la modification avant d'ajuster la propriété. Si la modification est validée, Form Builder importe la modification et la laisse en vigueur jusqu'à ce qu'une autre procédure interne SET_ITEM_PROPERTY modifie la même propriété ou qu'il sorte de l'application Forms en cours.

Définitions non valides  Si la modification n'est pas validée, Form Builder émet un message d'erreur. Vous ne pouvez pas utiliser SET_ITEM_PROPERTY pour définir à TRUE ou FALSE les propriétés d'élément ci-dessous, en fonction des conditions de l'élément cible suivantes :

Vous ne pouvez pas définir ce paramètre de propriété...	A ce paramètre restreint	Si la condition de cet élément cible est TRUE :
(Tous)	true/false	• élément canevas NULL (propriété de canevas d'élément NULL)
ENABLED	true/false true	• élément en cours • Propriété d'élément visible à FALSE
INSERT_ALLOWED	true true	• Propriété d'élément Enabled à FALSE • Propriété d'élément visible à FALSE
NAVIGABLE	true/false true	• élément en cours • Propriété d'élément visible à FALSE
QUERYABLE (Interrogeable)	true	• Propriété d'élément visible à FALSE
UPDATE_ALLOWED	true true	• Propriété d'élément Enabled à FALSE • Propriété d'élément Masquer données à TRUE
UPDATE_NULL (Mise à jour si NULL)	true true	• Propriété d'élément Enabled à FALSE • Propriété d'élément Masquer données à TRUE
VISIBLE	true/false	• élément en cours
Form Builder ne tient pas compte du contenu en cours d'un élément lorsqu'il autorise une modification de propriété. Si SET_ITEM_PROPERTY modifie la propriété d'un élément qui risque d'affecter la façon dont Form Builder valide les données d'un élément (par exemple, FIXED_LENGTH ou REQUIRED), les conséquences de la validation ne sont pas rétroactives. Les nouvelles règles de validation ne s'appliquent à l'élément que lorsque Form Builder l'a validé dans des conditions normales.

Supposons que l'application ait un élément texte obligatoire, ID Employé. Dans l'application, l'utilisateur final doit pouvoir sortir de cet élément (comportement qui n'est pas autorisé pour un élément REQUIRED), et vous définissez donc temporairement la propriété REQUIRED à FALSE. A ce stade, Form Builder marque une valeur NULL existante comme VALID. Dans la suite de l'application, lorsque vous définissez à nouveau la propriété REQUIRED à TRUE, Form Builder ne modifie pas automatiquement le marquage VALID/INVALID. Pour qu'une valeur NULL soit marquée INVALID (sauf s'il s'agit d'un élément REQUIRED), vous devez apporter à l'élément une modification qui imposera à Form Builder de le valider, comme :

IF :block.item IS NULL
THEN :block.item := NULL;

Propagation des modifications de propriété  La procédure interne SET_ITEM_PROPERTY ne permet de demander qu'une modification de propriété d'élément à la fois. Cependant, une instruction SET_ITEM_PROPERTY peut modifier plusieurs propriétés d'élément si les modifications supplémentaires sont nécessaires pour achever, ou propager, la modification prévue. Cette fonction est essentiellement incluse pour des raisons de compatibilité avec les versions précédentes.

Le tableau suivant répertorie les paramètres SET_ITEM_PROPERTY qui provoquent la répercussion des modifications par Form Builder dans les propriétés d'élément :

La configuration de ce paramètre de propriété...	Sur	Provoque aussi la répercussion des modifications suivantes :
ENABLED	Faux	• définit la propriété d'élément Navigable à Faux • définit la propriété d'élément Update_Null à Faux • définit la propriété d'élément Updateable (Modifiable) à Faux • définit la propriété d'élément Required (Obligatoire) à Faux
DISPLAYED	Faux	• définit les propriétés d'éléments Enabled (Activé) et Navigable à Faux • définit la propriété d'élément Updateable (Modifiable) à Faux • définit la propriété d'élément Update_Null à Faux • définit la propriété d'élément Required (Obligatoire) à Faux • définit la propriété d'élément Queryable (Interrogeable) à Faux
UPDATEABLE	Vrai	• définit la propriété d'élément Update_Null à Faux
UPDATE_NULL	Vrai	• définit la propriété d'élément Updateable (Modifiable) à Faux


SET_ITEM_PROPERTY - Exemples

/*

** Built-in:  SET_ITEM_PROPERTY
** Example:   Change the icon of an iconic button dynamically
**            at runtime by changing its icon_name. The user
**            clicks on this button to go into enter query
**            mode, then clicks on it again (after the icon
**            changed) to execute the query. After the query
**            is executed the user sees the original icon
**            again.
** Trigger:   When-Button-Pressed
*/
DECLARE
  it_id Item;
BEGIN
  it_id := Find_Item('CONTROL.QUERY_BUTTON');
  IF :System.Mode = 'ENTER-QUERY' THEN
    /*
    ** Change the icon back to the enter query icon, and
    ** execute the query.
    */
    Set_Item_Property(it_id,ICON_NAME,'entquery');
    Execute_Query;
  ELSE
    /*
    ** Change the icon to the execute query icon and get
    ** into enter query mode.
    */
    Set_Item_Property(it_id,ICON_NAME,'exequery');
    Enter_Query;
  END IF;
END;


SET_LOV_COLUMN_PROPERTY - Procédure interne

 Toutes les procédures internes

Description

Définit la propriété de LOV pour la LOV indiquée.

Syntaxe

SET_LOV_COLUMN_PROPERTY
  (id_lov       LOV,
   numcol       NUMBER,
   propriété    NUMBER,
   valeur       VARCHAR2);

SET_LOV_COLUMN_PROPERTY
  (nom_lov      VARCHAR2,
   numcol       NUMBER,
   propriété    NUMBER,
   valeur       VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_lov	ID unique que Form Builder attribue à la LOV lors de sa création. Utilisez la procédure interne FIND_LOV pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type LOV.

nom_lov	Nom de la LOV (de type VARCHAR2).

numcom	Colonne à modifier (de type NUMBER). La première colonne est la colonne 1.

propriété	Propriété que vous voulez définir pour la LOV indiquée. Les propriétés possibles sont les suivantes :

TITLE  Définit la propriété Titre de colonne qui gère le titre qui s'affiche au-dessus d'une colonne de LOV.

Remarque :  Définir le titre de la colonne à NULL fait revenir le titre de la colonne à celui qui avait été indiqué lors de la conception.

WIDTH  Indique la largeur à réserver dans la LOV pour l'affichage des valeurs de colonne.

Remarque :  Définir la largeur de la colonne à NULL entraîne l'apparition d'une colonne masquée ou non affichée.

valeur	Valeur VARCHAR2 ou NUMBER qui représente la définition de propriété choisie.


SET_LOV_PROPERTY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Définit la propriété de LOV pour la LOV indiquée.

Syntaxe

SET_LOV_PROPERTY
  (id_lov     LOV,
   propriété  NUMBER,
   valeur     NUMBER);

SET_LOV_PROPERTY
  (nom_lov    VARCHAR2,
   propriété  NUMBER,
   valeur     NUMBER);
SET_LOV_PROPERTY
  (id_lov     LOV,
   propriété  NUMBER,
   x          NUMBER,
   y          NUMBER);
SET_LOV_PROPERTY
  (nom_lov    VARCHAR2,
   propriété  NUMBER,
   x          NUMBER,
   y          NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_lov	ID unique que Form Builder attribue à la LOV lors de sa création. Utilisez la procédure interne FIND_LOV pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type LOV.

nom_lov	Nom de la LOV (de type VARCHAR2).

propriété	Propriété que vous voulez définir pour la LOV indiquée. Les propriétés possibles sont les suivantes :

AUTO_REFRESH  Indique si Form Builder réexécute l'interrogation chaque fois que la LOV est appelée.

GROUP_NAME  Groupe d'enregistrements auquel la LOV est associée.

LOV_SIZE  Couple largeur-hauteur indiquant la taille de la LOV.

POSITION  Couple x, y indiquant la position de la LOV.

TITLE  Titre de la LOV. Remplace la valeur indiquée dans Form Builder, à moins que la valeur de la propriété ne soit NULL.

valeur	Indiquez l'une des constantes suivantes :

PROPERTY_TRUE Indique que la propriété doit être définie à l'état TRUE.

PROPERTY_FALSE   Indique que la propriété doit être définie à l'état FALSE.

Nom Groupenreg	Indiquez le nom VARCHAR2 du groupe d'enregistrements à définir. Vous pouvez créer ce groupe d'enregistrements dans Form Builder ou par programme, dans la mesure où le groupe d'enregistrements existe lorsque la procédure interne SET_LOV_PROPERTY est appelée.

x	Indiquez la coordonnée x ou la largeur, en fonction de la propriété que vous avez indiquée.

y	Indiquez la coordonnée y ou la hauteur, en fonction de la propriété que vous avez indiquée.


SET_LOV_PROPERTY - Restrictions

•	Vous ne pouvez définir qu'une propriété par appel de la procédure interne.


SET_LOV_PROPERTY - Exemples

/*

** Procédure interne :  SET_LOV_PROPERTY
** Exemple :  Si la LOV est actuellement fondée sur GROUPE1,
**            lui faire utiliser GROUPE2.
*/
DECLARE
  id_lov      LOV;
BEGIN
  id_lov      := Find_LOV('My_LOV_1');
  IF Get_LOV_Property(id_lov,GROUP_NAME) = 'GROUPE1' THEN
    Set_LOV_Property(id_lov,GROUP_NAME,'GROUPE2');
  ENDIF;
END;


SET_MENU_ITEM_PROPERTY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Modifie les options de menu.

Syntaxe

SET_MENU_ITEM_PROPERTY
  (id_optionmenu  MenuItem,
   propriété      NUMBER,
   valeur         NUMBER);

SET_MENU_ITEM_PROPERTY
  (nom_menu.nom_optionmenu VARCHAR2,
   propriété               NUMBER,
   valeur                  NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_optionmenu	ID unique que Form Builder attribue lorsqu'il crée l'option menu. Utilisez la procédure interne FIND_MENU_ITEM pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type MenuItem.

nom_menu.nom_optionmenu	Nom de type VARCHAR2 que vous avez donné à l'option de menu lorsque vous l'avez définie. Si vous indiquez l'option de menu par son nom, ajoutez le nom qui le qualifie comme indiqué par la syntaxe.

propriété	Pour définir des informations sur l'option de menu, indiquez l'une des constantes suivantes :

CHECKED  Propriété Cochée qui indique si une option de menu de type Case à cocher ou bouton d'option est cochée ou non cochée.

ENABLED  Indique si l'option de menu est activée ou désactivée (grisée et non sélectionnable par l'opérateur).

ICON_NAME  Indique le nom de fichier de la ressource d'icône associée à un élément menu dont la propriété Icône dans menu est définie à TRUE.

LABEL  Chaîne de caractères du libellé de l'option de menu.

VISIBLE  Indique si l'option de menu est visible ou non.

valeur	Indiquez l'une des constantes suivantes :

PROPERTY_TRUE  Indique que la propriété doit être définie à l'état TRUE.

PROPERTY_FALSE   Indique que la propriété doit être définie à l'état FALSE.

Libellé	Indiquez le nom du libellé de type VARCHAR2.


SET_MENU_ITEM_PROPERTY - Restrictions

Ces restrictions ne sont applicables que si la propriété Sécurité du module de menu est définie à Oui

•	Si la propriété Sécurité du module menu est définie à Oui, la possibilité de définir la propriété d'une option de menu à l'aide SET_MENU_ITEM_PROPERTY dépend des autorisations d'accès de l'opérateur de l'application Forms à cette option.

•	Si l'option de menu est masquée et si l'opérateur n'a pas accès à la sécurité d'une option de menu, Runform n'affiche pas cette option. Vous ne pouvez pas définir la propriété d'une option de menu à l'aide SET_MENU_ITEM_PROPERTY si l'option est masquée.

•	Si l'option de menu est affichée, mais désactivée, et si la propriété Afficher sans privilège de cette option de menu a été définie dans Form Builder, Runform affiche l'option à l'état désactivé. Dans ce cas, vous pouvez définir les propriétés de l'option de menu par programme.


SET_MENU_ITEM_PROPERTY - Exemples

/*

** Procédure interne :  SET_MENU_ITEM_PROPERTY
** Exemple :  Voir GET_MENU_ITEM_PROPERTY
*/


SET_OLE

 Toutes les procédures internes

Description

Modifie la valeur d'une propriété OLE.

Il existe trois versions de cette procédure, une pour chacun des types de nouvelle valeur définie : NUMBER, VARCHAR et OLEVAR.

Syntaxe

PROCEDURE SET_OLE
  (obj OLEOBJ, memberid PLS_INTEGER
   newval NUMBER, vtype VT_TYPE);

...ou...

PROCEDURE SET_OLE
  (obj OLEOBJ, memberid PLS_INTEGER
   newval VARCHAR2, vtype VT_TYPE);

...ou...

PROCEDURE SET_OLE
  (obj OLEOBJ, memberid PLS_INTEGER
   newval OLEVAR, vtype VT_TYPE);

Type de procédure interne  procédure non restreinte

Paramètres

obj	Pointeur vers l'objet OLE.
memberid	ID membre de la propriété OLE.
newval	Nouvelle valeur du type indiqué destinée à remplacer la propriété OLE.
vtype	Procédure VT_TYPE de la variante d'origine. Ce paramètre est facultatif. Si vous ne fournissez aucune valeur, la valeur par défaut VT_R8 est attribuée à la version NUMBER de la procédure. Pour la version VARCHAR2, la valeur par défaut est VT_BSTR. Pour la version OLEVAR, la valeur par défaut est VT_VARIANT : c'est-à-dire, quel que soit le type précisé par la variante elle-même.
Notes d'utilisation

Si les appels INIT_OLEARGS et ADD_OLEARG précèdent cet appel SET_OLE et qu'aucun appel GET_OLE, SET_OLE ou CALL_OLE n'est intervenu, cet appel accède à la propriété via les arguments indiqués dans les appels INIT_OLEARGS et ADD_OLEARG.


SET_PARAMETER_ATTR - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Définit le type et la valeur d'un paramètre indiqué dans une liste de paramètres indiquée.

Syntaxe

SET_PARAMETER_ATTR
  (liste       PARAMLIST,
   clé         VARCHAR2,
   typeparam   NUMBER,
   valeur      VARCHAR2);

SET_PARAMETER_ATTR
  (nom        VARCHAR2,
   clé        VARCHAR2,
   typeparam  NUMBER,
   valeur     VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

liste ou nom	Liste de paramètres. Le paramètre réel peut être soit un ID de liste de paramètres de type PARAMLIST, soit le nom de type VARCHAR2 de la liste de paramètres.

clé	Nom de type VARCHAR2 du paramètre.

typeparam	Type de paramètre que vous voulez transmettre :

DATA_PARAMETER  Indique que la valeur du paramètre est le nom d'un groupe d'enregistrements.

TEXT_PARAMETER  Indique que la valeur du paramètre est une valeur de données réelle.

valeur	Valeur du paramètre, indiquée sous la forme d'une chaîne de type VARCHAR2.


SET_RADIO_BUTTON_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Définit la propriété d'un bouton d'option, qui fait partie du groupe de boutons d'option indiqué par nom_élément ou id_élément.

Syntaxe

SET_RADIO_BUTTON_PROPERTY
  (id_élément      VARCHAR2,
   nom_bouton      VARCHAR2,
   propriété       NUMBER,
   valeur          NUMBER);

SET_RADIO_BUTTON_PROPERTY
  (id_élément      VARCHAR2,
   nom_bouton      VARCHAR2,
   propriété       NUMBER,
   x               NUMBER,
   y               NUMBER);
SET_RADIO_BUTTON_PROPERTY
  (nom_élément    VARCHAR2,
   nom_bouton     VARCHAR2,
   propriété      NUMBER,
   x              NUMBER,
   y              NUMBER);
SET_RADIO_BUTTON_PROPERTY
  (nom_élément    VARCHAR2,
   nom_bouton     VARCHAR2,
   propriété      NUMBER,
   valeur         NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	ID de l'élément de groupe de boutons d'option. Form Builder attribue un ID unique au moment où il crée l'objet. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable de type approprié.

nom_élément	Nom du groupe de boutons d'option. Ce groupe est le propriétaire (ou père) des boutons d'option qui lui sont subordonnés. Les données du nom sont de type VARCHAR2.

nom_bouton	Nom du bouton d'option dont vous voulez définir la propriété. Les données du nom sont de type VARCHAR2.

propriété	Propriété à définir. Les constantes que vous pouvez définir sont les suivantes :

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

ENABLED  Indiquez la constante PROPERTY_TRUE si vous voulez activer le bouton d'option et la constante PROPERTY_FALSE si vous voulez désactiver le bouton d'option à partir du contrôle opérateur.

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, indiquée en points.

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

HEIGHT  Indiquez, sous forme numérique, la hauteur du bouton d'option concerné.

ITEM_SIZE   Définit la largeur et la hauteur du bouton d'option indiqué. Utilisez la syntaxe qui affiche la paire de coordonnées x, y et indiquez les valeurs sous la forme de nombres.

LABEL  Indiquez le libellé de chaîne actuel de ce bouton d'option.

POSITION  Définit la position du bouton d'option. Utilisez la syntaxe qui affiche la paire de coordonnées x, y et indiquez les valeurs sous la forme de nombres.

PROMPT  Texte affiché dans l'objet.

PROMPT_BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

PROMPT_FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

PROMPT_FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

PROMPT_FONT_SIZE  Taille de la police, indiquée en points.

PROMPT_FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

PROMPT_FONT_STYLE  Style de la police.

PROMPT_FONT_WEIGHT  Epaisseur de la police.

PROMPT_FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

PROMPT_WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

VISIBLE  Indiquez la constante PROPERTY_TRUE si vous voulez que le bouton d'option soit affiché, et la constante PROPERTY_FALSE si vous voulez que le bouton d'option soit masqué.

VISUAL_ATTRIBUTE  Indique soit un attribut visuel nommé valide, existant dans l'application Forms en cours, soit le nom d'une définition d'attribut logique dans un fichier de ressources runtime, que Form Builder doit appliquer au bouton d'option.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

WIDTH  Indiquez, sous forme numérique, la largeur du bouton d'option concerné.

X_POS   Indiquez, sous forme de nombre, la valeur de la coordonnée x du bouton d'option.

Y_POS  Indiquez, sous forme de nombre, la valeur de la coordonnée y du bouton d'option.

valeur	Indique une valeur de type NUMBER ou VARCHAR2 : le type de données de la valeur que vous entrez est déterminé par le type de données de la propriété que vous avez indiquée. Si vous entrez une valeur de type VARCHAR2, vous devez la placer entre apostrophes, à moins que vous ne fassiez référence à un élément texte ou à une variable.

PROPERTY_TRUE Indique que la propriété doit être définie à l'état TRUE.

PROPERTY_FALSE   Indique que la propriété doit être définie à l'état FALSE.

x	Indique la première valeur numérique des propriétés ITEM_SIZE et POSITION.

y	Indique la seconde valeur numérique des propriétés ITEM_SIZE et POSITION.


SET_RADIO_BUTTON_PROPERTY - Exemples

/*

** Procédure interne :  SET_RADIO_BUTTON_PROPERTY
** Exemple :   Définir un bouton d'option à Désactivé.
*/
BEGIN
  Set_Radio_Button_Property('MYBLOCK.FLIGHT_STATUS',
                         'GROUNDED',ENABLED,PROPERTY_FALSE);
END;


SET_RECORD_PROPERTY - Procédure interne

 Exemples	   - Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Définit la propriété de l'enregistrement à la valeur indiquée.

Syntaxe

SET_RECORD_PROPERTY
  (numéro_enreg   NUMBER,
   nom_bloc       VARCHAR2,
   propriété      NUMBER,
   valeur         NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

numéro_enreg	Numéro de l'enregistrement dont vous voulez définir les valeurs. Ce numéro indique la position de l'enregistrement dans le bloc. Indiquez un nombre entier.

nom_bloc	Nom du bloc dans lequel se trouve l'enregistrement cible. Les données du nom sont de type VARCHAR2.

propriété	Utilisez la propriété suivante :

STATUS  Indique que vous voulez modifier l'état de l'enregistrement. STATUS est une constante.

valeur	Utilisez l'une des valeurs suivantes :

CHANGED_STATUS  Indique que l'enregistrement doit recevoir une marque de mise à jour et être considéré comme une mise à jour lors de la prochaine opération commit.

INSERT_STATUS  Indique que l'enregistrement doit recevoir une marque d'insertion (INSERT) et être inséré dans la table appropriée lors de la prochaine opération commit.

NEW_STATUS  Indique que l'enregistrement doit être considéré comme un nouvel enregistrement (NEW), c'est-à-dire un enregistrement qui n'a pas reçu de marque d'insertion, de mise à jour ou d'interrogation. Il est impossible d'attribuer l'état NEW aux enregistrements modifiés mais non effacés ou non enregistrés dans la base de données.

QUERY_STATUS  Indique que l'enregistrement doit être considéré comme un enregistrement d'interrogation (QUERY), qu'il le soit réellement ou non. Reportez-vous également à la procédure interne CREATE_QUERIED_RECORD.


SET_RECORD_PROPERTY - Restrictions

Le tableau ci-dessous indique les états de transition valides pour un enregistrement.

Etat en cours	Etat cible
	NOUVEAU	INTERROGATION	INSERTION	MODIFIE
NOUVEAU	oui	oui1	oui2	non
INTERROGATION	oui4	oui	non	oui
INSERTION	oui4	oui3	oui	non
MODIFIE	oui4	non	non	oui
1	Respecte les règles décrites dans les notes de bas de page 2 et 3.

2	Cette transition n'est pas autorisée en mode Interrogation, car QUERY et INSERT ne sont pas valides dans ce mode.

3	Si cette transition est exécutée pendant que Runform s'exécute en mode Unique Key et si les déclencheurs transactionnels n'existent pas tous, vous devez entrer une valeur valide dans le champ ROWID. En d'autres termes, si vous êtres connecté à une source de données autre que Oracle, qui n'accepte pas ROWID, mais que vous utilisiez une clé unique, vous devez fournir la clé d'un enregistrement, passant de Insert à Query, dans l'un des déclencheurs transactionnels, On-Lock, On-Update ou On-Delete. Sinon, Form Builder retourne une erreur.

4	Il est impossible d'attribuer l'état NEW aux enregistrements modifiés mais non enregistrés dans la base de données ou non effacés.


SET_RECORD_PROPERTY - Exemples

/*

** Procédure interne :  SET_RECORD_PROPERTY
** Exemple :  Marquer le troisième enregistrement du bloc EMP comme s'il s'agissait
**            d'un enregistrement interrogé.
*/
BEGIN
  Set_Record_Property( 3, 'EMP', STATUS, QUERY_STATUS);
END;


SET_RELATION_PROPERTY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Définit la propriété de relation donnée dans une relation maître-détail.

Syntaxe

SET_RELATION_PROPERTY
  (id_relation    Relation,
   propriété      NUMBER,
   valeur         NUMBER);

SET_RELATION_PROPERTY
  (nom_relation  VARCHAR2,
   propriété      NUMBER,
   valeur         NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_relation	ID unique que Form Builder attribue à la relation lorsqu'il crée l'objet relation. Cette opération peut être exécutée automatiquement lorsque vous définissez une relation maître-détail dans Form Builder, ou peut être créée explicitement. Les données de l'ID sont de type Relation.

nom_relation	Nom que vous, ou Form Builder, avez donné à l'objet Relation lorsqu'il a été défini. Les données du nom sont de type VARCHAR2.

propriété	Utilisez l'une des propriétés de relation ci-dessous, qui peuvent être transférées à la procédure interne sous forme d'une constante :

AUTOQUERY  Indique que le bloc détail de cette relation doit être automatiquement coordonné lors de l'intanciation du bloc. Cette opération permet de différer un traitement potentiellement onéreux jusqu'à ce que les blocs participant aux relations soient effectivement visités. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

DEFERRED_COORDINATION  Indique qu'un bloc demandant une coordination doit être marqué, mais non coordonné tant que les blocs détail ne sont pas instanciés. La coordination différée ne fait référence qu'à la phase de remplissage de la coordination. Même les blocs détail différés sont effacés pendant la phase d'effacement de la coordination pour présenter l'application Forms dans un état visuellement cohérent. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

MASTER_DELETES  Indique le comportement de la relation par défaut pour la suppression d'un enregistrement détail dans le bloc détail lorsque le bloc maître comporte un enregistrement maître correspondant. Les valeurs valides sont NON-ISOLATED, ISOLATED ou CASCADING. La possibilité de définir cette propriété par programme n'est incluse que pour les développeurs qui écrivent leur propre coordination maître-détail. Elle ne modifie pas une relation par défaut créée lors de la conception.

PREVENT_MASTERLESS_OPERATION  Indique que les opérations d'un bloc détail ne sont pas autorisées lorsqu'il n'existe pas d'enregistrement maître correspondant. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

valeur	Les constantes ci-dessous peuvent être fournies pour les propriétés décrites ci-dessus :

CASCADING  Indique que la propriété MASTER_DELETES doit être définie de sorte que, lorsqu'un opérateur supprime un enregistrement maître, ses enregistrements détail correspondants soient verrouillés en même temps que les enregistrements maître.

ISOLATED  Indique que la propriété MASTER_DELETES doit être définie de telle sorte qu'un opérateur puisse supprimer un enregistrement maître pour lequel il existe des enregistrements détail. Cette opération n'entraîne pas de verrouillage ou de suppressions ultérieures des enregistrements détail mais, dans ce cas, Form Builder instancie toujours la coordination des blocs détails.

NON_ISOLATED  Indique que la propriété MASTER_DELETES doit être définie de telle sorte que si l'opérateur tente de supprimer un enregistrement maître pour lequel il existe des enregistrements détail, Form Builder émet un message d'erreur et désactive la suppression.

PROPERTY_TRUE Indique que la propriété doit être définie à l'état TRUE.

PROPERTY_FALSE  Indique que la propriété doit être définie à l'état FALSE.


SET_RELATION_PROPERTY - Restrictions

Vous ne pouvez définir qu'une propriété par appel à cette procédure interne.


SET_RELATION_PROPERTY - Exemples

/*

** Procédure interne :  SET_RELATION_PROPERTY
** Exemple :  Définir le comportement de coordination d'une relation
**            à Différée et interrogation automatique.
*/
PROCEDURE Make_Relation_Deferred( rl_name VARCHAR2 ) IS
  rl_id Relation;
BEGIN
  /*
  ** Look for the relation's ID
  */
  rl_id  := Find_Relation( rl_name );
  /*
  ** Set the two required properties
  */
  Set_Relation_Property(rl_id,AUTOQUERY,PROPERTY_TRUE);
END;


SET_REPORT_OBJECT_PROPERTY - Procédure interne

 Exemples	 Toutes les procédures internes

Description

Définit par programme la valeur d'une propriété d'état.

Syntaxe

PROCEDURE SET_REPORT_OBJECT_PROPERTY
  (id_état REPORT_OBJECT,
   propriété NUMBER,
   valeur VARCHAR2
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
  (nom_état VARCHAR2,
   propriété NUMBER,
   valeur VARCHAR2
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
  (id_état REPORT_OBJECT,
   propriété NUMBER,
   valeur NUMBER
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
  (nom_état VARCHAR2,
   propriété NUMBER,
   valeur NUMBER
);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_état	Indique l'ID unique de l'état. Vous pouvez obtenir l'ID d'un état particulier à l'aide de la procédure interne FIND_REPORT_OBJECT.

nom_état	Précise le nom unique de l'état.

propriété	Correspond à l'une des constantes suivantes :

REPORT_EXECUTION_MODE : Mode d'exécution d'état (BATCH ou RUNTIME)

REPORT_COMM_MODE : Mode de communication d'état (SYNCHRONOUS ou ASYNCHRONOUS)

REPORT_DESTYPE : Type de destination d'état (PREVIEW, FILE, PRINTER, MAIL, CACHE ou SCREEN)

Correspond à l'une des chaînes suivantes :

REPORT_FILENAME : Nom de fichier d'état

REPORT_SOURCE_BLOCK : Nom de bloc source d'état

REPORT_QUERY_NAME : Nom d'interrogation d'état

REPORT_DESNAME : Nom de destination d'état

REPORT_DESFORMAT : Format de destination d'état

REPORT_SERVER : Nom de serveur d'état

REPORT_OTHER : Autres propriétés d'état précisées par l'utilisateur

valeur	Correspond à l'une des constantes suivantes :

REPORT_EXECUTION_MODE : cette valeur doit être BATCH ou RUNTIME

REPORT_COMM_MODE : cette valeur doit être SYNCHRONOUS ou ASYNCHRONOUS

REPORT_DESTYPE : cette valeur doit être PREVIEW, FILE, PRINTER, MAIL, CACHE ou SCREEN

Correspond à l'une des chaînes suivantes :

REPORT_FILENAME : cette valeur doit être de type VARCHAR2

REPORT_SOURCE_BLOCK : cette valeur doit être de type VARCHAR2

REPORT_QUERY_NAME : cette valeur doit être de type VARCHAR2

REPORT_DEST_NAME : cette valeur doit être de type VARCHAR2

REPORT_DEST_FORMAT : cette valeur doit être de type VARCHAR2

REPORT_SERVER : cette valeur doit être de type VARCHAR2

REPORT_OTHER : cette valeur doit être de type VARCHAR2

Notes d'utilisation

•	SET_REPORT_OBJECT_PROPERTY définit les propriétés à l'aide de valeurs constantes ou de valeurs de chaîne. Le type de valeur dépend de la propriété définie, comme indiqué ci-dessus. En revanche, GET_REPORT_OBJECT_PROPERTY retourne une valeur de chaîne pour toutes les propriétés.


SET_REPORT_OBJECT_PROPERTY - Exemples

DECLARE

repid REPORT_OBJECT;

report_prop VARCHAR2(20);

BEGIN

repid := find_report_object('report4');

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_EXECUTION_MODE, BATCH);

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_COMM_MODE, SYNCHRONOUS);

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_DESTYPE, FILE);

END;


SET_TAB_PAGE_PROPERTY - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Définit les propriétés de page onglet de la page de canevas onglet indiquée.

Syntaxe

SET_TAB_PAGE_PROPERTY
  (id_page_onglet  TAB_PAGE,
   propriété     NUMBER,
   valeur        NUMBER);

SET_TAB_PAGE_PROPERTY
  (nom_page_onglet  VARCHAR2,
   propriété       NUMBER,
   valeur          NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_page_onglet	ID unique que Form Builder attribue à la page onglet lorsqu'il la crée. Les données sont de type TAB_PAGE.

nom_page_onglet	Nom que vous avez donné à la page onglet lorsque vous l'avez définie. Les données sont de type VARCHAR2.

propriété	Propriété que vous voulez définir pour la page onglet indiquée. Les valeurs possibles sont :

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

ENABLED  Précisez TRUE pour activer la page onglet et FALSE pour la désactiver (elle apparaîtra ainsi en grisé ou sera indisponible).

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, indiquée en points.

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

LABEL   La chaîne de caractères du libellé de la page onglet.

VISIBLE  Indiquez TRUE pour que la page onglet soit visible ou FALSE pour qu'elle ne le soit pas. Une page onglet est considérée comme visible si elle est représentée à l'écran, même si elle est entièrement masquée derrière une autre.

VISUAL_ATTRIBUTE  Précise le nom de l'attribut visuel en vigueur.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

valeur	Vous pouvez transmettre aux valeurs de propriété décrites précédemment les constantes suivantes, sous forme d'arguments :

PROPERTY_TRUE  (définit la propriété à TRUE)

PROPERTY_FALSE  (définit la propriété à FALSE)


SET_TAB_PAGE_PROPERTY - Exemples

/* Exemple 1 : Utiliser SET_TAB_PAGE_PROPERTY pour définir la
** propriété ENABLED à TRUE pour la page onglet (si elle
** est définie à FALSE :
*/

DECLARE
  tb_pg_id  TAB_PAGE;

BEGIN
  tb_pg_id  := FIND_TAB_PAGE('tab_page_1');
  IF GET_TAB_PAGE_PROPERTY(tb_pg_id, enabled) = 'FALSE' THEN
     SET_TAB_PAGE_PROPERTY(tb_pg_id, enabled, property_true);
  END IF;
END;


SET_TIMER - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Modifie les paramètres d'une horloge existante. Vous pouvez modifier l'intervalle, la répétition ou ces deux paramètres.

Syntaxe

SET_TIMER
  (id_horloge        Timer,
   millisecondes     NUMBER,
   itération         NUMBER);

SET_TIMER
  (nom_horloge       VARCHAR2,
   millisecondes     NUMBER,
   itération         NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_horloge	ID unique que Form Builder attribue lorsqu'il crée l'horloge, notamment en réponse à un appel à la procédure interne CREATE_TIMER. Utilisez la procédure interne FIND_TIMER pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Timer.

nom_horloge	Nom que vous avez donné à l'horloge lorsque vous l'avez définie. Les données du nom sont de type VARCHAR2.

millisecondes	Durée du délai en millisecondes. Les valeurs autorisées pour ce paramètre sont comprises entre 1 et 2147483648 millisecondes. Les valeurs supérieures à 2147483648 seront arrondies à 2147483648. Notez que seules les valeurs positives sont autorisées. Les données de ce paramètre sont de type NUMBER. Pour plus d'informations, reportez-vous à Restrictions ci-après.

NO_CHANGE  Indique que la propriété millisecondes doit rester inchangée.

itération	Indique l'itération de l'horloge.

REPEAT (par défaut) Permet d'indiquer que le délai doit être répété après expiration.

NO_REPEAT Permet d'indiquer que le délai ne doit pas être répété après expiration, mais utilisé une seule fois jusqu'à ce qu'il soit explicitement rappelé.

NO_CHANGE  Indique que la propriété d'itération doit rester inchangée.


SET_TIMER - Restrictions

•	Les valeurs supérieures à 2147483648 sont arrondies à 2147483648.

•	Une valeur inférieure à 1 entraîne une erreur d'exécution.

•	Une valeur supérieur à la limite supérieure indiquée entraîne un dépassement de capacité d'entier.

•	Les millisecondes ne peuvent pas être exprimées sous la forme d'un nombre négatif.

•	Deux délais ne peuvent pas avoir le même nom dans la même instance d'application Forms, que leur nom soit en minuscules ou en majuscules.

•	S'il n'y pas de déclencheur When-Timer-Expired défini à l'exécution d'un  délai, Form Builder retourne un message d'erreur.

•	S'il n'y a pas de déclencheur When-Timer-Expired défini à l'exécution d'un délai et si le délai est un délai répété, les répétitions ultérieures sont annulées, mais le délai est maintenu.


SET_TIMER - Exemples

/*

** Procédure interne :  SET_TIMER
** Exemple :   See FIND_TIMER
*/


SET_TREE_NODE_PROPERTY - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Définit l'état d'un nœud de branche.

Syntaxe

PROCEDURE SET_TREE_NODE_PROPERTY

  (nom_élément VARCHAR2,

   nœud FTREE.NODE,

   propriété NUMBER,

   valeur NUMBER);

PROCEDURE SET_TREE_NODE_PROPERTY

  (nom_élément VARCHAR2,

   nœud FTREE.NODE,

   propriété NUMBER,

   valeur VARCHAR2);

PROCEDURE SET_TREE_NODE_PROPERTY

  (id_élément ITEM,

   nœud FTREE.NODE,

   propriété NUMBER,

   valeur NUMBER);

PROCEDURE SET_TREE_NODE_PROPERTY

  (id_élément ITEM,

   nœud FTREE.NODE,

   propriété NUMBER,

   valeur VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
nœud	Indique un nœud valide.
propriété	Indiquez l'une des propriétés suivantes : NODE_STATE   Les valeurs possibles sont EXPANDED_NODE, COLLAPSED_NODE et LEAF_NODE. NODE_LABEL   Définit le libellé du nœud. NODE_ICON   Définit l'icône du nœud. NODE_VALUE   Définit la valeur du nœud.
valeur	Valeur réelle que vous voulez transmettre.


SET_TREE_NODE_PROPERTY - Exemples

/*

** Built-in:  SET_TREE_NODE_PROPERTY
*/

-- This code could be used in a WHEN-TREE-NODE-SELECTED

-- trigger to change the icon of the node clicked on.

DECLARE

   htree         ITEM;

   current_node  FTREE.NODE;

   find_node     FTREE.NODE;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('tree_block.htree3');

   -- Change it icon of the clicked node.

   -- The icon file will be located using the

   -- UI60_ICON environment variable in client/server

   -- or in the virtual directory for web deployment.

   Ftree.Set_Tree_Node_Property(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_ICON, 'Open');

END;


SET_TREE_PROPERTY - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Définit la valeur de la propriété de l'arborescence indiquée.

Syntaxe

PROCEDURE SET_TREE_PROPERTY

  (nom_élément VARCHAR2,

   propriété NUMBER,

   valeur NUMBER);

PROCEDURE SET_TREE_PROPERTY

  (nom_élément VARCHAR2,

   propriété NUMBER,

   valeur VARCHAR2);

PROCEDURE SET_TREE_PROPERTY

  (nom_élément VARCHAR2,

   propriété NUMBER,

   valeur RECORDGROUP);

PROCEDURE SET_TREE_PROPERTY

  (id_élément ITEM,

   propriété NUMBER,

   valeur NUMBER);

PROCEDURE SET_TREE_PROPERTY

  (id_élément ITEM,

   propriété NUMBER,

   valeur VARCHAR2);

PROCEDURE SET_TREE_PROPERTY

  (id_élément ITEM,

   propriété NUMBER,

   valeur RECORDGROUP);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
propriété	Indiquez l'une des propriétés suivantes : RECORD_GROUP   Remplace l'ensemble de données de l'arborescence par un groupe d'enregistrements et l'affiche. QUERY_TEXT   Remplace l'ensemble de données de l'arborescence par une interrogation SQL et l'affiche. ALLOW_EMPTY_BRANCHES   Les valeurs possibles sont PROPERTY_TRUE et PROPERTY_FALSE.
valeur	Indique la valeur appropriée pour la propriété que vous définissez : PROPERTY_TRUE  La propriété doit être définie à TRUE. PROPERTY_FALSE La propriété doit être définie à FALSE.


SET_TREE_PROPERTY - Exemples

/*

** Procédure interne :  SET_TREE_PROPERTY
*/

-- Ce code peut être utilisé dans un déclencheur

-- WHEN-NEW-FORM-INSTANCE pour remplir initialement

-- l'arborescence avec des données.

DECLARE

   htree         ITEM;

   v_ignore      NUMBER;

   rg_emps       RECORDGROUP;

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Vérifier l'existence du groupe d'enregistrements.

   rg_emps := Find_Group('emps');

   IF NOT Id_Null(rg_emps) THEN

      DELETE_GROUP(rg_emps);

   END IF;

   -- Créer le groupe d'enregistrements.

   rg_emps := Create_Group_From_Query('rg_emps',

             'select 1, level, ename, NULL, to_char(empno) ' ||

             'from emp '                                     ||

             'connect by prior empno = mgr '                 ||

             'start with job = ''PRESIDENT''');

   -- Remplir le groupe d'enregistrements avec des données.

   v_ignore := Populate_Group(rg_emps);

   -- Transférer les données du groupe d'enregistrements

   -- vers l'arborescence et l'afficher.

   Ftree.Set_Tree_Property(htree, Ftree.RECORD_GROUP, rg_emps);

END;


SET_TREE_SELECTION - Procédure interne

 Exemples 	 Toutes les procédures internes

Description

Indique la sélection d'un nœud simple.

Syntaxe

PROCEDURE SET_TREE_SELECTION

  (nom_élément VARCHAR2,

   nœud NODE,

   type_sélection NUMBER);

PROCEDURE SET_TREE_SELECTION

  (id_élément ITEM,

   nœud NODE,

   type_sélection NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  non

Paramètres

nom_élément	Indique le nom de l'objet créé lors du développement. Le type de donnée du nom est la chaîne VARCHAR2.
id_élément	Indique l'ID unique attribué par Form Builder à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour renvoyer l'ID à une variable de type approprié. Le type de donnée de l'ID est ITEM.
nœud	Indique un nœud valide.
type_sélection	Indique le type de sélection. SELECT_ON   Sélectionne le nœud. SELECT_OFF   Désélectionne le nœud. SELECT_TOGGLE   Fait basculer l'état de sélection du nœud.


SET_TREE_SELECTION examples

/*

** Procédure interne :  SET_TREE_SELECTION
*/

-- Ce code peut être utilisé dans un déclencheur WHEN-TREE-NODE-EXPANDED et

-- indique que le nœud sur lequel vous venez de cliquer est sélectionné.

DECLARE

   htree         ITEM;

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Indiquer que le nœud sur lequel vous venez de cliquer est sélectionné.

   Ftree.Set_Tree_Selection(htree, :SYSTEM.TRIGGER_NODE, Ftree.SELECT_ON);

END;


SET_VA_PROPERTY - Procédure interne

 Toutes les procédures internes

Description

Modifie les valeurs de propriété d'attributs visuels de la propriété indiquée.

Syntaxe

SET_VA_PROPERTY

  (id_av VISUALATTRIBUTE

   propriété NUMBER

   valeur VARCHAR2);

SET_VA_PROPERTY

  (nom_av VARCHAR2

   propriété NUMBER

   valeur VARCHAR2);

SET_VA_PROPERTY

  (id_av VISUALATTRIBUTE

   propriété NUMBER

   valeur NUMBER);

SET_VA_PROPERTY

  (nom_av VARCHAR2

   propriété NUMBER

   valeur NUMBER);

Type de procédure interne  fonction non restreinte

Mode Saisie interrogation  oui

Paramètres

id_av	ID unique que Form Builder donne à l'attribut visuel lors de sa création. Le type de données de l'ID est VISUALATTRIBUTE.
nom_av	Nom que vous avez donné à l'attribut visuel lors de sa création. Le type de données est VARCHAR2.
Propriété valeur	Indiquez l'une des propriétés suivantes : BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet. FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan. FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé. FONT_SIZE Taille de la police, indiquée en centaines de points. FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage). FONT_STYLE  Style de la police. FONT_WEIGHT  Epaisseur de la police. FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément. WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir. Indiquez la valeur à attribuer à une propriété donnée. Le type de données de la propriété détermine le type de données de la valeur que vous entrez. Par exemple, si vous voulez définir la propriété WHITE_ON_BLACK à TRUE, précisez la constante PROPERTY_TRUE pour la valeur. Si vous voulez modifier FONT_NAME pour l'élément, précisez la valeur, autrement dit le libellé, en tant que chaîne VARCHAR2. PROPERTY_TRUE Indique que la propriété doit être définie à l'état TRUE. PROPERTY_FALSE Indique que la propriété doit être définie à l'état FALSE. Pour réinitialiser la propriété sur la valeur qui lui a été attribuée lors du développement, entrez deux apostrophes sans les séparer par un espace : ''. Par exemple, SET_ITEM_PROPERTY('DEPTNO', FONT_SIZE, '') réinitialise cette taille de format sur la valeur choisie lors du développement.


SET_VAR

 Toutes les procédures internes

Description

Définit une nouvelle variante OLE à sa valeur initiale ou réinitialise une variante OLE existante sur une nouvelle valeur.

Il existe quatre versions de cette procédure, une pour chacun des types de nouvelle valeur CHAR, NUMBER, OLEVAR et table.

Syntaxe

PROCEDURE SET_VAR
  (var OLEVAR, newval CHAR
   vtype VT_TYPE, arrspec VARCHAR2);

...ou...

PROCEDURE SET_VAR
  (var OLEVAR, newval NUMBER
   vtype VT_TYPE, arrspec VARCHAR2);

...ou...

PROCEDURE SET_VAR
  (var OLEVAR, newval OLEVAR
   vtype VT_TYPE, arrspec VARCHAR2);

...ou...

PROCEDURE SET_VAR
  (var OLEVAR, source_table,
   vtype VT_TYPE, arrspec VARCHAR2);

Type de procédure interne  procédure non restreinte

Paramètres

var	Variante à définir.
newval	Valeur à donner à la variante.
vtype	Paramètre OLE VT_TYPE à donner à la variante. Ce paramètre est facultatif. Si ce paramètre n'est pas défini, la valeur par défaut VT_R8 est attribuée à la version NUMBER de la procédure. Pour la version VARCHAR2, la valeur par défaut est VT_BSTR. Pour la version OLEVAR, la valeur par défaut est VT_VARIANT : c'est-à-dire, quel que soit le type indiqué par la valeur de la variante elle-même.
source_table	Table PL/SQL dont les dimensions et les valeurs d'élément doivent être attribuées à la variante.
arrspec	Indique le ou les éléments sélectionnés dans la table source à utiliser lors de la création de la nouvelle variante. Pour plus d'informations, reportez-vous à Caractéristiques des tableaux OLE. Ce paramètre est facultatif. S'il n'est pas défini, la table source entière est utilisée..
Notes d'utilisation

La variante cible de cette procédure SET_VAR doit d'abord être créée avec la fonction CREATE_VAR.


SET_VIEW_PROPERTY - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Définit une propriété pour le canevas indiqué. Vous ne pouvez définir qu'une propriété par appel de la procédure interne. En d'autres termes, vous ne pouvez pas partager l'argument de telle sorte que la coordonnée x s'applique à la position X_POS et la coordonnée y à HEIGHT.

Syntaxe

SET_VIEW_PROPERTY
  (id_vue     ViewPort,
   propriété  NUMBER,
   valeur     NUMBER);

SET_VIEW_PROPERTY
  (id_vue   ViewPort,
   propriété  NUMBER,
   x          NUMBER,
   y          NUMBER);
SET_VIEW_PROPERTY
  (nom_vue    VARCHAR2,
   propriété  NUMBER,
   valeur     NUMBER);
SET_VIEW_PROPERTY
  (nom_vue  ViewPort,
   propriété  NUMBER,
   x          NUMBER,
   y          NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_vue	ID unique que Form Builder a attribué à la vue lorsque vous avez créé le canevas ou la vue. Utilisez la procédure interne FIND_VIEW pour retourner l'ID à une variable de type approprié. Les données sont de type VIEWPORT.

nom_vue	Nom que vous avez donné à l'objet canevas lorsque vous l'avez défini. Les données sont de type VARCHAR2.

propriété	Indique l'une des propriétés suivantes :

DIRECTION  Orientation de la présentation pour les objets bidirectionnels. Les valeurs valides sont DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

DISPLAY_POSITION  Pour une vue empilée, position de l'angle supérieur gauche de la vue, par rapport à la vue intégrale de la fenêtre, sous la forme d'une paire x, y. Détermine où la vue est affichée dans la fenêtre.

HEIGHT  Pour un canevas empilé, hauteur de la vue. Pour modifier la taille du canevas lui-même, utilisez SET_CANVAS_PROPERTY.

POSITION_ON_CANVAS  Paire X, Y indiquant l'emplacement de l'angle supérieur gauche de la vue par rapport à son canevas.

VIEWPORT_X_POS  Pour une vue empilée, coordonnée X de l'angle supérieur gauche de la vue par rapport à la vue intégrale de la fenêtre.

VIEWPORT_Y_POS Pour une vue empilée, coordonnée Y de l'angle supérieur gauche de la vue par rapport à la vue intégrale de la fenêtre.

VIEWPORT_X_POS_ON_CANVAS  Coordonnée X de l'angle supérieur gauche de la vue, par rapport à son canevas.

VIEWPORT_Y_POS_ON_CANVAS Coordonnée Y de l'angle supérieur gauche de la vue, par rapport à son canevas.

VIEW_SIZE  Pour un canevas empilé, taille de la vue exprimée sous la forme d'une paire largeur, hauteur. Pour modifier la taille du canevas lui-même, utilisez SET_CANVAS_PROPERTY.

VISIBLE  Indique si la vue doit être affichée. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

WIDTH  Pour un canevas empilé, largeur de la vue. Pour modifier la taille du canevas lui-même, utilisez SET_CANVAS_PROPERTY.

valeur	Indiquez la valeur appropriée à la propriété que vous définissez :

PROPERTY_TRUE  La propriété doit être définie à TRUE.

PROPERTY_FALSE La propriété doit être définie à FALSE.

x	Valeur NUMBER de la coordonnée X ou largeur, en fonction de la propriété que vous avez indiquée. Indiquez l'argument en unités du système de coordonnées de grille.

y	Valeur NUMBER de la coordonnée Y ou hauteur, en fonction de la propriété que vous avez indiquée. Indiquez l'argument en unités du système de coordonnées de grille.


SET_WINDOW_PROPERTY - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Définit une propriété de la fenêtre indiquée.

Syntaxe

SET_WINDOW_PROPERTY
  (id_fenêtre      Window,
   propriété       NUMBER,
   valeur          VARCHAR2);

SET_WINDOW_PROPERTY
  (id_fenêtre  Window,
   propriété   NUMBER,
   x          NUMBER);
SET_WINDOW_PROPERTY
  (id_fenêtre  Window,
   propriété   NUMBER,
   x          NUMBER,
   y          NUMBER);
SET_WINDOW_PROPERTY
  (nom_fenêtre  VARCHAR2,
   propriété   NUMBER,
   valeur        VARCHAR2);
SET_WINDOW_PROPERTY
  (nom_fenêtre  VARCHAR2,
   propriété   NUMBER,
   x            NUMBER);
SET_WINDOW_PROPERTY
  (nom_fenêtre  VARCHAR2,
   propriété   NUMBER,
   x            NUMBER,
   y            NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_fenêtre	ID unique que Form Builder attribue à la fenêtre lors de sa création. Utilisez la procédure interne FIND_WINDOW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Window.

nom_fenêtre	Nom que vous avez donné à la fenêtre lorsque vous l'avez créée. Les données du nom sont de type VARCHAR2.

propriété	Définissez l'une des propriétés de fenêtre suivantes :

BACKGROUND_COLOR  Couleur de la zone d'arrière-plan de l'objet.

DIRECTION  Orientation de la présentation pour les objets bidirectionnels. Les valeurs valides sont DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

FILL_PATTERN  Motif à utiliser pour la zone de remplissage de l'objet. Le rendu des motifs est effectué dans les deux couleurs indiquées par Couleur d'arrière-plan et Couleur de premier plan.

FONT_NAME  Nom de la police à utiliser pour le texte de l'objet. La liste des polices disponibles dépend du système utilisé.

FONT_SIZE  Taille de la police, indiquée en points.

FONT_SPACING  Largeur de la police, c'est-à-dire l'espace séparant les caractères (crénage).

FONT_STYLE  Style de la police.

FONT_WEIGHT  Epaisseur de la police.

FOREGROUND_COLOR  Couleur de la zone de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

HEIGHT  Hauteur de la fenêtre.

HIDE_ON_EXIT  Indique si Form Builder masque automatiquement la fenêtre en cours lorsque l'opérateur passe par navigation à un élément d'une autre fenêtre. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

ICON_NAME  Indique le nom de fichier de la ressource d'icône associée à un élément de fenêtre lorsque celle-ci est réduite.

POSITION  Paire x, y indiquant l'emplacement de la fenêtre sur l'écran.

TITLE  Titre de la fenêtre.

VISIBLE  Indique si la fenêtre doit être affichée. Les valeurs valides sont PROPERTY_TRUE et PROPERTY_FALSE.

WHITE_ON_BLACK  Indique que l'objet apparaîtra sur une unité d'affichage bitmap monochrome sous la forme de caractères blancs sur fond noir.

WINDOW_SIZE  Paire largeur, hauteur, indiquant la taille de la fenêtre sur l'écran.

WINDOW_STATE  Etat d'affichage de la fenêtre. Les valeurs valides sont NORMAL, MAXIMIZE ou MINIMIZE.

WIDTH  Largeur de la fenêtre.

X_POS   Coordonnée x de l'angle supérieur gauche de la fenêtre sur l'écran.

Y_POS  Coordonnée y de l'angle supérieur gauche de la fenêtre sur l'écran.

valeur	Les constantes suivantes peuvent être transmises sous forme d'arguments aux valeurs de propriétés décrites ci-dessus :

PROPERTY_TRUE  Indique que la propriété doit être définie à TRUE. Cette constante s'applique plus particulièrement à la propriété VISIBLE.

PROPERTY_FALSE  Indique que la propriété doit être définie à FALSE. Cette constante s'applique plus particulièrement à la propriété VISIBLE.

Les constantes suivantes peuvent être transmises sous forme d'arguments pour être utilisées avec la propriété WINDOW_STATE :

NORMAL  Indique que la fenêtre est affichée normalement, selon les options en cours des propriétés largeur, hauteur, position X et position Y.

MAXIMIZE  Indique que la fenêtre est agrandie pour remplir l'écran en fonction du style d'affichage du gestionnaire de fenêtres.

MINIMIZE  Indique que la fenêtre est réduite au minimum, ou icônifiée.

x	Valeur de type NUMBER de la coordonnée x ou largeur, en fonction de la propriété que vous avez définie. Indiquez l'argument en unités du système de coordonnées de grille.

y	Valeur de type NUMBER de la coordonnée y ou hauteur, en fonction de la propriété que vous avez définie. Indiquez l'argument en unités du système de coordonnées de grille.

Notes d'utilisation

Sous Microsoft Windows, les applications Forms s'exécutent dans la fenêtre d'application MDI. Utilisez SET_WINDOW_PROPERTY pour définir les propriétés suivantes de la fenêtre d'application MDI :

•	TITLE

•	POSITION

•	WIDTH, HEIGHT

•	WINDOW_SIZE

•	WINDOW_STATE

•	X_POS, Y_POS

Pour faire référence à la fenêtre d'application MDI, dans un appel à SET_WINDOW_PROPERTY, utilisez la constante FORMS_MDI_WINDOW :

Set_Window_Property(FORMS_MDI_WINDOW, POSITION, 5,10)
Set_Window_Property(FORMS_MDI_WINDOW, WINDOW_STATE, MINIMIZE)


SET_WINDOW_PROPERTY - Restrictions

•	Si vous changez la taille ou la position d'une fenêtre, la modification reste en vigueur tant que l'application Forms s'exécute, ou jusqu'à ce que la taille ou la position de la fenêtre soient explicitement modifiées à nouveau. La fermeture de la fenêtre et sa réouverture ne rendent pas à la fenêtre les options qui avaient été choisies par défaut lors de sa conception. Vous devez attribuer aux variables les options par défaut, indiquées lors de la conception, si vous voulez que la fenêtre reprenne ses valeurs par défaut.


SET_WINDOW_PROPERTY - Exemples

/*

** Procédure interne :  SET_WINDOW_PROPERTY
** Exemple :   Voir FIND_WINDOW
*/


SHOW_ALERT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Affiche le message d'alerte indiqué et retourne une valeur numérique lorsque l'opérateur sélectionne l'un des trois boutons d'alerte.

Syntaxe

SHOW_ALERT
  (id_alerte  Alert);

SHOW_ALERT
  (nom_alerte  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  Une constante numérique correspondant au bouton que l'opérateur a sélectionné à partir du message d'alerte. Les correspondances de boutons sont indiquées dans la conception de l'alerte.

Si l'opérateur sélectionne...	Form Builder retourne
Bouton 1	ALERT_BUTTON1
Bouton 2	ALERT_BUTTON2
Bouton 3	ALERT_BUTTON3

Mode Saisie interrogation  oui

Paramètres

id_alerte	ID unique que Form Builder attribue à un message d'alerte lors de sa création. Utilisez la procédure interne FIND_ALERT pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Alert.

nom_alerte	Nom que vous avez donné au message d'alerte lorsque vous l'avez défini. Les données du nom sont de type VARCHAR2.


SHOW_ALERT - Exemples

/*

** Procédure interne :  SHOW_ALERT
** Exemple :   Voir FIND_ALERT and SET_ALERT_PROPERTY
*/


SHOW_EDITOR - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Affiche l'éditeur aux coordonnées indiquées et transmet une chaîne à l'éditeur ou extrait une chaîne existante de l'éditeur. Si aucune coordonnée n'est fournie, l'éditeur s'affiche à la position par défaut indiquée pour l'éditeur lors de la conception.

Syntaxe

SHOW_EDITOR
  (id_éditeur       Editor,
   message_entrée   VARCHAR2,
   message_sortie   VARCHAR2,
   résultat         BOOLKAN);

SHOW_EDITOR
  (id_éditeur       Editor,
   message_entrée   VARCHAR2,
   x                NUMBER,
   y                NUMBER,
   message_sortie   VARCHAR2,
   résultat         BOOLEAN);
SHOW_EDITOR
  (nom_éditeur      VARCHAR2,
   message_entrée   VARCHAR2,
   message_sortie   VARCHAR2,
   résultat         BOOLEAN);
SHOW_EDITOR
  (nom_éditeur      VARCHAR2,
   message_entrée   VARCHAR2,
   x                NUMBER,
   y                NUMBER,
   message_sortie   VARCHAR2,
   résultat         BOOLEAN);

Type de procédure interne  procédure non restreinte qui retourne deux paramètres OUT (résultat et message_sortie).

Mode Saisie interrogation  oui

Paramètres

id_éditeur	ID unique que Form Builder attribue lorsqu'il crée l'éditeur. Utilisez la procédure interne FIND_EDITOR pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Editor.

nom_éditeur	Nom que vous avez donné à l'éditeur lorsque vous l'avez défini. Les données du nom sont de type VARCHAR2.

message_entrée	Paramètre IN obligatoire, de type VARCHAR2. La valeur transmise à ce paramètre peut être NULL. Vous pouvez également faire référence à une variable ou à un élément texte.

x	Coordonnée x de l'éditeur. Indiquez un nombre entier pour cet argument.

y	Coordonnée y de l'éditeur. Indiquez un nombre entier pour cet argument.

message_sortie	Paramètre OUT obligatoire, de type VARCHAR2. Vous pouvez également faire référence à une variable ou à un élément texte. Si l'opérateur annule l'éditeur, le résultat est FALSE et message_sortie est NULL.

résultat	Paramètre OUT obligatoire, de type BOOLEAN. Si l'opérateur accepte l'éditeur, le résultat est TRUE. Si l'opérateur annule l'éditeur, le résultat est FALSE et message_sortie est NULL.


SHOW_EDITOR - Restrictions

•	Message_sortie doit être au moins aussi long que message_entrée, car la longueur de la variable ou de l'élément texte, indiquée pour message_sortie, détermine le nombre maximum de caractère que l'éditeur peut accepter.

•	Les valeurs du paramètre message_entrée sont toujours converties en VARCHAR2 par Form Builder lors de leur transmission à l'éditeur. Cependant, si vous transmettez message_sortie à une destination autre qu'un objet de type VARCHAR2, vous devez commencer par effectuer la conversion en transmettant la valeur à une variable, puis exécuter la conversion de type sur cette variable, avec les fonctions PL/SQL ou TO_NUMBER.

•	La largeur doit être suffisante pour permettre au moins l'affichage des boutons au bas de la fenêtre de l'éditeur.


SHOW_EDITOR - Exemples

/*

** Procédure interne :  SHOW_EDITOR
** Exemple :  Accepter les données d'entrée de l'opérateur dans un éditeur défini par
**            l'utilisateur. Utiliser l'éditeur système si l'utilisateur
**            a coché l'option de menu Editeur système sous le menu
**            "Préférences" dans le module de menu personnalisé.
*/
DECLARE
  ed_id   Editor;
  mi_id   MenuItem;
  ed_name VARCHAR2(40);
  val     VARCHAR2(32000);
  ed_ok   BOOLEAN;
BEGIN
  mi_id  := Find_Menu_Item('PREFERENCES.SYSTEM_EDITOR');
  IF Get_Menu_Item_Property(mi_id,CHECKED) = 'TRUE' THEN
    ed_name  := 'system_editor';
  ELSE
    ed_name  := 'my_editor1';
  END IF;

  ed_id  := Find_Editor( ed_name );
  /*
  ** Afficher l'éditeur approprié à la position (10,14) de l'écran.
  ** Transmettre le contenu de :emp.comments à l'éditeur
  ** et réaffecter le contenu édité si
  ** 'ed_ok' retourne TRUE booléen.
  */
  val  :=  :emp.comments;
  Show_Editor( ed_id, val, 10,14, val, ed_ok);
  IF ed_ok THEN
     :emp.comments  := val;
  END IF;
END;


SHOW_KEYS - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Affiche l'écran Touches. Lorsque l'opérateur appuie sur une touche de fonction, Form Builder réaffiche l'application Forms telle qu'elle se présentait avant l'appel de la procédure interne SHOW_KEYS.

Syntaxe

SHOW_KEYS;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


SHOW_KEYS - Exemples

/*

** Procédure interne :  SHOW_KEYS
** Exemple :   Afficher les associations de touches de fonction valides.
*/
BEGIN
  Show_Keys;
END;


SHOW_LOV - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Affiche une fenêtre de liste de valeurs (LOV) aux coordonnées indiquées et retourne TRUE si l'opérateur sélectionne une valeur de la liste, FALSE s'il annule l'opération et sort de la liste.

Syntaxe

SHOW_LOV
  (id_lov    LOV);

SHOW_LOV
  (id_lov    LOV,
   x         NUMBER,
   y         NUMBER);
SHOW_LOV
  (nom_lov   VARCHAR2);
SHOW_LOV
  (nom_lov   VARCHAR2,
   x         NUMBER,
   y         NUMBER);

Type de procédure interne  fonction non restreinte

Retourne valeur BOOLEENNE

Mode Saisie interrogation  oui

Paramètres

id_lov	ID unique que Form Builder attribue à la LOV lors de sa création. Utilisez la procédure interne FIND_LOV pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type LOV.

nom_lov	Nom que vous avez donné à la LOV lorsque vous l'avez définie. Les données du nom sont de type VARCHAR2.

x	Coordonnée x de la LOV.

y	Coordonnée y de la LOV.

Notes d'utilisation

Lorsque SHOW_LOV est utilisée pour afficher une LOV, Form Builder ne tient pas compte de la propriété Saut automatique de la LOV.

Si vous voulez faire passer le curseur au prochain élément de navigation autorisée, utilisez la procédure interne LIST_VALUES.


SHOW_LOV - Restrictions

Si l'argument nom_lov n'est pas fourni et si aucune LOV n'est associée à l'élément en cours, Form Builder émet un message d'erreur.

Si le groupe d'enregistrements sous-jacent à la LOV contient 0 enregistrement, la valeur de retour BOOLEAN de SHOW_LOV sera FALSE.


SHOW_LOV - Exemples

/*

** Procédure interne :   SHOW_LOV
** Exemple :    Afficher une liste de valeurs (LOV) indiquée.
*/
DECLARE
  a_value_chosen BOOLEAN;
BEGIN
  a_value_chosen  := Show_Lov('my_employee_status_lov');
  IF NOT a_value_chosen THEN
    Message('Vous n'avez pas sélectionné de valeur.');
    Bell;
    RAISE Form_Trigger_Failure;
  END IF;
END;


SHOW_MENU - Procédure interne

 Exemples	   Restrictions	 Toutes les procédures internes

Description

Affiche le menu en cours s'il ne l'est pas encore. Cette procédure n'active pas le menu.

Comme SHOW_MENU n'active pas le menu, Form Builder ne permet pas que le menu masque une partie quelconque du canevas en cours. Cela étant, la totalité ou une partie du menu n'apparaît pas à l'écran si elle risque d'être recouverte par le canevas en cours.

Syntaxe

SHOW_MENU;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


SHOW_MENU - Restrictions

Cette procédure n'est utilisable que dans les environnements en mode caractère.


SHOW_MENU - Exemples

/*

** Procédure interne :  SHOW_MENU
** Exemple :   Afficher le menu si aucun canevas ne le recouvre.
*/
BEGIN
  Show_Menu;
END;


SHOW_VIEW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Affiche le canevas aux coordonnées précisées par les options de propriété Position X et Position Y du canevas. Si la vue est déjà affichée, SHOW_VIEW l'affiche devant toutes les autres vues de la même fenêtre.

Syntaxe

SHOW_VIEW
  (id_vue   ViewPort);

SHOW_VIEW
  (nom_vue  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_vue	ID unique que Form Builder attribue à la vue lorsqu'il crée l'objet. Utilisez la procédure interne FIND_VIEW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type ViewPort.

nom_vue	Nom que vous avez donné à la vue lorsque vous l'avez définie. Les données du nom sont de type VARCHAR2.


SHOW_VIEW - Exemples

/*

** Procédure interne :  SHOW_VIEW
** Exemple :  Afficher par programme une vue dans la fenêtre à laquelle elle
**            a été attribuée lors de la conception.
*/
BEGIN
  Show_View('My_Stacked_Overlay');
END;


SHOW_WINDOW - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Affiche la fenêtre, soit aux coordonnées X, Y indiquées en option, soit aux coordonnées X, Y en cours de la fenêtre. Si la fenêtre indiquée est de type modal, SHOW_WINDOW s'exécute comme un appel GO_ITEM du premier élément de navigation autorisée de la fenêtre modale.

Syntaxe

SHOW_WINDOW
  (id_fenêtre   Window);

SHOW_WINDOW
  (id_fenêtre   Window,
   x            NUMBER,
   y            NUMBER);
SHOW_WINDOW
  (nom_fenêtre  VARCHAR2);
SHOW_WINDOW
  (nom_fenêtre  VARCHAR2,
   x            NUMBER,
   y            NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_fenêtre	ID unique que Form Builder attribue à la fenêtre lors de sa création. Utilisez la procédure interne FIND_WINDOW pour retourner l'ID à une variable de type approprié. Les données de l'ID sont de type Window.

nom_fenêtre	Nom que vous avez donné à la fenêtre lorsque vous l'avez définie. Les données du nom sont de type VARCHAR2.

x	Coordonnée x de la fenêtre. Entrez un nombre entier pour cet argument.

y	Coordonnée y de la fenêtre. Entrez un nombre entier pour cet argument.


SHOW_WINDOW - Exemples

/*

** Procédure interne :  SHOW_WINDOW
** Exemple :  Remplacer les coordonnées par défaut (x, y) d'un emplacement de
**            fenêtre pendant son affichage
*/
BEGIN
  Show_Window('online_help',20,5);
END;


SYNCHRONIZE - Procédure interne

 Exemples	   Restrictions	 Toutes les procédures internes

Description

Synchronise l'écran du terminal sur l'état interne de l'application Forms, c'est-à-dire que SYNCHRONIZE met à jour l'affichage écran en fonction des informations dont dispose Form Builder dans sa représentation interne de l'écran.

Syntaxe

SYNCHRONIZE;

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


SYNCHRONIZE - Restrictions

SYNCHRONIZE ne met à jour l'affichage écran que si les deux conditions ci-dessous sont remplies :

•	Form Builder est au niveau élément dans la hiérarchie des applications Forms (c'est-à-dire que SYSTEM.CURRENT_ITEM n'est pas NULL).


SYNCHRONIZE - Exemples

/*

** Procédure interne :  SYNCHRONIZE
** Exemple :  Exécuter un effet d'odomètre en mettant à jour l'écran lorsque
**            la valeur d'un élément change rapidement.
**            Sans synchronisation, l'écran n'est généralement mis à jour
**            que lorsque Form Builder a fini d'exécuter tous les déclencheurs
**            et revient pour une entrée de données utilisateur.
*/
BEGIN
  FOR j IN 1..1000 LOOP
     :control.units_processed  := j;
    SYNCHRONIZE;
    Process_Element(j);
  END LOOP;
END;


TERMINATE - Procédure interne

 Restrictions	  Toutes les procédures internes

Description

Permet de mettre fin à la saisie d'une application Forms ou d'une boîte de dialogue. Cette fonction équivaut à appuyer sur [ACCEPTER].

Syntaxe

TERMINATE;

Type de procédure interne   fonction restreinte

Paramètres

aucun


TERMINATE - Restrictions

Cette procédure interne ne s'applique qu'à la boîte de dialogue de saisie des valeurs de paramètre.


TO_VARIANT - Procédure interne

 Toutes les procédures internes

Description

Crée une variante OLE et lui attribue une valeur. Il existe quatre versions de cette fonction.

Syntaxe

FUNCTION TO_VARIANT
  (newval NUMBER,
   vtype VT_TYPE
   persistence BOOLEAN)
RETURN newvar OLEVAR;

...ou...

FUNCTION TO_VARIANT
  (newval VARCHAR2,
   vtype VT_TYPE
   persistence BOOLEAN)
RETURN newvar OLEVAR;

...ou...

FUNCTION TO_VARIANT
  (source_table,
   vtype VT_TYPE
   arrspec VARCHAR2, persistence BOOLEAN)
RETURN newvar OLEVAR;

...ou...

FUNCTION TO_VARIANT
  (var OLEVAR,
   vtype VT_TYPE
   arrspec VARCHAR2, persistence BOOLEAN)
RETURN newvar OLEVAR;

Type de procédure interne  fonction non restreinte

Retourne   la variante OLE que vous venez de créer.

Paramètres

newval	Valeur à attribuer à la variante OLE que vous venez de créer.
vtype	Type OLE VT_TYPE à attribuer à la variante que vous venez de créer. Il s'agit d'un paramètre facultatif. Si vous ne le précisez pas, la valeur par défaut VT_R8 est attribuée à la version NUMBER de la fonction. Pour la version VARCHAR2, la valeur par défaut est VT_BSTR. Pour la version Table, la valeur par défaut est déterminée à partir des types PL/SQL de la table. Pour la version OLEVAR, la valeur par défaut correspond au type de la variante source.
persistence	Permet de contrôler la persistance de la variante après sa création. La valeur booléenne TRUE définit la variante comme étant persistante ; la valeur FALSE la définit comme étant non persistante. Ce paramètre est facultatif. S'il n'est pas défini, la valeur par défaut est non persistante.
source_table	Table PL/SQL existante utilisée pour l'établissement des limites et des valeurs de la table de variantes que vous venez de créer. Il existe plusieurs types de table source.
arrspec	Indique le ou les éléments sélectionnés d'une table source qui doivent être utilisés pour créer la nouvelle variante. La limite inférieure commence toujours à 1. Pour plus d'informations, reportez-vous à Caractéristiques des tableaux OLE. Il s'agit d'un paramètre facultatif. Si vous ne le précisez pas, la table ou la variante source entière est utilisée.
var	Variante OLE existante dont la valeur doit être attribuée à la nouvelle variante. (La variante source peut être une table.)
Notes d'utilisation

•	Cette fonction crée en premier lieu une variante vide et lui attribue une valeur. Elle offre une version combinée des opérations CREATE_VAR et SET_VAR.

•	Cette fonction TO_VARIANT constitue également la version inverse de la fonction VAR_TO_*.

•	Notez que la version OLEVAR de cette fonction diffère des versions NUMBER, VARCHAR2 et Table en ce sens qu'elle utilise la variante OLE comme source et non comme valeur équivalente PL/SQL.


UNSET_GROUP_SELECTION - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Syntaxe

UNSET_GROUP_SELECTION
  (id_groupe_enreg  RecordGroup,
   no_ligne      NUMBER);

UNSET_GROUP_SELECTION
  (nom_groupe_enreg  VARCHAR2,
   no_ligne        NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Description

Permet de démarquer la ligne indiquée dans un groupe d'enregistrements donné. Utilisez cette procédure pour démarquer les lignes sélectionnées, par programme, par un appel précédent à SET_GROUP_SELECTION.

Les lignes sont numérotées séquentiellement depuis 1. Si vous sélectionnez les lignes 3, 8 et 12, par exemple, celles-ci sont considérées par Form Builder comme étant les sélections 1, 2 et 3. Vous pouvez annuler toute sélection de ligne pour le groupe entier en appelant la procédure interne RESET_GROUP_SELECTION.

Paramètres

id_groupe_enreg	ID unique que Form Builder attribue au groupe d'enregistrements lors de sa création. Utilisez la procédure interne FIND_GROUP pour retourner l'ID à une variable. Les données de l'ID sont de type RecordGroup.

nom_groupe_enreg	Nom que vous avez donné au groupe d'enregistrements lorsque vous l'avez créé. Les données du nom sont de type VARCHAR2.

no_ligne	Numéro de la ligne de groupe d'enregistrement que vous voulez sélectionner. La valeur à indiquer est de type NUMBER.


UNSET_GROUP_SELECTION - Exemples

/*

** Procédure interne :  UNSET_GROUP_SELECTION
** Exemple :   Supprimer toutes les lignes paires sélectionnées dans le
**            groupe d'enregistrements dont l'id est fourni comme
**            paramètre.
*/
PROCEDURE Clear_Even_Rows ( rg_id RecordGroup ) IS
BEGIN
  FOR j IN 1..Get_Group_Row_Count(rg_id) LOOP
    IF MOD(j,2)=0 THEN
      Unset_Group_Selection( rg_id, j );
    END IF;
  END LOOP;
END;


UP - Procédure interne

  Rubriques connexes	 Toutes les procédures internes

Description

Permet de naviguer dans l'enregistrement jusqu'à l'instance de l'élément en cours ayant le plus petit numéro de séquence suivant.

Syntaxe

UP;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


UPDATE_CHART - Procédure interne

 Toutes les procédures internes

Description

Bloc de données mis à jour dès qu'il est interrogé ou lorsque ses modifications sont enregistrées dans la base de données. Par défaut, lors d'une mise à jour, tout graphique basé sur le bloc de données est automatiquement mis à jour. Vous pouvez utiliser la procédure interne UPDATE_CHART pour qu'un élément graphique soit explicitement mis à jour, même si le bloc de données sur lequel il est basé n'est pas modifié. Par exemple, vous pouvez mettre à jour le graphique pour qu'il fasse apparaître les modifications non enregistrées dans le bloc de données.

Syntaxe

PROCEDURE UPDATE_CHART
  (nom_graphique VARCHAR2,
   id_liste_param TOOLS.PARAMLIST
);

PROCEDURE UPDATE_CHART
  (nom_graphique VARCHAR2,
   nom_liste_param VARCHAR2
);

PROCEDURE UPDATE_CHART
  (id_graphique FORMS4C.ITEM,
   id_liste_param TOOLS.PARAMLIST
);

PROCEDURE UPDATE_CHART
  (id_graphique FORMS4C.ITEM,
   nom_liste_param VARCHAR2
);

PROCEDURE UPDATE_CHART
  (id_graphique FORMS4C.ITEM
);

PROCEDURE UPDATE_CHART
  (nom_graphique VARCHAR2
);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_graphique	Indique l'ID unique du graphique.

nom_graphique	Indique le nom unique du graphique.

id_liste_param	Indique l'ID unique de la liste des paramètres du graphique.

nom_liste_param	Indique le nom unique de la liste des paramètres du graphique.


UPDATE_RECORD - Procédure interne

 Restrictions	  Toutes les procédures internes

Description

Lors d'un appel à partir d'un déclencheur On-Update, permet de lancer le traitement Form Builder par défaut pour mettre un enregistrement à jour dans la base de données au cours de la transaction d'inscription et de validation.

Cette procédure interne est incluse principalement pour des applications qui s'exécutent sur une source de données non Oracle.

Syntaxe

UPDATE RECORD;

Type de procédure interne  procédure restreinte

Mode Saisie interrogation  non

Paramètres

aucun


UPDATE_RECORD - Restrictions

Cette procédure interne n'est valide que dans un déclencheur On-Update.


USER_EXIT - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'appeler le user exit nommé dans la chaîne_user_exit.

Syntaxe

USER_EXIT
  (chaîne_sortie_utilisateur  VARCHAR2);

USER_EXIT
  (chaîne_sortie_utilisateur  VARCHAR2,
   chaîne_erreur      VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

chaîne_user_exit	Nom du user exit que vous voulez appeler, y compris tous les paramètres.

chaîne_erreur	Message d'erreur défini par l'utilisateur que Form Builder affiche en cas d'échec du user exit.


USER_EXIT - Exemples

/*

** Procédure interne :  USER_EXIT
** Exemple :   Appeler un programme en langage de 3e génération par le nom avec
**            lequel il a été correctement lié à votre exécutable Form Builder en cours.
**            Le sous-programme de user exit doit analyser
**            l'argument de chaîne qui lui est transmis afin de choisir la
**            fonctionnalité à exécuter.
*/
PROCEDURE Command_Robotic_Arm( cmd_string VARCHAR2 ) IS
BEGIN
  /*
  ** Appeler une fonction C 'RobotLnk' pour initialiser la
  ** carte de communication avant d'envoyer un message au robot.
  */
  User_Exit('RobotLnk INITIALIZE Unit=6,CmdToFollow=1');
  IF NOT Form_Success THEN
    Message('Echec d'initialisation de Robot 6');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Transmettre au robot l'argument de chaîne sous forme de commande.
  */
  User_Exit('RobotLnk SEND Unit=6,Msg='||cmd_string );
  IF NOT Form_Success THEN
    Message('Commande non comprise par Robot 6');
    RAISE Form_Trigger_Failure;
  END IF;
  /*
  ** Fermer la voie de communication du robot.
  */
  User_Exit('RobotLnk DEACTIVATE Unit=6');
  IF NOT Form_Success THEN
    Message('Echec de désactivation de Robot 6');
    RAISE Form_Trigger_Failure;
  END IF;

  /*
  ** Le user exit ajoutera un code de synchronisation dans l'élément
  ** appelé 'CONTROL.ROBOT_STATUS'.
  */
  Message('Commande exécutée avec succès par Robot 6'||
      ' in '||TO_CHAR(:control.robot_timing)||
      ' seconds.');
END;


VALIDATE - Procédure interne

 Exemples	     Rubriques connexes	 Toutes les procédures internes

Description

Permet d'imposer à Form Builder d'exécuter immédiatement le traitement de validation pour la portée de validation indiquée.

Syntaxe

VALIDATE
  (portée_validation  NUMBER);

Type de procédure interne :

procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

portée_validation	Indiquez l'une des portées suivantes :

DEFAULT_SCOPE  Permet d'exécuter la validation normale pour la portée par défaut, déterminée par la plate-forme runtime.

Remarque : Si vous modifiez la portée via SET_FORM_PROPERTY(VALIDATION UNIT), puis que vous appeliez ensuite VALIDATE(DEFAULT_SCOPE), vous remplacerez la portée par défaut telle qu'elle est définie dans le module Application Forms. Dans ce cas, Form Builder ne validera pas à la portée par défaut, mais à la portée définie par SET_FORM_PROPERTY.

FORM_SCOPE  Permet d'exécuter la validation normale pour l'application Forms en cours.

BLOCK_SCOPE  Permet d'exécuter la validation normale pour le bloc en cours.

RECORD_SCOPE  Permet d'exécuter la validation normale pour l'enregistrement en cours.

ITEM_SCOPE  Permet d'exécuter la validation normale pour l'élément en cours.

Remarque sur le comportement à l'exécution

Si un champ non valide est détecté au cours de la validation, le curseur ne se place pas dessus ; il reste sur le champ précédent.


VALIDATE - Exemples

/*

** Procédure interne :  VALIDATE
** Exemple :  Insérer dans une variable globale la valeur
**           de clé primaire indiquée par l'utilisateur, puis
**           valider le bloc en cours.
** Déclencheur :  When-New-Item-Instance
*/
BEGIN
  IF :Emp.Empno IS NOT NULL THEN
   :Global.Employee_Id := :Emp.Empno;
    Validate(block_scope);
      IF NOT Form_Success THEN
        RAISE Form_Trigger_Failure;
      END IF;
    Execute_Query;
  END IF;
END;


VARPTR_TO_VAR

 Toutes les procédures internes

Description

Transforme un pointeur de variante en variante simple.

Syntaxe

FUNCTION VARPTR_TO_VAR
  (variant OLEVAR, vtype VT_TYPE)
RETURN changed OLEVAR;

Type de procédure interne  fonction non restreinte

Retourne  la variante transformée.

Paramètres

variant	Pointeur de la variante OLE à transformer en variante.
vtype	Type OLE VT_TYPE à attribuer à la variante transformée. Il s'agit d'un paramètre facultatif. S'il n'est pas précisé, la valeur par défaut est VT_VARIANT.
Notes d'utilisation

•	Cette fonction supprime le type VT_BYREF de la variante.

•	Si la variante n'est pas de type VT_BYREF, elle est censée contenir une adresse du type indiqué dans le paramètre vtype et elle est déréférencée en conséquence.

•	Si le pointeur a pour valeur NULL ou si la variante est de type VT_NULL, la valeur VT_EMPTY est retournée.


VAR_TO_TABLE

 Toutes les procédures internes

Description

Lit une variante de tableau OLE et remplit une table PL/SQL à partir de ces informations.

Syntaxe

PROCEDURE VAR_TO_TABLE
  (var OLEVAR,
   target_table,
   arrspec VARCHAR2);

Type de procédure interne  procédure non restreinte

Paramètres

var	Variante constituant le tableau source.
target_table	Table PL/SQL à remplir.
arrspec	Indique les lignes, les colonnes ou les éléments du tableau source à utiliser. Reportez-vous à Caractéristiques des tableaux OLE pour plus d'informations. Il s'agit d'un paramètre facultatif. S'il n'est pas précisé, tous les éléments du tableau source sont utilisés.
Notes d'utilisation

Pour effectuer des opérations similaires sur d'autres types de données, utilisez la fonction VAR_TO_type.


VAR_TO_<type>

 Toutes les procédures internes

Description

Lit une variante OLE et transforme sa valeur en un type PL/SQL équivalent.

Il existe trois versions de la fonction (déterminées par la valeur <type>), une pour chacun des types CHAR, NUMBER et OBJ.

Syntaxe

FUNCTION VAR_TO_CHAR
  (var OLEVAR, arrspec VARCHAR2)
RETURN retval VARCHAR2;

...ou...

FUNCTION VAR_TO_NUMBER
  (var OLEVAR, arrspec VARCHAR2)
RETURN retval NUMBER;

...ou...

FUNCTION VAR_TO_OBJ
  (var OLEVAR, arrspec VARCHAR2)
RETURN retval OLEOBJ;

Type de procédure interne  fonction non restreinte

Retourne  la variante dont la valeur est transformée en type PL/SQL équivalent. Notez que le type du retour dépend de la version de la fonction choisie.

Paramètres

var	Variante OLE devant être lue.
arrspec	Ce paramètre est utilisé uniquement si la variante OLE est un tableau. Il indique l'élément du tableau qui doit être lu et retourné. Pour plus d'informations, reportez-vous à Caractéristiques des tableaux OLE.
Notes d'utilisation

•	Pour retourner une table, utilisez la procédure VAR_TO_TABLE.

•	Dans la version VAR_TO_OBJ de cette fonction, l'objet retourné est local (non persistant).


VAR_TO_VARPTR

 Toutes les procédures internes

Description

Crée une variante OLE qui pointe sur une variante existante.

Syntaxe

FUNCTION VAR_TO_VARPTR
  (variant OLEVAR, vtype VT_TYPE)
RETURN newpointer OLEVAR;

Type de procédure interne  fonction non restreinte

Retourne  la variante créée

Paramètres

variant	Variante OLE sur laquelle vous pointez.
vtype	Type à attribuer à la variante OLE créée. Les types autorisés sont VT_BYREF, VT_PTR et VT_NULL. Il s'agit d'un paramètre facultatif. S'il n'est pas précisé, la valeur par défaut est VT_BYREF.
Notes d'utilisation

•	Si la variante sur laquelle vous devez pointer est de type VT_EMPTY, le pointeur créé est de type VT_NULL, quelle que soit l'indication relative au type vtype dans la fonction.

•	Si le type vtype est paramétré sur VT_BYREF ou sur la valeur par défaut VT_BYREF, le pointeur créé est de type VT_BYREF plus le type de la variante source.

•	Si le type vtype ne dispose pas du paramètre VT_BYREF, le pointeur créé est de type VT_PTR et pointe sur le contenu de la variante.


VBX.FIRE_EVENT

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de déclencher un événement pour le contrôle VBX.

Syntaxe

VBX.FIRE_EVENT
  (id_élément       ITEM,
   nom_événement    VARCHAR2,
   id_liste_param  PARAMLIST);

VBX.FIRE_EVENT
  (id_élément         ITEM,
   nom_événement      VARCHAR2,
   nom_liste_param  VARCHAR2);
VBX.FIRE_EVENT
  (nom_élément     VARCHAR2,
   nom_événement    VARCHAR2,
   id_liste_param  PARAMLIST);
VBX.FIRE_EVENT
  (nom_élément       VARCHAR2,
   nom_événement      VARCHAR2,
   nom_liste_param  VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder attribue à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable correctement indiquée. Les données de l'ID sont de type ITEM.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

nom_événement	Nom de l'événement envoyé au contrôle VBX. Les données du nom sont de type VARCHAR2.

id_liste_param	ID unique que Form Builder attribue à la liste de paramètres lors de sa création. Les données de l'ID sont de type PARAMLIST.

nom_liste_param	Nom que vous avez donné à l'objet liste de paramètres lorsque vous l'avez créé. Les données du nom sont de type VARCHAR2.


VBX.FIRE_EVENT - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


VBX.FIRE_EVENT - Exemples

/*

** Procédure interne :  VBX.FIRE_EVENT
** Exemple :   La procédure interne VBX.FIRE_EVENT déclenche un
**            événement SpinDown pour le contrôle VBX SpinButton.
** Déclencheur :   When-Button-Pressed
*/
DECLARE
 ItemName VARCHAR2(40) := 'SPINBUTTON';
 PL_ID  PARAMLIST;
 PL_NAME  VARCHAR2(20) := 'EName';
BEGIN
 PL_ID := Get_Parameter_List(PL_NAME);
 IF id_null(PL_ID) THEN
  PL_ID := Create_Parameter_List(PL_NAME);
 END IF;
 VBX.FIRE_EVENT(ItemName,'SpinDown',PL_ID);
END;


VBX.GET_PROPERTY

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'obtenir la valeur d'une propriété à partir d'un contrôle VBX.

Syntaxe

VBX.GET_PROPERTY
  (id_élément   ITEM,
   propriété  VARCHAR2);

VBX.GET_PROPERTY
  (nom_élément  VARCHAR2,
   propriété   VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  VARCHAR2

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder attribue à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable correctement indiquée. Les données de l'ID sont de type ITEM.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

propriété	Propriété ou élément d'un tableau de propriétés pour un contrôle VBX. Un ensemble de propriétés VBX existe pour tout contrôle VBX donné. Exemples de propriétés VBX : Largeur, Hauteur et Taille de police. Les données de la propriété sont de type VARCHAR2.


VBX.GET_PROPERTY - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


VBX.GET_PROPERTY - Exemples

/*

** Procédure interne :  VBX.GET_PROPERTY
** Exemple :   Utiliser la procédure interne VBX.GET_PROPERTY pour obtenir la
**            propriété CURRTAB de l'élément VBX nommé TABCONTROL.
**            La valeur de propriété de CURRTAB est retournée à la
**            variable TabNumber et est utilisée comme entrée dans le
**            sous-programme Goto_Tab_Page défini par l'utilisateur.
** Déclencheur :   When-Custom-Item-Event
*/
DECLARE
 TabEvent varchar2(80);
 TabNumber char;
BEGIN
 TabEvent := :system.custom_item_event;
 IF (UPPER(TabEvent) = 'CLICK') then
  TabNumber := VBX.Get_Property('TABCONTROL','CurrTab');
  Goto_Tab_Page(TO_NUMBER(TabNumber));
 END IF;
END;


VBX.GET_VALUE_PROPERTY

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de rechercher la propriété Valeur de contrôle VBX d'un contrôle VBX.

Syntaxe

VBX.GET_VALUE_PROPERTY
  (id_élément  ITEM);

VBX.GET_VALUE_PROPERTY
  (nom_élément  VARCHAR2);

Type de procédure interne  fonction non restreinte

Retourne  propriété

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder attribue à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable correctement indiquée. Les données de l'ID sont de type ITEM.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.


VBX.GET_VALUE_PROPERTY - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


VBX.GET_VALUE_PROPERTY - Exemples

/*

** Procédure interne :  VBX.GET_VALUE_PROPERTY
** Exemple :   Transmettre la Valeur de contrôle VBX au sous-programme
**            Verify_Item_Value défini par l'utilisateur. Ce sous-programme
**            vérifie que la valeur affichée est la valeur attendue.
*/
DECLARE
 ItemName VARCHAR2(40) := 'SPINBUTTON';
 VBX_VAL_PROP VARCHAR2(40);
BEGIN
 VBX_VAL_PROP := VBX.Get_Value_Property(ItemName);
 Verify_Item_Value(VBX_VAL_PROP);
END;


VBX.INVOKE_METHOD

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Syntaxe

VBX.INVOKE_METHOD(id_élément, nom_méthode, w, x, y, z) ;

VBX.INVOKE_METHOD(id_élément, nom_méthode, w, x, y, z);

Type de procédure interne :

procédure non restreinte

Mode Saisie interrogation  oui

Description

Permet d'appeler la méthode indiquée sur l'élément. Si la méthode nécessite des arguments, ceux-ci doivent être indiqués. Les arguments doivent être fournis dans l'ordre attendu par le contrôle VBX. Les méthodes valides pour les contrôles VBX ainsi qu'une liste des arguments attendus par ces contrôles peuvent être consultées dans le module accompagnant le contrôle VBX..

Paramètres

id_élément	ID unique que Form Builder attribue à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable correctement indiquée. Les données de l'ID sont de type ITEM.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

nom_méthode	Nom de la méthode à appeler. Les données du nom sont de type VARCHAR2.

w, x, y, z	Arguments facultatifs pouvant être requis pour les contrôles VBX. Les données des arguments sont de type VARCHAR2.


VBX.INVOKE_METHOD - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


VBX.INVOKE_METHOD - Exemples

/*

** Procédure interne :  VBX.INVOKE_METHOD_PROPERTY
** Exemple :   Ajouter une entrée dans une zone de liste déroulante.
**            Cette entrée est le premier argument facultatif.
**            L'endroit où elle doit figurer est le second
**            argument facultatif.
*/
DECLARE
 ItemName VARCHAR2(40) := 'COMBOBOX';
BEGIN
 VBX.Invoke_Method(ItemName,'ADDITEM','blue','2');
END;


VBX.SET_PROPERTY

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de définir la propriété indiquée pour un contrôle VBX..

Syntaxe

VBX.SET_PROPERTY
  (id_élément   ITEM,
   propriété  VARCHAR2,
   valeur     VARCHAR2);

VBX.SET_PROPERTY
  (id_élément  VARCHAR2,
   propriété   VARCHAR2,
   valeur      VARCHAR2);

Type de procédure interne :

procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder attribue à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable correctement indiquée. Les données de l'ID sont de type ITEM.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

propriété	Propriété ou élément d'un tableau de propriétés pour un contrôle VBX. Un ensemble de propriétés VBX existe pour tout contrôle VBX donné. Exemples de propriétés VBX : Largeur, Hauteur et Taille de police. Les données de la propriété sont de type VARCHAR2.

valeur	Valeur à appliquer à la propriété VBX. Les données de la valeur sont de type VARCHAR2.


VBX.SET_PROPERTY - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


VBX.SET_PROPERTY - Exemples

/*

** Procédure interne :  VBX.SET_PROPERTY
** Exemple :   Utiliser la procédure interne VBX.SET_PROPERTY pour définir
**            la propriété Index du contrôle VBX SpinButton.
** Déclencheur :   When-Button-Pressed
*/
DECLARE
 ItemName VARCHAR2(40) := 'SPINBUTTON';
 VBX_VAL_PROP VARCHAR2(40);
 VBX_VAL  VARCHAR2(40);
BEGIN
 IF :System.Custom_Item_Event = 'SpinDown' THEN
  VBX_VAL_PROP := 'Index';
  VBX_VAL := '5';
  VBX.Set_Property(ItemName,VBX_VAL_PROP,VBX_VAL);
 END IF;
END;


VBX.SET_VALUE_PROPERTY

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet de définir la propriété Valeur de contrôle VBX pour un contrôle VBX.

Syntaxe

VBX.SET_VALUE_PROPERTY
  (id_élément   ITEM,
   propriété  VARCHAR2);

VBX.SET_VALUE_PROPERTY
  (nom_élément  VARCHAR2,
   propriété   VARCHAR2);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

id_élément	ID unique que Form Builder attribue à l'élément lors de sa création. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable correctement indiquée. Les données de l'ID sont de type ITEM.

nom_élément	Nom de l'objet créé lors de la conception. Le type de données du nom est une chaîne VARCHAR2.

propriété	Propriété pour la propriété Valeur de contrôle VBX de Form Builder. Un ensemble de propriétés VBX existe pour tout contrôle VBX donné. Exemples de propriétés VBX : Largeur, Hauteur et Taille de police. Les données de la propriété sont de type VARCHAR2.


VBX.SET_VALUE_PROPERTY - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


VBX.SET_VALUE_PROPERTY - Exemples

/*

** Procédure interne :  VBX.SET_VALUE_PROPERTY
** Exemple :   Utiliser la procédure interne VBX.SET_VALUE_PROPERTY
**            pour définir la propriété Valeur de contrôle VBX.
*/
DECLARE
 ItemName VARCHAR2(40) := 'SPINBUTTON';
 VBX_VAL_PROP VARCHAR2(40);
BEGIN
 IF :System.Custom_Item_Event = 'SpinDown' THEN
  VBX_VAL_PROP := 'Index';
  VBX.Set_Value_Property(ItemName,VBX_VAL_PROP);
 END IF;
END;


WEB.SHOW_DOCUMENT;
WEB.SHOW_DOCUMENT - Procédure interne

 Toutes les procédures internes

Syntaxe :

SHOW_DOCUMENT(url, cible);

Type de procédure interne :   procédure non restreinte

Mode Saisie interrogation :  oui

Description :

Permet d'indiquer l'URL et la fenêtre cible d'une application Web.

Paramètres:

url	Le type de données est VARCHAR2. Indique l'URL (Uniform Resource Locator) du document à charger.

cible	Le type de données est VARCHAR2. Indique l'une des cibles suivantes :

_SELF  Charge le document dans le même cadre ou la même fenêtre que le document source.

_PARENT Charge le document cible dans la fenêtre père ou dans l'ensemble des cadres contenant la référence hypertexte. Si la référence figure dans une fenêtre ou dans un cadre de niveau supérieur, cette cible est l'équivalent de la cible _self.

_TOP Charge le document dans la fenêtre contenant le lien hypertexte, remplaçant tous les cadres affichés dans la fenêtre.

_BLANK Charge le document dans une nouvelle fenêtre sans nom de niveau supérieur.

Restrictions

Ne peut être utilisé que dans une application Forms exécutée à partir du Web.

Exemple :

/*

** Procédure interne :  WEB.SHOW_DOCUMENT
** Exemple :   Afficher l'URL indiqué dans la fenêtre cible.
*/
BEGIN
  Web.Show_Document(http://www.abc.com', '_self');
END;


WHERE_DISPLAY - Procédure interne

 Restrictions	  Toutes les procédures internes

Description

Permet d'activer et de désactiver l'option de navigation de menu Where. Dans un menu plein écran, l'option Where option permet d'afficher des informations sur l'endroit où se trouve l'utilisateur dans la hiérarchie de menus.

Syntaxe

WHERE_DISPLAY;

Type de procédure interne :

procédure non restreinte

Mode Saisie interrogation  oui

Paramètres

aucun


WHERE_DISPLAY - Restrictions

La procédure interne WHERE_DISPLAY n'est valide que dans un menu plein écran.


WRITE_IMAGE_FILE - Procédure interne

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'enregistrer l'image depuis un élément image Form Builder dans le fichier indiqué.

Syntaxe

WRITE_IMAGE_FILE
 (nom_fichier            VARCHAR2,
  type_fichier            VARCHAR2,
  id_élément              ITEM,
  qualité_compression  NUMBER,
  profondeur_image          NUMBER);

WRITE_IMAGE_FILE
  (nom_fichier            VARCHAR2,
   type_fichier            VARCHAR2,
   nom_élément            VARCHAR2,
   qualité_compression  NUMBER,
   profondeur_image          NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation oui

Paramètres

nom_fichier	Nom du fichier où l'image est stockée. Ce nom doit être conforme aux conventions d'appellation de votre système d'exploitation.

type_fichier	Type de fichier de l'image : BMP, CALS, GIF, JFIF, JPEG, PICT, RAS, TIFF ou TPIC. Le paramètre prend un argument de type VARCHAR2.

id_élément	ID unique que Form Builder attribue à l'image lorsque vous la créez. Utilisez la procédure interne FIND_ITEM pour retourner l'ID à une variable correctement indiquée. Les données de l'ID sont de type ITEM.

nom_élément	Nom que vous avez donné à l'élément image lorsque vous l'avez créé. Les données du nom sont de type VARCHAR2.

qualité_compression	Degré de compression que Form Builder applique à l'image lorsqu'il l'enregistre dans le fichier (facultatif). Le type de données est VARCHAR2. Valeurs valides : NO_COMPRESSION, MINIMIZE_COMPRESSION, LOW_COMPRESSION, MEDIUM_COMPRESSION, HIGH_COMPRESSION, MAXIMIZE_COMPRESSION

profondeur_image	Degré de profondeur que Form Builder applique à l'image lorsqu'il l'enregistre dans le fichier (facultatif). Le type de données est VARCHAR2. Valeurs valides : ORIGINAL_DEPTH, MONOCHROME, GRAYSCALELUT (Lookup Table), RGB (Red, Green, Blue)


WRITE_IMAGE_FILE - Restrictions

•	Le type de fichier indiqué doit être compatible avec le type de fichier réel de l'image.

•	Comme pour tout fichier, si vous enregistrez l'image dans un fichier existant, vous remplacez le contenu du fichier par celui de l'élément image.

•	Bien que vous puissiez lire des fichiers PCD et PCX depuis le système de fichiers ou la base de données, vous ne pouvez cependant pas enregistrer de fichiers image dans le système de fichiers en format PCD ou PCX (à l'aide de WRITE_IMAGE_FILE). (Si vous utilisez un type de fichier restreint lorsque vous enregistrez des images dans le système de fichiers, Form Builder donne par défaut au fichier image le format TIFF.)

•	La résolution de l'image sera inférieure si vous écrivez dans un fichier JPEG à partir d'un élément image issu de Form Builder.


WRITE_IMAGE_FILE - Exemples

/* Procédure interne : WRITE_IMAGE_FILE

**
** Enregistrer le contenu d'un élément image dans un fichier
** du système de fichiers en un format image valide.
*/
BEGIN
  WRITE_IMAGE_FILE('output.tif',
                   'TIFF',
                   'emp.photo_image_data',
                   maximize_compression,
                   original_depth);
END;


WRITE_SOUND_FILE - Procédure interne

 Restrictions	    Rubriques connexes	 Toutes les procédures internes

Description

Permet d'enregistrer dans le fichier indiqué des données son depuis un élément son donné.

Syntaxe

WRITE_SOUND_FILE(nom_fichier     VARCHAR2,
                  type_fichier   VARCHAR2,
                  id_élément     ITEM,
                  compression    NUMBER,
                  qualité_son    NUMBER,
                  canaux                     NUMBER);

WRITE_SOUND_FILE(nom_fichier     VARCHAR2,
                 type_fichier    VARCHAR2,
                 nom_élément     VARCHAR2,
                 compression     NUMBER,
                 qualité_son     NUMBER,
                 canaux          NUMBER);

Type de procédure interne  procédure non restreinte

Mode Saisie interrogation  oui

Paramètres:

nom_fichier	Nom qualifié complet du fichier dans lequel vous souhaitez enregistrer des données son.

type_fichier	Type de fichier pour le fichier de données son. Valeurs valides : AU, AIFF, AIFF-C et WAVE.  Remarque : Bien que ce paramètre soit facultatif, il doit être indiqué si vous souhaitez en augmenter les performances. Sinon, Form Builder donne par défaut un type de fichier : WAVE (Microsoft Windows), AIFF-C  (Macintosh) ou AU (tous les autres).

id_élément	ID unique que Form Builder a donné à l'élément son lorsque vous l'avez créé.

nom_élément	Nom que vous avez donné à l'élément son lorsque vous l'avez créé.

compression	Si les données son doivent être compressées avant que avant que Form Builder enregistre les données dans le fichier. Valeurs valides : COMPRESSION_ON, COMPRESSION_OFF et ORIGINAL_SETTING (conserve la définition de compression par défaut des données). Ce paramètre est facultatif : la valeur par défaut, si omise, est ORIGINAL_SETTING.

qualité_son	Qualité de la fréquence d'échantillonnage et de la profondeur pour les données son. Valeurs valides : HIGHEST_SOUND_QUALITY, HIGH_SOUND_QUALITY, MEDIUM_SOUND_QUALITY, LOW_SOUND_QUALITY, LOWEST_SOUND_QUALITY et ORIGINAL_QUALITY. Ce paramètre est facultatif : la valeur par défaut, si omise, est ORIGINAL_QUALITY.

canaux	Si Form Builder doit enregistrer dans le fichier son les données son en monophonie ou en stéréophonie. Valeurs valides : MONOPHONIC, STEREOPHONIC et ORIGINAL_SETTING (conserve la définition de canal par défaut des données). Ce paramètre est facultatif : la valeur par défaut, si omise, est ORIGINAL_SETTING.


WRITE_SOUND_FILE - Restrictions

•	Pour pouvoir utiliser les procédures internes PLAY_SOUND, READ_SOUND_FILE et WRITE_SOUND_FILE afin de lire et/ou enregistrer des données son dans un fichier, vous devez d'abord créer un élément son et y placer le point d'insertion avant que les appels aux procédures internes ne soient exécutés. Bien que l'élément son sera représenté par le contrôle d'élément son à la conception, les utilisateurs ne pourront pas s'en servir à l'exécution. Ainsi, vous devez "masquer" l'élément son derrière un autre objet sur le canevas de sorte que les utilisateurs ne puissent pas voir le contrôle à l'exécution. (Pour placer un point d'insertion dans un élément, il ne peut être attribué à un canevas null ou avoir sa propriété Affiché défini à Non.) Par exemple, pour appeler les procédures internes READ_SOUND_FILE et PLAY_SOUND depuis un déclencheur When-Button-Pressed, placez le point d'insertion dans l'élément son "masqué" en incluant un appel à la procédure interne GO_ITEM dans le code de déclencheur avant d'appeler READ_SOUND_FILE et PLAY_SOUND.


Qu'est-ce qu'un élément calculé ?

  Rubriques connexes

Un élément calculé est un élément auquel vous attribuez par déclaration des valeurs fondées sur des calculs impliquant une ou plusieurs valeurs. Exemple : la rémunération des employés, qui change chaque fois qu'un composant du total change (salaire, primes d'un employé, etc.).

Types d'élément valides Un élément calculé doit pouvoir stocker une valeur. Vous pouvez définir comme élément calculé les types d'élément suivants :

•	case à cocher

•	élément affiché

•	élément liste

•	groupe de boutons d'option

•	élément texte

•	contrôle VBX


Remarques sur les éléments calculés

  Rubriques connexes

•	Les éléments calculés sont des éléments de contrôle qui ne peuvent être qu'affichés.

•	Les éléments calculés ne peuvent pas être des éléments de base de données.

•	Vous pouvez activer les propriétés Navigation à la souris et Navigation autorisée au clavier d'un élément calculé, mais pas ses propriétés Insertion ou Mise à jour autorisée.


A propos des modes de calcul

  Rubriques connexes

La valeur d'un élément calculé est fondée sur un calcul. Pour définir le calcul, vous devez commencer par indiquer un mode de calcul — Récapitulatif ou Formule :

• Récapitulatif — la valeur de l'élément calculé est le récapitulatif de toutes les valeurs d'un même élément dans un bloc.

• Formule — la valeur de l'élément calculé est le résultat d'une formule qui effectue des calculs impliquant une ou plusieurs valeurs.


A propos des calculs récapitulatifs

  Rubriques connexes

Un calcul récapitulatif d'un élément calculé se compose d'un seul calcul effectué sur tous les enregistrements d'un élément d'un bloc de données.

Lorsque vous utilisez les calculs récapitulatifs, notez la différence entre deux termes similaires :

• L'élément récapitulatif est l'élément calculé auquel vous attribuez une valeur. Cet élément doit se trouver soit dans un bloc de contrôle dont la propriété Enregistrement unique est définie à Oui, soit dans le même bloc que l'élément de récapitulation.

• Les valeurs de l'élément de récapitulation sont récapitulées (c'est-à-dire font l'objet d'un calcul de moyenne, de total ou autres), puis attribuées à l'élément récapitulatif. L'élément de récapitulation doit se trouver dans un bloc de données dont la propriété Interroger tous les enregistrements ou Précalculer les récapitulatifs est définie à Oui, ou dans un bloc de contrôle.

Valeur Null Si le bloc d'un élément de récapitulation est vide — ou si chaque instance de l'élément a une valeur Null — la valeur de l'élément est nulle, à moins que sa propriété Fonction récapitulative ne soit définie à Décompte, auquel cas la valeur de l'élément est zéro. Pour le calcul des éléments récapitulatifs, un bloc est considéré comme vide si, alors qu'il est en mode Saisie interrogation, il est sélectionné (jusqu'à l'activation d'un déclencheur ON_CLOSE, cette opération exclue), à moins que la propriété Précalculer les récapitulatifs du bloc ne soit définie à Oui.

Types de données valides Vous devez définir la propriété Type de données d'un élément récapitulatif à Number, à moins que la propriété Type de récapitulatif de l'élément ne soit Max ou Min, auquel cas le type de données doit refléter celui de l'élément de récapitulation qui lui est associé. Par exemple, un élément calculé qui affiche la date la plus récente (c'est-à-dire, la date maximum) dans la colonne DATE_EMBAUCHE doit avoir des données de type Date.


A propos du calcul de formule

  Rubriques connexes

Un calcul de formule attribue une valeur à un élément calculé en exécutant des calculs impliquant une ou plusieurs variables de lien ou constantes. Les variables de lien comprennent les éléments d'application Forms, les paramètres, les variables globales et les variables système.

Expression de calcul Pour définir le calcul qui attribuera des valeurs à un élément de formule, vous devez fournir une expression PL/SQL dans la propriété Formule de l'élément. Cette expression peut faire référence à des procédures internes ou à des sous-programmes écrits par l'utilisateur.

Vous ne pouvez pas entrer une instruction PL/SQL complète dans le champ de propriété de formule. Comme Form Builder ajoute en interne le code d'attribution réel à la formule, vous n'avez pas à l'ajouter vous-même ou à terminer votre expression de calcul par deux-points. Par exemple si vous définissez la propriété de formule à l'expression :

   :emp.sal + :emp.comm

Form Builder convertit cette expression en interne en une instruction complète :

   :emp.gross_comp := (:emp.sal + :emp.comm);

Valeur Null La valeur d'un élément de formule est NULL si (1) un utilisateur n'est pas passé au bloc de l'élément et qu'aucun élément du bloc de l'élément de formule n'ait reçu de valeur par une instruction PL/SQL, ou si (2) le bloc de l'élément de formule est en mode Saisie interrogation.


A propos du recalcul d'éléments calculés

  Rubriques connexes

Form Builder ajoute automatiquement à un élément calculé une marque indiquant qu'il doit être recalculé en cas de modification de la valeur d'une variable de lien intervenant dans le calcul.

Notez que l'élément n'est pas recalculé immédiatement. Parfois, il est recalculé après marquage, mais avant que la nouvelle valeur de l'élément calculé soit référencée ou affichée sur l'écran de l'utilisateur. La logique de votre application ne doit pas dépendre du moment auquel un élément calculé est recalculé.

Etat d'un enregistrement Le recalcul ne modifie pas l'état d'un enregistrement d'élément calculé, même si cet état est NEW.


A propos du recalcul d'éléments récapitulatifs

  Rubriques connexes

Form Builder ajoute à un élément récapitulatif une marque indiquant qu'il doit être recalculé lorsqu'une valeur de son élément de récapitulation est insérée, modifiée ou supprimée dans une ligne quelconque de son bloc.


A propos du recalcul d'éléments de formule

  Rubriques connexes

Un élément de formule reçoit une marque indiquant qu'il doit être recalculé en cas de modification d'une variable de lien non-système (c'est-à-dire une variable globale, un paramètre ou un élément) qui apparaît dans la formule ou dans un sous-programme écrit par l'utilisateur et référencé par la formule. Notez que Form Builder n'associe pas automatiquement de marque de recalcul à un élément en cas de changement de la valeur retournée par une procédure interne ou une variable système (référencée par la formule).

Références indirectes L'utilisation de procédures internes comme COPY, NAME_IN, DO_KEY et EXECUTE_TRIGGER peut entraîner une référence indirecte à une variable de lien. Si vous utilisez ces procédures internes dans une formule, Form Builder n'a aucun moyen de savoir qu'une variable de lien a été référencée (lors de la compilation), et n'associe donc pas de marque de recalcul à l'élément calculé pertinent lorsque la variable de lien change (lors de l'exécution). Pour éviter ce problème, codez une référence explicite pour chaque variable de lien (dans une unité de programme appelée directement ou indirectement par la formule) qui est référencée indirectement. Utilisez pour cela la procédure interne DUMMY_REFERENCE :

   temp_sal := NAME_IN('emp.sal');
   DUMMY_REFERENCE(:emp.sal);

Remarque : Il n'est pas nécessaire que la procédure interne DUMMY_REFERENCE soit exécutée pour que la variable de lien référencée soit reconnue par Form Builder (et que l'élément calculé concerné reçoive donc une marque indiquant qu'il doit être recalculé).

Procédure interne RECALCULATE Utilisez RECALCULATE pour marquer explicitement un élément de formule à recalculer. Utilisez cette procédure si une formule fait référence à une variable système ou à une procédure interne et s'il s'est produit une modification qui entraînerait le retour d'une valeur différente par la variable système ou la procédure interne. Notez que même lorsque vous appelez la procédure RECALCULATE pour un élément de formule, le recalcul n'est pas effectué immédiateemnt. Il arrive que l'élément soit recalculé avant la référence suivante à l'élément.

Attention : Pour les éléments de formule, évitez les scénarios dans lesquels la formule de l'élément calculé A appelle un sous-programme qui modifie la valeur d'une variable de lien, ce qui affecte la valeur de l'élément calculé B. Dans ce cas, il est difficile de s'assurer que la valeur de la variable de lien sera exacte par rapport à son effet sur la valeur des éléments A ou B (car Form Builder ne peut pas garantir avec précision le moment où A et B seront recalculés).


Création d'un élément calculé

  Etape suivante  [image] Exemples	   Restrictions  [image]  Rubriques connexes

Pour créer un élément calculé :

1.	Dans le Navigateur d'objet, créez un nouvel élément d'interface (et assurez-vous que cet élément est un élément de contrôle).

Conseil : Les données de l'élément doivent être d'un type compatible avec le calcul que vous voulez effectuer pour obtenir la valeur de l'élément. Par exemple, si vous voulez utiliser la fonction Somme, vous devez créer un élément interface de type Number.

2.	Cliquez deux fois sur l'icône objet de l'élément pour afficher la Palette de propriétés.

3.	Sous le noeud Calcul, définissez la propriété Mode de calcul de l'élément à Formule ou Récapitulatif.

4.	Si vous définissez le mode de calcul à :

• Formule, cliquez sur la propriété Formule, puis sur le bouton Suite pour afficher la boîte de dialogue Formule, et entrez une expression PL/SQL définissant la Formule. Cliquez sur OK pour compiler l'expression.

• Récapitulatif, utilisez la liste instantanée Fonction récapitulative pour sélectionner un type récapitulatif, puis les listes instantanées Bloc de récapitulation et Elément de récapitulation pour sélectionner le bloc et l'élément dont les valeurs seront récapitulées pour calculer une valeur pour l'élément calculé.


Création d'un élément calculé - Restrictions

• Les propriétés d'élément qui sont par défaut définies à Non lors de la compilation sont les suivantes : Elément base de données, Insertion autorisée, Clé primaire, Interrogation autorisée, Obligatoire, Mise à jour autorisée et Mettre à jour seulement si NULL.

• Les propriétés d'élément qui ne sont pas prises en compte lors de la compilation sont les suivantes : Copie valeur de l'élément, Valeur initiale, Valeur maximum autorisée et Valeur minimum autorisée.

• Vous ne pouvez pas utiliser PL/SQL pour attribuer directement une valeur à un élément calculé.

• Les utilisateurs ne peuvent pas insérer ou modifier un élément calculé.

• Un élément calculé ne peut pas être un élément de retour de LOV.

• Un élément calculé ne peut pas être un élément miroir maître ou subordonné.

• Si la valeur d'un élément de formule, dans un bloc maître, dépend de valeurs d'éléments de bloc détail — et si plusieurs lignes du bloc maître sont affichées — les valeurs de l'élément calculé pour les lignes de bloc maître non concurrentes sont dépourvues de signification.

• Une formule (et tous les sous-programmes écrits par l'utilisateur et appelés par la formule) ne peut pas faire référence à une procédure interne restreinte.

• Une formule (et tous les sous-programmes écrits par l'utilisateur et appelés par la formule) ne peut pas exécuter d'instruction DML.

• Vous ne pouvez pas créer de dépendances circulaires parmi les éléments calculés d'une application Forms.

• Vous ne pouvez pas utiliser un déclencheur When-Validate-Item avec un élément calculé. Comme un élément calculé est par définition un élément valide, cet événement de déclencheur ne se produira jamais.


Création d'un élément calculé - Exemples

Exemple

/* Exemple 1 : Définir un calcul récapitulatif destiné à

** afficher le salaire maximum de tous les employés. Créer dans
** le bloc EMP un élément affiché MAX_SAL, définir sa propriété
** Mode de calcul à Récapitulatif, sa propriété Fonction
** récapitulative à Max, sa propriété Bloc de récapitulation
** à EMP et sa propriété Elément de récapitulation à SAL.
**
** Exemple 2 : Définir un calcul de formule destiné à calculer
** la rémunération totale brute d'un employé. Créer dans le
** bloc EMP un élément d'affichage TOTAL_COMP, définir sa
** propriété Mode de calcul à Formule et sa propriété Formule
** à l'expression PL/SQL suivante :
*/
   :emp.sal + :emp.comm

/* Exemple 3 : Définir un élément Formule destiné à calculer une valeur
** différente pour la rémunération totale, en fonction du bloc dans lequel
** se trouve le curseur. L'application Forms comporte 3 blocs : 2 blocs de données
** (EMP1 et EMP2) et un bloc de contrôle (COMP). Créer dans le ** 	bloc COMP un
** élément d'affichage TOTAL_COMP qui affiche la rémunération totale.
** Définir la propriété Formule de COMP.TOTAL_COMP
** à une expression (un appel de fonction) :
*/
   total_comp_func

** La fonction TOTAL_COMP_FUNC est définie de la manière suivante :*/

   FUNCTION total_comp_func RETURN number IS
   BEGIN
     IF :system.cursor_block = 'emp1' THEN
        RETURN :emp1.sal + :emp1.comm;
     END IF;
     IF :system.cursor_block = 'emp2' THEN
        RETURN :emp2.sal + :emp2.comm;
     END IF;
     RETURN null;
   END;

/* Form Builder recalcule automatiquement COMP.TOTAL_COMP lorsque la valeur de :EMP1.SAL, :EMP1.COMM, :EMP2.SAL
** ou de :EMP2.COMM est modifiée. Cependant, Form Builder
** ne recalcule pas COMP.TOTAL_COMP lorsqu'un utilisateur
** navigue entre les blocs, car les modifications apportées
** aux variables système n'entraînent pas automatiquement
** de recalcul. Pour s'assurer que la valeur affichée est
** toujours correcte, définir, au niveau Application Forms,
** un déclencheur PRE-BLOCK contenant
** l'instruction :
*/
   RECALCULATE('comp.total_comp');


Interface de l'Editeur de déclencheur de base de données

  Rubriques connexes

L'Editeur de déclencheur de base de données permet de créer et de modifier les déclencheurs BEFORE/AFTER des tables, ainsi que les déclencheurs INSTEAD OF des vues et des vues d'objet (si vous êtes connecté à Oracle8).

Pour définir un nouveau déclencheur :

1	Sélectionnez un nom utilisateur (schéma) dans la liste déroulante Propriétaire de la table.

2	Sélectionnez un nom de table dans la liste déroulante Table.

Elle répertorie les noms des tables appartenant à l'utilisateur qui apparaît dans le champ Propriétaire de la table. Si vous sélectionnez un nom utilisateur différent du vôtre dans ce champ, la liste déroulante Table ne répertorie que les tables auxquelles vous avez accès parmi celles du propriétaire sélectionné.

(Concerne uniquement les vues.) Pour définir un déclencheur INSTEAD OF pour une vue d'objet, cliquez sur la flèche située à côté de la liste Table pour afficher la liste déroulante, puis sélectionnez Vue. Choisissez ensuite un nom de vue dans la liste déroulante Vue.

3	Cliquez sur Nouveau pour créer un déclencheur de base de données.

Un nom de déclencheur unique (par rapport aux autres déclencheurs appartenant au même schéma) est affecté automatiquement au nouveau déclencheur, dans la liste déroulante Nom. Vous pouvez modifier ce nom.

La liste déroulante Nom répertorie les noms des déclencheurs associés à la table (ou à la vue) affichée dans le champ Table (ou Vue). Elle ne répertorie que les noms des déclencheurs de base de données associés aux tables auxquelles vous avez accès.

4	Indiquez les options de déclenchement.

Les sections suivantes vous informent sur les différentes options que vous pouvez utiliser pour définir un déclencheur de base de données dans l'Editeur de déclencheur de base de données.

5	Une fois les options et l'action du déclencheur indiquées, cliquez sur Enregistrer pour compiler le déclencheur.

Options de déclenchement :

Avant/Après	(Concerne uniquement les tables.) Correspond à l'option BEFORE ou AFTER de la commande SQL CREATE TRIGGER. Permet d'indiquer l'instant d'activation du corps du déclencheur par rapport à l'instruction de déclenchement (par exemple, UPDATE, INSERT ou DELETE) exécutée. Les déclencheurs BEFORE sont activés avant l'exécution de l'instruction de déclenchement et les déclencheurs AFTER, après cette exécution. Les déclencheurs BEFORE et AFTER concernent les déclencheurs sur ligne et sur instruction.
Au lieu de	(Concerne uniquement les vues.) Correspond à l'option INSTEAD OF de la commande SQL CREATE TRIGGER. Oracle active le déclencheur au lieu d'exécuter l'instruction de déclenchement. Le déclencheur effectue les travaux d'insertion, de mise à jour ou de suppression directement dans les tables de base de la vue.

Cases à cocher Instruction :

UPDATE INSERT DELETE	Permet d'indiquer le type d'instruction SQL (instruction de déclenchement) qui active le corps du déclencheur. Les options possibles sont UPDATE, INSERT et DELETE. Cochez une ou plusieurs cases pour inclure la ou les options correspondantes dans l'instruction de déclenchement. Si cette instruction indique UPDATE, une liste facultative de colonnes peut être incluse dans l'instruction de déclenchement. Reportez-vous à l'option Des colonnes ci-après. Si vous sélectionnez plusieurs options, vous pouvez utiliser les prédicats conditionnels UPDATING, INSERTING et DELETING pour exécuter des blocs de code précis dans le corps du déclencheur. Reportez-vous à l'option Corps de déclencheur ci-après.

Option Des colonnes :

Des colonnes	(Concerne uniquement les tables.) Correspond à la clause OF figurant dans l'instruction de déclenchement UPDATE de la commande SQL CREATE TRIGGER. Cette option affiche la liste des colonnes de la table sélectionnée dans le champ Table. Cette liste n'est active que si l'instruction de déclenchement indique UPDATE. Cliquez sur une ou plusieurs colonnes dans cette liste pour indiquer que le déclencheur est activé uniquement lorsque l'une des colonnes sélectionnées est mise à jour. Si vous voulez que le déclencheur soit activé lorsqu'une colonne quelconque de la table est mise à jour, ne cliquez sur aucun nom de colonne. Cette option n'est pas disponible avec les déclencheurs INSTEAD OF. Oracle active ce type de déclencheur chaque fois qu'une instruction UPDATE modifie une valeur dans une colonne quelconque de la vue. Objets Oracle8 : vous ne pouvez pas indiquer de colonnes de tables imbriquées ou de colonnes LOB dans la clause OF.

Option Pour chaque instruction :

Instruction	Correspond à l'option FOR EACH STATEMENT de la commande SQL CREATE TRIGGER. Indique que le déclencheur est un déclencheur sur instruction. Oracle n'exécute qu'une seule fois ce type de déclencheur, au moment de la génération de l'instruction de déclenchement (indépendamment du nombre de lignes concernées), si la contrainte du déclencheur facultatif définie dans la clause WHEN est remplie. Cette option n'est pas disponible avec les déclencheurs INSTEAD OF.

Options Pour chaque ligne :

Ligne	Correspond à l'option FOR EACH ROW de la commande SQL CREATE TRIGGER. Indique que le déclencheur est un déclencheur sur ligne. Oracle n'exécute ce type de déclencheur qu'une seule fois pour chaque ligne affectée par l'instruction de déclenchement, et si cette ligne remplit la contrainte du déclencheur facultatif, telle qu'elle est définie dans la clause WHEN.
Création de références	Indique les noms de corrélation. Vous pouvez les utiliser dans le corps du déclencheur et dans la clause WHEN d'un déclencheur sur ligne pour faire référence de manière spécifique aux nouvelles et aux anciennes valeurs de la ligne en cours. Les noms de corrélation par défaut sont OLD et NEW. Si votre déclencheur sur ligne est associé à une table appelée OLD ou NEW, utilisez cette option pour indiquer des noms de corrélation différents, afin d'éviter toute confusion entre les noms de table et de corrélation. Concerne uniquement les déclencheurs sur ligne.
OLD comme	Permet d'indiquer un nom de corrélation pour éviter tout conflit de noms entre le nom de corrélation et le nom d'une table appelée OLD.
NEW comme	Permet d'indiquer un nom de corrélation pour éviter tout conflit de noms entre le nom de corrélation et le nom d'une table appelée NEW.
Lorsque	(Concerne uniquement les tables.) Correspond à l'expression booléenne SQL dans une clause WHEN de la commande SQL CREATE TRIGGER. Concerne uniquement les déclencheurs sur ligne. Indique une restriction de déclencheur facultatif. Si elle est incluse, l'expression SQL est calculée pour chaque ligne concernée par le déclencheur. Si le résultat du calcul de l'expression est TRUE pour une ligne, le corps du déclencheur est activé. Si le résultat du calcul de l'expression est FALSE ou NOT TRUE pour une ligne (c'est-à-dire inconnue, comme avec des valeurs nulles), le corps du déclencheur n'est pas activé. Objets Oracle8 : vous pouvez référencer les colonnes d'objets ou leurs attributs, l'élément VARRAY, une table imbriquée ou les colonnes LOB. Vous ne pouvez appeler ni les fonctions PL/SQL, ni les méthodes de restriction de déclenchement.

Indiquez l'action du déclencheur dans :

Corps du déclencheur	Le bloc PL/SQL d'Oracle est exécuté pour activer le déclencheur. Il s'agit d'une zone de texte multiligne déroulante, dans laquelle vous pouvez entrer et éditer un corps de déclencheur de base de données PL/SQL. Les corps de déclencheur peuvent comporter des instructions SQL et PL/SQL. Les mots-clés BEGIN et END sont requis. Le corps des déclencheurs sur ligne peut contenir des noms de corrélation et l'option REFERENCING, ainsi que les prédicats conditionnels INSERTING, DELETING et UPDATING. Si plusieurs types d'instruction de déclenchement sont indiqués pour le déclencheur sur ligne (par exemple, INSERT et UPDATE), vous pouvez inclure les conditions suivantes afin d'exécuter des blocs de code précis dans le corps du déclencheur : IF INSERTING THEN…END IF; IF UPDATING THEN…END IF;

L'Editeur contient les boutons suivants :

Nouveau	Crée un nouveau déclencheur de base de données. Cliquez sur Nouveau pour lancer la définition d'un nouveau déclencheur.
Enregistrer	Permet d'enregistrer les options du déclencheur et de compiler la source qui figure dans le champ Corps de déclencheur. Les messages d'erreur générés par la compilation apparaissent dans un message distinct.
Rétablir	Permet de rendre au déclencheur de base de données l'état dans lequel il se trouvait lors de la dernière opération d'enregistrement ou de rétablissement.
Eliminer	Permet de supprimer de la base de données le déclencheur de base de données en cours, après confirmation.
Fermer	Permet de quitter l'Editeur de déclencheur de base de données.
Aide	Affiche la présente rubrique d'aide.


A propos des déclencheurs de base de données

Les déclencheurs de base de données sont des procédures stockées dans la base de données et implicitement exécutées lorsqu'une instruction de déclenchement, telle qu'INSERT, UPDATE ou DELETE, est créée dans la table associée. Les déclencheurs ne peuvent être définis que sur les tables, et non sur les vues. Toutefois, les déclencheurs portant sur la table de base d'une vue sont activés si une instruction INSERT, UPDATE ou DELETE est créée dans une vue.

Un déclencheur peut contenir des instructions SQL et PL.SQL fonctionnant en tant qu'entité distincte, ou appeler d'autres procédures stockées. N'utilisez des déclencheurs qu'en cas de nécessité absolue. Leur utilisation excessive peut provoquer l'apparition de déclencheurs en cascade ou récursifs. Par exemple, lorsque vous activez un déclencheur, toute instruction SQL du corps de ce déclencheur peut activer d'autres déclencheurs.

L'utilisation des déclencheurs de base de données permet de mettre en place des règles complexes et d'assurer un comportement uniforme de toutes les applications. Pour créer des déclencheurs, suivez les directives ci-dessous :

•	Utilisez des déclencheurs pour assurer que la réalisation d'une opération donnée entraîne la réalisation des actions connexes.

•	N'utilisez des déclencheurs de base de données que pour les opérations centralisées ou globales, qui doivent être activées pour l'instruction de déclenchement quel que soit l'utilisateur ou l'application de base de données à l'origine de l'instruction.

•	Ne définissez aucun déclencheur reproduisant une fonctionnalité déjà intégrée à Oracle. Par exemple, ne définissez aucun déclencheur qui impose des règles d'intégrité des données, car ces règles sont facilement applicables à l'aide des contraintes d'intégrité déclaratives.

•	Limitez la taille des déclencheurs (un maximum de 60 lignes est une limite correcte). Si la logique de votre déclencheur nécessite bien plus de 60 lignes de code PL/SQL, incluez la majeure partie du code dans une procédure stockée, puis appelez cette dernière à partir du déclencheur.

•	Veillez à ne pas créer de déclencheurs récursifs. Par exemple, la création d'un déclencheur sur instruction AFTER UPDATE sur la table EMP, qui crée lui-même une instruction UPDATE sur cette table EMP, entraîne une activation récursive du déclencheur jusqu'à épuisement de la mémoire.

Pour plus d'informations sur l'utilisation des déclencheurs dans les applications, reportez-vous au manuel Oracle8 Application Developer's Guide. Pour plus d'informations sur les différents types de déclencheur, reportez-vous au manuel Oracle8 Concepts Manual.


Affiche l'ID utilisateur du propriétaire de la table de base de données en cours. Cliquez sur la flèche à droite de ce champ pour afficher une liste déroulante d'utilisateurs.


Affiche le nom de la table ou de la vue de base de données en cours. Cliquez sur la flèche à droite de ce champ pour afficher une liste déroulante des tables ou des vues appartenant à l'utilisateur indiqué dans le champ Propriétaire de table. Cliquez sur une table ou sur une vue de la liste pour la sélectionner. La liste n'affiche que les noms des tables ou des vues de base de données auxquelles vous avez accès. (Les vues ne concernent qu'Oracle8)


Affiche le nom du déclencheur de base de données en cours. Cliquez sur la flèche à droite de ce champ pour afficher une liste déroulante des noms de déclencheur pour la table ou la vue indiquée dans le champ Table/Vue. La liste Nom n'affiche que les noms des déclencheurs de base de données auxquels vous avez accès.


Permet d'indiquer si le corps du déclencheur est activé par l'exécution de l'instruction de déclenchement (par exemple, UPDATE, INSERT ou DELETE). Ce groupe de boutons d'option correspond aux options BEFORE, AFTER et INSTEAD OF de la commande SQL CREATE TRIGGER.


Permet d'indiquer que le déclencheur est activé avant l'instruction de déclenchement.


Permet d'indiquer que le déclencheur est activé après l'instruction de déclenchement.


Permet d'indiquer qu'Oracle active le déclencheur au lieu d'exécuter l'instruction de déclenchement. Concerne uniquement les vues.


Permet d'indiquer le type d'instruction SQL qui active le corps du déclencheur. Les options possibles sont UPDATE, INSERT et DELETE. Cliquez sur une ou plusieurs des cases à cocher pour activer l'option. Concerne uniquement les tables.


Permet d'indiquer que le déclencheur est activé sur un événement INSERT.


Permet d'indiquer que le déclencheur est activé sur un événement DELETE.


Permet d'indiquer que le déclencheur est activé sur un événement UPDATE.


Affiche la liste des colonnes de la table sélectionnée dans le champ Table. Cette liste n'est active que si l'option UPDATE est activée dans le champ Instruction. Concerne uniquement les tables.


Permet d'indiquer un déclencheur sur ligne. Correspond à l'option FOR EACH ROW de la commande CREATE TRIGGER.


Permet d'indiquer un déclencheur sur instruction. Correspond à l'option FOR EACH STATEMENT de la commande CREATE TRIGGER.


Permet d'indiquer un nom de corrélation pour éviter tout conflit de noms entre le nom de corrélation et le nom d'une table ou d'une vue appelée OLD.


Permet d'indiquer un nom de corrélation pour éviter tout conflit de noms entre le nom de corrélation et le nom d'une table ou d'une vue appelée NEW.


Permet d'indiquer une expression booléenne SQL dans une clause WHEN. Si elle est incluse, l'expression de la clause WHEN est calculée pour chaque ligne concernée par le déclencheur. Si le résultat du calcul de l'expression est TRUE pour une ligne, le corps du déclencheur est activé. Si le résultat du calcul de l'expression est FALSE ou NOT TRUE (c'est-à-dire inconnue, comme avec des valeurs nulles) pour une ligne, le corps du déclencheur n'est pas activé. Concerne uniquement les tables.


Est une boîte de texte multiligne défilante, dans laquelle vous pouvez entrer et éditer un corps de déclencheur de base de données PL/SQL. Les corps de déclencheur sont des blocs PL/SQL qui peuvent comporter des instructions SQL et PL/SQL.


Crée un nouveau déclencheur de base de données sans nom.


Permet d'enregistrer les options du déclencheur et de compiler la source qui figure dans le champ Corps de déclencheur. Les messages d'erreur générés par la compilation apparaissent dans d'un message séparé.


Permet de rendre au déclencheur de base de données l'état dans lequel il se trouvait lors de la dernière opération d'enregistrement ou de rétablissement. Si aucune opération d'enregistrement ou de rétablissement n'a été exécutée, le déclencheur reprend son état d'origine.


Permet de supprimer de la base de données le déclencheur de base de données en cours, après confirmation.


Interface Interpréteur PL/SQL

L'Interpréteur PL/SQL est l'espace de travail de débogage, où vous pouvez afficher le code source, créer des actions de débogage, lancer des unités de programme et exécuter des commandes de l'Interpréteur, et des instructions PL/SQL et SQL.

Par défaut, deux fenêtres sont toujours ouvertes dans l'Interpréteur PL/SQL : la fenêtre Source et la fenêtre Interpréteur.

Boutons de barre d'outils standard  Toutes les fenêtres de l'Interpréteur ont la même barre d'outils. A l'exception de Fermer, les boutons décrits ci-dessous ne sont activés que pendant la suspension de l'exécution d'une unité de programme et sont utilisés pour le débogage.

Step Into		Reprend l'exécution de l'unité de programme interrompue, jusqu'à l'instruction exécutable suivante.
Step Over		Reprend l'exécution de l'unité de programme interrompue, jusqu'à l'instruction exécutable suivante, en sautant tous les appels aux sous-programmes imbriqués.
Step Out		Reprend l'exécution du sous-programme imbriqué, en suspendant l'exécution à la prochaine instruction exécutable dans l'unité de programme appelante.
Atteindre		Reprend l'exécution de l'unité de programme interrompue, jusqu'à la fin de l'unité de programme ou la prochaine action de débogage.
Réinitialiser		Sort du niveau de débogage en cours. Au niveau 1, l'exécution interrompue est abandonnée.
Fermer		Ferme la fenêtre Interpréteur.
Aide		Affiche cette rubrique d'aide.

Fenêtre Source  La fenêtre Source affiche en lecture seule une copie de l'unité de programme sélectionnée. Les mots-clés, les commentaires, les chaînes et les symboles sont colorés différemment. La première colonne de la marge gauche est réservée aux icônes ou aux symboles. Les lignes source sont numérotées dans la seconde colonne. Les icônes suivantes peuvent être affichées :

flèche jaune		Indique l'emplacement ou le PC d'exécution en cours (compteur d'instruction).
rond rouge		Indique un point d'interruption ou un déclencheur activé.
rond vert		Indique un point d'interruption ou un déclencheur désactivé.

Les symboles suivants peuvent également apparaître dans la fenêtre Source :

|	Indique l'emplacement du source en cours.  Cet emplacement change à la suite de l'exécution de commandes de l'Interpréteur (LIST par exemple) ou lorsque l'exécution de l'unité de programme est interrompue par une action de débogage (un point d'interruption, par exemple).
B(n)	Indique l'emplacement d'un point d'interruption, où n est l'ID d'action de débogage correspondant.
T(n)	Indique l'emplacement d'un déclencheur de débogage, où n est l'ID d'action de débogage correspondant.

La fenêtre Source offre un menu instantané comprenant les commandes suivantes (sous Windows, cliquez avec le bouton droit de la souris) :

Arrêt	Affiche la boîte de dialogue Point d'interruption, dans laquelle vous pouvez définir un nouveau point d'interruption.
Déclencheur	Affiche la boîte de dialogue Déclencheur, dans laquelle vous pouvez définir un nouveau déclencheur de débogage.
Edition	Affiche l'Editeur d'unité de programme, dans lequel vous pouvez éditer l'unité de programme en cours.

Remarque : Les systèmes ne prennent pas tous en charge les menus instantanés. Les commandes ci-dessus figurent également dans le menu Débogage.

Barres de partage Les barres de partage permettent de modifier la place relative occupée par chaque fenêtre dans l'Interpréteur. Lorsque l'Interpréteur apparaît pour la première fois, une barre sépare la fenêtre Source de la fenêtre Interpréteur. Une seconde barre de partage s'affiche si vous utilisez l'Interpréteur modal ou que vous ayez inséré la fenêtre Navigateur dans l'Interpréteur sans mode.

Fenêtre Interpréteur  La fenêtre Interpréteur constitue une interface de ligne de commande avec PL/SQL, Procedure Builder et SQL. Vous pouvez entrer des instructions ou des blocs PL/SQL, des commandes de l'Interpréteur de Procedure Builder ou des instructions SQL après l'invite PL/SQL>. (Les instructions et la syntaxe SQL*Plus ne sont pas prises en charge.)

Commandes multilignes  Lorsque vous entrez une syntaxe PL/SQL à l'invite PL/SQL>, vous pouvez toujours appuyer sur la touche Entrée pour afficher une invite secondaire sous la forme +>. Affichez autant d'invites secondaires successives que nécessaire avant d'exécuter le code terminé par un point-virgule (;).

Niveaux de débogage  Lorsque l'exécution d'un programme est interrompue par une action de débogage, l'Interpréteur établit un niveau de débogage. A ce niveau, vous pouvez entrer des commandes et des instructions PL/SQL, qui peuvent à leur tour être interrompues, entraînant l'imbrication des niveaux de débogage. Le niveau de débogage en cours est indiqué par une nouvelle invite de la fenêtre Interpréteur, qui comporte un préfixe contenant le numéro de niveau de débogage en cours. Par exemple, l'invite de l'interpréteur au niveau de débogage 1 s'affiche de la manière suivante :

(debug 1)PL/SQL>

Menu instantané  La fenêtre Interpréteur affiche un menu instantané proposant les commandes suivantes (sous Windows, cliquez avec le bouton droit de la souris) :

Effacer	Annule tout le texte de la fenêtre Interpréteur et émet une nouvelle invite.
Nouvelle invite	Affiche une nouvelle invite dans la fenêtre Interpréteur. Aucune entrée après l'invite précédente n'est prise en compte.
Remarque : Les systèmes ne prennent pas tous en compte les menus instantanés.

Fenêtre Navigateur  La fenêtre Navigateur permet d'afficher la pile d'appels en cours et éventuellement de modifier les valeurs des paramètres et des variables locales à l'emplacement de travail en cours, pendant le débogage. Vous pouvez insérer cette fenêtre entre la fenêtre Source et la fenêtre Interpréteur pour travailler entièrement dans l'Interpréteur tout en déboguant vos unités de programme. Pour ce faire, choisissez Affichage [image] Fenêtre Navigateur dans le menu. Pour masquer la fenêtre Navigateur, choisissez à nouveau cette même commande. Vous pouvez également masquer toutes les autres fenêtres en sélectionnant la commande adéquate dans le menu Affichage.

Barre d'outils Navigateur  Lorsque la fenêtre Navigateur est affichée, la barre d'outils comporte également les boutons suivants :

Créer		Crée une nouvelle instance de l'objet ou du noeud sélectionné.
Supprimer		Supprime l'objet sélectionné après confirmation.
Développer		Développe le premier niveau de sous-noeud du noeud sélectionné.
Réduire		Réduit le niveau de sous-noeud sélectionné du noeud actuellement affiché.
Développer tout		Développe tous les niveaux de sous-noeuds du noeud sélectionné. Toutefois, cette commande ne développe pas de façon récurrente les noeuds de type de données et d'attributs Oracle8.
Réduire tout		Réduit tous les niveaux de sous-noeud du noeud sélectionné.
Rechercher (zone de texte)		Permet de rechercher un objet dans le Navigateur en saisissant tout ou partie de son nom.
Recherche avant		Recherche l'occurrence suivante du critère de recherche indiqué dans la zone de texte Rechercher.
Recherche arrière		Recherche l'occurrence précédente du critère de recherche indiqué dans la zone de texte Rechercher.


Reprend l'exécution de l'unité de programme interrompue à la prochaine instruction exécutable.


Reprend l'exécution de l'unité de programme interrompue à la prochaine instruction exécutable, en sautant tous les appels aux sous-programmes imbriqués.


Reprend l'exécution d'un sous-programme imbriqué, en suspendant l'exécution à la prochaine instruction exécutable dans l'unité de programme appelante.


Reprend l'exécution de l'unité de programme interrompue à la fin de l'unité de programme ou à la prochaine action de débogage.


Sort du niveau de débogage en cours. Au niveau 1, l'exécution interrompue est abandonnée.


Crée une nouvelle instance de l'objet ou du noeud sélectionné.


Supprime l'objet sélectionné après confirmation.


Développe le premier niveau de sous-noeud du noeud sélectionné.


Réduit le niveau de sous-noeud du noeud sélectionné.


Développe tous les niveaux de sous-noeud du noeud sélectionné. Le type de données Oracle8 et les noeuds d'attributs ne sont pas développés de façon récurrente.


Réduit tous les niveaux de sous-noeud du noeud sélectionné.


Entrez le nom de l'objet que vous voulez rechercher dans le Navigateur.


Indique le nom de l'unité de programme en cours et précise s'il est chargé sur le client ou le serveur.


Affiche en lecture seule une copie de l'unité de programme sélectionnée, avec les lignes source numérotées dans la seconde colonne.


 Les barres de partage permettent de modifier la place relative occupée par chaque fenêtre dans l'Interpréteur. Lorsque l'Interpréteur apparaît pour la première fois, une barre sépare la fenêtre Source de la fenêtre Interpréteur. Une seconde barre de partage apparaît si vous utilisez l'Interpréteur modal ou que vous ayez inséré la fenêtre Navigateur dans l'Interpréteur sans mode.


La fenêtre Navigateur d'objet permet d'afficher la pile d'appels en cours et éventuellement de modifier les valeurs des paramètres et des variables locales à l'emplacement de travail en cours, pendant le débogage.


La fenêtre Interpréteur constitue une interface de ligne de commande avec PL/SQL, Procedure Builder et SQL. Vous pouvez entrer des instructions ou des blocs PL/SQL, des commandes de l'Interpréteur de Procedure Builder ou des instructions SQL après l'invite PL/SQL>.


A propos de l'utilitaire de conversion PL/SQL V1

  Rubriques connexes

L'utilitaire de conversion PL/SQL V1 facilite l'automatisation de la mise à niveau de vos applications écrites en PL/SQL V1 ou V2.

Si les déclencheurs, les unités de programme et les blocs PL/SQL de vos applications Forms, états et affichages version 1 sont écrits en PL/SQL V1 ou V2, le code correspondant doit être mis à niveau. Sinon, vous risquez deux types de problèmes :

•	Une partie du code PL/SQL V1 ou V2 n'est pas valide, sur le plan syntactique, dans les versions ultérieures et génère une erreur de compilation.

•	Une partie du code PL/SQL V1 ou V2 est correcte sur le plan syntactique dans les versions ultérieures, mais a une signification différente, qui entraîne un comportement inattendu ou incorrect.

L'utilitaire de conversion gère ces deux types de problèmes.


Fonctionnement de l'utilitaire de conversion PL/SQL V1

  Rubriques connexes

Vous pouvez utiliser l'utilitaire de conversion de manière interactive ou en mode de traitement par lots. Dans un cas comme dans l'autre, c'est vous qui décidez si l'utilitaire doit mettre votre code à jour. Le mode interactif offre une plus grande flexibilité, car vous pouvez effectuer certaines corrections en automatique et d'autres en manuel. En mode de traitement par lots, l'utilitaire exécute lui-même toutes les conversions ou n'en exécute aucune. Quel que soit le mode choisi, un récapitulatif du processus de conversion est transmis à un fichier journal appelé module.plg.

Pour exécuter l'utilitaire de manière interactive, ouvrez une application Forms, un état, un affichage ou une bibliothèque contenant un code PL/SQL V1 ou V2 dans le Builder associé.

Pour exécuter l'utilitaire en mode de traitement par lots, reportez-vous aux rubriques suivantes :

•	Conversion d'applications Forms en mode de traitement par lots

•	Conversion d'états en mode de traitement par lots

•	Conversion d'affichages en mode de traitement par lots

Conseil

L'utilitaire de conversion peut faire évoluer votre code pour régler plusieurs incompatibilités de V1 ou V2, mais ne peut pas régler tous les problèmes. Ceux qui ne peuvent pas être réglés entraînent des erreurs de compilation, qui sont énumérés dans la boîte de dialogue de récapitulatif de conversion (mode interactif) de PL/SQL V1 ou dans le fichier journal, afin que vous puissiez les régler manuellement. Pour plus d'informations, reportez-vous à Conversions que l'utilitaire ne peut pas effectuer .

Lorsque l'utilitaire a converti et enregistré une application, même si vous décidez de ne pas tenir compte des conversions suggérées, l'utilitaire n'est jamais appelé à nouveau pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.


Avant de choisir le mode à utiliser, tentez de convertir interactivement quelques modules pour chaque type. Vous aurez alors une idée des difficultés associées à chaque module et pourrez déterminer la marche à suivre. Par exemple, vous pourriez découvrir que vos applications Forms nécessitent un contrôle assidu que vous offre le mode interactif, alors que vos états et vos bibliothèques PL/SQL peuvent être convertis en toute sécurité en mode de traitement par lots.


Utilisation interactive de l'utilitaire de conversion PL/SQL V1

  Rubriques connexes

Pour utiliser de manière interactive l'utilitaire de conversion, ouvrez une grille, un état, un affichage ou une bibliothèque contenant le code PL/SQL V1 ou V2 dans l'application Builder associée, puis enregistrez cette dernière.

Important :

•	Lorsque l'utilitaire de conversion a converti une application même si vous décidez de ne pas tenir compte des conversions suggérées l'utilitaire n'est jamais appelé à nouveau pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.

Toute instruction PL/SQL V1 ou V2 dans votre déclencheur, votre bloc PL/SQL ou votre unité de programme apparaît dans la boîte de dialogue Conversion. Cette dernière explique aussi les mesures que prendra l'utilitaire de conversion si vous choisissez d'effectuer la conversion. Vous pouvez décider d'accepter ou d'ignorer la modification proposée, de convertir l'application entière ou encore d'arrêter entièrement le processus. (Vous pouvez aussi utiliser la boîte de dialogue des options de conversion de PL/SQL V1 pour définir les paramètres qui contrôlent le processus de conversion.)

L'utilitaire effectue le suivi des modifications effectuées (et de celles que vous n'avez pas appliquées) et les résume à l'issue du processus de conversion dans un fichier journal appelé module.plg. Vous pouvez ensuite appeler l'Editeur PL/SQL pour mettre l'application à jour manuellement.


Utilisation de l'utilitaire de conversion PL/SQL V1 en mode de traitement par lots

  Rubriques connexes

Pour exécuter l'utilitaire en mode de traitement par lots, reportez-vous aux rubriques suivantes :

•	Conversion d'applications Forms en mode de traitement par lots

•	Conversion d'états en mode de traitement par lots

•	Conversion d'affichages en mode de traitement par lots


Conversion d'applications Forms en mode de traitement par lots

  Rubriques connexes

Pour convertir une application Forms en mode de traitement par lots :

1	Assurez-vous que vous avez converti toutes les bibliothèques PL/SQL attachées à l'application Forms.

2	Puis :

•	Lancez la version GUI de Form Compiler

•	Exécutez Form Compiler à partir de la ligne de commande.

Quelle que soit la méthode choisie, un récapitulatif du processus est automatiquement écrit dans le fichier journal module.plg, où module est le nom du module application Forms converti.

Note d'utilisation :

•	Lorsque l'utilitaire de conversion a converti une application même si vous décidez de ne pas tenir compte des conversions suggérées l'utilitaire n'est jamais appelé à nouveau pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.


Conversion d'applications Forms à l'aide de la version GUI de Form Compiler

Pour convertir une application Forms à l'aide de la version GUI de Form Compiler :

1	Cliquez deux fois sur l'icône Form Compiler.

2	Sélectionnez le type de module et l'accès module appropriés.

3	Sélectionnez la case Voulez-vous faire passer PL/SQL de V1 à V2.3 ?.

4	Cliquez sur OK.


Conversion d'applications Forms à partir de la ligne de commande

  Rubriques connexes

Pour convertir une application Forms à l'aide de Form Compiler dans la ligne de commande :

  Dans la ligne de commande, entrez :

<Form Compiler> MODULE=form BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

où :

<Form Compiler>	Est le nom de l'exécutable Form Compiler sur votre plate-forme.
Form	Est le nom de l'application Forms à convertir.
Notes d'utilisation :

•	Si vous indiquez UPGRADE_PLSQL=YES sans indiquer également UPGRADE=YES, le système génère un message d'erreur. Comme vous ne pouvez pas convertir le PL/SQL d'une application Forms sans faire passer la totalité de l'application Forms à la version 6.0, UPGRADE=YES doit être indiqué lorsque UPGRADE_PLSQL= YES.

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.


Conversion de bibliothèques PL/SQL attachées à une application Forms

Pour convertir une bibliothèque PL/SQL de manière interactive :

  Ouvrez la bibliothèque dans Form Builder, puis enregistrez-la.

Pour convertir une bibliothèque PL/SQL à l'aide de la version GUI du Form Compiler :

1	Cliquez deux fois sur l'icône Form Compiler.

2	Dans le champ Fichier, sélectionnez la bibliothèque PL/SQL à convertir.

3	Dans le champ Ecrire sortie dans fichier, assurez-vous que le fichier cible a l'extension .PLL.

4	Cliquez sur OK.

Pour convertir une bibliothèque PL/SQL à l'aide de Form Compiler dans la ligne de commande :

  Dans la ligne de commande, entrez :

<Form Compiler> MODULE=library BATCH=yes UPGRADE_PLSQL=yes UPGRADE=yes

où :

<Form Compiler>	Est le nom de l'exécutable Form Compiler sur votre plate-forme.
library	Est le nom de la bibliothèque à convertir.
Note d'utilisation :

•	Si vous indiquez UPGRADE_PLSQL=YES sans indiquer également UPGRADE=YES, le système génère un message d'erreur. Comme vous ne pouvez pas convertir le PL/SQL d'une application Forms sans faire passer la totalité de l'application Forms à la version 6.0, UPGRADE=YES doit être indiqué lorsque UPGRADE_PLSQL= YES.

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.


Indication des paramètres du compilateur Form Builder

Le tableau ci-dessous décrit l'incidence des différentes combinaisons de paramètres BATCH, UPGRADE, et UPGRADE_PLSQL sur le processus de conversion :

BATCH	UPGRADE_PLSQL	UPGRADE	Comportement
NO	YES	YES	Le PL/SQL de l'application Forms est converti en mode de traitement par lots (même si BATCH=NO). L'utilitaire ne peut pas être appelé de manière interactive à l'extérieur du Builder.
YES	YES	YES	Le PL/SQL de l'application Forms est converti en mode de traitement par lots.
NO	NO	YES	Le PL/SQL de l'application Forms n'est pas converti, mais une liste de suggestions de conversions est écrite dans module.plg. Le reste de l'application Forms est converti en version 6.0.
YES	NO	YES	Le PL/SQL de l'application Forms n'est pas converti, mais une liste de suggestions de conversions est écrite dans module.plg. Le reste de l'application Forms est converti en Version 6.0.
NO	NO	NO	Utilisé pour compiler un nouveau FMX sans modifier le FMB. Si l'application Forms contient un PL/SQL Version 1.3, vous pouvez constater l'existence d'erreurs de compilation, ou le comportement du code peut être différent.
YES	NO	NO	Utilisé pour compiler un nouveau FMX sans modifier le FMB. Si l'application Forms contient un PL/SQL Version 1.3, vous pouvez constater l'existence d'erreurs de compilation, ou le comportement du code peut être différent.
Important :

Si vous mettez à niveau 45FMT vers 60FMB et que vous n'indiquiez pas l'option UPGRADE_PLSQL, le PL/SQL de l'application Forms n'est pas converti, mais une liste de conversions proposées est consignée dans le fichier journal. Ce fichier est placé dans le répertoire en cours, qui peut être différent du répertoire dans lequel se trouve le fichier FMT.


Conversion d'états en mode de traitement par lots

Pour convertir un état en mode de traitement par lots :

1	Assurez-vous que vous avez converti toutes les bibliothèques PL/SQL attachées à l'état.

2	Puis :

•	Lancez la version GUI du Report Compiler

•	Exécutez le Report Compiler à partir de la ligne de commande.

Quelle que soit la méthode choisie, un récapitulatif du processus est automatiquement écrit dans le fichier journal module.plg, où module est le nom du module état converti. Le programme génère un journal séparé pour chaque module.

Note d'utilisation :

•	Lorsque l'utilitaire de conversion a converti une application même si vous décidez de ne pas tenir compte des conversions suggérées l'utilitaire n'est jamais appelé à nouveau pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.


Conversion d'états à l'aide de la version GUI de Report Compiler

Pour convertir un ou plusieurs états à l'aide de la version GUI de Report Compiler :

1	Cliquez deux fois sur l'icône Report Compiler.

2	Dans le champ Type de document, sélectionnez Etat.

3	Choisissez les types Source et Destination appropriés.

4	Utilisez le bouton Parcourir du champ Source pour localiser le ou les états à convertir.

5	Utilisez le bouton Parcourir du champ Destination pour sélectionner la destination de l'état converti.

6	Cliquez sur OK.


Conversion d'états à partir de la ligne de commande

Pour convertir un ou plusieurs états à partir de la ligne de commande :

  Dans la ligne de commande, entrez :

<Report Compiler> SOURCE=rep1,rep2, UPGRADE_PLSQL=yes

où :

<Report Compiler>	Est le nom de l'exécutable Report Compiler sur votre plate-forme.
Rep1,rep2,	Est le nom du ou des états à convertir.


Conversion de bibliothèques PL/SQL attachées à un état

Pour convertir une bibliothèque PL/SQL de manière interactive :

  Ouvrez la bibliothèque dans Report Builder, puis enregistrez-la.

Pour convertir une bibliothèque PL/SQL à l'aide de la version GUI du Report Compiler :

1	Cliquez deux fois sur l'icône Report Compiler.

2	Dans le champ Type de document, indiquez Bibliothèque PL/SQL.

3	Dans le champ Type source, indiquez .PLL.

4	Dans le champ Type de destination, indiquez .PLL ou .PLX. Si vous indiquez .PLD, le PL/SQL V1 ou V2 ne sera pas converti.

Pour convertir une bibliothèque PL/SQL à l'aide le Report Compiler dans la ligne de commande :

  Dans la ligne de commande, entrez :

<Report Compiler> SOURCE=lib1,lib2, UPGRADE_PLSQL=yes

où :

<Report Compiler>	Est le nom de l'exécutable Report Compiler sur votre plate-forme.
lib1, lib2	Est le nom de la ou des bibliothèques à convertir.
Note d'utilisation :

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.


Conversion d'affichages en mode de traitement par lots

Pour convertir des affichages en mode de traitement par lots :

1	Assurez-vous que vous avez converti toutes les bibliothèques PL/SQL attachées à l'affichage.

2	Lancez la commande suivante :

<Graphics Builder> openfile=temp.ogd upgrade_plsql=yes savefile=temp1.ogd quit=yes

où :

<Graphics Builder>	Est le nom de l'exécutable Graphics Builder sur votre plate-forme.
openfile=temp.ogd	Ouvre l'affichage temp.ogd dans Graphics Builder.
upgrade_plsql=yes	Convertit le PL/SQL V1 ou V2.
Savefile=temp1.ogd	Enregistre l'affichage converti dans temp1.ogd.
quit=yes	Ferme Graphics Builder après la conversion de l'affichage.
Notes d'utilisation :

•	Un récapitulatif du processus de conversion est automatiquement écrit dans le fichier journal module.plg, où module est le nom de l'affichage converti.

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.

•	Lorsque l'utilitaire de conversion convertit une application, même si vous choisissez de ne pas tenir compte des conversions suggérées, vous ne pouvez plus l'appeler pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.


Conversion de bibliothèques PL/SQL attachée à un affichage

Pour convertir une bibliothèque PL/SQL de manière interactive :

  Ouvrez la bibliothèque dans Graphics Builder, puis enregistrez-la.

Pour convertir une bibliothèque PL/SQL en mode de traitement par lots :

  Entrez cette commande :

<Graphics Builder> openfile=temp.lib upgrade_plsql=yes savefile=temp1.lib quit=yes

où :

<Graphics Builder>	Est le nom de l'exécutable Graphics Builder sur votre plate-forme.
openfile=temp.lib	Ouvre la bibliothèque temp.lib dans Graphics Builder.
upgrade_plsql=yes	Convertit le PL/SQL V1 ou V2.
savefile=temp1.lib	Enregistre la bibliothèque convertie dans temp1.lib.
quit=yes	Ferme Graphics Builder après la conversion de la bibliothèque.
Notes d'utilisation :

•	Un récapitulatif du processus de conversion est automatiquement écrit dans le fichier journal module.plg, où module est le nom de la bibliothèque convertie.

•	Lorsque l'utilitaire de conversion convertit une application, même si vous choisissez de ne pas tenir compte des conversions suggérées, vous ne pouvez plus l'appeler pour cette application, pour ne pas écraser accidentellement vos modifications manuelles.

•	Pour convertir plusieurs affichages à la fois, utilisez Project Builder. Reportez-vous à la rubrique d'aide de Project Builder, Choix d'une méthode de mise à niveau.


Conversions que l'utilitaire de conversion PL/SQL V1 peut effectuer

  Rubriques connexes

Les problèmes que l'utilitaire de conversion peut régler dans votre application sont les suivants :

CHAR remplacé par VARCHAR2

Longueur de chaîne requise par VARCHAR2

Expressions par défaut pour OUT et IN OUT interdits

RETURN nécessite une expression

Remplacement de procédures internes obsolètes

Fonction length retournant NULL pour des chaînes de longueur zéro

Transfert incorrect de NULL vers un sous-programme surchargé

Instruction RETURN absente dans fonction provoquant erreur de lancement

Contraintes de longueur supprimées


CHAR remplacé par VARCHAR2

Dans PL/SQL V1, les types de données CHAR et VARCHAR2 peuvent être interchangeables. Dans les versions ultérieures à V1, le type de données CHAR est rempli de blancs à droite.

Dans PL/SQL V1, l'instruction :

var1 CHAR(10) := 'hello';

. . .équivaut à 'hello'.

Dans les versions ultérieures à V1, cependant, cette instruction est transformée en 'hello ', (total 10 caractères).

Pour conserver le comportement V1 des variables de type CHAR, l'utilitaire de conversion remplace toutes les déclarations CHAR(n) par l'instruction VARCHAR2(n) équivalente. Dans l'exemple ci-dessus, var1 devient VARCHAR2(10).

L'utilitaire de conversion remplace également toutes les instructions VARCHAR par l'expression VARCHAR2 équivalente.


Longueur de chaîne obligatoire pour VARCHAR2

Dans les versions ultérieures à PL/SQL V1, vous devez indiquer une longueur pour toutes les variables de type VARCHAR2. Si vous avez déjà indiqué une longueur pour un type de données CHAR, l'utilitaire de conversion utilise cette longueur lorsqu'il remplace la déclaration par VARCHAR2 (pour plus d'informations, reportez-vous à CHAR remplacé par VARCHAR2). Par exemple :

var1 CHAR(10);

. . .est converti en :

var1 VARCHAR2(10);

Lorsque le convertisseur détecte une instruction CHAR ou VARCHAR2 sans chaîne de longueur, il suggère une longueur d'un caractère. Par exemple :

var2 CHAR;

. . .est converti en :

var2 VARCHAR2(1);

De même,

var3 VARCHAR2;

. . .est converti en :

var3 VARCHAR2(1);

Si vous n'indiquez pas une longueur pour une déclaration VARCHAR2, le compilateur génère le message d'erreur :

ERROR 215:  String length constraint must be in range (1 . . 32767)


Expressions par défaut pour OUT et IN OUT interdits

  Exemple

Dans PL/SQL V1, les paramètres OUT et IN OUT peuvent être suivis d'une expression par défaut, qui n'est cependant jamais prise en compte. L'utilitaire de conversion supprime les expressions par défaut pour les paramètres OUT et IN OUT.

Si vous compilez un code existant comprenant des paramètres OUT et IN OUT avec des expressions par défaut, le système génère le message d'erreur :

ERROR 230:  OUT and IN OUT formal parameters may not have default expressions


Suppression d'expressions par défaut - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

PROCEDURE p (p1 IN OUT NUMBER DEFAULT 25,
             p2 OUT NUMBER DEFAULT 16) IS

BEGIN
. . .
END;

. . .par :

PROCEDURE p (p1 IN OUT NUMBER, p2 OUT NUMBER) IS

BEGIN
. . .
END;


RETURN nécessite une expression

  Exemple

Dans PL/SQL V1, il était possible d'utiliser une instruction RETURN sans expression pour retourner une valeur NULL. Comme toutes les fonctions doivent retourner des valeurs, les versions ultérieures à V1 considèrent que l'instruction RETURN est obligatoire. L'utilitaire de conversion remplace toutes les instructions RETURN qui ne sont pas suivies d'expression par RETURN NULL.

Si vous compilez un code existant comprenant une instruction RETURN sans expression, le message d'erreur suivant est généré :

ERREUR 503 : instruction RETURN requise pour le renvoi des données de la fonction.


Ajout de NULL à RETURN - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN;
END IF;
RETURN x;
END;

. . .par :

FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN NULL;    NULL ajouté ici
END IF;
RETURN x;
END;


Remplacement de procédures internes obsolètes

  Exemple

La procédure interne TO_PLS_INTEGER, qui convertit les chaînes de caractères en entiers PL/SQL, est obsolète dans les versions ultérieures à V1. L'utilitaire de conversion remplace TO_PLS_INTEGER par la procédure interne TO_NUMBER.

Si vous ne remplacez pas la procédure interne TO_PLS_INTEGER, le système génère le message d'erreur de compilation :

ERROR 201:  Identified TO_PLS_INTEGER must be declared

Remarque : Les autres procédures internes obsolètes doivent être remplacées manuellement.


Remplacement de procédures internes obsolètes - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_PLS_INTEGER(24);
END;

. . .par :

PROCEDURE foo IS
     v INTEGER;
BEGIN
     v := TO_NUMBER(24);      TO_PLS_INTEGER remplacé par TO_NUMBER
END;


Fonction LENGTH retournant NULL pour des chaînes de longueur zéro

  Exemple

Dans PL/SQL V1, la fonction LENGTH appliquée à une expression NULL retourne la valeur zéro. Dans les versions ultérieures à V1, cette fonction, appliquée à une expression NULL, retourne NULL.

Pour conserver le comportement de V1, l'utilitaire de conversion PL/SQL ajoute le prédicat SQL NVL afin de garantir que la fonction LENGTH appliquée à une expression NULL retourne la valeur zéro.


Fonction Length - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

c:=null;
l=LENGTH( c );         Dans V1, donne 0.

. . .par :

c:=null;
l=NVL(LENGTH( c ),0);  Le convertisseur imbrique la fonction LENGTH
                                                      dans une procédure interne NVL( ), obligeant
                                                      l'expression à retourner 0.


Transfert incorrect de NULL vers un sous-programme surchargé

  Exemple

Dans PL/SQL V1, vous pouviez définir un sous-programme dans un package en tant que deux types de données différents : VARCHAR2 et un type RECORD. C'est ce que l'on appelle surcharger le sous-programme. Si vous transfériez ensuite une valeur NULL vers un sous-programme surchargé, le type de données PL/SQL devenait VARCHAR2. Cependant, dans les versions ultérieures à V1, une valeur NULL transférée vers un sous-programme surchargé au sein d'un package doit avoir un type défini.

Pour conserver le comportement de V1, l'utilitaire de conversion PL/SQL peut prendre l'une des mesures suivantes, selon le cas, lorsque NULL a été transféré vers un sous-programme surchargé :

•	Imbriquer NULL dans TO_CHAR( )

•	Imbriquer NULL dans TO_NUMBER( )

•	Imbriquer NULL dans TO_DATE( )

•	Imbriquer NULL dans NOT

Si vous transférez une valeur NULL vers un sous-programme surchargé sans définir le type de données souhaité, le programme génère le message d'erreur suivant :

ERROR 307:  Too many declarations of ‘PU name’ match this call . . .


Transfert de NULL vers un sous-programme surchargé - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);
                              Le sous-programme p est surchargé :
  PROCEDURE p(a VARCHAR2);    a est défini comme une variable de type VARCHAR2
  PROCEDURE p(a FOO);         a est également défini comme un autre type de données
END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(NULL);                Dans PL/SQL V1, le type de données
                                                                      VARCHAR2 est appliqué.
END;

. . .par :

PACKAGE ps1 IS
  TYPE foo IS RECORD(id PLS_INTEGER);

  PROCEDURE p(a VARCHAR2);
  PROCEDURE p(a FOO);

END;

PROCEDURE foo2 IS
BEGIN
  ps1.p(TO_CHAR(NULL));      Comme a est de type VARCHAR2, la valeur NULL
                             est imbriquée dans TO_CHAR( )
END;


Instruction RETURN absente d'une fonction provoquant une erreur de lancement

  Exemple

Lorsque l'instruction RETURN ne figure pas dans une fonction de PL/SQL V1, le système ne provoque pas de problème de lancement. Cependant, c'est le cas dans les versions ultérieures à V1.

Pour conserver le comportement de V1, l'utilitaire de conversion PL/SQL ajoute une instruction RETURN comprenant un argument NULL aux fonctions absentes de l'instruction RETURN.

Remarque : Une instruction RETURN absente d'une fonction ne génère pas d'erreur de compilation, mais une erreur de lancement, dans les versions ultérieures à V1.


Instruction RETURN absente - Exemple

  Rubriques connexes 	   Tous les exemples

L'utilitaire de conversion convertit le code PL/SQL V1 suivant :

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('The point of no return.');
  ENDIF;
                         instruction RETURN absente
END;

. . .par :

FUNCTION noreturn (arg IN NUMBER) RETURN char IS
BEGIN
  IF (arg > 100000) THEN
    TEXT_IO.PUT_LINE ('Point de non-retour.');
  ENDIF;
  RETURN NULL;            RETURN NULL ajouté par le convertisseur
END;


Contraintes de longueur supprimées

  Exemple

Dans PL/SQL V2, les contraintes de longueur des commandes DATE, BOOLEAN, MLSLABEL et ROWID ne sont pas prises en compte. Toutefois, cela entraîne des erreurs de compilation dans V8.

Pour conserver le comportement de V2, l’utilitaire de conversion PL/SQL supprime les contraintes.


Suppression des contraintes de longueur - Exemple

  Rubriques connexes 	   Tous les exemples

L’utilitaire de conversion convertit le code suivant :

PROCEDURE badconstraint IS
d DATE(5);
b BOOLEAN(5);
d MLSLABEL(5); --V2 only
r ROWID(5); --V2 only
BEGIN
  null;
END;

. . .par :

PROCEDURE badconstraint IS
d DATE;
b BOOLEAN;
d MLSLABEL; --V2 only
r ROWID; --V2 only
BEGIN
  null;
END;


Conversions que l'utilitaire PL/SQL V1 ne peut pas effectuer

  Rubriques connexes

Alors que l'utilitaire de conversion peut convertir de nombreuses incompatibilités PL/SQL parmi celles auxquelles il est confronté, certaines situations exigent que vous y remédiez manuellement :

Noms uniques exigés au sein d'un package

Fonction de package standard n'étant plus utilisée

Nouveaux mots réservés dans PL/SQL V2.3 ou versions ultérieures

%ROWTYPE ou %TYPE requis dans les déclarations de variable

Le message d'avertissement « Erreur non réparable, abandon de la conversion, ligne <numéro ligne> colonne <colonne> » apparaît en cas d'erreur fatale du compilateur ; le processus de conversion est interrompu.


Noms uniques exigés au sein d'un package

  Exemple

Dans PL/SQL V1, lorsque vous créiez une variable portant le même nom qu'une procédure ou fonction d'un même package, c'était toujours la variable qui était utilisée ; la procédure ou la fonction portant le même nom n'était pas prise en compte. Dans les versions ultérieures à V1, les variables, les fonctions et les procédures au sein d'un même package doivent porter des noms uniques.

Afin d'éviter toute erreur, vérifiez que toutes les procédures d'un package portent chacune un nom unique, en le faisant de manière explicite ou bien en ajoutant le mot Unused au nom de la procédure.

Remarque : Dans V1, Procedure Builder permettait malencontreusement de créer une unité de programme portant le même nom qu'un package intégré. Dans les versions ultérieures à V1, cela est interdit. Si Procedure Builder détecte une unité de programme portant le même nom qu'un package intégré, il modifie le nom de l'unité pendant le chargement en ajoutant deux signes dollar à la fin. Ainsi, DEBUG devient DEBUG$$.


Attribution d'un nouveau nom de procédure unique dans un package - Exemple

  Rubriques connexes 	   Tous les exemples

L'exemple suivant présente tout d'abord un code PL/SQL V1 qui génère une erreur de compilation, puis explique comment éditer le code afin d'éviter cette erreur.

Remplacez le code :

PACKAGE pk1 IS
  v1 NUMBER;           v1 est une variable
  PROCEDURE v1;        v1 est aussi défini comme une procédure
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1 IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;

. . .par :

PACKAGE pk1 IS
  v1 NUMBER;
  PROCEDURE v1Unused;	  Déclaration de la procédure v1 en tant que « Unused »
  PROCEDURE p2 (x OUT NUMBER);
END;

PACKAGE BODY pk1 IS
  PROCEDURE v1Unused IS
  BEGIN
   . . .
  END;

  PROCEDURE p2 (x OUT NUMBER) IS
  BEGIN
x := pk1.v1;
  END;

END;


Fonction de package standard n'étant plus utilisée

  Exemple

Dans PL/SQL V1, vous pouviez appeler la fonction FLOOR depuis votre propre package, p1, de la façon suivante :

v : = p1.FLOOR(x).

Si le package p1 ne disposait d'aucune fonction nommée FLOOR, PL/SQL utilisait la fonction FLOOR du package standard. Cette erreur de codage PL/SQL a été corrigée dans PL/SQL V2.3 ou supérieur. Ainsi, dans PL/SQL V2.3, le compilateur ne recherche pas le nom de la fonction du package standard, mais signale correctement que la situation est erronée :

ERROR 302 : le composant CCCCC doit être déclaré

. . . où ‘CCCCC' est le nom de la fonction ou de la procédure qui existe dans un package standard ou dans une extension de package standard.

Le message « Les références incorrectes vont être traduites dans le package intégré V1 » est inscrit dans le journal.

Pour diriger le compilateur vers le package standard, supprimez le nom de package incorrect.


Suppression du préfixe de package - Exemple

  Rubriques connexes 	   Tous les exemples

L'exemple suivant présente tout d'abord un code PL/SQL V1 qui génère une erreur de compilation, puis explique comment éditer le code afin d'éviter cette erreur.

Remplacez le code :

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := pk1.FLOOR(20.5);
END;

. . .par :

PACKAGE pk1 IS a NUMBER;
END;

PROCEDURE p IS v NUMBER;
BEGIN
v := FLOOR(20.5);     Préfixe supprimé
END;


Nouveaux mots réservés dans PL/SQL V2.3 ou supérieur

  Exemples

Le mot VARIANCE est réservé dans PL/SQL V2.3 ou supérieur et, s'il est utilisé, génère une erreur de compilation.

Pour plus d'informations sur l'utilisation du mot VARIANCE sans génération d'erreur, reportez-vous à l'exemple ci-après.


Mots réservés - Exemple

  Rubriques connexes 	   Tous les exemples

L’exemple ci-dessous présente tout d'abord un code PL/SQL V1 qui génère une erreur de compilation, puis explique comment éditer le code pour éviter cette erreur.

Exemple 1 :

Remplacez le code :

FUNCTION variance (y IN NUMBER)
RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

. . .par :

FUNCTION varianceUniqueName (y IN NUMBER)
     /* Un nom unique a été ajouté à Variance. */
RETURN NUMBER IS

BEGIN
     . . .
     RETURN . . .;
END;

Exemple 2 :

Lorsque vous appelez un sous-programme, remplacez le code :

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := variance(someNumber);
END;

. . .par :

PROCEDURE foo IS
     x NUMBER;
     y NUMBER;
BEGIN
     . . .
     x := varianceUniqueName(someNumber);
END;


%ROWTYPE ou %TYPE requis dans les déclarations de variable

  Exemples

Le compilateur PL/SQL V8 signale une erreur lorsqu'il détecte la syntaxe non autorisée ci-dessous (cette syntaxe est, par contre, acceptée par le code PL/SQL V2) :

return expression_variable

procedure (paramètre IN <nom_table>)

procedure (paramètre IN <nom_table>.<nom_colonne>)

La syntaxe correcte est :

return type_variable

procedure (paramètre IN <nom_table>%ROWTYPE)

procedure (paramètre IN <nom_table>.<nom_colonne>%TYPE)

Pour éviter toute erreur, utilisez le type de données de l’expression, ajoutez %ROWTYPE au nom de la table ou ajoutez %TYPE au nom de la colonne.


Déclarations de variables - Exemples

  Rubriques connexes 	   Tous les exemples

Les exemples suivant présentent tout d’abord le code PL/SQL V2 générant l'erreur de compilation, puis expliquent comment le modifier pour éviter cette erreur.

Exemple 1 :

Remplacez le code :

FUNCTION colonne_retour RETURN dept.dname IS
. . .

. . .par :

FUNCTION colonne_retour RETURN dept.dname%TYPE IS
. . .

Remplacez le code :

PROCEDURE foo (name IN dept.dname) IS
. . .

. . .par :

PROCEDURE foo (name IN dept.dname%TYPE) IS
. . .

Exemple 2 :

Remplacez le code :

FUNCTION table_retour RETURN dept IS
. . .

. . .par :

FUNCTION table_retour RETURN dept.%ROWTYPE IS
. . .

Remplacez le code :

PROCEDURE foo (name IN dept) IS
. . .

. . .par :

PROCEDURE foo (name IN dept%ROWTYPE) IS
. . .

Exemple 3 :

Cet exemple présente une exception pour laquelle vous ne pouvez pas utiliser %TYPE.

Lorsque vous déclarez des paramètres, remplacez le code :

FUNCTION param_retour (x IN NUMBER)
  RETURN x IS
. . .

. . .par :

FUNCTION param_retour (x IN NUMBER)
  RETURN number IS
. . .


Prise en charge des serveurs

Cette version offre la prise en charge du serveur de base de données Oracle8. Le serveur Oracle7 est toujours pris en charge.

Nouvelles applications

Les nouvelles applications Oracle Developer que vous allez élaborer pourront être exécutées avec un serveur Oracle8 ou Oracle7. Les applications utilisant les fonctionnalités d'Oracle8 devront évidemment être exécutées avec un serveur de ce niveau.

Applications existantes

Les applications Oracle Developer existantes, conçues pour être exécutées avec un serveur Oracle7, continueront à fonctionner avec ce serveur. Par ailleurs, dans le cas où les données cible d'une application existante sont transférées depuis un serveur Oracle7 vers un serveur Oracle8, cette application peut être exécutée dans l'environnement Oracle8.


Prise en charge de PL/SQL 8

Cette version de Form Builder utilise PL/SQL 8 sur le client et sur le serveur. Actuellement, les unités de programme côté client ne peuvent pas prendre en charge la fonctionnalité orientée objet d'Oracle8. Les unités de programme stockées peuvent néanmoins utiliser toutes les nouvelles fonctionnalités de PL/SQL 8. L'annexe A du manuel PL/SQL User's Guide and Reference décrit les nouvelles fonctionnalités de PL/SQL 8.

Compatibilité avec les anciennes versions de PL/SQL

Si les unités de programme côté client sont écrites en langage PL/SQL V1 ou V2, vous devez mettre ce code à niveau. L'utilitaire de conversion PL/SQL V1 permet d'automatiser le processus de mise à niveau.

Les unités de programme stockées qui sont écrites en PL/SQL V2 sont exécutées avec le moteur PL/SQL V8 du serveur de base de données, mais leur compilation peut générer des erreurs. Ces erreurs se produisent dans les cas d'incompatibilité de syntaxe entre les versions 2 et 8. Un indicateur de compatibilité V2 dans une base de données V8 permet de choisir un mode de compatibilité V2, de telle sorte que le moteur V8 ne génère plus d'erreurs lors de la compilation de code V2. Le chapitre 6 du manuel Oracle8 Migration décrit les situations prises en charge par cet indicateur de compatibilité.


Nouvelles propriétés et propriétés étendues

Le tableau suivant répertorie les nouvelles propriétés et les propriétés étendues de la présente version de Form Builder.

Propriété	Etat et utilisation
Alias	Nouvelle propriété. Crée un alias pour le nom d'une table Oracle8.
Nom de colonne	Propriété étendue. Comprend maintenant une notation à points pour les éléments des objets colonne.
Référence détail	Nouvelle propriété. Identifie l'élément REF constituant un lien maître-détail.
Valeur de retour DML	Nouvelle propriété. Contrôle le rafraîchissement d'écran de Forms lorsque des valeurs sont modifiées après une opération d'insertion ou de mise à jour dans la base de données.
Classe de mise en oeuvre	Nouvelle propriété. Identifie le nom de classe d'un composant JavaBean fourni par l'utilisateur.
Inclure l'élément REF	Nouvelle propriété. Crée un élément masqué intitulé REF dans le bloc maître.
Type de relation	Nouvelle propriété. Identifie le type de lien maître-détail (jointure relationnelle ou REF objet).


Comportement en mode exécution de Form Builder 4.5

Le comportement en mode exécution des applications Forms créées avec les versions 5.0 à 6.0 de Form Builder diffère du comportement en mode exécution de Form Builder 4.5. A l'étape de développement, vous pouvez sélectionner quel sera le comportement en mode exécution d'une application Forms en paramétrant, au niveau de l'application, la propriété définissant le mode de compatibilité Runtime, sur 4.5 (pour la version 4.5) ou sur 5.0 (pour les versions 5.0 à 6.0).

Généralités

Les comportements en mode exécution suivants sont modifiés dans les versions 5.0 à 6.0 de Form Builder. Les sections suivantes décrivent le comportement correspondant dans Form Builder 4.5 :

•	Moment de la validation (différences dans les règles de navigation)

•	Vérification des validations standard (étapes de validation pour les différents types d'éléments)

•	Validation et propriété Différer la mise en vigueur obligatoire

•	Initialisation des éléments miroir (synchronisés)

•	Validation des éléments miroir

•	Conversion des formats de date et de chaîne

•	Paramétrage implicite de la propriété Obligatoire d'un élément

•	Valeurs NULL dans les listes instantanées et les listes de sélection

•	Valeurs NULL et activation du déclencheur POST-CHANGE

Moment de la validation

Les règles de navigation Form Builder 4.5 sont les suivantes :

•	Lorsque vous vous déplacez de l'élément A vers l'élément B d'un même bloc et que la validation au niveau de l'élément est activée, l'action entreprise dépend du mode de déplacement :

•	Si la navigation est le résultat d'une procédure GO_ITEM (clic sur la souris) ou PREVIOUS_ITEM (touches Maj-Tab), l'élément A est le seul à être validé. (L'action est la même que dans Form Builder 5.0.)

•	Si la navigation est le résultat d'une procédure NEXT_ITEM (touche Tab), l'élément A et tous les éléments compris entre A et B (en fonction de leur numéro de séquence dans le bloc et non en fonction de leur emplacement dans la séquence de déplacement au sein du bloc) sont validés. Cette situation peut donner lieu à une validation redondante. Par exemple, si vous utilisez la propriété Elément de navigation suivant pour établir une séquence de navigation correspondant à l'inverse de la séquence des éléments au sein du bloc (comme l'indique le Navigateur d'objet), tous les éléments du bloc (à l'exception de celui vers lequel vous vous déplacez à l'aide de la touche Tab) sont validés chaque fois que vous appuyez sur la touche Tab. (Dans Form Builder 5.0, l'élément A est le seul à être validé.)

•	Dans le cas de la validation au niveau de l'élément, lorsque Form Builder doit vous placer sur le premier élément navigable d'un bloc, tous les éléments antérieurs du bloc sont validés. L'échec de la validation d'un de ces éléments antérieurs peut provoquer la fermeture de Form Builder. (Dans Form Builder 5.0, les éléments antérieurs ne sont pas validés.)

•	Dans le cas de la validation au niveau de l'élément, lorsque vous essayez de sortir d'un élément Obligatoire de valeur nulle et que la propriété Différer la mise en vigueur obligatoire est paramétrée sur Non, l'action entreprise dépend du type de navigation effectuée :

•	Si la navigation est le résultat d'une procédure GO_ITEM (clic sur la souris) ou NEXT_ITEM (touche Tab), vous obtenez l'erreur suivante : FRM-40202. Le champ doit être renseigné. (L'action est la même que dans Form Builder 5.0.)

•	Si la navigation est le résultat d'une procédure PREVIOUS_ITEM (touches Maj-Tab), aucune erreur ne se produit et la navigation s'effectue correctement. (Dans Form Builder 5.0, l'erreur FRM-40202 est signalée.)

Vérification des validations standard

La validation d'éléments d'un type donné génère certaines opérations. Les opérations de validation des éléments texte de Form Builder 4.5 sont effectuées dans l'ordre suivant. Si une opération échoue, l'élément est indiqué comme étant non valide et les opérations restantes ne sont pas effectuées :

1	Vérifier qu'un élément Obligatoire n'est pas null.

Cette opération n'est effectuée que pour les éléments suivants :

•	zones de liste déroulantes

•	éléments de liste instantanée et de liste de sélection qui n'autorisent pas d'autres valeurs

•	éléments de liste navigables qui sont synchronisés avec d'autres éléments

•	éléments de texte navigables

Un échec dans les zones de liste déroulantes ou dans un élément de liste instantanée ou de liste de sélection n'autorisant pas d'autre valeur génère le message suivant :
FRM-40212. Valeur non valide dans le champ

Les autres échecs génèrent le message suivant : FRM-40202. Le champ doit être renseigné.

Cette validation est effectuée sur des instances d'éléments protégées contre la mise à jour, même lorsque l'unité de validation de l'application Forms est ITEM.

2	Vérifier que le format correct du type de données de l'élément est une valeur non NULL.

Cette opération n'est effectuée que pour les éléments suivants :

•	zones de liste déroulantes navigables

•	éléments texte,

3	Vérifier qu'un élément Longueur fixe ne contient pas de valeur non NULL de longueur erronée.

Cette opération ne concerne que les éléments texte activés.

4	Vérifier que la valeur non NULL de l'élément est comprise dans la plage indiquée pour cet élément.

Cette opération ne concerne que les éléments texte activés.

5	Si la propriété Valider via la liste de valeurs (LOV) de l'élément est activée, vérifier que la valeur non NULL de l'élément apparaît dans la liste des valeurs (LOV) de l'élément.

6	Si la valeur de l'élément n'est pas NULL, activer le déclencheur POST-CHANGE.

7	Activer le déclencheur WHEN-VALIDATE-ITEM.

La validation des éléments non-texte n'inclut pas les opérations des étapes 3 à 5. L'étape 2 ne s'applique qu'aux éléments texte et aux zones de liste déroulantes, car ces éléments sont les seuls qui permettent à l'utilisateur final de saisir des valeurs.

Validation et propriété Différer la mise en vigueur obligatoire

Cette propriété ne s'applique que si la validation au niveau de l'élément est en vigueur.

Cette propriété a trois paramètres : Yes, 4.5 et No. Pour plus de détails, voir la description de la propriété Différer la mise en vigueur obligatoire.

 Lorsqu'elle est définie à Yes ou 4.5, la propriété Obligatoire de l'élément n'est pas appliquée tant que la validation au niveau de l'enregistrement est en cours. Une valeur NULL dans l'élément est acceptée. Le déclencheur When-Validate-Item est activé.

Le tableau ci-dessous montre comment le comportement en mode exécution 4.5 et 5.0 varie en fonction des différents paramètres de la propriété Différer la mise en vigueur obligatoire pour un élément qui possède la propriété Obligatoire mais contient une valeur NULL :

	Defer-Req-Enf = Yes	Defer-Req-Enf = 4.5	Defer-Req-Enf = No
Runtime-Compat-Mode = 4.5	Comportement A	Comportement A	Comportement B
Runtime-Compat-Mode = 5,0	Comportement C	Comportement D	Comportement B
•	Comportement A : La valeur NULL est acceptée. Le déclencheur When-Validate-Item est activé et (en supposant une réussite) l'instance d'élément est marquée comme étant valide ; c'est-à-dire que sa propriété Elément valide est définie à Yes. (Les instances d'élément de valeur NULL valides sont revalidées pendant la validation au niveau enregistrement.)

Ce comportement ne s'applique qu'aux éléments de texte. (La propriété Différer la mise en vigueur obligatoire est ignorée pour les éléments de liste.)

•	Comportement B : La valeur NULL n'est pas acceptée. La navigation ne peut pas quitter l'instance d'élément jusqu'à ce qu'une valeur valide autre que NULL soit entrée.

•	Comportement C : La valeur NULL est acceptée. Le déclencheur When-Validate-Item n'est pas activé. La validation n'a pas lieu et la propriété Elément valide de l'élément est inchangée. (Toutefois, si l'élément est toujours NULL lorsque la validation au niveau enregistrement se produit, Forms Runtime émet une erreur.)

•	Comportement D : La valeur NULL est acceptée. Cependant, l'instance d'élément n'est pas marquée comme valide. Le déclencheur When-Validate-Item estactivé.

Ce comportement s'applique à la fois aux éléments de texte et aux éléments de liste.

Initialisation des éléments miroir (synchronisés)

Soit trois éléments (A, B et C) dans le même bloc de données. Si la propriété Synchroniser avec de A et B est paramétrée sur C, les éléments A et B sont considérés comme étant des éléments miroir secondaires. L'élément C est l'élément miroir maître.

Les règles d'initialisation de Form Builder 4.5 concernant les éléments miroir diffèrent de celles de la version 5.0 dans les cas suivants :

•	Dans un groupe d'éléments constituant des miroirs réciproques (y compris l'élément miroir maître), la valeur initiale est issue du dernier élément du groupe (en fonction de la séquence au sein du bloc) qui indique une valeur initiale affichable. Cela signifie que chaque valeur initiale est appliquée à tour de rôle lors de l'exécution, et que la dernière valeur pouvant être affichée par le widget de l'élément remplace toutes les valeurs initiales antérieures. Le déclencheur ON-SEQUENCE-NUMBER (s'il existe) est activé lorsque la valeur initiale de l'élément est définie (à condition qu'elle soit un nombre dans une séquence).

•	La valeur initiale n'est pas prise en compte lors de l'exécution si l'élément est une liste instantanée, une liste de sélection, un groupe de boutons d'option ou une case à cocher n'autorisant pas d'autre valeur et n'ayant aucun élément correspondant à la valeur initiale. Les éléments miroir ne sont pas inspectés.

Validation des éléments miroir

Les règles de validation de Form Builder 4.5 concernant les éléments miroir diffèrent de celles de la version 5.0 dans les cas suivants :

•	Pour un élément miroir secondaire, les propriétés Obligatoire, RANGE_HIGH et RANGE_LOW, ainsi que les déclencheurs POST-CHANGE et WHEN-VALIDATE-ITEM, sont issus de l'élément miroir secondaire.

•	Au cours de la validation au niveau de l'élément, les règles de validation proviennent toujours de l'élément en cours de validation. Cela signifie que les règles de validation d'un élément défini automatiquement sont déterminées par le premier élément employé par l'utilisateur final. Il peut s'agir d'un élément qui synchronise un autre élément ou qui s'autosynchronise.

•	Au cours de la validation au niveau enregistrement, au sein d'un groupe d'éléments miroir, Form Builder valide l'élément qui apparaît précédemment dans le bloc. Cette situation peut générer un problème de validation si des données non valides sont entrées dans un élément texte ou dans une zone de liste déroulante synchronisée par un autre élément apparaissant précédemment dans le bloc.

Conversion des formats de date et de chaîne

Pour convertir un élément dont les données sont de type DATE ou DATETIME en une chaîne interne (chaîne invisible pour l'utilisateur) ou inversement, Form Builder choisit un masque de format de date.

Dans la version 5.0, Form Builder utilise un masque de format intégré pour effectuer la conversion. Les conversions effectuées par PL/SQL ne sont pas concernées.

Dans le mode de compatibilité Runtime Form Builder 4.5, Form Builder utilise les masques de format de date intégré (built-in), en entrée (input) ou en sortie (output) dans les cas suivants (reportez-vous à la rubrique A propos des masques de format de date pour plus d'informations sur ces masques de format de date) :

•	Lorsque vous exécutez GET_ITEM_PROPERTY sur un élément dont les données sont de type DATE ou DATETIME pour les propriétés RANGE_HIGH et RANGE_LOW.

•	Lorsque vous exécutez GET_ITEM_PROPERTY sur un élément dont les données sont de type DATE ou DATETIME pour la propriété DATABASE_VALUE. Le mode de compatibilité Runtime Form Builder 4.5 permet d'obtenir le même comportement que celui de la version 4.5.7. de Form Builder (comportement des versions de démonstration antérieures à la version 5.0).

•	Lorsque vous paramétrez la valeur d'un élément récepteur d'une colonne LOV, que le type des données de cette colonne est CHAR et que l'élément récepteur est de type DATE ou DATETIME ou inversement. Le mode de compatibilité Runtime Form Builder 4.5 permet d'obtenir le même comportement que celui de la version 4.5.7. de Form Builder (comportement des versions de démonstration antérieures à la version 5.0).

•	Lorsque vous définissez la valeur initiale d'un élément de type DATE ou DATETIME, et que la valeur initiale est issue d'une variable de type CHAR (avec notation utilisant le signe deux-points). Le mode de compatibilité Runtime Form Builder 4.5 permet d'obtenir le même comportement que celui de la version 4.5.7. de Form Builder (comportement des versions de démonstration antérieures à la version 5.0).

•	Lorsque vous définissez la valeur initiale d'un élément de type CHAR, et que la valeur initiale correspond à $$DATE$$, $$DATETIME$$, $$DBDATE$$ ou $$DBDATETIME$$. Le mode de compatibilité Runtime Form Builder 4.5 permet d'obtenir le même comportement que celui de la version 4.5.7. de Form Builder (comportement des versions de démonstration antérieures à la version 5.0).

•	Dans tous les autres cas, Form Builder utilise le masque de format de date intégré. Pour plus d'informations sur les différents masques de format de date, reportez-vous à la rubrique Masques de format dans l'aide en ligne.

Paramétrage implicite de la propriété Obligatoire d'un élément

En mode de compatibilité Runtime Form Builder 4.5, la propriété Obligatoire d'un élément est implicitement paramétrée sur faux (false) si l'élément est désactivé via le paramétrage de la propriété Activé sur PROPERTY_FALSE à l'aide de la procédure interne SET_ITEM_PROPERTY.

Valeurs NULL dans les listes instantanées et les listes de sélection

En mode de compatibilité Runtime Form Builder 4.5, l'attribution automatique d'une valeur NULL à une liste instantanée ou une liste de sélection échoue si toutes les conditions suivantes sont remplies :

•	La propriété Obligatoire est activée.

•	L'élément ne contient pas d'élément ayant une valeur NULL indiqué de manière explicite.

•	l'élément n'accepte aucune autre valeur

Dans ces conditions, Form Builder génère l'erreur suivante : FRM-40212: Valeur non valide dans le champ.

Si une ligne extraite comprend une valeur NULL dans une colonne devant être attribuée à une liste instantanée ou une liste de sélection, cette ligne est rejetée (elle n'apparaît pas dans le bloc).

Dans les modes de compatibilité Runtime Form Builder 4.5 et 5.0, les valeurs NULL peuvent apparaître dans les éléments de n'importe quel type de liste, même si ces éléments contiennent des éléments de valeur NULL qui n'ont pas été indiqués de manière explicite et qui n'autorisent pas d'autre valeur. Dans une liste de sélection, les valeurs NULL apparaissent lorsque vous ne sélectionnez aucun de ses éléments. Dans une liste instantanée, une valeur NULL implicite est ajoutée temporairement à cette liste.

Valeurs NULL et activation du déclencheur POST-CHANGE

En mode de compatibilité Runtime Form Builder 4.5, le déclencheur POST-CHANGE n'est jamais activé pour une valeur NULL extraite par une interrogation et placée dans un élément. Dans le cas d'une valeur NULL attribuée automatiquement à un élément ou entrée manuellement par l'utilisateur final, le déclencheur POST-CHANGE est activé. Seuls les éléments de texte font exception a cette règle. L'utilisation du déclencheur POST-CHANGE n'est pas recommandée pour les nouvelles applications.


Contraintes d'objet

  Rubriques connexes

Le tableau ci-dessous présente les contraintes que Form Builder impose aux objets que vous créez et à tout autre élément associé à ces objets.

Remarque :

Même si Form Builder lui-même n'impose pas de limite en ce qui concerne le nombre d'objets que vous pouvez créer dans une application Forms, la mémoire disponible peut être un facteur limitatif.

Elément	Contrainte/Remarque
blocs par application Forms	pratiquement aucune limite
canevas/fenêtres	pratiquement aucune limite
largeur canevas	pratiquement aucune limite
longueur nom de colonne	30 caractères
texte standard	pratiquement aucune limite
références champ base de données	pratiquement aucune limite
blocs détail par maître	pratiquement aucune limite
longueur variable globale	255 caractères
identificateurs (noms de bloc, de champ, de liste de paramètres, etc.)	30 caractères
longueur maxi d'élément	2 048 caractères pour les valeurs de type CHAR
éléments par bloc	pratiquement aucune limite
condition de jointure	255 caractères
niveaux imbrication de menus	8 à 10, selon votre système d'exploitation. (En cas d'utilisation de menus déroulants, il est conseillé de limiter l'imbrication des menus à quatre niveaux.)
liste de valeurs	pratiquement aucune limite
éléments de menu	pratiquement aucune limite
menus	pratiquement aucune limite
attributs visuels nommés	255 attributs visuels nommés
Chaînes PL/SQL	pratiquement aucune limite
clause WHERE et clause ORDER BY	total de 32 000 caractères
colonnes caractères groupes enreg	255 caractères
groupes d'enregistrements;	255 colonnes
paramètres de substitution	pratiquement aucune limite
contrôles plage éléments texte par bloc	pratiquement aucune limite
déclencheurs	pratiquement aucune limite
longueur nom variable locale définie par utilisateur	30 caractères


Contraintes de curseur

  Rubriques connexes

Un curseur de base de données est la zone de mémoire que le SGBDR ORACLE attribue à une commande SQL. Ce terme regroupe les commandes SQL implicites utilisées pour entrer et interroger des données et les commandes SQL explicites dans les déclencheurs. Form Builder gère l'attribution des curseurs pour toutes les commandes SQL implicites et les commandes SQL explicites dans les déclencheurs V2.

Le tableau suivant présente les contraintes applicables aux curseurs de base de données.

Elément	Contrainte/Remarque
ouvrir curseurs (maximum)	valeur du paramètre OPEN_CURSORS lu dans le fichier INIT.ORA.
ouvrir curseurs (minimum)	• 5 par connexion ORACLE.
	• 4 par session d'exécution avec ORACLE ou SQL*Connect.
	• 5 par bloc (1 pour SELECT, 1 pour UPDATE, 1 pour INSERT, 1 pour DELETE et 1 pour QUERY). Les 4 premiers sont ouverts en fonction des besoins, mais peuvent être supprimés par exécution en mode OPTIMIZETP=YES. Cette restriction s'applique dans des circonstances normales, mais il est possible de modifier le nombre de curseurs en modifiant les paramètres de Set Options ou en utilisant les paramètres de la ligne de commande. Un curseur d'interrogation est toujours ouvert pour chaque bloc, en fonction des besoins, et n'est jamais partagé, même en cas d'exécution en mode OPTIMIZETP=NO.
ouvrir curseurs (minimum)	• 1 par groupe d'enregistrements créé avec interrogation.
	• 1 curseur est utilisé en cas de référence aux valeurs par défaut de date ou d'heure de la base de données ($$DBDATE$$) pour un élément quelconque.
	• 1 pour toute instruction SQL (dans les déclencheurs, les procédures ou les fonctions). Cette restriction s'applique dans des circonstances normales, mais il est possible de modifier le nombre de curseurs en modifiant les paramètres de Set Options ou en utilisant les paramètres de la ligne de commande. L'utilisation de curseurs de déclencheur de type V2 peut être personnalisée par le paramètre de ligne de commande OPTIMIZESQL.


Boîte de dialogue Bibliothèques de base de données

Cette boîte de dialogue affiche la liste des bibliothèques stockées dans la base de données.

Bibliothèque	Liste des bibliothèques disponibles dans la base de données à laquelle vous êtes connecté. Seules les bibliothèques auxquelles vous avez l'autorisation d'accéder sont affichées. Cliquez sur le nom d'une bibliothèque pour la sélectionner.


Liste des bibliothèques disponibles dans la base de données à laquelle vous êtes connecté. Seules les bibliothèques auxquelles vous avez l'autorisation d'accéder sont affichées. Cliquez sur le nom d'une bibliothèque pour la sélectionner.


Boîte de dialogue Nouvelle unité de programme

Cette boîte de dialogue permet d'indiquer le nom et le type de l'unité de programme à créer.

Nom	Nom de l'unité de programme.
Types	Indique le type d'unité de programme que vous créez. Vous pouvez choisir entre les types suivants :
Procédure	Sous-programme PL/SQL qui exécute une série d'opérations indiquées.
Fonction	Sous-programme PL/SQL qui exécute une série d'opérations indiquées et renvoie une valeur.
Spéc. de package	Types de données et sous-programmes qui peuvent être désignés par d'autre unités de programme.
Corps de package	Met en oeuvre le package. Cette unité de programme peut être dotée de sous-programmes et de types de données privés. Elle est facultative si ce package est constitué uniquement de déclarations.
Spécification du type	Indique le nom, les variables (attributs) et les sous-programmes membres (méthodes) d'un type d'objet ou d'ensemble.
Corps du type	Met en oeuvre les méthodes membres (fonctions et procédures) définies dans la spécification du type d'un objet. Chaque spécification de méthode doit être associée à un corps de méthode.
Remarque : Spécification du type et Corps du type ne sont activées que si vous êtes connecté à Oracle8.


Entrez le nom de l'unité de programme.


Type de l'unité de programme que vous voulez créer.


Boîte de dialogue Ouverture de bibliothèque

Cette boîte de dialogue permet d'ouvrir les bibliothèques existantes, dans le système de fichiers ou dans la base de données; elle constitue une interface graphique pour la commande OPEN de l'Interpréteur.

Bibliothèque	Nom (et emplacement) de la bibliothèque à ouvrir.
Sélectionner	Si vous avez sélectionné Système de fichiers ou Les deux dans le champ Dans, permet d'afficher la boîte de dialogue de sélection de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.
Dans	Permet d'indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.


Nom (et emplacement) de la bibliothèque à ouvrir.


Si vous avez sélectionné Système de fichiers ou Les deux dans le champ Dans, permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de bases de données.


Permet d'indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.


Boîte de dialogue Attachement de bibliothèque

Cette boîte de dialogue permet d'attacher des bibliothèques à votre session en cours; elle constitue une interface graphique pour la commande ATTACH de l'Interpréteur.

Bibliothèque	Nom (et emplacement) de la bibliothèque à attacher.
Rechercher	Si vous avez sélectionné Système de fichiers ou Les deux dans le champ Dans, permet d'afficher la boîte de dialogue de sélection de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.
Dans	Permet d'indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.
Attacher	Permet de confirmer vos sélections, d'attacher la bibliothèque et de fermer la boîte de dialogue.


Nom (et emplacement) de la bibliothèque à attacher.


Si vous avez sélectionné Système de fichiers ou Les deux dans le champ Dans, permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.


Permet d'indiquer si la bibliothèque est stockée dans le système de fichiers ou dans la base de données.


Permet de confirmer vos sélections, d'attacher la bibliothèque et de fermer la boîte de dialogue.


Boîte de dialogue Journalisation d'interpréteur

Cette boîte de dialogue permet de gérer les activités de journalisation ; elle constitue une interface graphique pour la commande LOG de l'Interpréteur.

Fichier	Nom du fichier dans lequel la session de journalisation doit être enregistrée.
Rechercher	Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation, que vous pouvez explorer pour sélectionner un emplacement ou un nom de fichier existant.
Annexer	Permet d'activer cette option : la session de journalisation en cours est ajoutée à la fin du fichier de journalisation existant que vous avez indiqué dans la boîte de texte Fichiers. Si cette option n'est pas sélectionnée, les informations sur la journalisation en cours, dans le fichier indiqué, seront recouvertes par la nouvelle session de journalisation.
Désactivé	Permet d'activer cette option : la journalisation dans le fichier indiqué est momentanément suspendue jusqu'à ce qu'elle soit de nouveau activée.
Afficher le journal	Permet d'afficher l'explorateur de journal de l'interpréteur lorsque la boîte de dialogue Journalisation d'interpréteur est validée. Vous pouvez également afficher l'explorateur de journal d'interpréteur en choisissant Affichage [image] Journal interpréteur dans l'Interpréteur.


Nom du fichier dans lequel la session de journalisation doit être enregistrée.


Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation que vous pouvez explorer pour sélectionner un emplacement ou un nom de fichier existant.


Permet d'activer cette option : la session de journalisation en cours est ajoutée à la fin du fichier de journalisation existant que vous avez indiqué dans la boîte de texte Fichier. Si cette option n'est pas sélectionnée, les informations sur la journalisation en cours, dans le fichier indiqué, seront recouvertes par la nouvelle session de journalisation.


Permet d'activer cette option : la journalisation dans le fichier indiqué est momentanément suspendue jusqu'à ce qu'elle soit de nouveau activée.


Permet d'afficher l'explorateur de journal d'interpréteur lorsque la boîte de dialogue Journalisation d'interpréteur est validée. Vous pouvez également afficher l'explorateur de journal d'interpréteur en choisissant Affichage --> Journal interpréteur dans l'interpréteur.


Explorateur de journal interpréteur

Cette boîte de dialogue affiche les messages enregistrés, provenant de la dernière session de journalisation.

Activer/Désactiver	Permet de sélectionner l'état Activé/Désactivé de la session de journalisation en cours.
Désactivé	Permet de mettre fin à la session de journalisation en cours et de fermer l'explorateur.
Boîte de liste de messages	Zone défilante, en lecture seule, qui affiche un enregistrement de l'entrée et de la sortie dans la fenêtre Interpréteur. Vous pouvez sélectionner, copier et rechercher le texte affiché dans la boîte de liste.


Permet de sélectionner l'état Activé/Désactivé de la session de journalisation en cours.


Permet de mettre fin à la session de journalisation en cours et de fermer l'explorateur.


Zone défilante, en lecture seule, qui affiche un enregistrement de l'entrée et de la sortie dans la fenêtre Interpréteur. Vous pouvez sélectionner, copier et rechercher le texte affiché dans la boîte de liste.


Boîte de dialogue Connexion

Cette boîte de dialogue vous permet de vous connecter à une instance de base de données ; elle constitue une interface graphique pour la commande CONNECT de l'Interpréteur.

Nom utilisateur	Votre ID utilisateur de base de données. Vous pouvez entrer votre chaîne de connexion complète, mais votre mot de passe sera renvoyé en écho.
Mot de passe	Votre mot de passe d'accès à la base de données. Pour garantir la confidentialité, le mot de passe que vous entrez n'est pas renvoyé en écho.
Base de données	Chaîne de connexion à la base de données à laquelle vous voulez vous connecter, généralement sous la forme :
	protocole_réseau:noeud_réseau[:nom_base de données]
	Chacun des champs est séparé par un signe deux-points (:). Pour connaître la chaîne de connexion correspondant à votre base de données, interrogez votre administrateur de bases de données. Notez que si vous vous connectez à une source de données ODBC, la syntaxe est la suivante :
	nom_utilisateur/mot_passe@ODBC:source_données[:nombd] Si nombd n'est pas indiqué, la base de données en cours est utilisée pour la connexion ODBC
Connecter	Permet de valider les informations que vous avez fournies et de tenter d'établir une connexion. Si la connexion réussit, la boîte de dialogue se ferme. Si elle échoue, un message d'erreur est généré.


Votre ID utilisateur de base de données. Vous pouvez entrer votre chaîne de connexion complète, mais votre mot de passe sera renvoyé en écho.


Votre mot de passe d'accès à la base de données. Pour garantir la confidentialité, le mot de passe que vous entrez n'est pas renvoyé en écho.


Chaîne de connexion à la base de données à laquelle vous voulez vous connecter, généralement sous la forme :


Permet de valider les informations que vous avez fournies et de tenter d'établir une connexion. Si la connexion réussit, la boîte de dialogue se ferme. Si elle échoue, un message d'erreur est généré.


Boîte de dialogue Autorisation à liste d'accès

Cette boîte de dialogue permet d'afficher et de modifier les autorisations d'accès à la bibliothèque sélectionnée ou à l'unité de programme stockée sur le serveur de base de données ; elle constitue une interface graphique pour les commandes GRANT et REVOKE de l'Interpréteur. Pour pouvoir accorder ou retirer des autorisations d'accès à d'autres utilisateurs, vous devez avoir une Autorisation d'accès à la bibliothèque.

Boîte de liste d'utilisateurs	Permet d'afficher la liste des utilisateurs qui ont accès à la bibliothèque sélectionnée ou à l'unité de programme stockée. Cliquez sur un nom pour l'entrer dans la boîte de texte Utilisateur.
Utilisateur	Entrez le nom de l'utilisateur auquel vous voulez accorder ou retirer une autorisation d'accès à la bibliothèque sélectionnée ou à l'unité de programme stockée. Ce nom doit être un nom valide pour la base de données en cours. Si le nom utilisateur figure déjà dans la boîte de liste d'utilisateurs, cliquez simplement sur son nom.
Ajouter	Permet d'ajouter le nom utilisateur à la liste de ceux qui sont autorisés à accéder à la bibliothèque ou à l'unité de programme stockée.
Supprimer	Permet de supprimer le nom utilisateur de la liste de ceux qui sont autorisés à accéder à la bibliothèque à l'unité de programme stockée.


Permet d'afficher la liste des utilisateurs qui ont accès à la bibliothèque sélectionnée. Cliquez sur un nom pour l'entrer dans la boîte de texte Utilisateur.


Entrez le nom de l'utilisateur auquel vous voulez accorder ou retirer une autorisation d'accès à la bibliothèque sélectionnée. Ce nom doit être un nom valide pour la base de données en cours. Si le nom de l'utilisateur figure déjà dans la boîte de liste d'utilisateurs, cliquez simplement sur son nom.


Permet d'ajouter le nom utilisateur à la liste de ceux qui sont autorisés à accéder à la bibliothèque.


Permet de supprimer le nom utilisateur de la liste de ceux qui sont autorisés à accéder à la bibliothèque.


Boîte de dialogue Enregistrement de bibliothèque

Cette boîte de dialogue permet d'enregistrer une bibliothèque dans le système de fichiers ou dans la base de données ; elle constitue une interface graphique pour la commande SAVE de l'Interpréteur.

Bibliothèque	Entrez le nom (et l'emplacement) de la bibliothèque que vous voulez enregistrer.
Rechercher	Si vous avez sélectionné Système de fichiers dans le champ Dans, permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.
Dans	Permet d'indiquer si la bibliothèque sera sauvegardée dans le système de fichiers ou dans la base de données.


Entrez le nom (et l'emplacement) de la bibliothèque que vous voulez enregistrer.


Si vous avez sélectionné Système de fichiers dans le champ Dans, permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation. Si vous avez sélectionné Base de données dans le champ Dans, permet d'afficher la boîte de dialogue Bibliothèques de base de données.


Permet d'indiquer si la bibliothèque sera sauvegardée dans le système de fichiers ou dans la base de données.


Boîte de dialogue Recherche/remplacement

Cette boîte de dialogue vous permet de rechercher et éventuellement de remplacer des chaînes ou des expressions régulières dans la source d'unité de programme affichée dans l'Editeur d'unité de programme ou d'unité de programme stockée.

Rechercher	Entrez la chaîne que vous recherchez. Si vous voulez que la chaîne soit considérée comme une expression régulière, cliquez sur la case à cocher Expression régulière pour l'activer.
Remplacer par	Entrez la chaîne devant remplacer les correspondances trouvées.
Expression régulière	Permet d'indiquer si la chaîne de recherche doit être considérée comme une chaîne ou une expression régulière. Si cette case n'est pas cochée, le contenu de la boîte de texte Rechercher est considéré comme une chaîne.
Distinction maj/min	Permet d'indiquer si l'opération doit faire la différence entre les majuscules et les minuscules dans la chaîne de recherche. Si cette case n'est pas cochée, la recherche trouvera toutes les correspondances des chaînes de recherche, qu'elles soient en majuscules ou en minuscules.
Rechercher	Permet de rechercher la prochaine correspondance de la chaîne de recherche, à partir de la position du curseur.
Remplacer	Permet de remplacer la dernière chaîne trouvée par la chaîne spécifiée dans la boîte de texte Remplacer. Si aucune correspondance n'est sélectionnée, recherche la prochaine occurrence de la chaîne de recherche et la remplace.
Remplacer tt	Permet de remplacer toutes les correspondances par la chaîne de remplacement (à partir de la position du curseur jusqu'à la fin de la zone sur laquelle porte la recherche).


Entrez la chaîne que vous recherchez. Si vous voulez que la chaîne soit considérée comme une expression régulière, cliquez sur la case à cocher Expression régulière pour la sélectionner.


Entrez la chaîne devant remplacer les correspondances trouvées.


Permet d'indiquer si la chaîne de recherche doit être considérée comme une chaîne ou une expression régulière. Si cette case n'est pas cochée, le contenu de la boîte de texte Rechercher est considéré comme une chaîne.


Permet d'indiquer si l'opération doit faire la différence entre les majuscules et les minuscules dans la chaîne de recherche. Si cette case n'est pas cochée, la recherche trouvera toutes les correspondances des chaînes de recherche, qu'elles soient en majuscules ou en minuscules.


Permet de rechercher la prochaine correspondance de la chaîne de recherche, à partir de la position du curseur.


Permet de remplacer la dernière chaîne trouvée par la chaîne spécifiée dans la boîte de texte Remplacer. Si aucune correspondance n'est sélectionnée, recherche la prochaine occurrence de la chaîne de recherche et la remplace.


Permet de remplacer toutes les correspondances par la chaîne de remplacement (à partir de la position du curseur jusqu'à la fin de la zone sur laquelle porte la recherche).


Boîte de dialogue Point d'interruption PL/SQL

Cette boîte de dialogue permet de créer un point d'interruption ; elle constitue une interface graphique pour la commande BREAK. Elle vous permet de créer ou de modifier des points d'interruption et les déclencheurs correspondants.

Point d'interruption	Permet d'identifier le point d'interruption qui se présente sous la forme Point d'interruption:  New ou Point d'interruption:  number. Le libellé est " New " lors de l'indication d'un nouveau point d'interruption, ou une valeur numérique lors de la modification d'un point d'interruption existant.
Activé	Permet d'indiquer si le point d'interruption est activé ou désactivé.
Unité de programme	Permet d'identifier l'unité de programme cible, ou l'emplacement du point d'interruption existant ou du nouveau.
Ligne	Permet d'identifier l'emplacement source du point d'interruption dans l'unité de programme.
Déclencheur	Si nécessaire, entrez les instructions PL/SQL qui seront activées lorsque le point d'interruption sera atteint. Les mots-clés BEGIN et END ne sont pas obligatoires dans le déclencheur. Par exemple, vous pouvez utiliser DEBUG.INTERPRET pour exécuter une commande de l'Interpréteur. DEBUG.INTERPRET('.SHOW LOCALS');


Permet d'identifier le point d'interruption et se présente sous la forme Point d'interruption:  New ou Point d'interruption:  number. Le libellé est " New " lors de l'indication d'un nouveau point d'interruption, ou une valeur numérique lors de la modification d'un point d'interruption existant.


Permet d'indiquer si le point d'interruption est activé ou désactivé.


Permet d'identifier l'unité de programme cible du point d'interruption existant ou du nouveau.


Permet d'identifier l'emplacement source du point d'interruption dans l'unité de programme.


Entrez les instructions PL/SQL de point d'interruption qui seront activées lorsque le point d'interruption sera atteint. Les mots-clés BEGIN et END ne sont pas obligatoires.


Boîte de dialogue Déclencheur PL/SQL

Cette boîte de dialogue permet de créer un déclencheur de débogage ; elle constitue une interface graphique pour la commande TRIGGER.

Déclencheur	Permet d'identifier le déclencheur de débogage et se présente sous la forme Déclencheur:  New ou Déclencheur:  number. Le libellé est "New" lors de l'indication d'un nouveau déclencheur de débogage, ou une valeur numérique lors de la modification d'un déclencheur de débogage existant.
Activé	Permet d'indiquer si le déclencheur de débogage est activé ou désactivé.
Emplacement	Permet d'indiquer l'emplacement source du déclencheur de débogage.
	L'option Unité de programme (par défaut) indique que le déclencheur de débogage se trouve à un emplacement source spécifique dans l'unité de programme.
	L'option Entrée débogage indique que le déclencheur est activé dès que l'exécution de l'unité de programme est suspendue.
	L'option Chaque instruction indique que le déclencheur de débogage est activé immédiatement avant chaque instruction exécutable de l'unité de programme.
Unité de programme	Permet d'identifier l'unité de programme cible.
Ligne	Permet d'identifier l'emplacement source du déclencheur de débogage dans l'unité de programme.
Corps du déclencheur	Entrez les instructions PL/SQL à utiliser comme corps du déclencheur de débogage. Les mots-clés BEGIN et END ne sont pas obligatoires. Un déclencheur de débogage fonctionne comme celui de point d'interruption conditionnel. Si vous indiquez les conditions de date/heure d'une action de débogage, le déclencheur n'est activé que si elles sont vraies. Par exemple, vous pouvez activer DEBUG.BREAK si une variable est égale à une valeur donnée, telle que 100. IF DEBUG.GETC('vnumber') = 100 THEN   RAISE DEBUG.BREAK; END IF;


Permet d'identifier le déclencheur de débogage et se présente sous la forme Déclencheur:  New ou Déclencheur:  number. Le libellé est "New" lors de l'indication d'un nouveau déclencheur de débogage, ou une valeur numérique lors de la modification d'un déclencheur de débogage existant.


Permet d'indiquer si le déclencheur de débogage est activé ou désactivé.


Permet d'indiquer l'emplacement source du déclencheur de débogage.


Permet d'identifier l'unité de programme cible.


Permet d'identifier l'emplacement source du déclencheur de débogage dans l'unité de programme.


Entrez les instructions PL/SQL qui devront être utilisées comme corps du déclencheur de débogage.


Boîte de dialogue Etape de débogage PL/SQL
Boite de dialogue Etape de débogage PL/SQL

Cette boîte de dialogue permet de définir des options permettant de progresser pas à pas dans le code d'une unité de programme interrompue pendant le débogage ; elle constitue l'interface graphique pour la commande STEP de l'Interpréteur.

Mode	Permet d'indiquer l'option Step à utiliser.
	INTO reprend l'exécution jusqu'à la prochaine instruction exécutable.
	OVER reprend l'exécution jusqu'à la prochaine instruction exécutable dans l'unité de programme en cours, en sautant les appels de sous-programmes.
	OUT reprend l'exécution d'un sous-programme imbriqué et s'arrête après l'instruction exécutable de l'unité de programme appelante.
	TO (vers) reprend l'exécution jusqu'à ce que l'emplacement indiqué soit atteint.
Unité programme	Permet d'identifier le corps de l'unité de programme cible de l'option de commande STEP TO.
Ligne	Permet d'identifier l'emplacement, dans le corps de l'unité de programme cible, de l'option de commande STEP TO.
Décompte	Permet d'indiquer le nombre de fois où la commande STEP est répétée. Par valeur par défaut : 1.
Appliquer	Permet d'accepter les options indiquées et reprend l'exécution de l'unité de programme en conséquence. Comme les opérations pas à pas s'exécutent généralement les unes après les autres, la boîte de dialogue STEP reste affichée jusqu'à ce que vous la fermiez explicitement, ou tant qu'il y a un niveau de débogage actif.


Permet d'indiquer l'option Step à utiliser.


Permet d'identifier le corps de l'unité de programme cible de l'option de commande STEP TO.


Permet d'identifier l'emplacement, dans le corps de l'unité de programme cible, de l'option de commande STEP TO.


Permet d'indiquer le nombre de fois où la commande STEP est répétée. Valeur par défaut : 1.


Permet d'accepter les options indiquées et de reprendre l'exécution de l'unité de programme en conséquence. Comme les opérations pas à pas s'exécutent généralement les unes après les autres, la boîte de dialogue STEP reste affichée jusqu'à ce que vous la fermiez explicitement, ou tant qu'il y a un niveau de débogage actif.


Boîte de dialogue Chargement d'unité de programme

Cette boîte de dialogue permet d'importer et de compiler une unité de programme stockée dans le système de fichiers ; elle constitue une interface graphique pour la commande LOAD de l'Interpréteur.

Fichier	Entrez le nom (et l'emplacement) du fichier contenant le texte source de l'unité de programme.
Rechercher	Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation.
Supprimer les confirmations	Permet de supprimer tous les messages de confirmation pendant le chargement et la compilation, par exemple lors de l'écrasement d'une unité de programme existante. Lorsque cette option est désactivée (par défaut), les confirmations ne sont pas supprimées.
Charger	Permet de valider vos sélections, de charger l'unité de programme et de fermer la boîte de dialogue.


Entrez le nom (et l'emplacement) du fichier contenant le texte source de l'unité de programme.


Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation.


Permet de supprimer tous les messages de confirmation pendant le chargement et la compilation, par exemple lors de l'écrasement d'une unité de programme existante. Lorsque cette option est désactivée (par défaut), les confirmations ne sont pas supprimées.


Permet de valider vos sélections, de charger l'unité de programme et de fermer la boîte de dialogue.


Boîte de dialogue Interpréteur de script de débogage

Cette boîte de dialogue permet d'importer et d'exécuter un script contenant toute combinaison de commandes de l'Interpréteur, de source PL/SQL ou d'instructions SQL ; elle constitue une interface graphique pour la commande INTERPRET.

Fichier	Entrez le nom (et l'emplacement) du fichier contenant le script de débogage à interpréter.
Rechercher	Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation.
Echo	Permet d'activer ou de désactiver le mode Echo. Lorsque cette option est désactivée (par défaut), chaque ligne de script n'est pas renvoyée en écho dans la ligne de commande de l'Interpréteur, au fur et à mesure du chargement du script.
Silencieux	Permet d'activer ou de désactiver le mode Silencieux. Lorsque cette option est désactivée (par défaut), les messages d'état sont affichés pendant le chargement du script.
Supprimer les confirmations	Permet de supprimer toutes les confirmations pendant l'opération, par exemple, lors de l'écrasement d'une unité de programme existante. Lorsque cette option est désactivée (par défaut), les confirmations ne sont pas supprimées.
Interpréter	Permet de valider vos sélections, d'exécuter le script et de fermer la boîte de dialogue.


Entrez le nom (et l'emplacement) du fichier contenant le script de débogage à interpréter.


Permet d'afficher la boîte de dialogue de fichiers de votre système d'exploitation.


Permet d'activer ou de désactiver le mode Echo. Lorsque cette option est désactivée (par défaut), chaque ligne de script n'est pas renvoyée en écho dans la ligne de commande de l'Interpréteur, au fur et à mesure du chargement du script.


Permet d'activer ou de désactiver le mode Silencieux. Lorsque cette option est désactivée (par défaut), les messages d'état sont affichés pendant le chargement du script.


Permet de supprimer toutes les confirmations pendant l'opération, par exemple, lors de l'écrasement d'une unité de programme existante. Lorsque cette option est désactivée (par défaut), les confirmations ne sont pas supprimées.


Permet de valider vos sélections, d'exécuter le script et de fermer la boîte de dialogue.


Boîte de dialogue Compilation

Cette boîte de dialogue affiche les messages d'erreur de compilation pendant la compilation par lots et vous permet de suspendre et de reprendre la compilation, ainsi que de passer à une source d'erreur.

Ligne d'état	Pendant la compilation des unités de programme, indique les informations suivantes :
	nom et type de l'unité de programme en cours de compilation
	[INTERROMPU] lorsque vous cliquez sur Interrompre
	pourcentage d'unités de programme qui ont été compilées.
Liste des erreurs de compilation	Zone que l'utilisateur peut faire défiler à l'aide de la souris ; elle répertorie les erreurs détectées lors de la compilation des unités de programme sélectionnées. Dans cette zone de liste, cliquez sur une erreur de façon à ce que l'Editeur d'unité de programme apparaisse et que cette erreur soit localisée. Si vous cliquez sur ce bouton et que vous avez interrompu la compilation après avoir attendu de cliquer, une zone d'avertissement apparaît ; elle vous informe que l'accès à la source d'une erreur provoque l'abandon de la compilation par lots.
Interrompre	Permet d'arrêter momentanément la compilation, par exemple lorsque le nombre d'erreurs générées est trop important.
Reprendre	Permet de reprendre la compilation après une interruption.
Atteindre l'erreur	Permet d'afficher l'Editeur d'unité de programme contenant la source de l'unité de programme à l'emplacement de la première erreur. Si vous cliquez sur ce bouton et que vous avez interrompu la compilation après avoir attendu de cliquer, une zone d'avertissement apparaît ; elle vous informe que l'accès à la source d'une erreur provoque l'abandon de la compilation par lots. Cette option permet également d'appeler la boîte de dialogue des messages de compilation PL/SQL, zone de liste que l'utilisateur peut faire défiler à l'aide de la souris pour consulter toutes les erreurs détectées lors de la compilation des unités de programme sélectionnées. Dans cette zone de liste, cliquez sur une erreur pour afficher l'Editeur d'unité de programme et l'unité de programme contenant cette erreur.

Si la compilation se termine sans qu'aucune erreur n'ait été détectée, le message Compilation réussie s'affiche dans la ligne d'état. Si des erreurs ont été détectées pendant la compilation, le message Compilation avec erreurs s'affiche.

La boîte de dialogue des messages d'erreur de compilation PL/SQL est une zone de liste que vous pouvez faire défiler à l'aide de la souris pour consulter toutes les erreurs détectées lors de la compilation des unités de programme sélectionnées. Dans cette zone de liste, cliquez sur une erreur pour afficher l'Editeur d'unité de programme et l'unité de programme dans laquelle se trouve l'erreur.


Pendant la compilation des unités de programme, indique les informations suivantes : le nom et le type de l'unité de programme en cours de compilation, ainsi que le pourcentage d'unités de programme ayant été compilées.


Permet d'arrêter momentanément la compilation, par exemple lorsque le nombre d'erreurs générées est trop important. Le fait de cliquer sur Interrompre affiche [INTERROMPU] dans la ligne d'état.


Permet de reprendre la compilation après une interruption.


Permet d'afficher l'explorateur de messages de compilation PL/SQL et l'Editeur d'unité de programme contenant la source de l'unité de programme à l'emplacement de la première erreur.


Expressions régulières

Les expressions régulières sont des chaînes qui peuvent contenir les caractères génériques spéciaux suivants :

.	Equivaut à n'importe quel caractère. Par exemple, .oc équivaut à la fois à toc et roc.
( )	Utilisé pour imposer la priorité des opérateurs (par exemple, +) lorsque la priorité par défaut ne doit pas être utilisée. Par exemple, la concaténation de caractères (par exemple le) a priorité sur les autres opérateurs comme +, de sorte que le+A équivaut à (le)+A. Si vous voulez que la correspondance soit leeeeeeA, vous pouvez imposer que + précède la concaténation en utilisant des parenthèses : l(e+)A.
[ ]	Equivaut à n'importe quel caractère entre crochets. Les crochets équivalent à un opérateur OR logique. Par exemple, b[roi]s correspondra à bris et à bois.
|	Utilisé entre deux expressions régulières. Il y a correspondance si l'une ou l'autre des expressions régulières correspond.
\	Equivaut au caractère spécial qui suit la barre oblique inversée. Par exemple, \* équivaut à *. La barre oblique inversée est le caractère dit " d'échappement ". Tout caractère spécial qui le suit n'est pas considéré comme un caractère spécial. Exemples d'utilisation du caractère d'échappement :
	\n équivaut à un caractère de changement de ligne ;
	\t correspond à un caractère de tabulation ;
	\b correspond à un caractère blanc ;
	\w correspond à \n, \t, \b ou \0.
*	Correspond à 0 ou à plusieurs instances de l'expression régulière. Par exemple, (le)*A correspond à A, leA et leleA.
+	Correspond à une ou plusieurs instances de l'expression régulière. Par exemple,(le)+A correspond à la fois à leA et à leleA, mais ne correspond pas à le tout seul, contrairement à (le)*A.

Les caractères suivants ont une signification particulière lorsqu'ils sont utilisés entre crochets :

~	Utilisé comme premier caractère, correspond à tout caractère qui ne figure pas dans les caractères ou les séries de caractères entre crochets. Par exemple, b[~ro]is correspond à bais, mais pas à bris.
-	Entre deux paires de caractères, correspond à n'importe quel caractère de la série. Par exemple, A-E correspondra aux lettres A, B, C, D et E. Les paires de séries de caractères peuvent être :
	• des caractères alphabétiques en majuscules ou en minuscules, dans lesquels le premier caractère précède (ou est au même niveau que) le deuxième caractère de l'alphabet ;
	• des chiffres, dans lesquels le premier est inférieur ou égal au second (par exemple,  [4-9] ou [0-3]).
	Vous pouvez également utiliser le caractère d'échappement entre crochets.
Règles : L'ordre de priorité des caractères spéciaux d'une expression régulière est le suivant : ( ), [ ], caractères concaténés (par exemple abc), *, +, ~,  , |, .

Exemples d'implication de l'ordre de priorité :

•	Début|Fin équivaut à (Début)|(Fin)

•	Début* équivaut à (Début)*

•	Début|Fin* équivaut à (Début)|((Fin)*)


Boîte de dialogue Sélection de lignes de table PL/SQL

Cette boîte de dialogue contient des index de lignes d'une table sélectionnée et permet de sélectionner les lignes que vous voulez consulter, totalement développées, dans le Navigateur d'objet.

Boîte de liste d'index d'enregistrements	Zone que vous pouvez faire défiler à l'aide de la souris, contenant une liste des index de toutes les lignes de la table sélectionnée.
Sélectionner tout	Permet de sélectionner tous les éléments de la table sélectionnée.
Désélectionner tout	Permet d'annuler la sélection de tous les éléments de la table sélectionnée.
Par défaut, tous les index sont sélectionnés. Pour désélectionner chaque index de la liste, cliquez dessus tout en appuyant sur la touche Ctrl.


Boîte de dialogue de recherche et de remplacement dans les unités de programme

Cette boîte de dialogue vous permet d'effectuer une recherche globale et des remplacements dans plusieurs unités de programme.

Rechercher	Entrez la chaîne à rechercher.   Ou Cliquez sur la flèche située à droite afin de choisir une chaîne dans la zone de liste déroulante, qui peut contenir jusqu'aux 16 dernières chaînes de recherche utilisées. Pour que cette chaîne soit considérée comme une expression régulière, cochez la case Utiliser les expressions.
Expression	Permet d'afficher la liste des expressions régulières que vous pouvez utiliser dans vos critères de recherche. Cliquez sur l'une d'elles pour l'insérer dans la zone de liste déroulante Rechercher.
Remplacer par	Entrez la chaîne devant remplacer celle recherchée Ou Cliquez sur la flèche située à droite afin de choisir une chaîne dans la zone de liste déroulante, qui peut contenir jusqu'aux 16 dernières chaînes de remplacement utilisées.
Utiliser les expressions	Cochez cette case si vous utilisez des expressions régulières dans vos critères de recherche. Désélectionnez-la si vous n'en employez pas.
Respecter la casse	Cochez cette case pour indiquer que la recherche doit distinguer les majuscules et les minuscules. Désélectionnez-la pour rechercher toutes les instances correspondantes de la chaîne de recherche, qu'elles soient en majuscules ou en minuscules.
Rechercher sur	Indiquez l'endroit où vous voulez effectuer la recherche ou une recherche/remplacement. Dans une session Procedure Builder autonome,  / représente le niveau supérieur du noeud Unités de programme du Navigateur d'objet. Toutes les librairies PL/SQL ouvertes dans la session en cours sont répertoriées sous le signe /. Tous les noeuds sont sélectionnés par défaut. Pour effectuer la recherche uniquement dans l'un des noeuds, cliquez dessus.
Chercher tout	Permet de rechercher toutes les instances correspondantes de la chaîne de recherche que vous avez indiquée. Aucun remplacement n'est effectué.
Remplacer par	Permet de remplacer toutes les instances correspondantes de la chaîne de recherche par celle que vous avez indiquée. Une zone de message apparaît ; elle vous invite à confirmer le remplacement par lots avant sa réalisation.
Fermer	Permet de fermer la boîte de dialogue.
Aide	Permet d'afficher cette rubrique d'aide.
Zone de résultats	Permet d'afficher les instances de la chaîne trouvées. L'emplacement de chacune d'elles est indiqué par le nom du noeud et de l'unité de programme concernés, ainsi que par le numéro de ligne et de colonne de la ligne source. Le nombre total d'instances apparaît dans la barre d'état située au-dessus de cette zone de liste. Cliquez sur l'une de ces instances pour la sélectionner. Vous pouvez en choisir plusieurs.
Remplacer	Permet de remplacer la chaîne de recherche par celle indiquée dans les instances correspondantes sélectionnées dans la zone de résultats uniquement.
Modifier	Permet d'ouvrir la source de l'instance correspondante sélectionnée dans l'Editeur d'unité de programme.


Interface de l'éditeur d'unité de programme
Interface de l'Editeur d'unité de programme

  Rubriques connexes

L'Editeur contient les boutons et la zone de liste déroulante suivants :

Compiler	Permet de compiler l'unité de programme en cours. Les messages d'erreur générés par la compilation apparaissent dans la fenêtre déroulante Messages de compilation.
Appliquer	Permet d'enregistrer les modifications apportées à l'unité de programme depuis sa première ouverture, ou la dernière opération d'application ou de rétablissement. L'unité de programme n'est pas recompilée. L'Editeur reste ouvert. La pile annuler/rétablir est supprimée.
Rétablir	Permet de rendre à l'unité de programme l'état dans lequel elle se trouvait lors de la dernière opération d'application ou de rétablissement. Si aucune opération d'application ou de rétablissement n'a été exécutée, l'unité de programme reprend son état d'origine.
Nouveau	Permet d'afficher la boîte de dialogue Nouvelle unité de programme, dans laquelle vous pouvez indiquer le type et le nom de l'unité de programme que vous voulez créer.
Supprimer	Permet de supprimer l'unité de programme affichée. Une zone de message vous invite à confirmer l'opération.
Fermer	Permet de fermer l'Editeur d'unité de programme.
Aide	Affiche cette rubrique d'aide.
Nom	Affiche le nom de l'unité de programme en cours. Cliquez sur la flèche à droite de la zone pour afficher la liste déroulante des unités de programme de la session en cours. Cliquez sur une unité de programme de la liste pour l'afficher dans la fenêtre Source.

L'Editeur comporte également les éléments suivants :

Fenêtre Source	Zone de saisie et de modification du texte source de l'unité de programme PL/SQL. Des barres de partage permettent de créer jusqu'à quatre vues différentes de l'unité de programme en cours. Vous pouvez faire défiler chaque vue indépendamment des autres. Pour créer des vues horizontales dans la fenêtre Source, positionnez le curseur sur la barre de partage située en haut de la barre de défilement vertical, puis cliquez deux fois. La fenêtre Source est divisée horizontalement en deux vues de tailles identiques. Vous pouvez également cliquer sur la barre de partage et la faire glisser vers le bas afin de modifier la taille des vues. Pour créer des vues verticales, positionnez le curseur sur la barre de partage située à l'extrémité gauche de la barre de défilement horizontal, puis cliquez deux fois. La fenêtre Source est divisée verticalement en deux vues de tailles identiques. Vous pouvez également cliquer sur la barre de partage et la faire glisser vers la droite pour modifier la taille des vues. Pour redimensionner les vues, cliquez sur la barre de partage qui les sépare et faites-la glisser. Pour supprimer une vue horizontale ou verticale, cliquez deux fois sur la barre de partage qui sépare les vues ou faites-la glisser vers le bord de la fenêtre. Pour supprimer en une seule fois les quatre vues, positionnez le curseur au point d'intersection des barres de partage et cliquez deux fois, ou faites-le glisser vers l'un des angles de la fenêtre. Pour sélectionner une ligne de code, positionnez le curseur sur la marge gauche et cliquez dessus.
Messages de compilation	Affiche les éventuels messages d'erreur générés par la compilation. Cliquer sur un message d'erreur le met en évidence, fait défiler la fenêtre Source vers l'instruction source à l'origine de l'erreur et positionne le curseur de texte à l'emplacement de l'erreur. Par défaut, la fenêtre Messages de compilation apparaît uniquement si des messages d'erreur sont générés au cours de la compilation. Pour afficher manuellement cette fenêtre au moment voulu, déplacez le curseur vers l'angle inférieur droit de la fenêtre de l'Editeur, jusqu'à ce qu'il prenne une forme de viseur. Cliquez ensuite dessus et faites-le glisser vers le haut. La barre de partage est déplacée vers le haut, et la fenêtre Messages de compilation située en-dessous apparaît.
Barre de partage (séparant les fenêtres)	Sépare les fenêtres Source et Messages de compilation. Elle permet de modifier la taille de ces fenêtres. Cliquez sur la barre de partage et faites-la glisser pour redimensionner les fenêtres. Si la fenêtre Messages de compilation n'apparaît pas, la barre de partage est située près du bas de la fenêtre de l'Editeur.
Barre d'état	Affiche, au bas de l'Editeur, des informations sur l'état de l'unité de programme.


Permet de compiler l'unité de programme affichée dans la fenêtre Source. Les messages d'erreur générés par la compilation s'affichent dans la fenêtre déroulante Messages de compilation.


Permet d'enregistrer les modifications apportées à l'unité de programme, dans l'Editeur, depuis la première ouverture ou la dernière opération d'application ou de rétablissement. L'unité de programme n'est pas recompilée. L'Editeur reste ouvert.


Permet de rendre à l'unité de programme l'état dans lequel elle se trouvait lors de la dernière opération d'application ou de rétablissement. Si aucune opération d'application ou de rétablissement n'a été exécutée, l'unité de programme reprend son état d'origine.


Permet d'afficher la boîte de dialogue Nouvelle unité de programme, dans laquelle vous pouvez indiquer le type et le nom de l'unité de programme que vous voulez créer.


Permet de supprimer l'unité de programme affichée, après avoir demandé confirmation.


Vous avez tenté de fermer l'Editeur. Si des modifications ont été effectuées, sans être enregistrées, une zone de message apparaît, vous demandant d'enregistrer ou d'annuler les modifications, ou encore d'annuler l'opération. Après l'enregistrement de toutes les modifications, l'Editeur d'unité de programme disparaît.


Indique le type de l'unité de programme (déclencheur, procédure, etc.) affichée dans l'Editeur.


Indique l'objet auquel le programme est associé.


Affiche le nom de l'unité de programme en cours. Utilisez la flèche à droite du champ pour afficher la liste déroulante des autres unités de programme. Cliquez sur une unité de programme de la liste pour l'afficher dans l'Editeur.


Permet d'entrer et d'éditer le texte source d'une unité de programme PL/SQL.


Affiche les erreurs de syntaxe générées par la compilation. Cliquez sur une erreur pour passer à sa source dans l'unité de programme.


Permet de modifier l'espace relatif occupé par les deux fenêtres (Source et Messages de compilation) dans l'Editeur d'unité de programme. Notez que, par défaut, la fenêtre Messages de compilation ne s'affiche qu'en cas de génération de messages d'erreur de compilation.


La partie gauche de la barre d'état affiche les messages suivants :

Non modifiée	Aucune modification n'a été apportée à l'unité de programme depuis qu'elle a été affichée pour la première fois ou appliquée pour la dernière fois.
Modifiée	Une ou plusieurs modification ont été apportées à l'unité de programme depuis qu'elle a été affichée pour la première fois ou appliquée pour la dernière fois.

La partie droite de la barre d'état affiche les messages suivants :

Non compilé	Le texte source de l'unité de programme, affiché actuellement, n'a pas été compilé.
Compilé avec succès	Le texte source de l'unité de programme, affiché actuellement, a été compilé sans erreur.
Compilé avec erreurs	Le texte source de l'unité de programme, affiché actuellement, a été compilé avec erreurs. Les erreurs s'affichent dans la fenêtre Messages de compilation.


Fonctions d'édition

  Rubriques connexes

Les fonctions d'éditions suivantes sont prises en charge uniquement dans l'Editeur d'unité de programme et dans l'Editeur d'unité de programme stockée :

Retrait/retrait négatif automatique	Lorsque vous entrez du code dans les éditeurs, les lignes sont automatiquement mises en retrait ou en retrait négatif en fonction des règles de syntaxe PL/SQL.
Mise en évidence de la syntaxe à l'aide de couleurs	Les mots-clés, les commentaires, les chaînes et les symboles tels que : = et || sont identifiés à l'aide de couleurs différentes.
Sélection de colonnes et de lignes	Vous pouvez sélectionner des colonnes de texte, ainsi que des lignes de code source. Pour sélectionner une colonne, appuyez sur la touche ALT, puis cliquez sur cette colonne et faites glisser le curseur horizontalement. Pour sélectionner une ligne, cliquez sur la marge à l'extrême gauche de cette ligne dans la fenêtre Source.
Manipulation de texte par glisser-déplacer	Vous pouvez copier ou déplacer le texte sélectionné en le faisant glisser. Pour copier le texte sélectionné, appuyez sur la touche CTRL et faites-le glisser. Pour déplacer le texte sélectionné, il vous suffit de le faire glisser.
Lignes mises en retrait ou en retrait négatif	Les commandes de mise en retrait ou en retrait négatif du menu Edition vous permettent de mettre en retrait ou en retrait négatif les lignes source sélectionnées. Vous pouvez également utiliser les touches TAB et Maj-TAB pour mettre les lignes sélectionnées en retrait ou en retrait négatif.
Vues multiples	Vous pouvez créer jusqu'à quatre vues distinctes de l'unité de programme en cours. Pour créer des vues horizontales, placez le curseur sur la barre de partage en haut de la barre de défilement verticale. Puis cliquez sur la barre de partage et faites-la glisser vers le bas. Pour créer des vues verticales, placez le curseur sur la barre de partage à l'extrême gauche de la barre de défilement horizontale. Puis cliquez sur la barre de partage et faites-la glisser vers la droite. Pour supprimer une vue horizontale ou verticale, cliquez deux fois sur la barre de partage qui sépare les vues.
Impression	Choisissez Fichier [image] Imprimer pour imprimer l'unité de programme en cours.
Annulation et annulation d'annulation illimitées	Les commandes Annuler et Annuler annulation du menu Edition vous permettent d'annuler des modifications ou des annulations pour toutes les opérations effectuées depuis le dernier enregistrement du fichier.

Remarque : Ces fonctions sont disponibles uniquement sous Microsoft Windows. Sous UNIX, vous pouvez uniquement effectuer les opérations suivantes :

•	imprimer l'unité de programme en cours

•	utiliser les touches TAB et Maj-TAB pour mettre en retrait ou en retrait négatif les lignes sélectionnées

•	déplacer le texte sélectionné en le faisant glisser


Utilisation de la souris dans l'éditeur

  Rubriques connexes

Les opérations décrites ci-après sont prises en charge lorsque vous utilisez l'éditeur d'unité de programme (et l'éditeur d'unité de programme stockée) sous Microsoft Windows :

Pour :	Opération à l'aide de la souris :
Sélectionner des caractères dans une plage	Cliquez et faites glisser le curseur du premier au dernier caractère de la plage à sélectionner (cette opération est aussi prise en charge sous UNIX). Ou, Cliquez sur le premier caractère, appuyez sur la touche Maj et cliquez sur le dernier caractère de la plage à sélectionner.
Sélectionner le mot situé sous le curseur	Cliquez deux fois sur ce mot (cette opération est aussi prise en charge sous UNIX). Ou, Appuyez sur la touche Ctrl, puis cliquez sur le mot à sélectionner.
Sélectionner des mots dans une plage	Appuyez sur la touche Ctrl, puis cliquez et faites glisser le curseur du premier au dernier mot de la plage à sélectionner.
Sélectionner une ligne	Positionnez le curseur sur la marge de gauche de la ligne à sélectionner. Cliquez lorsque le curseur prend la forme d'une flèche.
Sélectionner plusieurs lignes	Positionnez le curseur sur la marge de gauche de la première ligne à sélectionner. Lorsque le curseur prend la forme d'une flèche, cliquez et faites-le glisser jusqu'à la dernière ligne à sélectionner.
Sélectionner des colonnes de texte	Appuyez sur la touche Alt, puis cliquez et faites glisser le curseur de la première à la dernière colonne de la plage à sélectionner.
Déplacer le texte sélectionné	Tout d'abord, sélectionnez le texte. Puis cliquez et faites-le glisser vers son nouvel emplacement (cette opération est aussi prise en charge sous UNIX).
Copier le texte sélectionné	Tout d'abord, sélectionnez le texte. Puis appuyez sur la touche Ctrl, faites-le glisser vers l'emplacement où vous souhaitez le copier et relâchez le bouton de la souris.
Séparer une fenêtre en deux vues horizontales	Cliquez deux fois sur la barre de partage située en haut de la barre de défilement verticale. Ou, Cliquez sur la barre de partage située en haut de la barre de défilement verticale et faites-la glisser.
Séparer une fenêtre en deux vues verticales	Cliquez deux fois sur la barre de partage située à l'extrême gauche de la barre de défilement horizontale. Ou, Cliquez sur la barre de partage située à l'extrême gauche de la barre de défilement horizontale et faites-la glisser.
Ajuster la taille relative des vues	Cliquez sur la barre de partage qui sépare les vues et faites-la glisser.
Supprimer des vues dans un affichage de vues multiples	Cliquez deux fois sur la barre de partage qui sépare les vues. Ou, Cliquez sur la barre de partage et faites-la glisser vers le bord de la fenêtre. Pour supprimer les quatre vues à la fois, cliquez deux fois sur le point de rencontre des barres de partage ou faites-le glisser vers n'importe quel angle de la fenêtre.


Utilisation du clavier dans l'éditeur

  Rubriques connexes

Les opérations au clavier décrites ci-après sont prises en charge lorsque vous utilisez l'éditeur d'unité de programme (et l'éditeur d'unité de programme stockée) sous Microsoft Windows et sous UNIX :

Pour :	Séquence de touches :
Déplacer le curseur d'un caractère vers la gauche	Touche Gauche
Sélectionner un caractère en déplaçant le curseur vers la gauche	Maj + Gauche
Déplacer le curseur d'un caractère vers la droite	Touche Droite
Sélectionner un caractère en déplaçant le curseur vers la droite	Maj + Droite
Copier les caractères ou les mots sélectionnés	Ctrl + C
Couper les caractères ou les mots sélectionnés	Ctrl + X
Coller le contenu du presse-papiers	Ctrl + V
Supprimer le caractère à droite du curseur, ou supprimer les caractères ou les mots sélectionnés	Suppr
Supprimer le caractère à gauche du curseur	Retour Arrière
Placer le curseur à la fin de l'unité de programme	Ctrl + Fin	(Windows seulement)
Placer le curseur au début de l'unité de programme	Ctrl + Origine	(Windows seulement)
Sélectionner les lignes source à partir de la position actuelle du curseur jusqu'à la fin de l'unité de programme	Ctrl + Maj + Fin	(Windows seulement)
Sélectionner les lignes source à partir de la position actuelle du curseur jusqu'au début de l'unité de programme	Ctrl + Maj + Origine	(Windows seulement)
Placer le curseur à la fin de la ligne en cours	Fin	(Windows seulement)
Placer le curseur au début de la ligne en cours	Origine	(Windows seulement)
Sélectionner les caractères à partir de la position actuelle du curseur jusqu'à la fin de la ligne en cours	Maj + Fin	(Windows seulement)
Sélectionner les caractères à partir de la position actuelle du curseur jusqu'au début de la ligne en cours	Maj + Origine	(Windows seulement)
Mettre en retrait la ligne sélectionnée ou les caractères à droite du curseur	Touche Tab
Mettre en retrait négatif la ligne sélectionnée	Maj + touche Tab
Faire descendre le curseur d'une ligne	Touche Bas
Sélectionner la ligne en déplaçant le curseur vers le bas	Maj + Bas
Faire monter le curseur d'une ligne	Touche Haut
Sélectionner la ligne en déplaçant le curseur vers le haut	Maj + Haut
Faire défiler vers le bas l'unité de programme du nombre de lignes affichées dans la fenêtre Source	Pg.Suiv
Faire défiler vers le bas l'unité de programme du nombre de lignes affichées dans la fenêtre Source et les sélectionner en même temps	Maj + Pg.Suiv
Faire défiler vers le haut l'unité de programme du nombre de lignes affichées dans la fenêtre Source	Touche Pg.Préc
Faire défiler vers le haut l'unité de programme du nombre de lignes affichées dans la fenêtre Source et les sélectionner en même temps	Maj + Pg.Préc
Annuler l'opération la plus récente	Ctrl + Z	(Windows seulement)
Annuler l'opération d'annulation la plus récente	Ctrl + Y	(Windows seulement)


A propos de la conception des applications Forms

Avant de concevoir une application, prenez connaissance des différents aspects ci-dessous :

Productivité  L'application doit permettre à l'utilisateur d'être plus productif qu'avec son ancien système. Elle doit présenter les informations sous une forme simple, facile à comprendre.

Simplicité d'apprentissage  L'application doit être facile à apprendre et conviviale. Les produits doivent être cohérents, familiers et prévisibles. Ils doivent comporter à la fois des méthodes simples pour les débutants et des méthodes évoluées pour les spécialistes.

Simplicité d'utilisation  L'utilisateur doit être dès le départ séduit par les possibilités offertes par l'application. L'application doit aussi lui fournir les informations et les outils dont il a besoin pour exécuter ses tâches rapidement et, le cas échéant, le guider par des informations ponctuelles et significatives. Enfin, elle doit inviter l'utilisateur à l'expérimentation, sans crainte de conséquences irréversibles.

D'autre part, l'utilisateur doit trouver un juste équilibre entre l'interface utilisateur la plus sophistiquée, le temps et les ressources nécessaires à sa réalisation et à sa maintenance, et l'allocation des ressources nécessaires à la mise au point des fonctionnalités de base du produit. Un produit doté d'une interface utilisateur de haut niveau ne répond pas à l'attente de l'utilisateur s'il est proposé trop tard ou ne répond pas à ses besoins commerciaux.


Analyse des besoins

Une interface utilisateur de produit doit être le reflet des informations fournies par les utilisateurs qualifiés. Par exemple, concevez un écran de saisie de journal fondé sur les commentaires fournis par les employés chargés du grand livre, qui l'utiliseront régulièrement. Ce concept, relativement simple, n'est pas toujours pris en compte, et les interfaces utilisateur sont souvent le résultat de "tests" effectués sur le développeur du bureau voisin. Seul l'utilisateur du produit peut juger de l'intérêt offert par une interface utilisateur.

N'oubliez pas d'interroger un grand nombre d'utilisateurs ; si vous n'interrogez que ceux d'un site client, leurs réponses seront influencées par leur propre expérience. Chaque fois que possible, cherchez à obtenir des informations découlant de tests "réels", et non de prototypes sur papier.


Analyse de la séquence des opérations

A chaque tâche qui doit être prise en charge par un produit doit correspondre un organigramme des différentes étapes nécessaires à son exécution. Seule l'identification de tous les aspects d'une tâche donnée permettra d'en révéler les possibilités d'optimisation. Lorsque vous aurez documenté la séquence des opérations, analysez les différents points mentionnés ci-dessous, qui conduisent à l'interface utilisateur correspondant aux écrans conçus pour cette tâche :

•	Quelles sont les informations nécessaires pour exécuter la tâche ? Quel volume d'informations l'utilisateur doit-il ignorer ?

•	Quelle est la fréquence d'utilisation et le volume des données nécessaires pour l'écran ?

•	Quels sont les widgets les mieux adaptés ? L'écran sera-t-il utilisé par de véritables spécialistes de la saisie de données ?

•	Quel est, selon vous, le niveau de formation que l'utilisateur doit avoir pour cette tâche et cet écran ?

•	Que se passe-t-il si un utilisateur se trompe à une étape donnée, ou tente de sauter une étape ? Les différentes étapes d'une tâche doivent-elles être exécutées de manière séquentielle ou peuvent-elles l'être en parallèle ?

•	Quelles décisions l'utilisateur doit-il prendre en cours de route ? Que se passe-t-il si ces décisions ne sont prises que dans des cas exceptionnels ?

•	Quels sont les autres outils que l'utilisateur peut connaître ? Qu'attend-il de votre produit, en fonction de ces autres outils ?


A propos de la portabilité

 Exemples	     Rubriques connexes

La portabilité découle de la recherche de l'uniformité dans un environnement varié. En théorie, la portabilité doit permettre à une application développée sur une plate-forme, par exemple sur une station de travail UNIX, de fonctionner sans modification sur d'autres plates-formes, Microsoft Windows par exemple.

En réalité, comme les différents systèmes de fenêtres et de plates-formes ne mettent pas en œuvre de la même manière les bases assurant leur « aspect » distinctif, les caractéristiques d'une interface utilisateur peuvent apparaître différemment sur une autre plate-forme. Par exemple, la position et la présentation du menu Aide ne sont pas les mêmes sous Microsoft Windows, Macintosh et Motif.


A propos de la portabilité

  Rubriques connexes

Les restrictions imposées par le support de toutes les plates-formes et les problèmes de traduction doivent être évalués au tout début de la phase de conception.

Si une application est destinée à des environnements multiples, elle doit se conformer à toutes les contraintes de ces environnements. Si elle est destinée à un environnement unique, l'application ne doit se conformer qu'aux contraintes de cet environnement. En outre, même un produit conçu pour s'exécuter sur toutes les plates-formes peut comporter une logique supplémentaire qui n'est appelée que certaines plates-formes. En tant que concepteur, il vous incombe d'assurer que votre application fonctionne comme prévu sur toutes les plates-formes sur lesquelles elle doit être exécutée.


A propos de la portabilité - Exemples

•	Portabilité des plates-formes : possibilité de déployer la même application d'une plate-forme à l'autre.

Exemple Développement sous UNIX, déploiement sous Microsoft Windows et Macintosh.

•	Portabilité des unités (variantes de taille et de résolution d'écran et différences monochrome/couleurs comprises) : possibilité de développer et de déployer sur la même plate-forme, mais avec des unités différentes.

Exemple Développement sous Microsoft Windows, déploiement sous Microsoft Windows grand écran, haute résolution, et Microsoft Windows petit écran, faible résolution.

•	Portabilité de l'interface utilisateur : possibilité de déployer la même application sur des unités en mode caractère et interface graphique.

Exemple  Développement sous Microsoft Windows, déploiement sous Microsoft Windows et VT220.


A propos du processus de portage

  Rubriques connexes

Le processus général de création d'applications portables comprend les étapes suivantes :

1	Création de normes garantissant la cohérence interne de l'application, ainsi que sa cohérence d'une plate-forme à l'autre.

2	Création de l'application sur la plate-forme de base.

3	Copie, recompilation et exécution sur la plate-forme cible, et test des différents domaines à ajuster pour parvenir à une présentation optimale.

Lorsque vous porterez une application, vous pourrez l'exécuter directement sur la plate-forme cible. Le niveau Toolkit sur lequel repose Form Builder donnera à tous les widgets la présentation d'origine de la plate-forme cible.

Cependant, étant donné les différences entre les plates-formes, vous devrez parfois apporter certaines modifications mineures au code source d'origine pour que l'affichage soit correct sur la plate-forme d'origine et sur la plate-forme cible.

4	Dans Form Builder, amélioration de l'application de plate-forme de base.


Fonctionnalités propres à une plate-forme

Les fonctionnalités propres à une plate-forme peuvent être codées dans les applications Forms qui s'exécutent sur plusieurs plates-formes, à condition que les impératifs commerciaux du produit soient respectés sur toutes les plates-formes. Par exemple, un produit HR peut créer un éditeur textuel de maintenance des hiérarchies de gestion, qui peut s'exécuter sur toutes les plates-formes, et le compléter par un éditeur graphique sur une plate-forme spécifique.

Cependant, bien qu'étant disponible sur une plate-forme particulière, cette fonctionnalité n'est pas utilisable dans certains contextes. Par exemple, dans un écran conçu pour une saisie de données au kilomètre, il ne serait pas possible d'utiliser un widget qui demande une consultation d'écran.


Caractéristiques propres à une plate-forme

Les différentes interfaces utilisateur prises en charge présentent certaines incompatibilités de base, comme la taille et l'emplacement des widgets. Lorsque ces incompatibilités existent et sont difficiles à résoudre, ces standards suivent le modèle conseillé sous Microsoft Windows.

De nombreuses caractéristiques d'affichage des widgets peuvent être résolues par un système de référence à des classes de propriété qui garantissent une présentation correcte sur toutes les plates-formes. Cependant, le développeur doit écrire un code standard tenant compte de certaines caractéristiques de comportement. Par exemple, sur le Macintosh, un utilisateur ne peut pas passer à un widget autre qu'un élément texte.


Caractéristiques des écrans

L'utilisateur devant pouvoir travailler en mode caractère, la taille maximum recommandée pour une fenêtre est de 7,8" de large x 5,0" de haut. Si le produit ou l'application en cours de développement ne doit pas s'exécuter en mode caractère, il est possible d'utiliser une taille d'écran, et donc de fenêtre, plus importante.

Pour tenir compte des différentes résolutions d'écran sur les moniteurs bitmap, les applications Forms doivent être conçues avec des systèmes de coordonnées reposant sur des mesures logiques et non physiques. Tous les écrans doivent donc être indiqués en pouces.

Enfin, pour tenir compte des écrans monochromes et des utilisateurs daltoniens, l'utilisation de la couleur ne doit être qu'accessoire. Par exemple, un total financier peut être affiché en rouge s'il est négatif, mais devra de toute façon être lisible sans l'aide de la couleur (précédé d'un signe négatif, par exemple).


Problèmes liés au mode caractère

Le mode caractère limite l'interface utilisateur de différentes façons :

•	Les polices sont à espacement fixe et occupent donc en moyenne beaucoup plus de place que les polices proportionnelles. Les écrans doivent être conçus de manière que le rendu du texte standard et des widgets textuels demande un caractère par cellule.

•	La plupart des objets doivent être alignés sur la grille de cellules de caractère, et notamment le texte standard (invites et lignes) et les widgets (éléments texte, cases à cocher, etc.).

•	Chaque widget doit pouvoir être utilisé à partir du clavier, même si le point d'insertion ne s'y trouve pas.

•	Tous les écrans doivent tenir dans une grille de cellules de 80 x 24 caractères.

•	Les fonctions qui demandent un défilement sont très difficiles à utiliser.

•	Les boutons icône doivent être masqués. Les fonctionnalités qu'ils permettent d'exécuter doivent donc soit ne pas être nécessaires en mode caractère, soit avoir une autre méthode d'appel (menu Spécial, par exemple).

•	Le codage des données avec des variantes de polices de caractères ou de couleurs ne peut être utilisé que pour améliorer la présentation de ces informations.

Pour les produits ou les écrans qui ne doivent pas nécessairement s'exécuter en mode caractère, ces limitations ne sont pas obligatoires, bien qu'une application Forms à interface graphique soit souvent plus facile à développer, et à utiliser, la plupart d'entre elles sont respectées. Par exemple, concevez un écran afin qu'il puisse être utilisé totalement à partir du clavier, qu'il doive s'exécuter en mode caractère ou non.


Problèmes de ressources Microsoft Windows

Pour gérer l'utilisation des ressources système sous Microsoft Windows, il peut être nécessaire de s'écarter légèrement des standards pour diminuer le nombre de widgets créés.

En outre, pour les applications Forms très volumineuses, pouvant entraîner de graves problèmes de ressources, vous aurez parfois intérêt à respecter les conseils et les suggestions ci-dessous :

•	Développer certaines commandes sous forme d'options du menu Spécial, et non de boutons de l'application Forms.

•	Transformer les zones de défilement horizontal en régions alternatives, n'affichant qu'un sous-ensemble des colonnes à la fois.

•	Diminuer le nombre de fenêtres en utilisant plusieurs régions alternatives dans une fenêtre ou en améliorant la succession des fenêtres.

•	Afficher plusieurs lignes de certaines informations (champs de descripteur et clés primaires) et une ligne d'informations moins importantes en utilisant des régions de dépassement ou des blocs de combinaisons.


Traduction

Pour qu'un produit puisse s'exécuter dans la langue de chaque pays, il faut que l'ensemble des invites, des titres, des messages et des données présenté à l'utilisateur, et non simplement les données qu'il entre lorsqu'il utilise le produit, puisse être traduit. La plupart de ces points sont gérés par Oracle Translation Manager, à l'exception des messages, qui sont gérés par le Dictionnaire de messages. Tout le texte doit être affiché dans la langue maternelle de l'utilisateur, à l'exception des erreurs critiques dont le développeur aura besoin pour déboguer l'application (et qui ne doivent jamais apparaître sur l'écran de l'utilisateur).

Tous les éléments destinés à être traduits doivent pouvoir, une fois traduits, être 30 % plus longs que le texte anglais d'origine. Selon le widget et sa position, ces 30 % de plus devront se situer à gauche, à droite ou des deux côtés. Notez que cette règle s'applique au nombre de cellules de caractère, et non aux pouces, à moins que l'application Forms ne soit pas destinée à être exécutée en mode caractère. En outre, à moins que la longueur des éléments traduits ne soit connue d'avance, toutes les invites doivent pouvoir être au minimum plus longues d'un pouce une fois traduites.

Les données numériques et les dates doivent également être présentées à l'utilisateur dans le format correspondant à la langue utilisée.


Perception des informations par l'utilisateur

La présentation des fenêtres doit être fonction de la relation logique entre les données, et non des tables de base de données physiques. Par exemple, dans le produit Ventes et Marketing, un utilisateur considère un "compte" comme les données propres à ce compte, ainsi que les "contacts" et les "dirigeants" de ce compte. Ces trois entités sont stockées dans des tables physiques distinctes, mais si vous les placez toutes dans une même série de fenêtres, l'utilisateur peut continuer à les percevoir comme un objet logique.

Remarque :  Form Builder demande à l'utilisateur d'enregistrer les modifications lorsqu'un nouvel enregistrement maître est sélectionné et que le bloc détail comporte des modifications en attente. Cette solution rompt l'unité d'un objet logique et d'une transaction en exposant les propriétés de niveau bloc et de niveau enregistrement de chacun, mais a néanmoins été considérée comme inévitable.


Opposition récapitulatif/détail

Le choix de l'emplacement des informations dans une fenêtre implique toujours un compromis entre le désir de voir simultanément un grand nombre d'enregistrements d'une entité, et celui de voir simultanément tous les détails sur chaque enregistrement. Une vue récapitulative offre l'avantage d'afficher davantage d'enregistrements d'une entité, mais au détriment du détail. Vous devrez donc peser soigneusement le pour et le contre pour trouver le meilleur compromis de lignes et de détail pour chaque fonction. Souvent, la meilleure solution consiste à panacher ces deux possibilités.


Présentation des informations à l'écran

L'écran de l'utilisateur ne comporte jamais trop d'informations - mais les informations y sont parfois mal présentées. La présentation d'une entité ayant un grand nombre d'attributs doit être une décision mûrement réfléchie, pour que l'utilisateur n'ait pas à chercher l'information qui l'intéresse. Vous devrez donc organiser et regrouper soigneusement les données sur l'écran.


Visibilité des informations

L'analyse de la séquence des tâches doit permettre de mettre en évidence les informations auxquelles un utilisateur doit avoir accès aux différents stades. Par exemple, si un utilisateur doit voir des informations d'un ensemble de registres pour entrer un Journal, vous devez choisir entre afficher ces informations en permanence ou uniquement à la demande de l'utilisateur. Cette décision conditionnera à son tour le volume d'informations à afficher à un moment donné sur chaque entité, et le nombre de fenêtres nécessaires.


Règles générales de présentation

  Rubriques connexes

Les règles ci-dessous s'appliquent à tous les écrans ; les exceptions sont indiquées chaque fois que nécessaire.

•	Présentez les informations dans la séquence des tâches, de haut en bas. Disposez les blocs, les régions et les éléments par ordre de priorité, de gauche à droite, puis de haut en bas.

•	Ne perdez pas de place. Ne créez pas de fenêtres plus grandes que nécessaire. Séparez clairement les différents groupes d'informations (en utilisant des blancs).

•	La plupart des widgets ont 0,25 pouce de haut, et des multiples de 0,1 pouce de large. La hauteur des widgets à deux dimensions (éléments texte multilignes, liste de sélection) est un multiple de 0,25 pouce. Celle des boutons textuels dépend de la plate-forme.

•	Dans les blocs composés d'un enregistrement, les éléments doivent si possible être alignés à gauche. Dans les blocs multi-enregistrements, ils doivent être empilés horizontalement et alignés sur leur partie supérieure.

•	Placez les titres et les invites près du haut ou de la gauche de l'élément qu'ils décrivent. Les invites des blocs mono-enregistrement se trouvent toujours à la gauche du champ, et celles des blocs multi-enregistrements au-dessus du champ, et alignés comme les données dans le champ qu'ils décrivent. Les présentations de type matriciel, les champs ne demandant pas d'invite, les invites de connexion et les invites multilignes constituent des cas exceptionnels.

•	Laissez au moins la largeur d'un caractère entre les éléments d'un canevas et le cadre de la fenêtre. Il est également préférable de laisser une ligne vierge en haut et en bas, mais cette règle n'est pas obligatoire. Les lignes et les rectangles utilisés pour signaler les blocs et les régions constituent des cas exceptionnels.

•	Indiquez la différence entre les éléments similaires et les éléments différents, si cette différence est importante pour l'utilisateur - c'est-à-dire ne créez de région ou n'utilisez des lignes de texte standard pour grouper des éléments que si cela améliore l'utilisation de l'écran.

•	Faites ressortir les données sur l'écran et rendez compréhensibles les commandes d'accès aux données.

•	Dans toutes les fenêtres, utilisez le même widget pour le même attribut.


A propos de la création d'applications Forms

  Rubriques connexes

Les différentes étapes séparant la création de l'application Forms de l'application finalisée, prête à être exécutée par les utilisateurs, sont décrites ci-après :

1	Créer des modules.

2	Créer des blocs et des éléments.

3	Appliquez à vos objets les standards d'interface utilisateur.

4	Affiner la présentation.

5	Définir des propriétés.

6	Ajouter du code.

7	Testez votre application.

Pour :	Utilisez l'outil Form Builder suivant :
Créer des modules.	Navigateur d'objet
Créer des blocs et des éléments.	Assistant Bloc de données
Appliquer des standards.	Bibliothèque objet
Affiner la présentation.	Assistant Présentation ou Editeur de présentation
Définir des propriétés.	Palette de propriétés
Ajouter du code.	Editeur PL/SQL
Tester l'application.	Forms Runtime Debugger


A propos des blocs des applications Forms

  Rubriques connexes

Un bloc est une zone qui contient un groupe d'objets ayant un lien entre eux (éléments texte, listes, boutons, etc.).

Les blocs n'ont pas de représentation physique - seuls les éléments qu'ils contiennent sont visibles dans l'interface de l'application. Cependant, comme les autres objets, les blocs ont des propriétés et peuvent être créés, copiés et modifiés .

Les blocs permettent de grouper en une unité fonctionnelle des éléments connexes, afin de pouvoir stocker, afficher et manipuler des enregistrements. Tout comme les tables de la base de données se composent de lignes et de colonnes connexes, les blocs contiennent des éléments connexes qui affichent des données.

Le nombre de blocs pouvant être définis dans une application Forms est pratiquement illimité. Un bloc n'est qu'un groupement logique ; les différents éléments qui le composent peuvent être placés sur différents canevas et affichés dans différentes fenêtres.


A propos des types de bloc

  Rubriques connexes

Les blocs sont de deux types : données et contrôle.

Bloc de données	Les blocs de données sont associés à des données (colonnes de table) d'une base de données.

Par défaut, l'association entre un bloc de données et la base de données permet aux utilisateurs d'effectuer automatiquement les opérations d'interrogation, de mise à jour, d'insertion et de suppression de lignes dans une base de données.

Les blocs de données peuvent être fondés sur des tables de base de données, des vues, des procédures ou des déclencheurs transactionnels.

Bloc de contrôle	Par contre, un bloc de contrôle n'est pas associé à la base de données, et ses éléments ne sont pas liés aux colonnes des tables d'une base de données.

Tous les blocs sont soit mono-enregistrements, soit multi-enregistrements :

•	Un bloc mono-enregistrement n'affiche qu'un enregistrement à la fois.

•	Un bloc multi-enregistrements affiche plusieurs enregistrements à la fois.

En outre, un bloc de données peut également être un bloc détail ou un bloc maître :

•	Un bloc maître affiche un enregistrement maître associé aux enregistrements détail affichés dans un bloc détail.

•	Un bloc détail affiche des enregistrements détail associés à un enregistrement maître affiché dans un bloc maître.


Sources de données de bloc

  Rubriques connexes

Un bloc de données peut être fondé sur l'une des sources de données suivantes :

•	table

•	vue

•	clause FROM (source de données d'interrogation uniquement)

•	procédure

•	déclencheur transactionnel


Conseils sur le choix des sources de données de bloc

  Rubriques connexes

Lorsque vous choisissez une source de données de bloc, posez-vous l es questions suivantes :

•	Le bloc sera-t-il utilisé uniquement pour interroger des enregistrements ?

•	Le bloc sera-t-il utilisé pour exécuter des insertions, des mises à jour et des suppressions (DML) ?

•	Le bloc sera-t-il utilisé pour exécuter à la fois des interrogations et des DML ?

Une table est la source de données de bloc la plus couramment utilisée et constitue le meilleur choix, si vous n'avez pas d'impératifs spéciaux.

Vous devez également tenir compte des restrictions fonctionnelles applicables à chaque type de source de données.

Source de données	Autorise l'interrogation	Autorise le DML (insertions, mises à jour et suppressions)	Autorise le traitement par tableaux	Autorise l'interrogation avec exemple
Table	oui	oui	oui	oui
Vue	oui	oui (certaines vues- jointure peuvent ne pas autoriser DML)	oui	oui
Clause FROM	oui	non	oui (uniquement pour les enregistrements interrogés)	non
Procédure	oui	non (si votre procédure utilise une variable de curseur de référence)	non (si votre procédure utilise une table d'enregistrements)	non
Déclencheur transactionnel	oui	oui	non (si votre déclencheur utilise une table d'enregistrements)	non

Remarque : Vous pouvez indiquer, pour un bloc de données, des sources de données DML et d'interrogation séparées.


Utilisation de tables comme sources de données de bloc

  Rubriques connexes

Une table est la source de données de bloc la plus couramment utilisée et constitue le meilleur choix, si vous n'avez pas d'impératifs spéciaux.

Un bloc de données fondé sur une table  permet à l'utilisateur :

•	d'interroger les enregistrements,

•	d'insérer, de mettre à jour et de supprimer des enregistrements,

•	d'interroger avec exemple.

Un bloc de données fondé sur une table réduit également la charge du réseau en utilisant le traitement par tableau.

La propriété Taille de tableau d'interrogation permet le traitement par tableau des enregistrements interrogés, et la propriété Taille de tableau DML permet le traitement par tableau des enregistrements utilisés dans les opérations DML.


Utilisation des déclencheurs transactionnels comme sources de données de bloc

  Rubriques connexes

Les déclencheurs transactionnels peuvent être utilisés pour fournir des données pour les blocs de données. Ce type de déclencheur est généralement utilisé lorsque Form Builder s'exécute sur une source de données autre que Oracle. Lorsque les déclencheurs transactionnels sont utilisés, la fonctionnalité par défaut de Form Builder est remplacée.

Une source de données de bloc de déclencheur transactionnel peut être utilisée à la fois pour l'interrogation et pour DML. Le traitement par tableau n'est pas pris en charge lorsque la source des données de bloc repose sur un déclencheur transactionnel.


Utilisation des procédures stockées comme sources de données de bloc

  Rubriques connexes

L'utilisation d'une procédure stockée comme source de données de bloc est une option plus sophistiquée. Fondez un bloc de données sur une procédure stockée lorsque vous voulez :

•	augmenter le contrôle et la sécurité,

•	interroger et mettre à jour plusieurs tables,

•	exécuter des calculs complexes,

•	exécuter une validation et un DML côté serveur,

•	encapsuler une logique dans un sous-programme,

•	diminuer la charge du réseau par le traitement par tableau.

Une procédure stockée retourne des données à un bloc de données en utilisant soit un curseur de référence, soit une table d'enregistrements.


A propos des curseurs de référence

  Rubriques connexes

Un curseur de référence est un pointeur sur une variable de curseur côté serveur. Il peut être comparé à un pointeur en "C", car il représente une adresse mémoire. La procédure stockée retourne une référence à un curseur qui est ouvert et rempli par une instruction SELECT à utiliser comme source de données de bloc.

Une procédure stockée qui utilise un curseur de référence ne peut être utilisée que comme source de données de bloc d'interrogation, et non comme source de données de bloc DML. L'utilisation d'un curseur de référence convient parfaitement aux interrogations qui dépendent uniquement de variantes d'instructions SQL et non de PL/SQL.

Lorsque vous hésitez entre un curseur de référence et une table d'enregistrements, notez que :

•	une procédure stockée qui utilise un curseur de référence ne peut être utilisée que comme source de données de bloc d'interrogation,

•	une procédure stockée qui utilise une table d'enregistrements peut être utilisée comme source de données de bloc DML et comme source de données de bloc d'interrogation.


A propos des tables d'enregistrements

  Rubriques connexes

Une table d'enregistrements est une structure PL/SQL qui ressemble à un tableau d'enregistrements. La procédure stockée construit le tableau et renvoie l'ensemble d'enregistrements résultant pour qu'il soit utilisé comme source de données de bloc.

L'utilisation d'une table d'enregistrements convient parfaitement aux interrogations qui dépendent de PL/SQL et de SQL.

L'utilisation d'une table d'enregistrements est extrêmement efficace en termes d'économie de charge du réseau, car il suffit d'un aller et retour (du client au serveur) pour exécuter la procédure stockée, et d'un autre pour tous les enregistrements retournés.

Le traitement par tableau n'est pas optionnel lorsqu'un bloc de données repose sur une procédure stockée qui retourne une table d'enregistrements. Au lieu de cela, un seul tableau est utilisé dans les opérations d'interrogation et DML. La taille du tableau est le nombre d'enregistrements traités pour toute l'opération. Par exemple, une interrogation de 300 enregistrements retournera une taille de tableau de 300 enregistrements.

Comme le traitement par tableau ne peut pas être utilisé, des enregistrements supplémentaires peuvent être retournés lorsqu'ils ne sont pas nécessaires. Cette opération peut demander beaucoup de mémoire, car tous les enregistrements sont en mémoire au même moment. Lorsque vous utilisez une table d'enregistrements, vous devez prévoir la place nécessaire en mémoire lors de la conception de votre application. Vous pouvez limiter l'utilisation de la mémoire en contrôlant la taille du tableau dans votre procédure stockée.

Lorsque vous hésitez entre un curseur de référence et une table d'enregistrements, notez que :

•	une procédure stockée qui utilise un curseur de référence ne peut être utilisée que comme source de données de bloc d'interrogation,

•	une procédure stockée qui utilise une table d'enregistrements peut être utilisée comme source de données de bloc DML et comme source de données de bloc d'interrogation.


Utilisation de la clause FROM comme source de données de bloc

  Rubriques connexes

Une clause FROM peut être utilisée comme source de données d'un bloc. Une clause FROM est une fonction d'Oracle8 Server qui vous permet d'imbriquer une instruction SELECT dans la clause FROM d'une instruction SELECT. Une clause FROM est une source de données de bloc d'interrogation valide, mais non une source de données de bloc DML valide. Elle retourne un sous-ensemble d'enregistrements de l'interrogation d'origine.

Les clauses FROM permettent d'exécuter des jointures, des consultations et des calculs sans devoir créer une vue sur le serveur. Elles peuvent également être utilisées pour créer des prototypes de vues et pour augmenter les performances.

Utiliser une clause FROM comme source de données de bloc équivaut à utiliser comme source de données de bloc une vue-jointure avec mise à jour autorisée. Cependant, la clause FROM offre un contrôle plus poussé, car la définition de la vue ne demande pas la présence d'un administrateur de bases de données. Notez que la clause FROM donne des résultats identiques à ceux d'une vue-jointure avec mise à jour autorisée du côté client, mais qu'il n'y a pas de vue définie sur le serveur.

Le traitement par tableau permet d'augmenter les performances en diminuant la charge du réseau. Pour activer le traitement par tableau, définissez la propriété Taille de tableau d'interrogation.


Création d'un bloc de données à partir d'une table

  Etape suivante	    Rubriques connexes

Pour créer un bloc de données à partir d'une table :

Choisissez Outils [image] Assistant Bloc de données pour appeler un assistant pour vous aider à créer un bloc de données.

Ou,

1	Dans le Navigateur d'objet, cliquez sur le nœud Blocs de données.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouveau bloc de données, choisissez Créer un nouveau bloc de données manuellement et cliquez sur OK.

4	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

5	Sous le nœud Base de données :

•	Définissez à Table la propriété Type de source de données d'interrogation.

•	Entrez le nom d'une table de base de données dans la zone de texte Nom de source de données d'interrogation.

6	Sous le nœud Base de données évoluée :

•	Définissez à Table la propriété Type de cible de données DML.

•	Entrez le nom de votre source de données dans la zone de texte Nom de cible de données DML.

7	Sous le nœud Général, cliquez sur la propriété Nom, puis entrez un nom ou acceptez le nom par défaut.

Vous pouvez utiliser tout nom respectant les conventions d'appellation ORACLE et unique parmi les blocs de l'application Forms. Le nom de bloc est un descripteur interne qui n'est pas affiché lors de l'exécution.


Création d'un bloc de données à partir d'un déclencheur transactionnel

  Rubriques connexes

Pour créer un bloc de données à partir d'un déclencheur transactionnel :

Choisissez Outils [image] Assistant Bloc de données pour appeler un assistant pour vous aider à créer un bloc de données.

Ou,

1	Dans le Navigateur d'objet, cliquez sur le nœud Blocs de données.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouveau bloc de données, choisissez Créer un nouveau bloc de données manuellement et cliquez sur OK.

4	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

5	Sous le nœud Base de données, définissez la propriété Type de source de données d'interrogation à Déclencheurs transactionnels.

6	Définissez les déclencheurs transactionnels appropriés.

7	Sous le nœud Base de données évoluée, définissez la propriété Type de cible de données DML à Déclencheurs transactionnels.

8	Définissez les déclencheurs transactionnels appropriés.

9	Sous le nœud Général, cliquez sur la propriété Nom, puis entrez un nom ou acceptez le nom par défaut.

Vous pouvez utiliser tout nom respectant les conventions d'appellation ORACLE et unique parmi les blocs de l'application Forms. Le nom de bloc est un descripteur interne qui n'est pas affiché lors de l'exécution.


Création d'un bloc de données à partir d'une procédure qui utilise un curseur de référence

 Exemples	   Restrictions	    Rubriques connexes

Pour créer un bloc de données à partir d'une procédure qui utilise un curseur de référence :

Choisissez Outils [image] Assistant Bloc de données pour appeler un assistant pour vous aider à créer un bloc de données.

Ou,

1	Dans le Navigateur d'objet, cliquez sur le nœud Blocs de données.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouveau bloc de données, choisissez Créer un nouveau bloc de données manuellement et cliquez sur OK.

4	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

5	Sous le nœud Base de données :

• Définissez la propriété Type de source de données d'interrogation à Procédure.

•	Entrez le nom d'une procédure dans la zone de texte Nom de source de données d'interrogation.

•	Entrez le nom d'une procédure dans la zone de texte Nom de source de données d'interrogation.

•	Cliquez deux fois sur la propriété Colonnes de source de données d'interrogation et dans la boîte de dialogue Colonnes de source de données d'interrogation, puis entrez le nom des colonnes, le type, la longueur, la précision et l'échelle des résultats retournés par le curseur de référence.

•	Cliquez deux fois sur la propriété Arguments de source de données d'interrogation et dans la boîte de dialogue Arguments de source de données d'interrogation, puis entrez les noms, les types de données, le mode et la valeur des arguments transmis à la procédure et à partir de la procédure.

6	Sous le nœud Général, cliquez sur la propriété Nom, puis entrez un nom ou acceptez le nom par défaut.

Vous pouvez utiliser tout nom respectant les conventions d'appellation ORACLE et unique parmi les blocs de l'application Forms. Le nom de bloc est un descripteur interne qui n'est pas affiché lors de l'exécution.


Création d'un bloc de données à partir d'une procédure qui utilise un curseur de référence - Restrictions

•	Si la source de données d'interrogation d'un bloc est une procédure stockée qui retourne une variable de curseur, et si le bloc est un bloc détail d'une relation, seule l'option de suppressions isolées est prise en charge. Les suppressions non isolées et les suppressions en cascade ne sont pas prises en charge, car les instructions SQL appropriées ne peuvent pas être construites (les curseurs constituent un unique ensemble actif d'enregistrement découlant d'une unique instruction SELECT). Pour appliquer des suppressions non isolées et des suppressions en cascade, ajoutez des contrôles dans les déclencheurs ON-DELETE  ou PRE-DELETE.

•	L'option Compter nbre de lignes extraites est désactivée lors de l'utilisation de procédures stockées comme source de données. Si vous tentez de compter le nombre de lignes extraites lors de l'exécution, vous recevez un message d'erreur. Pour compter le nombre de lignes extraites, vous pouvez utiliser le déclencheur ON-COUNT.

•	Vous ne pouvez pas transmettre une clause WHERE ou ORDER BY à une procédure stockée.


Création d'un bloc de données à partir d'une procédure qui utilise un curseur de référence - Exemples

/*

Exemple de procédure stockée qui retourne un curseur de référence comme source de données de bloc. Un package est utilisé pour grouper logiquement les procédures et les types de données connexes.
*/
PACKAGE cv_datasource IS
TYPE emprec is RECORD (empno  emp.empno%TYPE,
         ename  emp.ename%TYPE,
         job    emp.job%TYPE,
         mgr    emp.mgr%TYPE,
         sal    emp.sal%TYPE,
         comm   emp.comm%TYPE,
         deptno emp.deptno%TYPE);
TYPE empcur is REF CURSOR RETURN emprec;
PROCEDURE empquery(resultset  IN OUT empcur,
         p_deptno  IN NUMBER);
END;

PACKAGE BODY cv_datasource IS
    PROCEDURE empquery(resultset IN OUT empcur,
            p_deptno  IN NUMBER) IS;
    BEGIN
      OPEN resultset FOR
      SELECT empno, ename, job, mgr, sal, comm, deptno
      FROM emp
      WHERE deptno = p_deptno
      ORDER BY empno;
    END;
END;


Création d'un bloc de données à partir d'une procédure qui utilise une table d'enregistrements

 Restrictions	    Rubriques connexes

Pour créer un bloc de données à partir d'une procédure qui utilise une table d'enregistrements :

Choisissez Outils [image] Assistant Bloc de données pour appeler un assistant pour vous aider à créer un bloc de données.

Ou,

1	Dans le Navigateur d'objet, cliquez sur le nœud Blocs de données.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouveau bloc de données, choisissez Créer un nouveau bloc de données manuellement et cliquez sur OK.

4	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

5	Sous le nœud Base de données :

• Définissez la propriété Type de source de données d'interrogation à Procédure.

• Entrez le nom d'une procédure de base de données dans la zone de texte Nom de procédure d'interrogation.

• Cliquez deux fois sur la propriété Colonnes de source de données d'interrogation. Ensuite, dans la boîte de dialogue Colonnes de source de données d'interrogation, entrez le nom des colonnes, le type, la longueur, la précision et l'échelle des résultats retournés par la table d'enregistrements.

• Cliquez deux fois sur la propriété Arguments de source de données d'interrogation. Ensuite, dans la boîte de dialogue Arguments de source de données d'interrogation, entrez le nom, les types de données, le mode et la valeur des arguments transmis à la procédure et à partir de la procédure.

6	Sous le nœud Base de données évoluée :

•	Définissez la propriété Type de cible de données DML à Procédure.

•	Si vous exécutez une insertion (INSERT) à partir de votre procédure, entrez le nom de la procédure dans la zone de texte Insérer le nom de procédure, cliquez deux fois sur la propriété Insérer les colonnes de paramètres de résultat de procédure pour fournir les informations sur le résultat (nom, type, longueur, précision et échelle) et cliquez deux fois sur la propriété Insérer les arguments de procédure pour fournir les informations sur l'argument (nom, type de données, mode, valeur).

•	Si vous exécutez une mise à jour (UPDATE) à partir de votre procédure, entrez le nom de la procédure dans la zone de texte Mettre à jour le nom de procédure, cliquez deux fois sur la propriété Mettre à jour les colonnes de paramètres de résultat de procédure pour fournir les informations sur le résultat (nom, type, longueur, précision et échelle), et cliquez deux fois sur la propriété Mettre à jour les arguments de procédure pour fournir des informations sur l'argument (nom, type de données, mode, valeur).

•	Si vous exécutez une suppression (DELETE) à partir de votre procédure, entrez le nom de la procédure dans la zone de texte Supprimer le nom de procédure, cliquez deux fois sur la propriété Supprimer les colonnes de paramètres de résultat de procédure pour fournir les informations sur le résultat (nom, type, longueur, précision et échelle) et cliquez deux fois sur la propriété Supprimer les arguments de procédure pour fournir les informations sur l'argument (nom, type de données, mode, valeur).

•	Si vous exécutez un verrouillage (LOCK) à partir de votre procédure, entrez le nom de la procédure dans la zone de propriété Verrouiller le nom de procédure, cliquez deux fois sur la propriété Verrouiller les colonnes de paramètres de résultat de procédure pour fournir les informations sur le résultat (nom, type, longueur, précision et échelle) et cliquez deux fois sur la propriété Verrouiller les arguments de procédure pour fournir les informations sur l'argument (nom, type de données, mode, valeur).

7	Sous le nœud Général, cliquez sur la propriété Nom, puis entrez un nom ou acceptez le nom par défaut.

Vous pouvez utiliser tout nom respectant les conventions d'appellation ORACLE et unique parmi les blocs de l'application Forms. Le nom de bloc est un descripteur interne qui n'est pas affiché lors de l'exécution.


Création d'un bloc de données à partir d'une procédure qui utilise une table d'enregistrements - Restrictions

•	Dans un bloc fondé sur une procédure stockée qui exécute une mise à jour (UPDATE), faites toujours référence aux mêmes colonnes dans la procédure et dans le bloc. Ne transmettez pas de valeur de la procédure ou de la fonction que vous n'utilisez pas comme éléments de base de données de votre application Forms. Si la procédure ou la fonction retourne davantage de colonnes que le bloc n'en utilise, la procédure ou la fonction retourne des valeurs NULL pour les colonnes qui ne sont pas utilisées.

•	Comme Mettre à jour colonnes modifiées n'est pas pris en charge avec les procédures ou les fonctions comme sources de données de bloc, la procédure ou la fonction doit toujours retransmettre toutes les valeurs de colonnes (Mettre à jour colonnes modifiées indique que seules les colonnes dont les valeurs ont été modifiées sont incluses dans l'instruction UPDATE). Il est impossible de déterminer si une valeur NULL transmise à une procédure ou à une fonction est une colonne inutilisée du bloc ou une valeur délibérément nulle pour une colonne qui est utilisée. Si vous n'avez pas de procédure ou de fonction vous demandant de retransmettre toutes les valeurs de colonnes, vous ne pourrez pas définir de colonne à une valeur NULL dans une instruction UPDATE.

•	L'option Compter nbre de lignes extraites est désactivée lors de l'utilisation de procédures stockées comme source de données. Si vous tentez de compter le nombre de lignes extraites lors de l'exécution, vous recevez un message d'erreur. Pour compter le nombre de lignes extraites, vous pouvez utiliser le déclencheur ON-COUNT.

•	Vous ne pouvez pas transmettre une clause WHERE ou ORDER BY à une procédure stockée.


Création d'un bloc de données à partir d'une clause FROM

  Rubriques connexes

Pour créer un bloc de données à partir d'une procédure qui retourne une table d'enregistrements :

Choisissez Outils [image] Assistant Bloc de données pour appeler un assistant pour vous aider à créer un bloc de données.

Ou,

1	Dans le Navigateur d'objet, cliquez sur le nœud Blocs de données.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouveau bloc de données, choisissez Créer un nouveau bloc de données manuellement et cliquez sur OK.

4	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

5	Sous le nœud Base de données :

• Définissez la propriété Type de source de données d'interrogation à Clause FROM.

• Entrez une instruction SELECT (sous-interrogation) dans la zone de texte Nom de source de données d'interrogation.

6	Sous le nœud Général, cliquez sur la propriété Nom, puis entrez un nom ou acceptez le nom par défaut.

Vous pouvez utiliser tout nom respectant les conventions d'appellation ORACLE et unique parmi les blocs de l'application Forms. Le nom de bloc est un descripteur interne qui n'est pas affiché lors de l'exécution.


Création d'un bloc de contrôle

  Etape suivante	    Rubriques connexes

Pour créer un bloc de contrôle :

1	Dans le Navigateur d'objet, cliquez sur le nœud Blocs de données.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouveau bloc de données, choisissez Créer un nouveau bloc de données manuellement et cliquez sur OK.

4	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

5	Sous le nœud Général, cliquez sur la propriété Nom, puis entrez un nom ou acceptez le nom par défaut.

Vous pouvez utiliser tout nom respectant les conventions d'appellation ORACLE et unique parmi les blocs de l'application Forms. Le nom de bloc est un descripteur interne qui n'est pas affiché lors de l'exécution.


A propos des blocs multi-enregistrements

  Rubriques connexes

Un bloc multi-enregistrement affiche plusieurs instances de chaque élément de bloc.

Par exemple, lorsque la propriété Nombre d'enregistrements affiché est définie à 3, Form Builder affiche trois instances de chaque élément dans le bloc - une pour chaque enregistrement que le bloc peut afficher. Vous pouvez demander qu'un élément du bloc affiche moins d'enregistrements en définissant la propriété d'élément Nombre d'éléments affiché.


Création d'un bloc multi-enregistrement

  Rubriques connexes

Pour créer un bloc multi-enregistrement :

1	Dans le Navigateur d'objet, cliquez sur le nœud Blocs de données.

2	Cliquez deux fois sur l'icône de l'objet Bloc de votre choix [image] pour afficher la Palette de propriétés.

3	Sous le nœud Enregistrements, définissez la propriété Nombre d'enregistrements affiché à la valeur voulue.

Remarque : La valeur par défaut est 1. Si vous définissez Enregistrements affichés à une valeur supérieure à 1, le bloc devient un bloc multi-enregistrement.


Suppression d'un bloc

Pour supprimer un bloc :

1	Dans le Navigateur d'objet, cliquez sur l'icône de l'objet Bloc de votre choix.

2	Choisissez Navigateur [image] Supprimer.

La suppression d'un bloc entraîne celle des éléments contenus dans le bloc et de tous les déclencheurs attachés au bloc ou à ses éléments. S'il s'agit d'un bloc maître ou d'un bloc détail d'une relation, cette relation est également supprimée.


A propos des barres de défilement

  Rubriques connexes

La barre de défilement est distincte des éléments du bloc, et peut être placée à l'endroit de votre choix sur un canevas de l'application Forms.

Dans l'Editeur de présentation, vous pouvez déplacer et redimensionner la barre de défilement et définir ses attributs de couleur et de motif. Cependant, vous ne pouvez pas couper, copier, supprimer ou dupliquer une barre de défilement dans l'Editeur de présentation.


Suppression de la barre de défilement d'un bloc

Pour supprimer une barre de défilement :

1	Dans l'Editeur de présentation, cliquez deux fois sur la barre de défilement pour afficher la Palette de propriétés.

2	Définissez la propriété de bloc Afficher barre de défilement à Non.


Interaction des barres de défilement lors de l'exécution

La position de la barre de défilement thumb dans la barre de défilement alley indique à l'utilisateur la position relative de l'enregistrement en cours dans l'ensemble d'enregistrements en cours du bloc.

Notez cependant que, dans le cas d'une interrogation, la barre de défilement thumb indique la position de l'enregistrement en cours dans l'ensemble d'enregistrements déjà extraits. Les enregistrements correspondant aux critères d'interrogation ne sont donc pas forcément tous inclus.

Par exemple, si 100 enregistrements correspondent aux critères d'interrogation, mais que la fonction n'en extrait que 10  à la fois, le déplacement de la barre de défilement thumb au bas de la barre de défilement alley affichera le 10ème enregistrement, et non le 100ème. Si vous déplacez à nouveau la barre de défilement vers le bas, Form Builder extrait les 10 enregistrements suivants.

Remarque :  Vous pouvez remplacer le mécanisme d'extraction de tableau par défaut d'un bloc en appelant la procédure interne EXECUTE_QUERY avec le paramètre ALL_RECORDS. Cependant, cette procédure n'est pas conseillée lorsque le nombre d'enregistrements risque d'être élevé.


Création de la barre de défilement d'un bloc

  Rubriques connexes

Pour créer la barre de défilement d'un bloc :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône de l'objet Bloc [image] du bloc de votre choix pour afficher la Palette de propriétés.

2	Sous le nœud Barre de défilement :

•	Définissez la propriété Afficher barre de défilement à Oui.

•	Définissez la propriété Canevas à barre de défilement pour indiquer le canevas sur lequel la barre de défilement doit être affichée.


Connexion à une base de données

Pour établir une connexion à une base de données Oracle :

1	Choisissez Fichier [image] Connecter.

2	Dans la boîte de dialogue Connexion :

• Entrez votre nom utilisateur, votre mot de passe et le nom de la base de données.

• Cliquez sur Connecter.

Lorsqu'une connexion à la base de données est établie, la barre d'état affiche le témoin de connexion : <Con>.


A propos des éléments

  Rubriques connexes

Un élément est un objet d'interface qui affiche des informations et permet l'interaction entre l'utilisateur et votre application.

Chaque élément d'une application Forms (élément texte, élément image, groupe de boutons d'option, etc.) appartient à un bloc.

Form Builder accepte différents types d'élément d'interface qui peuvent être utilisés pour créer une interface d'application.

Contrôle ActiveX	Contrôle personnalisé qui simplifie la création et l'amélioration des interfaces utilisateur.

Zone composant JavaBean	Identification d'un composant JavaBean qui fournit un contrôle pour cet élément.

Elément graphique	Rectangle encadré, de toute taille, pouvant afficher un graphique ou un autre affichage généré par Graphics Builder. L'utilisateur ne peut ni naviguer entre les éléments graphiques, ni les manipuler.

Case à cocher	Etiquette de texte avec indicateur d'état graphique qui affiche la valeur en cours sous la forme cochée ou non cochée. Lorsque vous cliquez sur une case à cocher, vous la faites passer à l'état inverse.

Elément affiché	Boîte de texte en lecture seule dont la valeur doit être extraite ou attribuée par programme. L'utilisateur peut passer à un élément affiché ou éditer le texte qu'il contient.

Elément arborescence	Zone affichant des données groupées dans l'application Forms d'un navigateur standard avec des nœuds développables.

Elément image	Rectangle encadré, de toute taille, pouvant afficher des images extraites de la base de données ou provenant du système de fichiers.

Elément liste	Liste d'options affichée sous la forme d'une liste déroulante, d'une zone de liste ou d'une zone de liste déroulante.

Conteneur OLE	Zone qui stocke et affiche un objet OLE créé à partir d'une application serveur OLE.

Bouton	Rectangle comportant un libellé de texte ou un graphique d'icône.

Groupe de boutons d'option	Groupe de boutons dont l'un est toujours sélectionné.

Elément son	Elément qui permet à l'utilisateur de charger, d'enregistrer, d'éditer, de jouer et d'enregistrer des sons.

Elément texte	Boîte de texte comportant une ou plusieurs lignes et acceptant une vaste gamme de types de données, de masques de format et de fonctions d'édition.

Zone utilisateur	Zone qui stocke et affiche un élément défini par l'utilisateur.

Contrôle VBX	Utilisé uniquement dans Microsoft Windows 3.1.


A propos des éléments de données et des éléments de contrôle

  Rubriques connexes

Les éléments de données correspondent aux colonnes des tables de la base de données. En manipulant un élément de données (un élément texte, par exemple), l'utilisateur peut modifier automatiquement les données stockées dans la base de données.

Les éléments de contrôle n'ont aucune association avec la base de données. Lorsque l'utilisateur manipule un élément de contrôle, les données de la base de données ne sont modifiées que si les instructions SQL appropriées sont fournies. En général, les éléments de contrôle permettent à l'utilisateur d'exécuter des fonctions d'applications classiques, comme le passage par navigation d'un écran à un autre, mais ils ne leur permettent pas de modifier les données de la base de données.

Les éléments de contrôle peuvent également être utilisés pour :

•	afficher des totaux, des moyennes, des classements et d'autres informations récapitulatives calculées à partir de valeurs d'élément de données et de tables de base de données

•	accepter les données fournies en entrée par l'utilisateur et nécessaires à l'application, mais non stockées dans la base de données

•	afficher des "valeurs de consultation", c'est-à-dire des valeurs de bases de données extraites d'une table différente.

Lorsque vous créez un bloc, notez que :

•	Les blocs de données peuvent contenir à la fois des éléments de données et des éléments de contrôle.

Par exemple, un bloc de données peut contenir quatre éléments de données affichant des valeurs de bases de données interrogées et un cinquième élément affichant des valeurs calculées, mais ne correspondant à aucune colonne de la base de données. Le cinquième élément sera un élément de contrôle rempli par une instruction d'affectation dans le déclencheur qui exécute le calcul.

•	Les blocs de contrôle ne peuvent pas contenir d'éléments de données.

Comme les blocs de contrôle ne sont pas associés à la base de données, aucun des éléments qu'ils contiennent ne peut être un élément de données. (Les éléments de contrôle peuvent être remplis avec des valeurs de base de données en écrivant des instructions SQL dans le code du déclencheur.)

•	Comme les boutons et les éléments graphiques ne stockent pas de valeurs,

ils ne peuvent pas être liés à des colonnes de la base de données, et ils restent des éléments de contrôle.

•	Vous pouvez faire référence aux valeurs des éléments de contrôle dans le code, en procédant pratiquement comme pour des variables globales et des variables locales.


A propos de la création d'éléments

  Rubriques connexes

Lorsque vous créez un bloc de données ou un bloc de contrôle, vous pouvez créer des éléments dans ce bloc. Créez des éléments via le Navigateur d'objet en les insérant sous le bloc de votre choix, ou via l'Editeur de présentation en les dessinant sur le canevas de votre choix.

N'oubliez pas qu'un bloc est une zone logique et non physique, dans laquelle sont stockés des éléments. Les éléments d'un bloc peuvent être disposés dans toute présentation, et affichés sur le canevas.

Avant de créer un élément, choisissez le bloc dans lequel se trouvera l'élément et décidez si l'élément sera un élément de données ou un élément de contrôle.

Création d'éléments dans des blocs de données

Lorsqu'un élément est créé dans un bloc de données, Form Builder le considère comme un élément de données et définit sa propriété Elément de base de données à Oui. Les éléments de données sont automatiquement inclus dans les instructions SELECT, UPDATE et INSERT transmises à la base de données.

Si le nouvel élément créé est un élément de contrôle d'un bloc de données, sa propriété Elément de base de données doit être définie explicitement à Non.

Création d'éléments dans des blocs de contrôle

Lorsqu'un élément est créé dans un bloc de contrôle, cet élément est toujours un élément de contrôle, quelle que soit la définition de la propriété Elément de base de données de l'élément. (Comme un bloc de contrôle n'est pas associé à une table de base de données, aucun des éléments d'un bloc de contrôle ne peut être un élément de données.)


Création d'un élément de données

  Etape suivante	    Rubriques connexes

Pour créer un élément de données :

Choisissez Outils [image] Assistant Bloc de données pour appeler un assistant vous expliquant comment créer un élément de données.

Ou,

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image], à côté du nœud Blocs de données de votre choix.

Form Builder développe le nœud Bloc de données et affiche ses sous-nœuds.

2	Cliquez sur l'icône plus [image], à côté du nœud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le nœud Eléments.

4	Cliquez deux fois sur l'icône objet en regard de l'élément que vous venez de créer, pour afficher la Palette de propriétés.

5	Sous le nœud Général :

• Définissez la propriété Nom au nom de la colonne de base de données de votre choix.

• Définissez la propriété Type du nouvel élément pour indiquer le type d'élément de votre choix.

Par défaut, l'élément est de type texte. Pour modifier cette valeur par défaut, définissez-en la propriété Type d'élément de votre choix (case à cocher, bouton d'option, élément de liste, etc.).

6	Sous le nœud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément lors de l'exécution, vous devez attribuer à un canevas chaque élément d'interface d'une application Forms.


Création d'un élément de contrôle

  Etape suivante	    Rubriques connexes

Pour créer un élément de contrôle :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image], à côté du nœud Blocs de données de votre choix.

Form Builder développe le nœud Bloc de données et affiche ses sous-nœuds.

2	Cliquez sur l'icône plus [image], à côté du nœud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le nœud Eléments.

4	Cliquez deux fois sur l'icône objet en regard de l'élément que vous venez de créer, pour afficher la Palette de propriétés.

5	Sous le nœud Base de données :

•	Définissez la propriété Elément de base de données à Non.

Remarque : Lorsque vous créez un élément dans un bloc de données, Form Builder le considère comme un élément de données et définit la propriété Elément de base de données à Oui. Les éléments de données sont automatiquement inclus dans les instructions SELECT, UPDATE et INSERT transmises à la base de données. Si l'élément en cours de création est un élément de contrôle d'un bloc de données, vous devez définir explicitement sa propriété Elément de base de données à Non.

•	Définissez la propriété Type au type d'élément de votre choix.

Par défaut, l'élément est de type texte. Pour modifier cette valeur par défaut, définissez-en la propriété Type d'élément de votre choix (case à cocher, bouton d'option, élément de liste, etc.).

6	Sous le nœud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément lors de l'exécution, vous devez attribuer à un canevas chaque élément d'interface d'une application Forms.


A propos du contexte des blocs de l'Editeur de présentation

  Rubriques connexes

Chaque fenêtre de l'Editeur de présentation tient à jour un contexte de bloc qui identifie le bloc en cours pour les opérations sur les éléments. Le nom du bloc en cours est affiché entre parenthèses dans la barre de titre de l'Editeur de présentation.

L'influence du contexte de blocs sur les opérations des éléments est la suivante :

•	Les éléments que vous créez dans l'Editeur de présentation sont automatiquement attribués au bloc en cours.

•	Les éléments qui sont sélectionnés lorsque vous lancez la commande Définir bloc sont réattribués au nouveau bloc.


Définition du contexte de bloc de l'Editeur de présentation

  Rubriques connexes

Pour modifier le contexte de bloc dans l'Editeur de présentation :

1	Dans l'Editeur de présentation, choisissez un bloc dans la liste déroulante Bloc située dans la partie supérieure de l'Editeur de présentation.

2	Cliquez sur la boîte de liste déroulante pour afficher la liste de tous les blocs.


A propos de l'attribution d'éléments à des canevas

  Rubriques connexes

Les canevas sont affichés dans les fenêtres lors de l'exécution. Le canevas auquel un élément est attribué détermine la fenêtre dans laquelle l'élément sera affiché. Pour modifier l'attribution de canevas d'un élément, vous avez plusieurs possibilités :Lorsqu'un élément est créé en étant dessiné dans l'Editeur de présentation, il est automatiquement attribué au canevas en cours de l'Editeur de présentation. Pour afficher un élément au cours de son exécution, attribuez chaque élément de l'interface d'une application à un canevas en définissant la propriété Canevas de l'élément.

Lorsque la propriété Canevas d'un élément n'est pas indiquée, l'élément est considéré comme un élément canevas-NULL. Ces éléments ne sont ni affichés lors de l'exécution ni lors du développement dans l'Editeur de présentation. Vous pouvez utiliser par programme des éléments de canevas-NULL comme variables en attribuant leur valeur et en y faisant référence dans un code PL/SQL à l'aide de la syntaxe :block_name.item_name.

Pour qu'un élément devienne un élément canevas-NULL, laissez sa propriété Canevas vierge.


Modification de l'attribution d'un élément à un canevas

Pour modifier l'attribution d'un élément à un canevas :

•	Dans la Palette de propriétés, définissez la propriété Canevas de l'élément au nom du canevas de votre choix. Le canevas indiqué doit avoir déjà été défini dans l'application Forms en cours.

- Ou -

•	Dans un Editeur de présentation, coupez l'élément de votre choix, puis collez-le dans un autre canevas d'une autre fenêtre d'Editeur de présentation.

- Ou -

•	Dans le Navigateur d'objet, choisissez Navigateur [image] Organisation visuelle pour afficher la hiérarchie des applications Forms. Dans l'Organisation visuelle, les éléments apparaissent sous le canevas auquel ils sont attribués, et aucun bloc n'est affiché. Cliquez sur l'élément à modifier, puis utilisez la souris pour le faire glisser sous un autre canevas.


Changement de type d'élément

  Etape suivante	    Rubriques connexes

Pour changer le type d'un élément :

1	Dans le Navigateur d'objet ou l'Editeur de présentation, cliquez deux fois sur l'élément à convertir pour afficher la Palette de propriétés.

2	Sous le nœud Général, définissez la propriété Type au type d'élément de votre choix.

Lorsque le type d'un élément est modifié par conversion, les propriétés du nouvel élément sont définies de la manière suivante :

•	Les propriétés qui ne s'appliquent qu'au nouveau type d'élément sont définies aux options par défaut de ce type d'élément.

•	Les propriétés qui sont communes au type d'élément d'origine et au nouveau type d'élément conservent leur définitions.

Par exemple, lorsque vous convertissez un élément texte en case à cocher, la propriété Label (qui ne s'applique qu'aux éléments de cases à cocher) est définie à la valeur par défaut, mais la propriété Type de données (qui s'applique aux éléments texte et aux cases à cocher) conserve sa définition en cours.


A propos du nombre d'élément affichés dans un bloc

  Rubriques connexes

Vous pouvez définir la propriété d'éléments Nombre d'éléments affiché de manière à indiquer le nombre d'enregistrements qu'un élément d'un bloc multi-enregistrement doit afficher. Par exemple, un bloc multi-enregistrement dont la propriété Nombre d'éléments affiché est définie à 3 peut comporter 4 éléments de texte multi-enregistrement et un élément d'image mono-enregistrement. Vous pourriez également créer un unique bouton dans un bloc de données multi-enregistrement.


Indication du nombre d'éléments affichés dans un bloc

  Rubriques connexes

Pour afficher le nombre d'enregistrements qu'un bloc doit afficher :

1	Cliquez deux fois sur l'élément de votre choix dans le Navigateur d'objet ou dans l'Editeur de présentation pour afficher la Palette de propriétés.

2	Sous le nœud Enregistrements, définissez la propriété Nombre d'éléments affiché de manière à indiquer le nombre d'enregistrements que l'élément doit afficher.

•	Pour afficher le nombre d'enregistrements indiqué par la définition de la propriété Nombre d'enregistrements affiché du bloc, définissez Nombre d'éléments affiché à 0 (valeur par défaut).

•	Pour afficher moins d'enregistrements, définissez Nombre d'éléments affiché à une valeur inférieure à celle de la propriété Nombre d'enregistrements affiché du bloc, mais supérieure à 0.

Nombre d'enregistrements affiché ne peut pas être défini à une valeur supérieure à la définition de la propriété Nombre d'enregistrements affiché du bloc.


Modification de l'espace entre les éléments d'un bloc multi-enregistrement

  Rubriques connexes

Pour modifier l'espace entre des éléments :

1	Dans l'Editeur de présentation, sélectionnez l'élément de votre choix.

Des descripteurs d'espacement spéciaux sont affichés au milieu de la boîte englobante supérieure et inférieure de l'alignement.

2	Cliquez et faites glisser l'un des descripteurs d'espacement vers le haut ou vers le bas.

Lorsque l'option Grille magnétique du menu Affichage est activée, l'espace entre deux instances de l'élément doit être au moins égal à la distance entre les points de grille définis pour la grille en cours.

Si vous utilisez des unités de règle en cellules de caractère, l'espace entre les instances d'élément doit être au moins égal à la hauteur d'une cellule. Pour augmenter l'espace entre des enregistrements d'un élément comportant 5 enregistrements, vous devez donc faire glisser le descripteur d'espacement approprié vers le haut ou vers le bas d'au moins 4 cellules de caractère (une cellule par espace entre les instances de l'élément).


Suppression d'un élément

Pour supprimer un élément :

1	Dans le Navigateur d'objet, cliquez sur l'élément de votre choix.

2	Choisissez Navigateur [image] Supprimer.

La suppression d'un élément supprime également les déclencheurs qui lui sont attachés.


A propos de la séquence de navigation par défaut

  Rubriques connexes

Vous pouvez contrôler le déplacement dans une application en contrôlant l'ordre dans lequel l'opérateur passe aux différents éléments. La navigation des utilisateurs s'effectue par action sur les touches de navigation et utilisation de la souris. En tant que développeur d'applications, vous pouvez également déclencher la navigation par programme en appelant des procédures intégrées comme GO_ITEM et GO_BLOCK à partir de déclencheurs et de sous-programmes intégrés.

Lorsque Form Builder passe à un élément et attend une entrée, on dit que cet élément a le « point d'insertion » - c'est-à-dire qu'il est prêt à accepter une information entrée au clavier par l'utilisateur. Le point d'insertion ne peut figurer que dans un élément d'une application à la fois.

La séquence des blocs d'une application Forms et des éléments d'un bloc définit l'ordre de navigation par défaut (parfois appelée séquence TAB  ou ordre des tabulations).

Les blocs et les éléments sont classés dans une application Forms dans l'ordre dans lequel ils apparaissent dans le Navigateur d'objet. Chaque bloc et chaque élément a un numéro de séquence implicite (1, 2, 3, etc.).

Lors du lancement de l'application Forms, Form Builder définit le point d'insertion au premier élément du premier bloc, comme indiqué par la séquence. Si l'utilisateur appuie sur [Elément suivant] (sur la plupart des systèmes, la touche TAB), le point d'entrée passe au prochain élément du même bloc. S'il appuie sur [Elément suivant] à partir du dernier élément du bloc, le point d'insertion revient au premier élément. Inversement, s'il appuie sur [Elément précédent] dans le premier élément de navigation autorisée, le point d'insertion passe au dernier élément de navigation autorisée. S'il appuie sur [Bloc suivant], le point d'insertion passe au premier élément du bloc 2.


Indication de la séquence de navigation par défaut

  Rubriques connexes

Pour définir la séquence de navigation par défaut :

1	Dans le Navigateur d'objet, disposez tous les blocs de l'application Forms en fonction de la séquence de navigation de vote choix.

Pour déplacer un bloc, cliquez et faites-le glisser à l'emplacement de votre choix sous le nœud Blocs de données.

2	Disposez tous les éléments de chaque bloc en fonction de la séquence de navigation de votre choix.

Pour déplacer un élément, cliquez et faites-le glisser à l'emplacement de votre choix sous le nœud Eléments.

Remarque :  La séquence des blocs dans une application Forms définit également la séquence d'enregistrement dans la base de données par défaut, c'est-à-dire l'ordre dans lequel Form Builder valide chaque bloc au cours d'une opération d'enregistrement/validation.


 Interface de l'Editeur d'unité de programme stockée

  Rubriques connexes

Cette interface propose les boutons et zones de liste suivants :

Nouveau	Permet d'afficher la boîte de dialogue Nouvelle unité de programme, dans laquelle vous pouvez indiquer le type et le nom de l'unité de programme stockée que vous voulez créer.
Enregistrer	Permet de compiler l'unité de programme stockée affichée dans la fenêtre Source. Les messages d'erreur générés par la compilation s'affichent dans la fenêtre déroulante Messages de compilation. La pile Annuler/Annuler annulation est effacée.
Rétablir	Permet de rendre à l'unité de programme l'état dans lequel elle se trouvait lors de la dernière opération d'enregistrement ou de rétablissement. Si aucune opération d'enregistrement ou de rétablissement n'a été exécutée, l'unité de programme reprend son état d'origine.
Eliminer	Permet de supprimer de la base de données l'unité de programme stockée. Une zone de message apparaît et vous invite à confirmer la suppression.
Fermer	Permet de fermer l'Editeur d'unité de programme stockée.
Aide	Affiche cette rubrique d'aide.
Propriétaire	Affiche l'ID utilisateur de base de données du propriétaire de l'unité de programme en cours. Cliquez sur la flèche à droite de cette zone pour afficher la liste déroulante des noms utilisateur. Cette liste ne répertorie que les noms des utilisateurs dont vous avez accès aux unités de programme stockées.
Nom	Affiche le nom de l'unité de programme stockée en cours. Cliquez sur la flèche à droite de la zone pour afficher la liste déroulante des autres unités de programme stockées appartenant à l'utilisateur dont l'ID est indiqué dans le champ Propriétaire. La liste n'affiche que les noms des unités de programme stockées auxquelles vous avez accès.

L'Editeur comporte également les éléments suivants :

Fenêtre source	Entrez et modifiez le texte du source de l'unité de programme PL/SQL. Les barres de partage vous permettent de créer jusqu'à quatre vues distinctes de l'unité de programme en cours. Vous pouvez faire défiler chaque vue de façon indépendante. Pour créer des vues horizontales dans la fenêtre Source, positionnez le curseur sur la barre de partage située en haut de la barre de défilement verticale, puis cliquez deux fois : la fenêtre Source est fractionnée horizontalement en deux vues de taille égale. Sinon, vous pouvez cliquer sur la barre de partage et la faire glisser vers le bas pour modifier la taille des vues. Pour créer des vues verticales, positionnez le curseur sur la barre de partage située à l'extrémité gauche de la barre de défilement horizontale, puis cliquez deux fois : la fenêtre Source est fractionnée verticalement en deux vues de taille égale. Sinon, vous pouvez cliquer sur la barre de partage et la faire glisser vers la droite pour modifier la taille des vues. Pour redimensionner les vues, cliquez sur la barre de partage et faites-la glisser. Pour supprimer une vue horizontale ou verticale, cliquez deux fois sur la barre de partage, ou faites-la glisser hors de la fenêtre. Pour supprimer les quatre vues d'un coup, positionnez le curseur sur l'intersection des barres de partage et cliquez deux fois, ou faites-la glisser vers un angle de la fenêtre. Pour sélectionner une ligne de code, positionnez le curseur sur la marge gauche et cliquez.
Fenêtre Messages de compilation	Affiche les messages d'erreur, le cas échéant, générés par la compilation. Cliquer sur un message d'erreur le met en évidence, fait défiler la fenêtre Source jusqu'à l'instruction source posant problème et positionne le curseur de texte à l'emplacement de l'erreur. Par défaut, la fenêtre Message de compilation ne s'affiche qu'en cas de génération de messages d'erreur de compilation. Pour afficher manuellement la fenêtre Messages de compilation à n'importe quel moment, déplacez le curseur vers l'angle inférieur droit de la fenêtre de l'Editeur jusqu'à ce qu'il se transforme en viseur. Cliquez et faites glisser le curseur vers le haut : la barre de partage est déplacée vers le haut, ce qui fait apparaître la fenêtre Messages de compilation qui se trouvait en dessous.
Barre de partage	Sépare la fenêtre Source et la fenêtre Message de compilation. Permet de modifier la taille de ces fenêtres. Cliquez sur la barre de partage et faites-la glisser pour redimensionner les fenêtres. Si la fenêtre Messages de compilation n'est pas affichée, la barre de partage se situe en fait au bas de la fenêtre de l'Editeur.
Barre d'état	Affiche, au bas de l'Editeur, des informations sur l'état de l'unité de programme stockée.


Permet d'afficher la boîte de dialogue Nouvelle unité de programme, dans laquelle vous pouvez indiquer le type et le nom de l'unité de programme que vous voulez créer.


Permet de compiler l'unité de programme stockée affichée dans la fenêtre Source. Les messages d'erreur générés par la compilation s'affichent dans la fenêtre déroulante Messages de compilation.


Permet de rendre à l'unité de programme stockée l'état dans lequel elle se trouvait lors de la dernière opération d'enregistrement ou de rétablissement. Si aucune opération d'enregistrement ou de rétablissement n'a été exécutée, l'unité de programme reprend son état d'origine.


Permet de supprimer de la base de données l'unité de programme stockée, après avoir demandé confirmation.


Affiche l'ID utilisateur de base de données du propriétaire de l'unité de programme en cours. Cliquez sur la flèche à droite de ce champ pour afficher la liste déroulante des noms utilisateur dont vous avez accès aux unités de programme stockées.


Affiche le nom de l'unité de programme stockée en cours. Cliquez sur la flèche à droite du champ pour afficher la liste déroulante des autres unités de programme stockées appartenant à l'utilisateur dont l'ID est indiqué dans le champ Propriétaire. La liste n'affiche que les noms des unités de programme stockées auxquelles vous avez accès.


Permet d'entrer et d'éditer le texte source d'une unité de programme PL/SQL stockée.


Affiche les erreurs de syntaxe survenues pendant la compilation. Cliquez sur une erreur pour passer à son emplacement source dans l'unité de programme.


Permet de modifier l'espace relatif occupé par les deux fenêtres dans l'Editeur d'unité de programme stockée. Notez que, par défaut, la fenêtre Messages de compilation ne s'affiche qu'en cas de génération de messages d'erreur pendant la compilation.


Interface de la palette de syntaxe

La palette de syntaxe vous permet d'afficher et de copier la syntaxe des instructions PL/SQL ou des packages intégrés. Elle vous permet de copier la syntaxe sélectionnée vers l'éditeur d'unité de programme ou l'éditeur d'unité de programme stockée uniquement.

La palette de syntaxe offre les pages suivantes :

Page PL/SQL	Permet d'afficher et de sélectionner des éléments de langage PL/SQL afin de les copier. Ces éléments sont regroupés par catégories, telles que le flux de contrôle, les curseurs, les exceptions, etc.
Page Procédures internes	Permet d'afficher et de sélectionner un élément PL/SQL intégré (fonction ou procédure) afin de le copier. Les procédures internes sont regroupées par noms de package, tels que EXEC_SQL, DEBUG, DDE, etc.

Chaque page présente les composants suivants :

Liste déroulante	Affiche un nom de catégorie PL/SQL ou de package intégré.  Cliquez sur la flèche située à droite pour choisir une catégorie ou un package.
Zone de liste	Affiche chaque élément de langage de la catégorie PL/SQL ou du package intégré sélectionné. Par défaut, le premier élément de la liste est mis en évidence (sélectionné).  Cliquez sur un élément pour le sélectionner et faire apparaître sa syntaxe complète dans la zone d'affichage. En cliquant deux fois sur un élément PL/SQL, vous insérez sa syntaxe dans la fenêtre d'éditeur active, à l'emplacement du curseur.
Zone d'affichage	Affiche la syntaxe complète de l'élément PL/SQL sélectionné. Les mots réservés apparaissent en majuscules. Une fois la syntaxe insérée dans l'éditeur, remplacez les éléments en minuscules qui ne sont pas des commentaires par les valeurs appropriées. Les éléments en minuscules qui comportent des commentaires sont facultatifs.
Insérer	Cliquez cette option pour copier l'élément sélectionné dans la liste à l'emplacement du curseur dans la fenêtre d'éditeur active.
Fermer	Cliquez sur cette option pour fermer la palette de syntaxe.
Aide	Affiche la présente rubrique d'aide.


Affichage de la palette de syntaxe

Pour afficher la palette de syntaxe :

  Choisissez Programme [image] Palette de syntaxe.


Fermeture de la palette de syntaxe

Pour fermer la palette de syntaxe :

  Cliquez sur le bouton Fermer.


Insertion de la syntaxe dans un éditeur

  Rubriques connexes

Pour insérer la syntaxe dans un éditeur :

1	Assurez-vous que l'éditeur d'unité de programme ou l'éditeur d'unité de programme stockée est actif (sélectionné en dernier).

2	Placez le curseur dans l'éditeur à l'endroit où vous voulez insérer la syntaxe.

3	Dans la palette de syntaxe, sélectionnez l'onglet PL/SQL ou Procédures internes.

4	Choisissez une catégorie PL/SQL ou un package intégré dans la liste déroulante.

Lorsque vous cliquez sur une catégorie ou un package, les éléments PL/SQL pouvant être sélectionnés apparaissent dans la zone de liste située au-dessous.

5	Choisissez un élément PL/SQL dans la zone de liste.

Lorsque vous cliquez sur un élément PL/SQL, sa syntaxe apparaît dans la zone d'affichage se trouvant sous la zone de liste.

6	Cliquez sur Insérer pour copier la syntaxe sélectionnée.

La syntaxe PL/SQL est insérée, avec ses éléments, dans la fenêtre d'éditeur active à l'emplacement actuel du curseur. Les mots réservés apparaissent en majuscules.

Remplacez tous les éléments en minuscules qui ne sont pas des commentaires par les valeurs appropriées. Les éléments comportant des commentaires sont facultatifs.


Liste des catégories PL/SQL

Blocs

Commentaires

Flux de contrôle

Curseurs

Types de données

Exceptions

Fonctions

Boucles

Types d'objet

Packages

Tables PL/SQL

Procédures

Interrogations

Enregistrements

Curseurs SQL

Tables/Vues

Transactions

Types d'utilisateur

Variables


Liste des procédures internes

EXEC_SQL

TOOL_SQL

ORA_FFI

ORA_DE

ORA_PROF

ORA_NLS

TOOL_RES

TOOL_ENV

TEXT_IO

TOOL_ERR

STPROC

LIST

OLE2

DDE

DEBUG

PLITBLM

STANDARD


A propos du développement d'applications Forms destinées à l'interrogation

  Rubriques connexes

Les blocs de données qui correspondent à une table spécifique de la base de données prennent automatiquement en charge l'interrogation, la mise à jour, l'insertion et la suppression d'enregistrements, sans que vous ayez à écrire d'autres sections de programmes. En définissant les propriétés du bloc et ses éléments, vous pouvez contrôler, modifier et même empêcher les interrogations, si vous le désirez.

Un utilisateur peut faire passer une application Forms en mode Saisie interrogation en appuyant sur [Entrer interrogation], ou en exécutant la procédure interne ENTER_QUERY. Form Builder reste en mode Saisie interrogation jusqu'à ce que l'interrogation soit exécutée par l'opération EXECUTE_QUERY ou que l'utilisateur appuie sur [Annuler].

Lorsque l'application Forms est en mode Saisie interrogation, les utilisateurs définissent les valeurs des éléments du bloc en cours pour indiquer les critères de l'interrogation. Les utilisateurs peuvent utiliser la correspondance de motifs, les opérateurs relationnels et la boîte de dialogue QUERY WHERE pour définir l'enregistrement exemple.

Les opérations ENTER_QUERY et EXECUTE_QUERY, qu'elles soient déclenchées par l'utilisateur ou par programme, sont toujours exécutées au niveau bloc. Lorsqu'une application Forms est en mode Saisie interrogation, Form Builder ne laisse l'utilisateur ou l'application passer à un autre bloc que lorsque l'interrogation est exécutée ou que l'utilisateur annule le mode Saisie interrogation.

Définissez la propriété de bloc Interrogation autorisée afin de déterminer si un bloc est interrogeable ou non. Pour demander qu'un bloc soit "en interrogation seule", définissez Interrogation autorisée à Oui et Suppression autorisée, Insertion autorisée et Mise à jour autorisée à Non.

A chaque bloc de données est associée une instruction SELECT par défaut. Lors de l'exécution, Form Builder exécute cette instruction SELECT lorsque le bloc est interrogé, soit par programme, soit par l'utilisateur.

La syntaxe de l'instruction SELECT par défaut d'un bloc dépend des noms des éléments de données du bloc. Un élément de données est un élément d'un bloc de données dont la propriété Bloc de base de données est définie à Oui. Le nom d'un élément de données doit correspondre au nom d'une colonne de la table de base du bloc. Par exemple, dans l'application Forms Exemple, lorsque les utilisateurs exécutent une interrogation sur le bloc ORD_BLK, Form Builder utilise l'interrogation par défaut suivante :

SELECT id, id_client, date_commande, type_paiement, commande_remplie,	   id_vendeur 	FROM   S_ORD

Les éléments Nom_Client et Nom_Vendeur sont également dans le bloc ORD_BLK, mais ce sont des éléments de contrôle dont les valeurs sont extraites des colonnes des différentes tables. Comme la propriété Bloc de base de données de ces éléments est définie à Non, Form Builder ne les entre pas dans l'instruction SELECT par défaut.

L'interrogation par défaut retourne une valeur pour chaque colonne de la base de données pour laquelle le bloc comporte un élément correspondant. Par défaut, l'interrogation est non restreinte et extrait toutes les lignes de la table de base, sans ordre particulier.

Les utilisateurs peuvent limiter les lignes extraites par une interrogation en entrant des valeurs dans les éléments de données. Form Builder utilise alors ces valeurs pour construire la clause WHERE de l'instruction SELECT par défaut.

Par exemple, si l'utilisateur passe au bloc ORD_BLK, appuie sur [Entrer interrogation], tape 55 dans l'élément de texte ID, puis exécute l'interrogation, Form Builder émet l'instruction SELECT suivante :

SELECT id, id_client, date_commande, type_paiement, commande_remplie,	   id_vendeur 	FROM   S_ORD	WHERE  id = '55'

Vous pouvez également indiquer les clauses WHERE et ORDER BY en définissant les propriétés de bloc WHERE et ORDER BY, soit lors de la conception soit lors de l'exécution. Par exemple, si vous avez défini la propriété Clause ORDER BY du bloc ORD_BLK à "id DESC", l'instruction SELECT de l'exemple précédent peut être émise de la façon suivante :

SELECT  id, id_client, date_commande, type_paiement, commande_remplie,	    id_vendeur 	FROM  S_ORD	WHERE id = '55'	ORDER BY id DESC

Lorsque Form Builder exécute une interrogation, il identifie les lignes de la base de données qui correspondent aux critères d'interrogation, puis extrait le nombre de lignes nécessaires au bloc. Vous pouvez à tout moment contrôler le nombre d'enregistrements extraits par Form Builder en définissant la propriété de bloc Nombre maximum d'enregistrements ramenés.


A propos de la définition des clauses WHERE et ORDER BY d'un bloc

  Rubriques connexes

Les propriétés de bloc WHERE et ORDER BY vous permettent de limiter et d'ordonner les enregistrements renvoyés à un bloc de données par l'instruction SELECT par défaut associée à ce bloc.

Vous pouvez modifier par programme les clauses WHERE et ORDER BY lors de l'exécution en lançant la procédure interne SET_BLOCK_PROPERTY.

N'oubliez pas, en outre, que les utilisateurs peuvent faire passer l'application Forms en mode Saisie interrogation puis limiter davantage la Clause WHERE par défaut en ajoutant des conditions d'interrogation dans les éléments de données.

Vous pouvez définir les clauses WHERE et ORDER BY par défaut d'un bloc dans la Palette de propriétés. Pour appeler un éditeur de texte dans la Palette de propriétés, cliquez deux fois sur la propriété de votre choix.

Conseil : Sélectionnez Outils [image] Tables/Colonnes pour appeler l'explorateur Tables/Colonnes pour consulter des noms de table et de colonne de la base de données.

Vous pouvez entrer toutes clauses SQL WHERE et ORDER BY valides dans les propriétés de clause ORDER BY par défaut et WHERE par défaut. Notez cependant quelques considérations propres à Form Builder :

•	Il n'est pas nécessaire d'inclure les mots réservés WHERE et ORDER BY ; Form Builder les ajoute implicitement à tout texte que vous entrez. La clause

ORDER BY nom

peut donc être entrée sous la forme

nom

En outre, l'entrée : est une clause WHERE valide.

solde_compte > 5000

•	Vous ne pouvez pas faire référence à des colonnes de base de données de type LONG dans les clauses par défaut WHERE/ORDER BY.


A propos de la définition d'éléments pour le mode Saisie interrogation

  Rubriques connexes

Les types d'éléments interrogeables en mode Saisie interrogation sont les suivants :

•	cases à cocher,

•	éléments liste,

•	groupes de boutons d'option,

•	éléments texte,

•	éléments personnalisés de conteneur OLE

Tous les autres types d'éléments ne sont pas des éléments de navigation autorisée lorsqu'une application Forms est en mode Saisie interrogation et leurs valeurs ne peuvent pas être entrées dans l'enregistrement exemple.

Lorsque l'utilisateur ou l'application exécute une interrogation, l'instruction SELECT que Form Builder transmet à la base de données comprend la clause WHERE définie par les propriétés WHERE et ORDER BY du bloc, ainsi que les éventuels critères d'interrogation supplémentaires indiqués par l'utilisateur. Lorsqu'une application Forms est en mode Saisie interrogation, les utilisateurs peuvent entrer des valeurs à titre d'exemple dans les éléments pour limiter davantage l'interrogation, de la manière suivante :

Eléments Texte	Eléments Pour inclure une valeur d'élément Texte dans une interrogation, l'utilisateur entre une valeur dans l'élément. Pour l'exclure de l'interrogation, il laisse l'élément vide.
Cases à cocher	Cases Pour inclure ou exclure la valeur de la case à cocher en cours dans une interrogation, l'utilisateur appuie sur Maj tout en cliquant sur l'élément dans lequel se trouve la souris, pour basculer de l'état Interrogation activée à l'état Interrogation désactivée et inversement. Lorsque la case à cocher peut être interrogée, sa valeur est incluse dans l'interrogation.
Groupes de boutons d'option	Groupes Pour inclure une valeur de groupes de boutons d'option dans une interrogation, l'utilisateur sélectionne un bouton du groupe. Pour exclure le groupe de l'interrogation, il désélectionne le bouton d'option afin qu'aucun bouton d'option du groupe ne soit sélectionné.
Eléments Liste	Eléments Pour inclure une valeur d'élément Liste dans une interrogation, l'utilisateur sélectionne une valeur d'élément Liste. Pour l'exclure de l'interrogation, il sélectionne l'élément vide de la liste.
Propriété Interrogation autorisée   Définissez la propriété Interrogation autorisée d'une case à cocher, d'un élément liste, d'un groupe de boutons d'option ou d'un élément Texte afin d'indiquer si l'utilisateur peut passer à l'élément en mode Saisie interrogation.

Lorsqu'une application Forms est en mode Saisie interrogation, Form Builder saute les éléments dont la propriété Interrogation autorisée est définie à Non, même si ces éléments sont de navigation autorisées en mode normal.

Propriété Longueur d'interrogation   Longueur d'interrogation indique le nombre de caractères qu'un utilisateur est autorisé à entrer dans un élément Texte lorsque l'application Forms est en mode Saisie interrogation. La Longueur d'interrogation doit indiquer un nombre de caractères au moins égal à celui de la propriété Longueur maximum de l'élément Texte.

La propriété Longueur d'interrogation ne s'applique qu'aux éléments Texte.

Donner à la propriété Longueur d'interrogation une valeur supérieure à celle de Longueur maximum permet aux utilisateurs d'entrer des opérateurs de relation dans l'élément Texte, lorsqu'ils utilisent l'interrogation par l'exemple. Par exemple, dans un élément Texte SALAIRE ayant une Longueur maximum de 6, les utilisateurs peuvent vouloir entrer des valeurs d'interrogation de type

<=52200

ou

#BETWEEN 30000 and 40000

Définir à 26 la propriété Longueur d'interrogation de l'élément SALAIRE permet aux utilisateurs d'entrer ces interrogations directement dans l'élément Texte, sans avoir à appeler la boîte de dialogue d'interrogation WHERE.

Propriété Respecter maj/min    La propriété Respecter maj/min ne s'applique qu'aux éléments Texte. Elle détermine si Form Builder doit considérer comme identiques les majuscules et les minuscules lorsqu'il traite une interrogation.


A propos de la définition des cases à cocher, des groupes de boutons d'option et des éléments Liste pour interrogation

  Rubriques connexes

Les cases à cocher, groupes de boutons d'option et éléments Liste ont des valeurs prédéfinies associées à des éléments Liste ou des états de sélection spécifiques. Par exemple, lorsqu'une case à cocher marquée Haute sécurité est cochée, sa valeur stockée peut être la chaîne "TOP_SECRET".

Lorsque vous définissez une cache à cocher, un groupe de boutons d'option ou un élément Liste, vous indiquez s'ils acceptent ou non les "autres valeurs" extraites ou attribuées. Une "autre valeur" est une valeur qui ne correspond à aucune de celles associées à un état de sélection spécifique (cochée ou non cochée), un bouton d'option d'un groupe ou un élément Liste d'une liste.

Pour indiquer la manière dont Form Builder doit gérer les autres valeurs, définissez la propriété de l'élément appropriée : pour une case à cocher, définissez la propriété Case à cocher Correspondance d'autres valeurs ; pour les groupes de boutons d'option et les éléments Liste, la propriété Correspondance d'autres valeurs. Par exemple, pour une case à cocher, vous pouvez définir la propriété Case à cocher Correspondance d'autres valeurs à Coché pour indiquer que les autres valeurs entrées dans la case à cocher devront être interprétées comme Coché.

Si vous définissez la propriété Correspondance d'autres valeurs d'une case à cocher, d'un groupe de boutons d'option ou d'un élément Liste pour indiquer que l'élément ne doit pas accepter d'autres valeurs, l'utilisateur ne peut pas extraire d'enregistrements contenant d'autres valeurs dans la colonne de la base de données correspondante.

Par exemple, lorsqu'un bloc contient une case à cocher qui n'accepte pas d'autres valeurs, l'utilisateur ne peut extraire que les enregistrements dont les valeurs de colonnes correspondent exactement à celles de Valeur lorsque coché ou Valeur lorsque non coché. Toute ligne contenant une autre valeur dans cette colonne ne correspond pas aux critères d'interrogation du bloc, et n'est donc pas affichée dans le bloc.

Pour créer une case à cocher, un groupe de boutons d'option ou un élément Liste pour un élément de données, vous devez étudier la façon dont la valeur de cet élément sera interprétée dans l'enregistrement exemple lorsque l'utilisateur utilisera l'interrogation par exemple en mode Saisie interrogation. Soit une case à cocher appelée Haute sécurité correspondant à une colonne de base de données appelée SECURITE, et définie de la manière suivante :

Propriété	Définition
Valeur cochée	TOP_SECRET
Valeur non cochée	NONE
Case à cocher Correspondance d'autres valeurs	Non autorisé

 Si un utilisateur d'application Forms ajoute cette case à cocher dans une interrogation, le prédicat de la clause WHERE pour l'instruction SELECT par défaut du bloc sera construit de la manière suivante :

Etat de la case à cocher	Clause WHERE résultante
Coché	(SECURITE = TOP_SECRET)
Non coché	(SECURITE = AUCUNE)

Form Builder peut aussi définir à Coché la propriété Case à cocher Correspondance d'autres valeurs, afin que l'élément accepte d'autres valeurs (et les affiche cochées), comme indiqué ci-après :

Propriété	Définition
Valeur cochée	TOP_SECRET
Valeur non cochée	NONE
Case à cocher Autres valeurs	Coché (Autres valeurs OK)

Si l'utilisateur de l'application Forms choisit d'inclure cette case à cocher dans une interrogation, le prédicat de la clause WHERE pour l'instruction SELECT par défaut du bloc sera alors construit de la manière suivante :

Etat de la case à cocher	Clause WHERE résultante
Coché	(SECURITE <> AUCUNE)
Non coché	(SECURITE = AUCUNE)


A propos de l'exécution d'une interrogation par programme

  Rubriques connexes

Les interrogations sont généralement lancées par programme. Par exemple, pour créer un bouton ou un élément de menu que l'utilisateur peut utiliser pour exécuter une interrogation, écrivez la commande d'élément de menu appropriée ou le déclencheur When-Button-Pressed.

Pour faire passer une application Forms en mode Saisie interrogation par programme, appelez la procédure interne ENTER_QUERY. L'utilisateur peut alors indiquer des conditions d'interrogation avant d'exécuter l'interrogation avec une commande de bouton ou de menu. Pour exécuter immédiatement une interrogation, appelez la procédure interne EXECUTE_QUERY.

Dans certains cas, il est préférable d'écrire un déclencheur qui exécute la procédure ENTER_QUERY ou EXECUTE_QUERY, selon que l'application Forms est ou non déjà en mode Saisie interrogation, lisez la valeur de la variable système SYSTEM.MODE pour savoir si l'application Forms est en mode Normal ou en mode Saisie interrogation :

SI System.Mode = 'NORMAL' THEN	Enter_Query;ELSE	Execute_Query;

Pour exécuter une interrogation par programme, le bloc à interroger doit être le bloc en cours. Si nécessaire, passez au bloc voulu avant d'exécuter l'interrogation :

IF System.Cursor_Block != 'ORD_BLK' THEN	Go_Block('ord_blk');	Execute_Query;END IF;


A propos des contrôles des interrogations par des déclencheurs Pre-Query et Post-Query

  Rubriques connexes

Les déclencheurs Pre-Query et Post-Query permettent de contrôler le traitement des interrogations. Ils peuvent être définis au niveau application Forms ou bloc. Dans la plupart des cas, attachez-les à des blocs spécifiques pour contrôler les fonctions d'interrogation de ces blocs.

Le déclencheur Pre-Query est activé immédiatement avant que Form Builder transmette l'instruction SELECT à la base de données, lorsque l'utilisateur a défini l'enregistrement exemple en entrant des critères de recherche en mode Saisie interrogation.

Dans un déclencheur Pre-Query, l'enregistrement exemple défini par les critères d'interrogation est l'enregistrement en cours, ce qui signifie que le code de déclencheur peut lire et définir les valeurs des éléments de l'enregistrement exemple en utilisant la syntaxe standard :nom_bloc.nom_élément.

Un déclencheur Pre-Query peut être utilisé pour désactiver les conditions d'interrogation qui pourraient ne pas être valides. Lorsqu'une application Forms est en mode Saisie interrogation, la validation normale est suspendue et aucun déclencheur de validation n'est activé, comme il le serait en mode Normal. Le déclencheur Pre-Query vous permet donc de vous assurer que les valeurs entrées par l'utilisateur sont des conditions d'interrogation valides.

Lorsque l'utilisateur a entré des conditions d'interrogation non valides, vous pouvez interrompre une interrogation en générant l'exception intégrée FORM_TRIGGER_FAILURE dans le déclencheur Pre-Query.

Vous pouvez également appeler SET_BLOCK_PROPERTY pour modifier les clauses WHERE et ORDER BY du bloc à partir du déclencheur Pre-Query, pour limiter ou ordonner davantage les enregistrements qui seront extraits par l'interrogation.

Le déclencheur Post-Query est activé après l'exécution de l'interrogation, lorsque Form Builder lit des enregistrements dans l'application Forms. Post-Query n'est activé qu'une fois par enregistrement lu dans l'application Forms, ce qui vous permet de lire et de définir les valeurs des éléments d'un enregistrement extrait avant qu'elles ne s'affichent dans le bloc.

Un déclencheur Post-Query permet également de remplir des éléments de contrôle dont les valeurs sont extraites d'une table autre que la table de base du bloc.


A propos de la définition de déclencheurs à activer en mode Saisie interrogation

  Rubriques connexes

Vous pouvez indiquer si certains déclencheurs doivent être activés lorsque l'application Forms est en mode Saisie interrogation, en définissant la propriété de déclencheur Activer en Mode Saisie interrogation.

Prenons par exemple un bouton que l'utilisateur peut sélectionner pour afficher une liste de valeurs (LOV). Le texte du déclencheur When-Button-Pressed attaché au bouton peut se présenter de la manière suivante :

/*  Déclencheur When-Button-Pressed: */ DECLARE 	dummy_var BOOLEAN; BEGIN 	dummy_var := Show_LOV('Clients',10,20); END;

Si la propriété Activer en Mode Saisie interrogation est définie à Oui pour ce déclencheur, l'utilisateur peut appeler la liste de valeurs en mode Saisie interrogation et en mode Normal.

Les déclencheurs valides en mode Saisie interrogation sont les suivants :

•	key - *

•	On-Error

•	On-Message

•	Déclencheurs When, sauf :

•	When-Database-Record

•	When-Image-Activated

•	When-New-Block-Instance

•	When-New-Form-Instance

•	When-Create-Record

•	When-Remove-Record

•	When-Validate-Record

•	When-Validate-Item


Création d'un déclencheur activé en mode Saisie interrogation

  Rubriques connexes

Pour créer un déclencheur activé en mode Saisie interrogation :

1	Dans le Navigateur d'objet, sélectionnez le déclencheur de votre choix.

2	Dans la Palette de propriétés, définissez la propriété à Oui.

Par défaut, la propriété Activer en mode saisie interrogation est définie à Oui pour tout déclencheur valide en mode Saisie interrogation.


A propos de l'utilisation de SYSTEM.MODE pour déterminer le mode en cours

  Rubriques connexes

Pour activer un déclencheur en mode Saisie interrogation et en mode Normal, définissez la propriété Activer en Mode Saisie interrogation à Oui. Pour qu'un déclencheur exécute différentes fonctions en fonction du mode (Normal ou Saisie interrogation) de l'application Forms,  utilisez la variable système SYSTEM.MODE pour déterminer le mode en cours

Par exemple, si vous voulez qu'un déclencheur effectue un ensemble d'actions si l'application Forms est en mode Saisie interrogation, et un autre s'il est en mode Normal :

/*  Déclencheur dont la propriété Activer en Mode Saisie interrogation est définie à Oui : */

IF :System.Mode = 'SAISIE-INTERROGATION' THEN 	-- exécuter ces instructions ELSE

-- exécuter ces autres instructions

De même, vous pouvez écrire un déclencheur qui ne sera activé que si Form Builder est en mode Saisie interrogation :

/*  Déclencheur dont la propriété Activer en Mode Saisie interrogation est définie à Oui :  */

IF :System.Mode = 'SAISIE-INTERROGATION' THEN 	-- exécuter ces instructions

END IF;

Remarque : La variable système SYSTEM.MODE fournit des informations sur le mode du bloc en cours, ce qui signifie, par exemple, que vous ne pouvez pas espérer que SYSTEM.MODE soit précis lorsque vous lisez son état dans un déclencheur attaché à un bloc de contrôle, comme un déclencheur When-Button-Pressed. Comme un bloc de contrôle ne repose pas sur une table de base de données, il ne peut jamais être mis en mode Saisie interrogation.


A propos des sous-programmes intégrés interdits en mode Saisie interrogation

  Rubriques connexes

Les sous-programmes intégrés qui ne peuvent pas être appelés à partir d'un déclencheur, lorsque Form Builder est en mode Saisie interrogation, sont les suivants :

ABORT_QUERY	LAST_RECORD
BLOCK_MENU	LOCK_RECORD
CALL_INPUT	LOGON/LOGON_SCREEN/LOGOUT
CLEAR_BLOCK	NEW_FORM
CLEAR_FORM	NEXT_BLOCK
COMMIT_FORM	NEXT_RECORD
CREATE_QUERIED_RECORD	NEXT_SET
CREATE_RECORD	POST
DELETE_RECORD	PREVIOUS_BLOCK
DOWN	PREVIOUS_RECORD
DUPLICATE_RECORD	SCROLL_DOWN
FETCH_RECORDS	SCROLL_UP
FIRST_RECORD	SELECT_RECORDS
GO_BLOCK	UP
GO_RECORD	UPDATE_RECORD
INSERT_RECORD

 Remarque : Comme Form Builder empêche la sortie du bloc en cours en mode Saisie interrogation, GO_ITEM n'est autorisé que si l'élément cible est dans le bloc en cours.


A propos du contrôle des insertions, des mises à jour et des suppressions

  Rubriques connexes

Form Builder vous propose un ensemble de propriétés et de déclencheurs que vous pouvez utiliser pour autoriser, empêcher ou modifier les insertions, les mises à jour et les suppressions d'une application Forms.

Pour contrôler la prise en charge des insertions, mises à jour et suppressions d'un bloc, définissez les propriétés suivantes :

•	Insertion autorisée

•	Mise à jour autorisée

•	Suppression autorisée

Au niveau élément, vous pouvez contrôler les insertions et les mises à jour en définissant les propriétés suivantes :

•	Insertion autorisée

•	Mise à jour autorisée

•	Mise à jour seulement si NULL


A propos du contrôle des insertions

  Rubriques connexes

Pour indiquer si un bloc doit accepter l'insertion de nouveaux enregistrements dans sa table de base, définissez la propriété de bloc Insertion autorisée.. Lorsque la propriété Insertion autorisée est définie à Oui (par défaut), la propriété d'élément Insertion autorisée détermine si chaque élément du bloc accepte l'insertion de nouveaux enregistrements.

Plus précisément, la propriété d'élément Insertion autorisée détermine si l'utilisateur peut modifier la valeur d'un élément d'un nouvel enregistrement (c'est-à-dire, lorsque l'état de l'enregistrement est NEW ou INSERT).

Lorsque la propriété d'élément Insertion autorisée est définie à Non, et que les propriétés Navigation autorisée au clavier et/ou Activé de l'élément sont définies à Oui, l'utilisateur peut passer à l'élément, mais ne peut pas modifier sa valeur lorsqu'il est dans un nouvel enregistrement.

Lorsqu'un bloc accepte l'insertion de nouveaux enregistrements, Form Builder crée un nouvel enregistrement dans le bloc si l'un des événements ci-après se produit :

•	L'utilisateur sélectionne Enregistrement [image] Insérer dans le menu d'application Forms par défaut.

•	L'application exécute la procédure interne CREATE_RECORD.

•	L'utilisateur ou l'application passe au prochain enregistrement lorsque le point d'insertion est dans le dernier enregistrement du bloc.

Par exemple, si le point d'insertion est dans le dernier enregistrement d'un bloc et que l'utilisateur appuie sur [Enregistrement suivant], Form Builder crée un nouvel enregistrement dans le bloc.

Form Builder crée également un nouvel enregistrement dans un bloc la première fois que le bloc est visité au cours d'une session. Par exemple, au démarrage d'une application Forms, lorsque Form Builder passe au premier élément de navigation autorisée du premier bloc de l'application, un nouvel enregistrement est créé dans ce bloc. L'état d'un enregistrement passe de NEW à INSERT dès que l'utilisateur entre des données qui doivent être enregistrées dans la base de données par la prochaine opération d'enregistrement ou de validation.


A propos de la définition de valeurs par défaut d'éléments de nouveaux enregistrements

La valeur par défaut d'un élément est déterminée par la valeur de la propriété d'élément Valeur initiale. La valeur que vous indiquez doit être compatible avec le type des données de l'élément. Par exemple, la valeur par défaut d'un élément Texte ayant des données de type DATE doit pouvoir être affichée dans un format de date valide.

Form Builder attribue une valeur par défaut à un élément lors de la création d'un nouvel enregistrement. Plus précisément, il attribue la valeur par défaut lorsque l'élément fait partie d'un enregistrement dont l'état est marqué NEW.

Les valeurs par défaut peuvent être les suivantes :

•	valeur brute (216, 'TOKYO')

•	$$DATE$$, $$DBDATE$$, $$DATETIME$$, $$DBDATETIME$$

•	valeur d'élément d'application Forms (:nom_bloc.nom_élément)

•	variable globale (:GLOBAL.ma_globale)

•	paramètre d'application Forms (:PARAMETRE.mon_param)

•	une séquence (:SEQUENCE.ma_séq.NEXTVAL)

Il est courant d'indiquer des valeurs par défaut de cases à cocher, de groupes de boutons d'option et d'éléments Liste pour que les éléments apparaissent avec l'état de sélection voulu (coché ou non coché, etc.). Lorsque vous définissez des valeurs par défaut pour ces éléments, n'oubliez pas que la valeur par défaut n'est attribuée que lorsque que Form Builder crée un nouvel enregistrement dans le bloc de l'élément. Vous pouvez imposer à Form Builder la création d'un nouvel enregistrement dans un bloc en naviguant vers le bloc par programme, dans un déclencheur When-New-Form-Instance par exemple.

Remarque : La simple copie d'une valeur dans un champ ne demande pas la navigation vers le bloc, et ne crée donc pas de nouvel enregistrement dans le bloc ni n'affiche de valeurs par défaut.


A propos du texte du message d'aide d'un élément

  Rubriques connexes

Lors de l'exécution, Form Builder peut afficher dans la ligne de message de la fenêtre de commande un texte d'aide propre à un élément. Le texte d'aide d'un élément, ou message d'aide, ne peut être affiché que lorsque le point d'insertion est dans cet élément. Pour afficher le texte du message d'aide défini pour l'élément en cours, exécutez la procédure interne HELP.

Le texte du message d'aide est généralement un conseil sur la façon d'entrer des données valides dans l'élément. Par exemple, le texte du message d'aide d'un élément contenant des numéros de pièces peut être le suivant : "Entrer un numéro de pièce à 6 chiffres". Pour contrôler l'affichage du texte du message d'aide, définissez les propriétés Message d'aide et Aide automatique.

Suppression du texte du message d'aide Si vous ne voulez pas que Form Builder affiche le texte du Message d'aide d'un élément, laissez la propriété Message d'aide en blanc. Dans ce cas, la propriété Aide automatique est sans effet et peut être définie à Oui ou à Non.

Remarque : Les propriétés Message d'aide et Aide automatique ne s'appliquent qu'aux éléments qui sont attribués à un canevas. (Le texte du message d'aide ne s'applique pas aux éléments dont Canevas n'est pas renseigné.)

Messages d'aide par défaut pour éléments de données Lorsque vous créez un bloc de données en utilisant l'assistant Bloc de données, Form Builder définit les propriétés Message d'aide et Aide automatique de chaque élément du bloc de la manière suivante :

Message d'aide	Le message d'aide par défaut est Entrer une valeur pour : <nom_élément> où nom_élément est le nom de l'élément de données créé par l'assistant Bloc de données.

Aide automatique	Définie à Non (Form Builder affiche le message d'aide uniquement si l'utilisateur appuie sur [Aide] dans cet élément).


Création d'un message d'aide pour un élément

  Rubriques connexes

Pour afficher  le message d'aide d'un élément :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'élément pour lequel vous voulez faire apparaître un message d'aide dans la Palette de propriétés.

2	Sous le nœud Aide, entrez le texte de votre choix dans la zone de texte Message d'aide. Ce texte ne doit pas être entouré de guillemets.

3	Définissez la propriété Aide automatique à Oui ou à Non pour indiquer si Form Builder doit afficher le message d'aide :

Définissez la propriété Aide automatique à Oui pour que Form Builder affiche le message d'aide lorsque le point d'insertion passe sur l'élément.

Définissez la propriété Aide automatique à Non pour que Form Builder affiche le message d'aide lorsque l'utilisateur appuie sur [Aide] ou sélectionne l'élément Aide dans le menu par défaut tandis que le point d'insertion passe sur l'élément.


A propos du contrôle des mises à jour

  Rubriques connexes

Pour indiquer si l'utilisateur peut ou non mettre à jour les enregistrements qui ont été interrogés dans la base de données, définissez les propriétés Mise à jour autorisée et Imposer sécurité colonne.

Lorsque Mise à jour autorisée est définie à Oui au niveau bloc, vous pouvez définir Mise à jour autorisée et Mettre à jour seulement si NULL au niveau élément pour indiquer si l'utilisateur doit pouvoir mettre à jour des éléments spécifiques d'un enregistrement interrogé.

Ces propriétés mutuellement exclusives indiquent les conditions de mise à jour d'un élément faisant partie d'un enregistrement dont l'état est QUERY. Form Builder appose à un enregistrement une marque indiquant que son état est QUERY si l'enregistrement a été extrait ou validé, c'est-à-dire lorsque l'enregistrement reflète une ligne de la base de données.

Définissez la propriété Imposer sécurité colonne à Oui pour que Form Builder définisse automatiquement Mise à jour autorisée lors de l'exécution, si l'utilisateur a l'autorisation de mettre à jour la colonne correspondante de l'élément dans la base de données.

Lorsque la propriété Imposer sécurité colonne est définie à Oui, l'utilisateur doit avoir l'autorisation de mettre à jour, au niveau colonne, les colonnes auxquelles correspondent les éléments du bloc. Form Builder applique la sécurité colonne en définissant dynamiquement à Non la propriété Mise à jour autorisée, lors du démarrage de l'application Forms, pour les éléments qui correspondent aux colonnes que l'utilisateur n'a pas le droit de mettre à jour.

Lorsque vous définissez Imposer sécurité colonne à Oui, Form Builder lit les autorisations définies dans le dictionnaire de données lors du démarrage de l'application Forms.


A propos de la validation de valeurs d'élément pendant la saisie des données

  Rubriques connexes

Form Builder comporte un modèle de validation des données qui simplifie la validation des données des enregistrements qui ont été entrées ou mises à jour par l'utilisateur. La plupart des règles courantes de validation peuvent être gérées par la définition des propriétés de niveau élément suivantes :

•	Type de données

•	Longueur maximale

•	Longueur fixe

•	Obligatoire

•	Valeur maximale autorisée/Valeur minimale autorisée

Pour ajouter une validation propre à une application, écrivez  un déclencheur When-Validate-Item ou When-Validate-Record pour l'élément ou le bloc. When-Validate-Item est activé pendant l'événement Leave the Item, juste après que Form Builder a effectué ses propres contrôles de validation. When-Validate-Record est activé pendant l'événement Leave the Record, lorsque Form Builder s'assure que tous les éléments de l'enregistrement en cours sont marqués valides avant de passer à l'enregistrement cible.

Une règle de validation courante consiste à s'assurer que les éléments qui correspondent aux colonnes de clé primaire de la base de données ont des valeurs uniques. Oracle8 Server applique les contraintes NOT NULL et UNIQUE qui peuvent effectuer ces opérations à votre place au niveau noyau. Cependant, il est généralement souhaitable de donner immédiatement aux utilisateurs des informations sur ces erreurs pendant la saisie des données, au lieu d'attendre qu'une erreur ORACLE soit affichée lors de l'enregistrement dans la base de données.

Pour s'assurer qu'une valeur de clé primaire est unique immédiatement après son entrée par l'utilisateur, créez un déclencheur When-Validate-Item qui émet une instruction SELECT pour vérifier si la valeur existe déjà dans la source de données du bloc.

Remarque : Vous pouvez également Imposer des clés primaires uniques en définissant les propriétés d'élément et de bloc Imposer clé primaire. Cependant, lors de la définition de ces propriétés, Form Builder ne recherche les valeurs dupliquées que lors de l'enregistrement dans la base de données, lorsqu'il traite chaque mise à jour (UPDATE) ou insertion (INSERT) pour le bloc. La définition de ces propriétés n'offre pas davantage d'intérêt que l'utilisation des contraintes de base de données comparables, car dans les deux cas, les valeurs de clé primaire en double ne sont marquées que lors de l'enregistrement dans la base de données.


A propos du chargement d'éléments à l'aide de valeurs provenant d'autres tables

 Exemples	     Rubriques connexes

Il est souvent nécessaire de créer un élément dans un bloc de données dont la valeur provient d'une table autre que la source de données du bloc. Ce type d'élément est parfois appelé champ de consultation, car l'application doit interroger, ou "consulter", une valeur de l'élément lorsqu'une interrogation est exécutée dans le bloc, ou que l'enregistrement en cours change.

Par exemple, dans les tables de l'exemple, la table S_CDE (commandes) comporte une colonne ID_CLIENT, mais pas de nom de client. Dans le schéma relationnel, Nom est un attribut d'un client, et non d'une commande, et d'après les règles de normalisation, doit apparaître dans la table S_CLIENT et non dans la table S_CDE. La colonne ID_CLIENT est le champ commun à S_CDE et à S_CLIENT.

Lorsque vous créez un bloc de données fondé sur la table S_CDE, cependant, vous préférez probablement afficher le nom du client avec chaque commande, et non uniquement l'ID de ce client. Pour ce faire, créez un élément de contrôle dans le bloc Commandes, puis chargez-le par programme lorsque l'ID de client change.


Chargement d'un élément à l'aide de valeurs provenant d'une autre table

  Rubriques connexes

Pour remplir un élément en entrant des valeurs provenant d'une autre table :

1	Créez un élément du type voulu dans le bloc données de votre choix.

2	Cliquez deux fois sur l'élément pour afficher la Palette de propriétés.

3	Sous le nœud Base de données, définissez la propriété Elément de base de données à Non pour que cet élément devienne un élément de contrôle.

4	Sous le nœud Données, définissez les propriétés Type de données, Longueur maximum et toutes les autres propriétés qui doivent être compatibles avec le type de valeurs extraites que l'élément doit afficher.

5	Créez des déclencheurs pour charger l'élément de contrôle lors de l'exécution.


A propos du chargement d'éléments à l'aide de valeurs provenant d'autres tables - Exemples

Un déclencheur Post-Query est activé lorsque l'utilisateur ou l'application exécute une interrogation. Comme il est activé une fois pour chaque enregistrement extrait, votre code, dans le déclencheur, peut lire et définir les valeurs de chaque enregistrement.

Pour charger un élément de contrôle appelé NOM_CLIENT dans un bloc de données appelé BLC_CDE, vous pouvez créer le déclencheur Post-Query suivant, attaché au bloc BLC_CDE :

Déclencheur Post-Query pour le bloc BLC_CDE : 	SELECT nom	INTO :bloc_cde.nom_client	FROM s_client	OU s_client.id = :blc_cde.id_client;

Le déclencheur Post-Query assure l'extraction du nom du client lorsque l'utilisateur interroge les commandes du bloc, mais vous devez également afficher le nom du client lorsque l'utilisateur entre ou modifie l'élément ID client, pendant la saisie des données. Pour cela, créez un déclencheur When-Validate-Item attaché à l'élément ID client.

Un déclencheur When-Validate-Item est activé lorsque l'utilisateur ou l'application sort de l'élément et vous permet d'émettre une instruction SELECT qui charge l'élément Nom_Client.

Déclencheur When-Validate-Item pour l'élément ID client : BEGIN	SELECT nom	INTO :bloc_cde.nom_client	FROM s_client	OU 	s_client.id = :blc_cde.id_client;EXCEPTION	WHEN	NO_DATA_FOUND THEN	Message('Id de client erroné. Entrez-le à nouveau.');	RAISE Form_Trigger_Failure;END;


A propos du contrôle de la navigation

  Rubriques connexes

La séquence de navigation par défaut des éléments d'un bloc, et des blocs d'une application Forms est déterminée par la disposition des éléments et des blocs dans le Navigateur d'objet. Form Builder vous permet également de contrôler totalement la navigation en définissant les propriétés au niveau application Forms, bloc et élément. En définissant ces propriétés lors de la conception ou de l'exécution, vous pouvez décider si les utilisateurs peuvent naviguer vers les éléments, et dans quel ordre.

Les propriétés dont la définition permet de contrôler la navigation sont les suivantes :

Objet	Propriétés affectant la navigation
Application Forms	Premier bloc de navigation
Bloc	Type de navigation Bloc de navigation suivant Bloc de navigation précédent
Elément	Activé Navigation à la souris Navigation autorisée au clavier Elément de navigation suivant Elément de navigation précédent


A propos de la modification de la séquence de navigation par défaut

  Rubriques connexes

Vous pouvez remplacer la séquence de navigation par défaut au niveau bloc ou élément en définissant les propriétés Bloc de navigation suivant, Bloc de navigation précédent, Premier bloc de navigation, Elément de navigation suivant et Elément de navigation précédent.

Propriétés Bloc de données de navigation suivant/précédent Les propriétés Bloc de navigation suivant et Bloc de navigation précédent remplacent la séquence de navigation par défaut définie par l'ordre des blocs indiqué dans le Navigateur d'objet. Plus précisément, la propriété Bloc de navigation suivant vous permet de nommer comme prochain bloc de la séquence un bloc différent.

Prenons, par exemple, une application Forms à trois blocs. Vous pouvez définir la propriété Bloc de navigation suivant du Bloc 1 de manière à remplacer le Bloc 2 par défaut par le Bloc 3, ce qui donne la séquence de navigation de bloc suivante : Bloc 1...Bloc 3...Bloc 1. Notez que, dans cet exemple, le bloc suivant du Bloc 3 reste le Bloc 1 et que le Bloc 2 n'est donc jamais visité pendant la navigation au clavier par défaut.

Vous pouvez également utiliser les propriétés Bloc de données de navigation suivant et Bloc de données de navigation précédent pour désactiver les opérations Bloc suivant et Bloc précédent. Par exemple, pour désactiver la touche [Bloc suivant] du Bloc 2, définissez la propriété Bloc de données de navigation suivant du Bloc 2 à lui-même (Bloc 2).

Propriétés Elément de navigation suivant/précédent Les propriétés Elément de navigation suivant et Elément de navigation précédent sont comparables aux propriétés Bloc de navigation suivant et Bloc de navigation précédent, mais elles contrôlent la navigation au niveau élément, et non au niveau bloc.

Propriété Premier bloc de données de navigation Définissez la propriété de module Application Forms Premier bloc de navigation de manière à indiquer un bloc cible autre que le premier de la séquence de navigation, lors de l'entrée de l'application Forms au démarrage de cette application. Cette propriété peut être définie dans la Palette de propriétés ou par programme en utilisant la procédure interne SET_FORM_PROPERTY.


A propos de l'indication du type de navigation pour un bloc

  Rubriques connexes

Vous pouvez modifier la séquence de navigation par défaut en définissant la propriété de bloc Type de navigation. Cette propriété précise comment une opération Elément suivant ou Elément précédent est traitée à partir, respectivement, du dernier élément et du premier élément de navigation autorisée.

Les définitions valides pour Type de navigation sont les suivantes :

Même enregistrement	Type de navigation par défaut. Une opération Elément suivant à partir du dernier élément d'un bloc fait passer le point d'insertion au premier élément de navigation autorisé du bloc, dans le même enregistrement.
Changement d'enregistrement	Une opération Elément suivant à partir du dernier enregistrement d'un bloc fait passer le point d'insertion au premier élément de navigation autorisé du bloc, dans l'enregistrement suivant. Si l'enregistrement en cours est le dernier du bloc et que le bloc ne comporte aucune interrogation ouverte, Form Builder crée un nouvel enregistrement. Si le bloc comporte une interrogation ouverte (le bloc contient des enregistrements interrogés), Form Builder extrait les enregistrements supplémentaires nécessaires.
Changement de bloc	Une opération Elément suivant à partir du dernier élément d'un bloc fait passer le point d'insertion au premier élément de navigation autorisé du premier enregistrement du bloc suivant. De même, une opération Elément précédent à partir du premier élément d'un bloc fait passer le point d'insertion au dernier élément de l'enregistrement en cours dans le bloc précédent. Notez que les propriétés Bloc de navigation suivant et Bloc de navigation précédent peuvent être définies de manière à redéfinir le bloc précédent ou suivant d'un bloc.
La propriété de bloc Type de navigation peut être définie lors de la conception développement dans la Palette de propriétés, et lors de l'exécution, à l'aide de la procédure interne SET_BLOCK_PROPERTY.

Le type de navigation par défaut est Même enregistrement. En général, les applications qui l'utilisent doivent indiquer clairement aux utilisateurs des applications Forms la correspondance entre les éléments et les blocs. Si les utilisateurs doivent appuyer sur [Bloc suivant] pour passer à un élément d'un bloc différent, ils doivent savoir précisément quels sont les éléments qui se trouvent dans les blocs.

Pour contourner ce problème, vous pouvez utiliser les types de navigation Changement d'enregistrement ou Changement de bloc pour obtenir la séquence de navigation voulue. Le paramètre Changement de bloc est souvent utile lorsque les utilisateurs doivent pouvoir appuyer sur TAB pour passer à tous les éléments d'une fenêtre, même s'ils appartiennent à plusieurs blocs.

Par exemple, lorsque vous créez une fenêtre comportant, dans le bas, une rangée de boutons, les éléments Bouton se trouvent souvent dans un bloc différent des autres éléments de la même fenêtre. L'utilisation du type de navigation Changement de bloc, pour chaque bloc, supprime la restriction de navigation Bloc suivant.

Le type de navigation Changement d'enregistrement est intéressant pour les blocs de données pouvant contenir simultanément plusieurs enregistrements. Ce paramètre permet aux utilisateurs de passer rapidement sur plusieurs enregistrements, sans devoir utiliser une touche différente ou la souris pour passer explicitement à l'enregistrement précédent ou suivant. Pendant la saisie des données, la propriété Changement d'enregistrement permet aux utilisateurs d'insérer rapidement un nouvel enregistrement à la fin de la liste des enregistrements du bloc.


A propos des éléments de navigation autorisée et des éléments activés

  Rubriques connexes

Un élément de navigation autorisée est un élément vers lequel les utilisateurs peuvent naviguer à l'aide de la touche TAB pendant la navigation par défaut, ou vers lequel Form Builder peut naviguer en exécutant une procédure interne de navigation.

Par exemple, lorsqu'un utilisateur appuie sur [Elément suivant], ou que l'application exécute la procédure interne NEXT_ITEM, Form Builder fait passer le point d'insertion dans le prochain élément de navigation autorisée, en sautant les éléments de navigation non autorisée de la séquence.

Vous pouvez définir les propriétés Navigation autorisée au clavier et ACTIVE des éléments pour indiquer si les utilisateurs sont autorisés à naviguer vers ces éléments et à déclencher des opérations interactives. La propriété Navigation autorisée au clavier détermine si Form Builder peut faire passer le point d'insertion dans un élément pendant la navigation par défaut. Elle s'applique à tous les éléments, sauf les éléments graphiques et les éléments affichés. La propriété ACTIVE détermine si les utilisateurs peuvent utiliser la souris pour manipuler un élément dont la propriété Navigation autorisée au clavier est définie à Non.

Sous la plupart des gestionnaires de fenêtres, les éléments désactivés sont affichés en contraste réduit pour indiquer qu'ils ne peuvent pas être utilisés pour des opérations de saisie ou de sélection.

Lorsque la propriété ACTIVE est définie à Oui, la propriété Navigation autorisée au clavier peut être définie à Oui ou Non. Si la propriété Activé est définie à Non, la navigation est toujours interdite pour l'élément considéré.

Le tableau ci-après indique les options valides pour ces propriétés et décrit le comportement résultant.

Navigation autorisée au clavier	Activé	Comportement résultant
Oui	Oui	La navigation vers l'élément est autorisée et Form Builder peut y faire passer le point d'insertion pendant la navigation par défaut. L'élément est affiché normalement.
Non	Oui	La navigation vers l'élément n'est pas autorisée. Pendant la navigation par défaut, Form Builder saute cet élément et passe au prochain élément de navigation autorisée de la séquence. L'élément est affiché normalement et les utilisateurs peuvent y passer et le manipuler en utilisant la souris.
Non	Non	La navigation vers l'élément n'est pas autorisée. Celui-ci est affiché à contraste réduit pour indiquer qu'il ne peut pas faire l'objet d'opérations de saisie ou de manipulations à la souris.

 Remarque : Si la propriété ACTIVE est définie à Non, les utilisateurs ne peuvent pas mettre à jour la valeur de l'élément qui est désactivé et grisé. Pour l'afficher normalement, mais empêcher les utilisateurs de modifier sa valeur, définissez à Non les propriétés Insertion autorisée et/ou Mise à jour autorisée de l'élément, pour empêcher les utilisateurs de modifier un enregistrement dont l'état est soit NEW/INSERT soit QUERY/CHANGED.


A propos de la définition de la propriété de navigation à la souris pour éléments d'interface graphique

 Exemples	     Rubriques connexes

Les utilisateurs peuvent cliquer pour activer un bouton, changer le mode d'une case à cocher, sélectionner un bouton d'un élément Liste ou sélectionner un bouton d'option. Pour chacun de ces éléments, vous pouvez définir la propriété Navigation à la souris pour indiquer si un clic de souris sur l'élément doit entraîner le passage du point d'insertion sur l'élément. La propriété Navigation à la souris ne s'applique qu'aux applications d'interface graphique, et n'est valide que pour les éléments suivants :

•	bouton

•	case à cocher

•	élément Liste

•	groupe de boutons d'option

Lorsque la propriété Navigation à la souris est définie à Oui (par défaut), Form Builder exécute une navigation standard pour faire passer le point d'insertion dans l'élément lorsque l'utilisateur active l'élément en utilisant la souris.

Lorsque la propriété Navigation à la souris est définie à Non, Form Builder n'exécute pas de navigation (ni la validation résultante) pour passer à l'élément lorsqu'un utilisateur active l'élément en utilisant la souris.


A propos de la définition de la propriété de navigation à la souris pour éléments d'interface graphique - Exemples

Soit deux blocs, A et B, affichés dans la même fenêtre. Le bloc A contient des éléments Texte et le bloc B des boutons. Lorsque le point d'insertion est dans un élément Texte du bloc A, l'utilisateur peut activer un bouton du bloc B en cliquant à l'aide de la souris, ce qui déclenche l'événement When Button Pressed, et Form Builder exécute alors le code du déclencheur When-Button-Pressed attaché à ce bouton.

La définition de la propriété Navigation à la souris, pour le bouton, détermine la façon dont Form Builder traite le clic de souris :

Si la propriété Navigation à la souris est définie à Oui... Form Builder navigue vers le bouton, en exécutant au passage les contrôles de validation standard. Les événements de validation et de navigation internes qui peuvent se produire sont les suivants :

•	Sortie de l'élément (l'élément Texte source)

•	Validation de l'élément

•	Sortie de l'enregistrement

•	Validation de l'enregistrement

•	Sortie du bloc (Bloc A)

•	Entrée dans le bloc (Bloc B)

•	Entrée dans l'enregistrement (dans lequel se trouve le bouton)

•	Entrée dans l'élément (le bouton cible)

Si la propriété Navigation à la souris est définie à Non... Form Builder se contente d'activer le déclencheur When-Button-Pressed du bouton, sans exécuter de navigation interne. Comme aucune navigation n'est effectuée, le point d'insertion reste dans l'élément Texte source après l'exécution du déclencheur. (A moins, bien évidemment, que le code du déclencheur ne passe à un autre élément.)

Si vous avez défini des déclencheurs pour l'un de ces événements de validation ou de navigation standard, ils sont activés au point approprié pendant le passage au bouton par navigation interne.

Par exemple, si un déclencheur When-Validate-Item est attaché à l'élément source, il est activé lorsque l'utilisateur appuie sur le bouton. (Si la propriété Navigation à la souris du bouton a été définie à Non, aucune navigation n'a lieu et le déclencheur de validation n'est pas activé).

Notes sur la propriété Navigation à la souris :

•	Lorsque la propriété Navigation à la souris est définie à Oui, le déclencheur When-Button-Pressed du bouton n'est activé que si la navigation vers le bouton réussit. Si un contrôle de validation échoue, la navigation échoue et le déclencheur When-Button-Pressed n'est pas activé. Les utilisateurs ne peuvent donc pas activer le bouton si l'un des champs obligatoires contient des valeurs erronées.

•	Certains gestionnaires de fenêtres n'affichent pas d'informations indiquant que le point d'insertion se trouve dans un élément (un bouton ou une case à cocher, par exemple). Si vous laissez la propriété Navigation à la souris défini à Oui sur ces plates-formes, n'oubliez pas que les utilisateurs n'auront pas d'informations visuelles concernant l'emplacement du point d'insertion.


A propos de la navigation à l'aide du code

Les touches de navigation que les utilisateurs peuvent utiliser pour naviguer dans une application Forms ont des procédures internes correspondantes que vous pouvez appeler pour déclencher la navigation par programme. Le tableau ci-après contient certaines des touches de navigation les plus courantes, ainsi que les procédures internes correspondantes :

Touche de fonction Runform	Procédure interne correspondante
[Elément suivant] (TAB)	NEXT_ITEM
[Elément précédent]	PREVIOUS_ITEM
[Bloc suivant]	NEXT_BLOCK
[Bloc précédent]	PREVIOUS_BLOCK
[Enregistrement suivant]	NEXT_RECORD
[Enregistrement précédent]	PREVIOUS_RECORD
[Touche suivante]	NEXT_KEY

D'autres procédures internes permettent de passer directement à une cible indiquée :

•	GO_ITEM passe à un élément indiqué.

•	GO_BLOCK passe au premier élément de navigation autorisée du bloc indiqué.

•	GO_FORM passe à l'élément en cours, dans une autre application Forms ouverte.


A propos du contrôle de source

  Rubriques connexes

Ce contrôle permet de gérer et de tenir à jour plusieurs révisions d'un fichier dans une archive.

Une archive est un répertoire, défini par l'utilisateur, qui contient une version texte du fichier, ainsi que des informations sur chacune des révisions effectuées, notamment la description et la date de toutes les modifications.

L'archive permet à un membre d'une équipe de développement d'extraire, de modifier et de mettre en place une révision fiable et cohérente.

Ses composants (Form Builder par exemple) proposent un contrôle de source par une interface générique avec le fournisseur de contrôle de source de votre choix. A l'heure actuelle, il existe des modules enfichables pour le système PVCS (Polytron Version Control System) de INTERSOLV et Pure-Atria Clearcase, mais d'autres modules sont en cours de développement.

Pour toute information sur l'installation et l'utilisation de PVCS, reportez-vous à votre documentation INTERSOLV.

PVCS prend également en charge le verrouillage des fichiers et l'établissement d'états sur les archives.


A propos des fichiers de configuration

Il existe quatre variables d’environnement qui doivent être définies pour optimiser les performances de l’interface de source de contrôle. Sous Windows 3.1, celles-ci sont définies dans oracle.ini, alors que sous Windows NT ou Windows 95/98, elles figurent dans la base de registres, dans la clé SOFTWARE/ORACLE.

DEV2000_SOURCECONTROL indique le système de contrôle de source à utiliser. Il doit être défini à «PVCS». La valeur par défaut étant définie à PVCS par ses composants (Forms Builder par exemple), l’omission de cette variable n’aura aucun effet perceptible dans la présente version. Cependant, comme ils prennent également en charge d’autres système de contrôle de source, la définition de cette variable vous assure un bon fonctionnement de l’interface de contrôle de source.

DEV2000_PROJECT remplace la variable TVCCFG d’Oracle Developer versions 1.0 et 1.1, et identifie le fichier de configuration de projet PVCS (.CFG) à utiliser. Si vous n’indiquez pas de fichier configuration de projet via une variable d’environnement, vous devrez en choisir un dans la boîte de dialogue Contrôle de source : Options pour chaque session.

DEV2000_SCVIEWER contrôle l’affichage des résultats d’un journal de contrôle de source ou d’un état des différences. Pour désactiver l’affichage des résultats, définissez cette variable à NULL (aucune valeur).

DEV2000_SCCONVERT contrôle la conversion des fichiers en code ASCII avant leur archivage dans PVCS, et leur reconversion en binaire avant leur extraction. A moins que ne vouliez mettre à niveau PVCS d’une version antérieure d’Oracle Developer et souhaitiez le conserver, laissez la valeur par défaut FALSE.

Exemple d’une partie du contenu du fichier oracle.ini :

...

DEV2000_SOURCECONTROL=PVCS

DEV2000_PROJECT=C:\PROJECTS\MYPROJ\MYPROJ.CFG

DEV2000_SCVIEWER=NOTEPAD.EXE

DEV2000_SCCONVERT=FALSE

...


A propos de la mise en oeuvre de PVCS

Lorsque vous archivez certains objets (applications Forms, menus, états, affichages, bibliothèques PL/SQL) le fichier binaire est automatiquement converti en un fichier texte équivalent, qui est archivé dans le contrôle de source. Par exemple, si vous avez archivé MONAPPLI.FMB, ce fichier est automatiquement converti en MONAPPLI.FMT (équivalent en format texte), puis ce dernier est archivé dans le contrôle de source.

De même, lorsque vous extrayez un fichier archivé, Developer/2000 convertit la version texte du fichier en son équivalent en format binaire, qui peut être lu par les interfaces de développement. Si vous voulez extraire MONAPPLI.FMT, il sera converti en MONAPPLI.FMB pour que vous puissiez l'éditer.

L'archivage est effectué sur la version texte du fichier pour permettre la génération entre les différentes versions d'un fichier d'états des différences plus significatifs. PVCS archive les fichiers binaires, mais ne crée pas d'états des différences entre les différentes révisions de ces fichiers.

Une fois cette conversion de fichiers effectuée, votre répertoire de travail peut contenir des fichiers supplémentaires, en fonction des options que vous avez choisies pour PVCS. Si la configuration de votre projet prévoit la création de fichiers de travail en lecture seule après l'archivage, votre répertoire contiendra le fichier binaire et un fichier texte en lecture seule. Mais si la suppression des fichiers de travail après archivage est prévue dans la configuration, votre répertoire de travail ne contiendra que le fichier binaire.


A propos de l'archivage d'un fichier

  Rubriques connexes

Tout fichier modifié et entré dans une archive devient une nouvelle révision. Lorsque vous archivez un fichier (par exemple, un fichier de bibliothèque PL/SQL ayant le suffixe .pll), PVC le convertit automatiquement de binaire en texte et l'archive à l'emplacement indiqué, sous la forme d'un fichier texte ayant le suffixe approprié (par exemple, .pld). PVCS utilise le fichier texte pour générer des états d'archive.

Un libellé de version indique qu'une révision appartient à un groupe constituant généralement une version complète de votre application. Les libellés de version permettent d'exécuter une opération simultanément sur tous les fichiers associés à une version particulière en ne faisant référence qu'à un seul nom. Si vous avez déjà archivé une version du module en cours, les informations appropriées sont entrées automatiquement dans le champ Archive.


A propos de l'extraction d'un fichier

  Rubriques connexes

L'extraction d'un fichier archivé vous permet d'accéder à ce fichier pour le parcourir, l'éditer ou l'imprimer. Par défaut, un seul utilisateur peut, à un moment donné, extraire une version verrouillée.

Lorsque vous extrayez un fichier, il est automatiquement converti en fichier de format approprié (par exemple, il un fichier de bibliothèque PL/SQL du format pld est converti au format .pll). Le fichier extrait d'une archive est appelé fichier de travail. Chaque fois que vous archivez une nouvelle variante d'un fichier de travail, elle devient une révision.


A propos de la création d'états d'archive

  Rubriques connexes

PVCS permet de générer des états récapitulatifs sur les sujets suivants :

•	création d'archives

•	attributs des fichiers archivés

•	révisions successives

•	libellés

•	lignes modifiées dans la dernière révision

•	description du fichier de travail


A propos des modèles de promotion

Un modèle de promotion est une suite hiérarchisée de jalons d'un cycle de développement. La promotion permet de contrôler le développement du code source, de la phase initiale à la version finale. Chaque jalon est représenté par un groupe de promotion. Exemples : Développement, Assurance qualité et Production. Un modèle de promotion est une fonction avancée, conseillée pour les sites appliquant des procédures formelles d'évolution de logiciels.

Un modèle de promotion peut avoir un ou plusieurs groupes de niveau inférieur, ou de développement. Lorsqu'un modèle de promotion est en vigueur, les utilisateur ne peuvent modifier que les révisions associées à un groupe de développement. Pour éditer une révision associée à un groupe de niveau supérieur, l'utilisateur doit l'extraire et la ré-associer à un groupe de développement lors de l'extraction, puis la faire repasser à un groupe supérieur après l'avoir ré-archivée.

Si le modèle de promotion ne comprend qu'un groupe de développement, vous ne pouvez verrouiller qu'une révision de l'archive à la fois. Pour concevoir un modèle de promotion pour un développement parallèle, vous devez inclure au moins deux groupes de développement.

Au-dessus du ou des groupes de développement, vous pouvez définir un nombre quelconque de groupes de promotion intermédiaires pour les différentes étapes de test ou d'éditions préliminaires. Au niveau le plus élevé se trouve le groupe de production qui indique généralement que les révisions sont prêtes à être commercialisées.

L'utilisation d'un modèle de promotion vous permet de :

•	Connaître rapidement l'état d'un projet. Vous pouvez exécuter un état d'archivage sur un projet pour savoir immédiatement quels sont modules qui n'ont pas atteint un jalon particulier du cycle de développement.

•	Contrôler l'accès aux révisions aux niveaux autres que celui du développement. Etant donné que les utilisateurs ne peuvent pas modifier les révisions associées à des groupes de promotion post-développement, vous êtes certain que toutes les révisions sont intégralement testées.

•	Personnaliser votre propre modèle. Vous pouvez personnaliser une structure de promotion adaptée de façon unique à chaque projet, en indiquant le nombre de jalons de votre choix dans la structure de promotion.


Création d'un répertoire d'archives

  Etape suivante	  Rubriques connexes

Pour créer un répertoire d'archives :  Remarque :

1	Choisissez Fichier [image] Administration [image] Gestion des archives et rapports pour afficher la boîte de dialogue Contrôle de source : Options.

2	S'il n'est pas déjà sélectionné, sélectionnez l'onglet Projet.

3	Indiquez le nom et l'emplacement de votre répertoire d'archives dans le champ Nouveau répertoire d'archive.

4	Cliquez sur Ajouter nouveau répertoire à liste, puis sur Fermer pour fermer la boîte de dialogue.


Vous ne pouvez ajouter des répertoires d'archive qu'après avoir défini le paramètre DEV2000_PROJECT dans le fichier oracle.ini. Sous Microsoft Windows, définissez ce paramètre de la manière suivante :

DEV2000_PROJECT=C:\PVCS\PROJECT1\PROJECT1.CFG

Pour éditer le paramètre DEV2000_PROJECT, utilisez le fichier Oracle.ini sous Windows 3.1, et la base de registres sous Windows 95/98 et NT.


Archivage d'un fichier

  Etape suivante	  Rubriques connexes

Pour archiver un fichier :

1	Choisissez Fichier [image] Administration [image] Archiver pour afficher la boîte de dialogue Contrôle de source : archivage.

2	Entrez le nom du fichier à archiver dans la boîte de texte Fichier de travail.

3	Indiquez l'emplacement de votre archive dans le champ Archive.

4	(Facultatif) Fournissez un Libellé de version, un Groupe de promotion et une Description.

5	(Facultatif) Cliquez sur la case à cocher Garder le fichier verrouillé si vous voulez qu'une copie modifiable du fichier soit disponible localement, même après son archivage. Ce type de copie permet, sans avoir à extraire le fichier, de le modifier et d'archiver les modifications ultérieures du fichier sans avoir à l'extraire.

6	Cliquez sur OK pour archiver votre fichier.

PVCS archive le fichier.


Extraction d'un fichier

  Etape suivante	  Rubriques connexes

Pour extraire un fichier :

1	Choisissez Fichier [image] Administration [image] Extraire pour afficher la boîte de dialogue Contrôle de source : extraction.

2	Indiquez l'emplacement de l'archive source dans le champ Depuis l'archive.

3	Entrez dans la boîte de texte Nom de fichier le nom du fichier que vous voulez extraire.

4	Sélectionnez une révision de fichier dans le champ Révisions.

5	(Facultatif) Indiquez la destination en entrant un chemin dans le champ Destination.

6	(Facultatif) Pour verrouiller le fichier que vous extrayez, choisissez le Groupe de promotion de niveau Développement qui sera attribué à la révision en cours d'extraction.

7	(Facultatif) Cliquez sur la case à cocher Verrouiller ce fichier Remarque :

8	(Facultatif) Cliquez sur la case à cocher Ouvrir fichier après extraction. Si cette case est déjà cochée, le fichier extrait sera ouvert dans Designer lorsqu'il aura été extrait de PVCS.

9	Cliquez sur OK pour extraire le fichier.


Si vous voulez modifier un fichier d'archives, vous devez valider la case à cocher Verrouiller ce fichier pour archiver vos modifications. Sinon, la version extraite sera la version en lecture seule.


Création d'un état d'archives

  Rubriques connexes

Pour créer un état d'archives :

1	Choisissez Fichier [image] Administration [image] Gestion des archives et rapports.

2	Cliquez sur l'onglet Etat pour afficher la page Contrôle de source : options Etat.

3	Indiquez l'emplacement de l'archive dans le champ Archive.

4	Indiquez le nom du fichier d'archive dans le champ Fichier source. Pour générer l'état, PVCS compare ce fichier et le fichier cible.

5	Indiquez le nom d'un fichier cible dans le champ Fichier cible.  Remarque

6	Sélectionnez les révisions du fichier dans les champs Révision source et Révision cible, respectivement.

7	Indiquez le nom et l'emplacement de l'état dans le champ Fichier de sortie, puis cliquez sur Exécuter état.

PVCS crée l'état. Si vous avez indiqué un programme de visualisation en utilisant la variable d'environnement DEV2000_SCVIEWER ou le paramètre oracle.ini, ce programme sera appelé pour afficher la sortie. Sinon, utilisez un éditeur pour ouvrir votre fichier état.


Si vous comparez deux révisions stockées dans la même archive, entrez le nom du fichier d'archive que vous avez fourni à l'étape 4. Si vous comparez des fichiers d'archive différents, indiquez un fichier d'archive différent dans le champ Fichier cible.


Boîte de dialogue Contrôle de source : Archivage

  Rubriques connexes

Permet de fusionner le fichier indiqué dans l'archive indiquée.

Cette boîte de dialogue comporte les options suivantes :

Nom de fichier	Permet d'indiquer le nom du fichier que vous allez archiver. Choisissez Parcourir pour appeler une boîte de dialogue dans laquelle vous pourrez sélectionner un fichier.
Archive	Liste déroulante de toutes les archives disponibles pour le projet en cours. Sélectionnez l'archive dans laquelle le fichier doit être enregistré.
Libellé de version	(Facultatif) Permet d'indiquer le libellé de la version du fichier.
Groupe de promotion	Si vous avez défini un modèle de promotion pour votre projet PVCS, cette liste est activée. Choisissez le groupe de promotion de niveau Développement qui doit être attribué à la révision à archiver.
Description	Permet de décrire les modifications apportées à cette révision. Bien que ce champ soit facultatif, il est conseillé de le remplir pour faciliter l'identification des révisions lors de leur extraction.
Garder le fichier verrouillé ?	Permet d'indiquer si une copie modifiable du fichier d'archivage est disponible localement, même après l'archivage du fichier. Ce type de copie permet, sans avoir à extraire le fichier, de le modifier et d'enregistrer les modifications ultérieures.


Boîte de dialogue Contrôle de source : Extraction

  Rubriques connexes

Permet d'extraire d'une archive le fichier que vous voulez éditer.

Cette boîte de dialogue comprend les options suivantes :

Depuis l'archive	Permet d'indiquer le nom du répertoire d'archive contenant le fichier à extraire.
Nom de fichier	Permet d'indiquer le nom du fichier à extraire du contrôle de source. Choisissez Parcourir pour appeler une boîte de dialogue dans laquelle vous pourrez sélectionner un fichier.
Révisions	Affiche les révisions disponibles ainsi que les libellés de version du fichier sélectionné dans le champ Nom de fichier.
Description	Dresse la liste des descriptions des versions disponibles énumérées dans la liste Révisions.
Répertoire cible	(Facultatif) Permet d'indiquer le répertoire de destination du fichier à extraire.
Groupe de promotion	Si vous avez défini un modèle de promotion pour votre projet PVCS, cette liste est activée. Si vous voulez verrouiller le fichier à extraire, choisissez le groupe de promotion de niveau Développement qui sera attribué à la révision à extraire.
Verrouiller fichier à l'extraction	Permet d'indiquer si le fichier à extraire doit être marqué verrouillé. Un fichier verrouillé est protégé contre les mises à jour par d'autres utilisateurs.
Ouvrir fichier après extraction	Si vous cochez cette case, le fichier sera ouvert dans Designer après avoir été extrait de PVCS.


Boîte de dialogue Contrôle de source : Options

  Rubriques connexes

Cette boîte de dialogue comprend trois onglets :

Options de projet

Options de fichier

Options d'état


Contrôle de source : page Options de projet

  Rubriques connexes

La page Options de projet permet d'ajouter et de supprimer des répertoires d'archives dans votre fichier de configuration de projet.

Cette page comporte les option suivantes :

Projet en cours	Nom du fichier de configuration du projet PVCS en cours. Sa valeur initiale est la valeur de DEV2000_PROJECT dans le fichier oracle.ini. Pour afficher la boîte de dialogue de fichiers de votre système d'exploitation, entrez directement un nom de fichier ou cliquez sur Parcourir.
Nouveau répertoire d'archives	Permet d'indiquer le nom du nouveau répertoire d'archives à ajouter à la liste des répertoires d'archives disponibles dans le projet en cours. Pour afficher la boîte de dialogue de fichiers de votre système d'exploitation entrez un nom de répertoire ou cliquez sur Parcourir.
Liste des répertoires d'archives	Affiche les répertoires d'archives disponibles dans le projet en cours.
Ajouter nouveau répertoire à la liste	Après avoir entré un répertoire d'archives dans la boîte de texte Nouveau répertoire d'archives, cliquez sur Ajouter nouveau répertoire à liste pour ajouter ce répertoire au projet en cours. Une fois  ajouté, le répertoire apparaîtra dans la liste.
Retirer répertoire sélectionné de la liste	Sélectionnez un répertoire d'archives de la liste, puis cliquez sur Supprimer répertoire sélectionné de la liste pour le supprimer du projet.


Contrôle de source : page Options de fichier

  Rubriques connexes

La page Options de fichier permet de verrouiller ou de déverrouiller une archive ou de générer un journal d'activités de cette archive.

Cette page comporte les options suivantes :

Archive	Liste déroulante de tous les répertoires d'archives du fichier de configuration de projet en cours.
Nom de fichier	Permet d'indiquer le fichier d'archives auquel vous voulez accéder. Vous pouvez entrer directement le nom du fichier ou en choisir un à l'aide de Parcourir. Si la configuration de votre projet PVCS prévoit d'ignorer les chemins d'accès au fichier de travail, vous pouvez indiquer soit un fichier de travail, soit un fichier d'archives. Sinon, vous ne pouvez indiquez qu'un fichier d'archives.
Révisions	Cette liste déroulante affiche toutes les révisions et tous les libellés de version du fichier sélectionné. Elle comporte aussi une entrée vide qui indique l'absence de sélection. Si vous sélectionnez une révision, elle sera verrouillée ou non verrouillée. Si vous ne sélectionnez pas de révision, le comportement du programme dépendra de la présence ou de l'absence d'une définition de modèle de promotion. Si vous n'avez pas défini de modèle, la révision sera verrouillée. Si vous avez défini un modèle, la révision attribuée au groupe de promotion indiqué sera verrouillée. En cas de sélection de Déverrouiller sans révision sélectionnée, tous les verrous que vous avez posés sur le fichier seront supprimés.
Groupe de promotion	Si vous avez défini un modèle de promotion pour votre projet PVCS, cette liste est activée et affiche tous les groupes de promotion de niveau Développement de votre modèle de promotion. Lorsque vous verrouillez une révision, le groupe de promotion indiqué dans cette liste lui est attribué.
Nom du fichier de journalisation	Permet d'indiquer le nom du fichier de journalisation.
Type de journalisation	Permet d'indiquer le type des mises à jour à entrer dans le fichier de journalisation indiqué lors d'un archivage ou d'une extraction.
Verrouiller révision	Permet de verrouiller le fichier indiqué dans le champ Nom de fichier, sans l'extraire du contrôle de source. Un fichier verrouillé est protégé contre les mises à jour par d'autres utilisateurs. Si vous sélectionnez une révision de la liste Révisions, elle est verrouillée. Si vous n'en sélectionnez pas, la révision (ou celle attribuée au groupe de promotion indiqué) est verrouillée. Si vous avez défini un modèle de promotion pour votre projet PVCS, le groupe de promotion indiqué est attribué à la révision verrouillée.
Déverrouiller révision	Permet de déverrouiller le fichier indiqué dans le champ Nom de fichier pour permettre à d'autres utilisateurs d'extraire et de modifier le fichier d'archives. Si vous avez sélectionné une révision de la liste Révisions, elle sera déverrouillée. Si vous n'en sélectionnez pas, tous les verrous que vous avez posés sur les révisions du fichier sont libérés.
Générer journalisation	Permet de générer un fichier de journalisation ayant le nom indiqué. Le type d'entrée dans ce fichier journalisation est déterminé par l'option Type de journalisation. Si vous avez indiqué un programme de visualisation en utilisant la variable d'environnement DEV2000_SCVIEWER ou le paramètre oracle.ini, ce programme sera appelé pour afficher la sortie.


Contrôle de source : page Options d'état

  Rubriques connexes

La page Options d'état permet de définir et de créer des états d'archive.

Cette page comporte les options suivantes :

Archive	Liste déroulante de tous les répertoires d'archives du fichier de configuration de projet en cours.
Fichier source	Permet d'indiquer le premier fichier à utiliser pour générer un état des différences. Vous pouvez entrer directement le nom, ou choisir un fichier en utilisant le bouton adjacent Parcourir. Si la configuration de votre projet PVCS prévoit d'ignorer les chemins d'accès au fichier de travail, vous pouvez indiquer soit un fichier de travail, soit un fichier d'archives. Sinon, vous ne pouvez indiquez qu'un fichier d'archives.
Révision source	Liste déroulante de toutes les révisions et de tous les libellés de version du fichier source.
Fichier cible	Permet d'indiquer le nom du fichier cible. Pour générer un état, PVCS compare le fichier source et le fichier cible.
Révision cible	Liste déroulante de toutes les révisions et de tous les libellés de version du fichier cible.
Fichier de sortie	Permet d'indiquer le répertoire de destination et le nom du fichier dans lequel devra être entré l'état des différences découlant de la comparaison de deux fichiers.
Exécuter état	Permet de créer un état en fonction des options indiquées. Si vous avez indiqué un programme de visualisation en utilisant la variable d'environnement DEV2000_SCVIEWER ou le paramètre oracle.ini, ce programme sera appelé pour afficher la sortie.


Messages d'erreur

Les messages d'erreur qui peuvent s'afficher lorsque vous utilisez les boîtes de dialogue d'interface de contrôle de source sont décrits ci-dessous.

D2SCP-001 :	Accès au fichier refusé par le système de fichiers

 Cause :	Vous n'êtes pas autorisé par le système de fichiers à lire des fichiers d'archives, à écrire des fichiers de travail ou à écrire la sortie de l'état ou la sortie journal.

 Action :	Si vous estimez que vous devez avoir accès à ces fichiers, contactez votre administrateur système.

D2SCP-002 :	Privilèges d'accès insuffisants du gestionnaire de version

 Cause :	Vous n'êtes pas autorisé par PVCS à accéder à l'archive que vous avez indiquée. Ce message apparaît également si la modification des répertoires d'archives a été désactivée dans le projet maître et que vous tentiez de les modifier dans l'onglet Options de projet de la boîte de dialogue Options.

 Action :	Si vous estimez que vous devez avoir accès à cette archive, contactez votre administrateur système.

D2SCP-003 :	Cette archive existe déjà

 Cause :	Ce message indique une erreur interne et ne devrait pas apparaître.

 Action :	S'il réapparaît lorsque vous répétez l'opération, contactez le Support technique Oracle.

D2SCP-004 :	Archive spécifiée introuvable

 Cause :	Vous avez entré ou sélectionné un fichier qui n'était pas une archive, alors qu'il fallait indiquer un fichier d'archives. Ce message apparaît généralement lorsque vous sélectionnez le fichier de travail au lieu du fichier d'archives (par exemple, MONAPPLI.FMB au lieu de MONAPPLI.FMV).

 Action :	Utilisez le bouton Parcourir pour choisir un fichier d'archives.

D2SCP-005 :	Nom de fichier, unité ou chemin non valide ou menu de fichier contient des caractères non valides

 Cause :	Le nom de fichier que vous avez entré n'est pas un nom de fichier valide pour le système d'exploitation.

 Action :	Vérifiez la syntaxe du nom de fichier.

D2SCP-006 :	Fichier en cours d'utilisation par un autre processus

 Cause :	Le fichier auquel vous tentez d'accéder a été ouvert par un autre utilisateur PVCS.

 Action :	Si vous attendez un peu avant de tenter à nouveau d'exécuter l'opération, ce message ne devrait plus apparaître.

D2SCP-007 :	Echec de conversion. Le fichier de travail est en lecture seule ou n'est pas pris en charge

 Cause :	Causes possibles :

A.	Votre fichier de travail est en lecture seule. Par exemple, vous extrayez le fichier sans le verrouiller, puis vous le verrouillez dans la boîte de dialogue Options.

B.	Vous avez tenté d'archiver ou d'extraire un fichier d'un type non reconnu.

 Action :	Pour corriger cette erreur, vous pouvez exécuter les opérations suivantes.

A.	Utiliser le Gestionnaire de fichiers ou l'explorateur de Windows pour permettre l'écriture dans le fichier avant de poursuivre.

B.	Archiver ou extraire le fichier en utilisant l'interface PVCS autonome.

Notez que vous pouvez extraire n’importe quel fichier à condition qu’il soit reconnu, car Oracle Developer ne peut que déterminer s'il s'agit d'un type de fichier pris en charge à partir du fichier de travail. Lorsque vous archivez un fichier, le fichier de travail permet à Oracle Developer de tester le fichier avant de l'archiver. Lorsque vous extrayez un fichier, Developper/2000 commence par l'extraire pour obtenir un fichier de travail. Ce n'est qu'à ce stade qu'il teste le fichier. Vous pouvez donc ignorer cette erreur lors d'une extraction si vous savez que le fichier n'est pas un fichier Oracle Developer.

D2SCP-008 :	Valeurs non valides ou insuffisantes

 Cause :	Ce message indique une erreur interne et ne devrait pas apparaître.

 Action :	S'il réapparaît lorsque vous répétez l'opération, contactez le Support technique Oracle.

D2SCP-010 :	Le libellé de version existe déjà

 Cause :	Vous avez indiqué dans la boîte de dialogue Archivage un libellé de version qui existe déjà pour le fichier que vous archivez. PVCS requiert que les libellés de version soient uniques.

 Action :	Changez le libellé. Pour afficher les libellés utilisés, utilisez la fonction Journal de l'onglet Options de fichiers de la boîte de dialogue Options.

D2SCP-011 :	La révision spécifiée n'existe pas

 Cause :	Ce message indique une erreur interne et ne devrait pas apparaître.

 Action :	S'il réapparaît lorsque vous avez répété l'opération, contactez le Support technique Oracle.

D2SCP-012 :	Fichier de configuration spécifié non valide

 Cause :	Causes possibles :

A.	Le fichier que vous avez choisi dans l'onglet Options de projet de la boîte de dialogue Options n'est pas un fichier de configuration PVCS valide.

B.	Si cette erreur apparaît lorsque vous tentez d'accéder à la boîte de dialogue Archivage ou Extraction, le fichier de configuration indiqué dans la variable d'environnement DEV2000_PROJECT n'est pas valide.

 Action :	Pour corriger cette erreur, vous pouvez exécuter les opérations suivantes.

A.	Sélectionner un fichier valide.

B.	Modifier la variable ou utiliser l'onglet Options de projet de la boîte de dialogue Options pour définir un fichier de configuration valide.

D2SCP-013 :	Vous devez d'abord choisir un projet depuis 'Contrôle de source : Options'

 Cause :	Vous avez tenté d'accéder à la boîte de dialogue Archivage ou Extraction sans avoir indiqué de projet, en utilisant soit la variable DEV2000_PROJECT du fichier ORACLE.INI, soit l'onglet Options de projet de la boîte de dialogue Options.

 Action :	Vous devez passer à l'onglet Options de projet et sélectionner un projet avant de poursuivre.

D2SCP-014 :	Mise à jour impossible du fichier de configuration de projet

 Cause :	Vous avez tenté d'ajouter ou de supprimer des répertoires d'archives dans le fichier de configuration de projet, sans être autorisé à écrire dans le fichier ou le répertoire dans lequel se trouve le fichier.

 Action :	Consultez votre administrateur système ou PVCS si vous estimez que vous devriez avoir cette autorisation.

D2SCP-015 :	Révision non verrouillée

 Cause :	Vous avez tenté d'archiver une révision que vous n'avez pas verrouillée, ou de déverrouiller une révision que vous n'avez pas verrouillée (à partir de l'onglet Options de fichier).

 Action :	Si vous avez modifié la révision, verrouillez-la à partir de l'onglet Options de fichier avant de l'archiver.

D2SCP-016 :	Verrouillage impossible de la révision spécifiée

 Cause :	Vous avez tenté d'extraire une révision verrouillée à partir de la boîte de dialogue Extraction ou de verrouiller une révision à partir de l'onglet Options de fichiers, mais PVCS n'a pas pu vous autoriser à effectuer le verrouillage. Causes possibles :

A.	La révision est déjà verrouillée, par vous ou par quelqu'un d'autre.

B.	Votre projet ne permet pas les verrous multiples, et la révision est déjà verrouillée.

C.	Si votre projet comporte un modèle de promotion, le groupe de promotion que vous avez indiqué est peut être déjà attribué à une révision verrouillée.

 Action :	Pour corriger cette erreur, vous pouvez exécuter les opérations suivantes.

A.	Utilisez la fonction de journalisation pour connaître le propriétaire du verrou et, si vous avez déjà verrouillé la révision, extrayez-la sans demander de verrou. Si quelqu'un d'autre a verrouillé le fichier, attendez qu'il le déverrouille avant d'extraire le fichier à modifier.

B.	Attendez que la révision ou le fichier soit disponible, ou envisagez d'autoriser plusieurs verrous par fichier dans votre projet.

C.	Attendez que le groupe de promotion soit disponible (c'est-à-dire ne soit pas attribué à une révision verrouillée) ou utilisez un autre groupe de promotion de niveau Développement.

D2SCP-017 :	Le répertoire spécifié n'existe pas

 Cause :	Vous avez indiqué un répertoire qui n'existe pas. Cette erreur apparaît souvent en cas d'extraction de fichier lorsque l'emplacement dans lequel il a été archivé n'existe pas sur votre poste de travail.

 Action :	Dans ce cas, éditez le fichier Cible pour qu'il pointe sur un répertoire existant.

D2SCP-018 :	Réacheminement impossible de la sortie vers fichier

 Cause :	Le nom de fichier que vous avez indiqué pour la sortie de l'état des différences ou le journal n'est pas valide, ou bien le fichier n'a pas pu être ouvert en écriture.

 Action :	Indiquez un nom de fichier valide et pouvant être utilisé en écriture.

D2SCP-100 :	PVCS Erreur numéro - mot-clé

 Cause :	PVCS a émis une erreur que l'interface de contrôle de source n'a pas pu traiter.

Action :	Reportez-vous à votre documentation PVCS en utilisant le numéro de l'erreur ou son mot-clé, et prenez les mesures nécessaires.


Pourquoi l'interface du gestionnaire de configuration de PVCS n'affiche-t-elle pas les nouveaux fichiers ou les révisions ?

Lorsque j'archive des fichiers et attribue des libellés de version, l'interface du gestionnaire de configuration de PVCS n'affiche pas les nouveaux fichiers ou les révisions. Que faire ?

Le dossier de projet doit être mise à jour par l'utilisation des nouvelles informations figurant dans les archives (nouveaux fichiers et révisions). Pour cela, choisissez Mettre à jour dossier projet dans le menu Projet de niveau supérieur de PVCS. Les nouveaux fichiers et les révisions doivent alors être visibles dans la fenêtre "Dossiers" de PVCS.


Pourquoi les options de menu de contrôle de source ne sont-elles activées que dans un produit ?

Si j'exécute simultanément plusieurs produits, les options de menu de contrôle de source ne sont activées que dans l'un d'entre eux. Pourquoi ?

PVCS sous Windows n'est pas invariant - cela signifie qu'à un moment donné un seul programme (programme activé par PVCS comme Report Builder ou l'interface PVCS elle-même) peut accéder aux services PVCS. Vous devrez sortir du programme dont les menus sont activés, et de celui à partir duquel vous voulez accéder aux services PVCS, puis relancer celui dans lequel vous voulez accéder à PVCS.


Pourquoi le système affiche-t-il un message d'erreur indiquant que PVCS ne peut pas trouver l'archive ?

Lorsque j'ai tenté d'extraire un état, j'ai choisi le fichier .RDV (fichier d'archives), mais je reçois toujours un message indiquant que PVCS ne peut pas trouver l'archive. Que se passe-t-il ?

Même si vous avez choisi un fichier .RDV, il est possible qu'il ne s'agisse pas du fichier d'archives. Report Builder écrit ses fichiers intermédiaires (ASCII) avec le suffixe .RDV avant de les archiver. (Pour tout détail, reportez-vous à A propos de la mise en oeuvre de PVCS  Vérifiez que vous sélectionnez bien un fichier .RDV dans le répertoire d'archives, et non le répertoire de travail. Pour éviter cette confusion, vous pouvez :

•	Définir l'option du projet PVCS de suppression des fichiers de travail après l'archivage. Dans ce cas, les fichiers .RDV intermédiaires d'état ne resteront pas sur votre disque.

•	Modifier la règle relative aux suffixes pour que les fichiers .RDV archivés aient un suffixe différent, par exemple .VRD, ce qui évitera les confusions entre les fichiers .VRD et les fichiers .RDV lors de l'extraction.

•	Configurer votre projet de manière à ignorer les chemins d'accès au fichier de travail lorsque vous explorez les archives, ce qui permet d'indiquer le fichier de travail (dans ce cas, le fichier .RDF) et non le fichier d'archive, lors de l'extraction.

Ces options figurent dans l'interface utilisateur du gestionnaire de configuration PVCS, dans l'option de menu de configuration de projet.


Comment être certain d'utiliser le nom utilisateur approprié lorsque je verrouille un fichier ?

Lorsque je verrouille un fichier (ou que j'extrais un fichier verrouillé) l'ID utilisateur est défini à "UNKNOWN" pour que d'autres utilisateurs puissent archiver ou déverrouiller le fichier. Comment être certain que le nom utilisateur que j'utilise est correct ?

L'option de configuration de projet de PVCS "Login Source" de la section Réseau des options de configuration de projet de PVCS (dans l'interface du gestionnaire de versions de PVCS) évite ce type de problème, car elle permet de définir la façon dont PVCS détermine l'ID utilisateur en cours. Par exemple, avec un réseau NETWARE, vous pouvez demander à PVCS d'utiliser l'ID de connexion NETWARE en cours. Sous Windows NT, vous pouvez utiliser l'ID de connexion NT en choisissant la source de connexion "HOST". Pour plus de détails, consultez votre documentation PVCS.


Comment faire pour sélectionner les fichiers de travail à extraire ?

Y-a-t-il une procédure qui permette de sélectionner des fichiers de travail, et non des fichiers d'archives à extraire ?

Vous pouvez utiliser l'option de configuration de projet de PVCS "Ignore Workfile Path" de la section "Archive Searching" des options de configurations de projet de PVCS (dans l'interface du gestionnaire de versions de PVCS). Si vous activez cette option, vous pourrez sélectionner soit des fichiers de travail soit des fichiers d'archive dans les boîtes de dialogue Extraction et Contrôle de source : Options.


J'ai reçu un message indiquant que VCSDIR n'est pas autorisé dans le fichier de configuration de projet. Pourquoi ?

J'ai configuré mon projet maître de manière à désactiver le changement des répertoires d'archives. Dans l'interface du Gestionnaire de versions de PVCS, je ne peux pas changer les répertoires d'archives d'un sous-projet, ce qui est normal. Mais dans Oracle Developer c'est possible. Par la suite, à partir de l'interface du Gestionnaire de versions de PVCS, un message d'erreur m'a indiqué que VCSDIR n'était pas autorisé dans le fichier de configuration du projet. Que s'est-il passé ?

L'interface du Gestionnaire de versions de PVCS a recherché dans sa racine un fichier MASTER.CFG par défaut, et l'a probablement trouvé. C'est la raison pour laquelle il a généré l'erreur indiquée lorsque vous avez changé les répertoires d'archives. Pour rendre le fichier de configuration maître reconnaissable, vous devez configurer PVCS en utilisant la commande VCONFIG. Cette commande encode le nom de votre fichier de configuration maître dans les bibliothèques PVCS, et garantit que personne ne peut modifier accidentellement la liste des répertoires d'archives. Reportez-vous aux sections "Master Configuration File" et "VCONFIG Command" dans PVCS Command-Line Reference Guide INTERSOLV.


• 9


A propos de l'assistant Bloc de données

  Etape suivante	  Rubriques connexes

A propos de l'assistant Bloc de données

L'assistant Bloc de données vous permet de créer ou de modifier rapidement et facilement des blocs de données afin de les utiliser dans votre application. Il peut générer automatiquement un code destiné à imposer des contraintes d'intégrité à la base de données et modifier différentes propriétés et options, ce qui vous permet d'accorder plus de temps aux autres aspects du développement de votre application.

Utilisez l'assistant Bloc de données pour effectuer les tâches suivantes :

•	créer ou modifier un bloc de données à partir d'une vue ou d'une table de base de données, ou d'un ensemble de procédures stockées (options avancées) ;

•	établir la correspondance entre les colonnes de résultats de procédure stockée, de table ou de vue, et les éléments du bloc de données ;

•	indiquer des arguments pour les procédures d'interrogation, d'insertion, de mise à jour, de suppression et de verrouillage de données du bloc de données (obligatoire uniquement si vous fondez le bloc de données sur des procédures stockées) ;

•	établir des relations maître-détail entre les blocs de données d'un module Application Forms.

Assistant Bloc de données en mode invariant

L'une des principales qualités de l'assistant Bloc de données est sa possibilité de fonctionner en mode invariant, ce qui signifie que vous pouvez l'utiliser pour modifier un bloc de données existant - même si ce dernier n'a pas été, à l'origine, créé à l'aide de l'assistant.

Pour appeler l'assistant Bloc de données en mode invariant, sélectionnez le bloc de données existant dans le Navigateur d'objet (ou sélectionnez un élément du bloc dans le Navigateur d'objet ou l'Editeur de présentation), puis choisissez Outils [image] Assistant Bloc de données sur le menu.

Navigation dans l'assistant Bloc de données

L'Assistant Bloc de données comporte six boutons qui vous permettent de naviguer dans ses différentes pages :

•	Annuler—annule toutes les modifications que vous avez effectuées et vous fait sortir de l'assistant.

•	Aide—affiche le texte d'aide en ligne de la page en cours de l'assistant.

•	Précédent—vous fait revenir à la page précédente de l'assistant.

•	Suivant—vous fait passer à la page suivante de l'assistant.

•	Appliquer—applique vos modifications sans sortir de l'assistant (en mode invariant uniquement).

•	Fin—enregistre vos modifications et vous fait sortir de l'assistant.

Remarque : Si vous cliquez sur Suivant ou Précédent avant d'avoir entré toutes les informations nécessaires pour une page d'assistant, l'assistant vous empêche de passer à la page suivante (ou de revenir à la page précédente). De même, si vous n'avez pas entré toutes les informations nécessaires dans l'assistant lorsque vous cliquez sur Appliquer ou Fin, l'assistant vous fait automatiquement passer à la page dans laquelle vous pouvez finir d'entrer les données nécessaires.


Assistant Bloc de données : page Type

  Etape suivante 	  A propos de l'assistant.

Pour sélectionner un type de source de données :

1	Sur la page Type, cliquez sur un bouton d'option pour indiquer un type : Table, Vue ou Procédure stockée.

Si vous sélectionnez :

•	Table ou Vue, vous devez ensuite sélectionner la table ou la vue de la base de données, puis établir la correspondance entre les colonnes de la table ou de la vue et les éléments du bloc de données.

•	Procédure stockée, vous devez ensuite sélectionner des procédures stockées pour interroger, insérer, mettre à jour, supprimer et verrouiller des données du bloc de données.

2	Pour sélectionner une source de données, cliquez sur Suivant pour afficher la page suivante de l'assistant (Table ou Interrogation, selon le type de source de données que vous avez sélectionné).


Assistant Bloc de données : page Table

  Etape suivante 	  A propos de l'assistant

Première étape : sélection d'une table ou d'une vue comme source de données :

1	Sur la page Table, dans le champ Table ou vue, entrez le nom de la table ou de la vue et cliquez sur Régénérer.

Si vous voulez sélectionner une table ou une vue dans la liste des tables et des vues disponibles, dans votre schéma de base de données (ou tous les schémas disponibles), cliquez sur Parcourir.

Si vous n'êtes pas connecté à une base de données, l'assistant affiche la boîte de dialogue Connexion.

2	Si vous voulez que l'assistant impose automatiquement les contraintes d'intégrité définies dans la base de données, cochez la case Imposer l'intégrité des données.

Deuxième étape : sélection de colonnes

Pour établir une correspondance entre une ou plusieurs colonnes de la table ou de la vue et un élément de base de données dans le bloc de données, sélectionnez la ou les colonnes, puis :

•	cliquez sur  [image]  pour faire passer la ou les colonnes sélectionnées de la liste Colonnes disponibles dans la liste Eléments base de données (pour déplacer toutes les colonnes disponibles, cliquez sur  [image]  ).

ou

•	faites glisser et déposez la ou les colonnes de la liste Colonnes disponibles dans la liste Eléments base de données.

Lorsque vous transférez une colonne de la liste Colonnes disponibles dans la liste Eléments base de données :

•	si l'élément n'existe pas encore dans le bloc de données, l'assistant crée un nouvel élément et définit sa propriété Elément base de données à Oui;

•	si l'élément existe déjà dans le bloc de données, l'assistant définit automatiquement sa propriété Elément base de données à Oui.

Conseil : Vérifiez l'établissement de la correspondance entre la ou les colonnes de clés primaires et la ou les autres colonnes obligatoires de la table ou de la vue et le ou les éléments du bloc de données.

Désélection d'une colonne

Pour faire sortir une ou plusieurs colonnes du bloc de données, sélectionnez la ou les colonnes et :

• Cliquez sur [image] ou [image].

ou

• faites glisser et déposez la ou les colonnes dans la liste Eléments base de données.

Lorsque vous transférez une colonne de la liste Eléments base de données dans la liste Colonnes disponibles :

• si l'élément n'existe pas encore dans le bloc de données, aucun élément fondé sur la colonne n'apparaît dans le bloc de données.

• si l'élément existe déjà dans le bloc de données, il reste dans le bloc de données, mais l'assistant définit automatiquement sa propriété Elément base de données à Non.

A propos de la sélection de tables d'objets et d'objets colonne

Si la table sélectionnée est une table d'objet définie par l'utilisateur ou une table relationnelle contenant un objet colonne, elle apparaît dans la fenêtre Colonnes disponibles avec l'objet développé. Un format en relief avec retrait (semblable à celui utilisé par le Navigateur d'objet) est utilisé pour montrer les éléments qui composent ces objets.

Forms Developer traite chaque composant d'une table d'objet en tant que colonne distincte, et permet de sélectionner ces colonnes une par une. Il n'est pas nécessaire de traiter la table en tant qu'objet unique et homogène. De même, un objet colonne d'une table relationnelle est divisé en différents éléments, chacun de ces composants étant traité en tant que colonne distincte et sélectionnable individuellement.

Exemples de tables d'objets

Supposons que vous ayez défini le type d'objet suivant, ainsi qu'une table basée sur ce type :

    CREATE TYPE addr_type AS OBJECT

                (street VARCHAR2(90),

                 city VARCHAR2(30),

                 area VARCHAR2(2));

    CREATE TABLE address OF addr_type;

L'assistant Bloc de données affiche toutes les colonnes (street, city et area) de cette table d'objet (address) dans la zone Colonnes disponibles et permet de sélectionner une de ces colonnes ou toutes les colonnes en tant qu'éléments du bloc de données.

Deuxième exemple : considérons une table basée sur une définition d'objet se référant elle-même à une autre définition d'objet :

     CREATE TYPE addr_type AS OBJECT
                 (street VARCHAR2(90),

                  city VARCHAR2(30),

                  area VARCHAR2(2));

     CREATE TYPE emp_type AS OBJECT

                 (empno NUMBER,

                  ename VARCHAR(80),

                  address addr_type,

                  salary NUMBER);

     CREATE TABLE emp_table of emp_type;

Le type d'objet emp_type est composé de quatre attributs, dont l'un (address) est basé sur une autre définition, celle du type d'objet addr_type. Addr_type définit à lui seul les trois autres attributs. Par conséquent, lorsque vous créez une table basée sur le type emp_type, vous obtenez une table composée de six colonnes (empno, ename, street, city, area et salary). Là encore, l'assistant Bloc de données affiche les six colonnes, ainsi qu'une colonne ou la totalité des colonnes sélectionnables.

Exemple d'objet colonne

Considérons une table relationnelle contenant un objet colonne basé sur le type d'objet addr_type précédemment cité :

      CREATE TABLE customer (custname CHAR(20), custaddr addr_type);

Dans la zone Colonnes disponibles, l'assistant Bloc de données affiche ce qui suit pour la table client :

      custname

      custaddr

         - street

         - city

         - area

Là encore, l'une des colonnes custname, street, city et area ou l'intégralité de ces colonnes sont sélectionnables. Notez que custaddr apparaît également en tant que nom de l'objet colonne contenant street, city et area. Sélectionner custaddr revient à sélectionner tous ses composants, mais pas custaddr lui-même. Le nom d'un objet colonne n'est qu'un libellé, et ne peut pas être déplacé vers la zone Eléments base de données (dans le bloc de données).

Noms d'éléments des objets sélectionnés

Après avoir sélectionné une partie d'un objet colonne disponible afin d'en faire un élément de données du bloc, le nom par défaut de l'élément prend la forme ColumnObjectName_AttributeName. Par exemple, dans l'exemple de la table client précédemment cité, si vous avez sélectionné city, cette colonne apparaît dans la zone Eléments base de données sous le nom custaddr_city. Utilisez ce nom pour l'élément chaque fois que vous effectuez un codage dans votre application. (Le format du nom de la propriété du nom de colonne de l'élément est sensiblement différent ; il utilise un point comme connecteur, au lieu d'un caractère de soulignement.)

A propos de la sélection des colonnes REF

Les objets colonne contiennent généralement des données. Cependant, les colonnes REF représentent un type particulier de colonne objet : au lieu de contenir des données, elles contiennent des pointeurs vers les données résidant dans d'autres tables d'objet.

Apparence des REF dans la zone Colonnes disponibles

Les REF apparaissent sous leur forme développée et répertorient les attributs d'objet vers lesquels elles pointent. Par exemple, si vous avez défini dept_type comme type d'objet possédant trois attributs (deptnum, deptname et deptloc) et que vous ayez ensuite défini une table possédant une colonne REF appelée deptref avec le type ref(dept_type), les valeurs de la colonne deptref pointent vers les lignes d'une table dont les attributs sont deptnum, deptname et deptloc. Dans la zone Colonnes disponibles, vous trouverez les colonnes suivantes :

      R deptref

      + deptref

            - deptnum

            - deptname

            - deptloc

Notez que la colonne REF (deptref, dans le cas présent) apparaît deux fois. La première représente la REF en tant que pointeur. La seconde est un libellé pour les composants (colonnes d'attribut) de l'objet sur lequel vous pointez. Cette double liste permet d'effectuer des types de choix différents, comme cela est expliqué ci-dessous. En fait, votre choix définit l'emplacement des données pendant l'exécution (dans le bloc qui pointe ou dans le bloc indiqué par le pointeur).

Comment effectuer une sélection REF

De même qu'avec un objet colonne normal, vous pouvez sélectionner l'une des colonnes d'attribut d'une REF ou toutes ces colonnes. Sélectionner la seconde instance du nom de la REF revient à sélectionner tous ses composants.

Lorsque vous sélectionnez une ou plusieurs colonnes d'attribut de la REF, celles-ci apparaissent sous forme de données ou d'éléments normaux dans le bloc de données au moment de l'exécution. Forms Developer et Oracle8 obtiennent les valeurs des données à partir de la table référencée et affichent ces valeurs dans ce bloc. (Cette technique est parfois appelée technique de consultation.) Pour l'utilisateur, les éléments des données de la REF paraissent identiques aux éléments de données normaux.

Vous pouvez également sélectionner la REF elle-même (la première entrée de la zone Colonnes disponibles) afin de la rendre programmable dans votre application (par opposition aux objets colonne normaux, où le nom n'est qu'une étiquette). La sélection de la REF permet au bloc de données de devenir un bloc détail dans une relation maître-détail basée sur la REF.

Lorsque vous sélectionnez la REF en tant qu'élément, elle est placée par défaut sur le canevas Null. Bien que l'utilisateur ne puisse pas voir l'élément REF sur le canevas au moment de l'exécution, cet élément est disponible dans l'application afin d'être codé.


Assistant Bloc de données : création d'une liste de valeurs (LOV) pour une REF

  Etape suivante 	  A propos de l'assistant

Si les utilisateurs du bloc de données prévoient de modifier les valeurs d'un champ de consultation de REF, ils doivent être en mesure d'accéder à une LOV (liste de valeurs), dans laquelle ils peuvent choisir la nouvelle valeur appropriée.

L'assistant Bloc de données affiche cette fenêtre, qui vous propose une méthode simple pour créer la LOV.

Etapes de la création d'une LOV

Tout d'abord, sélectionnez la REF de votre choix. (S'il n'existe qu'une REF dans ce bloc, il n'en apparaît qu'une dans cette fenêtre.)

L'assistant répertorie toutes les tables associées à la REF de votre choix dans la base de données. (Souvenez-vous que les REF sont définies sur des types d'objet, et non sur des tables particulières ; par conséquent, une REF peut éventuellement pointer vers plusieurs tables.)

Dans cette liste de tables, sélectionnez la table qui vous intéresse. L'assistant génère la LOV à partir des valeurs contenues dans cette table.

La même LOV est attachée à tous les éléments de consultation associés à une REF.

Modification de la LOV

L'assistant Bloc de données ne fait que créer une LOV initiale à votre place. Il ne la tient pas à jour.

Si par la suite vous apportez des modifications à la REF ou à d'autres structures de données qui peuvent avoir des conséquences sur la LOV, utilisez l'assistant LOV pour procéder aux modifications associées requises dans la LOV.

Vous pouvez également utiliser l'assistant LOV pour ajuster le format de cette LOV initiale.

Utilisation de l'assistant en mode invariant

Si par la suite vous utilisez l'assistant Bloc de données en mode invariant pour ce bloc et que vous cochiez la case de création d'une LOV, une nouvelle LOV est créée. (L'ancienne LOV n'est pas supprimée, mais les éléments de consultation sont attachés à la nouvelle LOV.)


Assistant Bloc de données : sélection d'une procédure stockée

  Etape suivante 	  A propos de l'assistant

Pour sélectionner une procédure stockée comme source de données de votre bloc de données, vous devez indiquer une procédure particulière pour l'interrogation des enregistrements du bloc de données. Vous pouvez également indiquer des procédures d'insertion, de mise à jour, d'impression et de verrouillage d'enregistrements. L'assistant Bloc de données comporte une page pour chacune des fonctions ci-dessus.

Remarques :

La sélection d'une procédure stockée comme source de données pour votre bloc de données est une technique avancée. Ne l'utilisez que si vous connaissez bien la programmation PL/SQL Oracle.

Dans la version 6.0, une application Forms ne prend en charge que les procédures stockées qui utilisent et retournent les valeurs scalaires relationnelles. Elle ne prend plus en charge celles qui utilisent et retournent des valeurs d'objet.


Assistant Bloc de données : page Interrogation

  Etape suivante 	  A propos de l'assistant

Pour sélectionner une procédure QUERY :

1	Dans la page Interrogation, dans le champ Procédure, entrez le nom de la procédure qui extraira les informations du bloc de données.

2	Cliquez sur Régénérer.

Si vous n'êtes pas connecté à une base de données, l'assistant affiche la boîte de dialogue Connexion.

Pour établir la connexion entre une colonne de la procédure stockée et un élément de base de données dans le bloc de données, :

1	Sélectionnez la colonne.

2	Faites glisser la colonne et déposez-la ou cliquez sur  [image]  pour faire passer la ou les  colonnes sélectionnées de la liste Colonnes disponibles à la liste Eléments base de données.

3	Lorsque vous déplacez une colonne de la liste Colonnes disponibles dans la liste Eléments base de données :

•	si l'élément n'existe pas encore dans le bloc de données, l'assistant crée un nouvel élément et définit sa propriété Elément base de données à Oui ;

•	si l'élément existe déjà dans le bloc de données, l'assistant définit automatiquement sa propriété Elément base de données à Oui.

4	Pour déplacer toutes les colonnes disponibles, cliquez sur  [image] .

Conseil : Vérifiez l'établissement de la correspondance entre toutes les colonnes de clés primaires et les autres colonnes obligatoires de la procédure stockée et les éléments du bloc de données.

Pour faire sortir une colonne du bloc de données :

1	Sélectionnez la colonne.

2	Faites glisser la colonne et déposez-la dans la liste Eléments base de données ou cliquez sur [image] ou sur [image].

3	Lorsque vous transférez une colonne de la liste Eléments base de données dans la liste Colonnes disponibles :

•	si l'élément n'existe pas encore dans le bloc de données, aucun élément fondé sur la colonne n'apparaît dans le bloc de données ;

•	si l'élément existe déjà dans le bloc de données, il reste dans le bloc de données, mais l'assistant définit automatiquement sa propriété Elément base de données à Non.

Pour indiquer la valeur d'un argument :

•	 Entrez-la dans le champ Valeur.


Assistant Bloc de données : page Insérer

  Etape suivante 	  A propos de l'assistant

Pour sélectionner une procédure INSERT :

1	Dans la page Insérer, dans le champ Procédure, entrez le nom de la procédure qui insérera des informations pour le bloc de données, puis cliquez sur Régénérer.

2	Pour indiquer la valeur d'un argument, entrez-la dans le champ Valeur.


Assistant Bloc de données : page Mettre à jour

  Etape suivante 	  A propos de l'assistant

Pour sélectionner une procédure UPDATE :

1	Dans la page Mettre à jour, dans le champ Procédure, entrez le nom de la procédure qui mettra à jour les informations de bloc de données, puis cliquez sur Régénérer.

2	Pour indiquer la valeur d'un argument, entrez-la dans le champ Valeur.


Assistant Bloc de données : page Supprimer

  Etape suivante 	  A propos de l'assistant

Pour sélectionner une procédure DELETE :

1	Dans la page Supprimer, dans le champ Procédure, entrez le nom de la procédure qui supprimera les informations de bloc de données, puis cliquez sur Régénérer.

2	Pour indiquer la valeur d'un argument, entrez-la dans le champ Valeur.


Assistant Bloc de données : page Verrouiller

  Etape suivante 	  A propos de l'assistant

Pour sélectionner une procédure LOCK :

1	Dans la page Verrouiller, dans le champ Procédure, entrez le nom de la procédure qui verrouillera les données du bloc, puis cliquez sur Régénérer.

2	Pour indiquer la valeur d'un argument, entrez-la dans le champ Valeur.


Assistant Bloc de données : page Maître-détail

  Etape suivante 	  A propos de l'assistant

Cette page apparaît lorsque votre application Forms contient déjà un ou plusieurs blocs de données terminés. L'assistant vous permet de définir une relation maître-détail entre le bloc sur lequel vous travaillez et un autre bloc. (L'assistant suppose que le bloc sur lequel vous travaillez est le bloc détail, les blocs déjà créés étant éventuellement des blocs maître.)

Le lien logique entre les blocs de données peut être une condition de jointure (relation clé primaire/clé étrangère) ou un lien de pointeur REF.

Si vous ne disposez que d'un candidat pour le bloc maître et d'un lien logique possible, votre création maître-détail est simple. Si vous disposez de plusieurs candidats et/ou de plusieurs liens logiques, l'assistant les répertorie ; vous pouvez ensuite choisir le bloc maître et le lien qui vous intéresse.

L'assistant vous permet également de décider si vous voulez générer vous-même la condition de liaison ou si vous préférez que l'assistant le fasse à votre place.

Pour créer une relation maître-détail :

Choisissez d'abord un paramètre pour la case Relier automatiquement des blocs. Lorsque cette case est cochée, l'assistant génère la condition de liaison à votre place. Dans la plupart des cas, cette approche est la plus simple.

Avec la mise en relation automatique sélectionnée :

1	Dans la page Maître-détail, cliquez sur Créer une relation.

(Si vous n'êtes pas connecté à une base de données, l'assistant affiche la boîte de dialogue Connexion. Connectez-vous à la base de données de votre choix.)

Lorsque vous cliquez sur Créer une relation, l'assistant interroge la base de données et affiche (dans la boîte de dialogue Blocs de données) tous les blocs de données de votre application Forms qui sont des blocs maître potentiels. Pour chacun de ces blocs maître potentiels, l'assistant affiche également le nom de la contrainte de clé étrangère associée au bloc et/ou les REF pointant vers elle.

S'il n'existe pas de bloc maître potentiel, l''assistant affiche le message d'erreur :
      FRM-10757: Aucun bloc de données maître disponible.

2	Dans la boîte de dialogue Blocs de données, sélectionnez un bloc de données maître et le lien de votre choix, puis cliquez sur OK

3	L'assistant interprète automatiquement la relation de clé étrangère ou le lien REF entre les tables des blocs de données, l'affiche dans le champ Condition de jointure et affiche le nom du bloc maître dans le champ Blocs de données maître. (Vous pouvez utiliser les listes instantanées Elément détail et Elément maître pour modifier la condition de jointure créée automatiquement, bien que normalement cela ne soit pas nécessaire).

Sans la mise en relation automatique :

1	Dans la page Maître-détail, cliquez sur Créer une relation.

(Si vous n'êtes pas connecté à une base de données, l'assistant affiche la boîte de dialogue Connexion. Connectez-vous à la base de données de votre choix.)

Lorsque vous cliquez sur Créer une relation, l'assistant interroge la base de données et affiche (dans la boîte de dialogue Blocs de données) tous les blocs de données de votre application Forms qui sont des blocs maître potentiels. L'assistant n'affiche pas d'informations sur les clés étrangères ni sur les pointeurs REF.

2	Dans la boîte de dialogue Blocs de données, sélectionnez un bloc de données maître-détail, puis cliquez sur OK.  L'assistant affiche le nom du bloc maître dans le champ Blocs de données maître.

3	Utilisez les listes instantanées Elément détail et Elément maître pour générer une condition manuellement.

Résultats

Une fois que vous avez indiqué le bloc de données maître et la condition de jointure (REF), l'assistant effectue les opérations suivantes :

•	affiche le nouvel objet relation sous le noeud du bloc de données maître dans le Navigateur d'objet ;

•	définit les propriétés du nouvel objet relation aux valeurs par défaut ;

•	si la relation est basée sur un pointeur REF, définit la propriété Inclure l'élément REF dans le bloc maître à Oui, et définit la propriété Copy_Value_From_Item dans le bloc détail pour accéder à cet élément REF.

•	donne à la relation un nom par défaut, de la forme :

      BlocDonnéesMaître_BlocDonnéesDétail

Pour supprimer une relation maître-détail:

Dans la page Maître-détail, sélectionnez le bloc maître de la liste, puis cliquez sur Supprimer la relation. L'Assistant supprime la relation et les déclencheurs associés.


Assistant Bloc de données : page Fin

  A propos de l'assistant 	  Rubriques connexes

Etape suivante

Lorsque vous avez fini de créer le bloc de données, vous avez le choix entre :

•	sortir de l'assistant Bloc de Données et appeler immédiatement l'assistant Présentation (dans lequel vous pouvez disposer les éléments du bloc de données dans un cadre sur un canevas) ;

•	quitter l'assistant Bloc de données.

Si vous choisissez d'appeler l'assistant Présentation, ce dernier vous guidera au cours des différentes étapes : sélection d'un canevas sur lequel afficher vos éléments de bloc de données, indication des éléments à afficher dans la présentation, sélection des invites et de la largeur/hauteur des éléments, création d'un cadre (avec indication de son style et de son titre) dans lequel afficher des éléments et choix du nombre d'enregistrements à afficher dans le cadre et de la distance entre les enregistrements. Il est vivement conseillé d'utiliser l'assistant Présentation pour disposer les éléments de votre bloc de données, car il automatise toutes les tâches nécessaires à la création de la présentation de base.

Si vous décidez de quitter l'assistant Bloc de données sans appeler l'assistant Présentation, vous avez le choix entre :

•	disposer manuellement les éléments du bloc de données ;

•	appeler ultérieurement l'assistant Présentation.

Pour disposer manuellement les éléments de votre bloc de données, vous devez créer un canevas, y créer des cadres (option facultative), placer les éléments dans les cadres ou simplement sur le canevas, puis disposer tous les éléments sur le cadre ou le canevas.

Pour appeler l'assistant Présentation ultérieurement, sélectionnez le cadre du bloc de données dans le Navigateur d'objets (sous le noeud Canevas) ou l'Editeur de présentation, puis choisissez Outils [image] Assistant Présentation dans le menu.


DDE (échange dynamique de données)

Le présent chapitre est consacré à l'échange dynamique de données (DDE) de Form Builder. Les sujets traités sont les suivants :

•	A propos de DDE  14 - 584

•	Limites  14 - 584

•	Généralités sur les fonctions   14 - 585

•	Description des fonctions   14 - 586

•	Formats de données prédéfinis de Microsoft Windows  14 - 597

•	Exceptions   14 - 598


A propos de DDE

Form Builder pour Microsoft Windows supporte l'échange dynamique de données (DDE). Ce mécanisme permet de communiquer et d'échanger des données entre applications. Le support client DDE est une extension procédurale de Form Builder pour Microsoft Windows. Un package PL/SQL pour support DDE offre aux développeurs d'applications une interface API (interface de programmation d'applications) permettant d'accéder aux fonctions DDE à partir des procédures et des déclencheurs PL/SQL.

Les fonctions DDE permettent à Form Builder, qui est une application client DDE, de communiquer avec des applications serveur DDE de plusieurs façons :

•	par import de données

•	par export de données

•	par exécution de commandes sur le serveur DDE


Limites de DDE dans Form Builder

Form Builder ne comporte pas les fonctionnalités suivantes :

•	Liaison de données (avis de transaction)

Form Builder ne peut pas recevoir automatiquement un avis de mise à jour lorsqu'un élément de données a été modifié.

•	Support serveur

Form Builder ne peut pas répondre aux commandes ou aux demandes de données provenant d'un client DDE ; il doit déclencher la conversation DDE via DDE.APP_BEGIN (bien que le transfert des données dans les deux sens soit toujours possible).


Généralités sur les fonctions DDE

Les fonctions DDE, qui font partie du package DDE et qui peuvent être appelées à partir des procédures et des déclencheurs PL/SQL, peuvent être regroupées en plusieurs catégories :

•	Fonctions de support

•	Fonctions de connexion/déconnexion

•	Fonctions de transaction

•	Fonctions de traduction de types de données

Fonctions de support

Ces fonctions sont utilisées pour lancer et arrêter d'autres applications serveur DDE.

DDE.APP_BEGIN	Lance une application serveur DDE.
DDE.APP_END	Arrête une application serveur DDE.
DDE.APP_FOCUS	Insère une application serveur DDE.
Fonctions de connexion/déconnexion

Ces fonctions sont utilisées pour établir une connexion avec une application serveur DDE et l'interrompre.

DDE.INITIATE	Lance une conversation DDE avec une application serveur DDE.
DDE.TERMINATE	Arrête une conversation DDE avec une application serveur DDE.
Fonctions de transaction

Ces fonctions sont utilisées pour échanger des données avec les applications serveur DDE.

DDE.EXECUTE	Exécute une commande reconnue par une application serveur DDE.
DDE.POKE	Fournit des informations à une application serveur DDE.
DDE.REQUEST	Demande des informations à une application serveur DDE.
Fonctions de traduction de types de données

Ces fonctions sont utilisées pour traduire des constantes de type de données DDE en chaîne et inversement. En outre, DDE.GETFORMATNUM permet aux utilisateurs d'enregistrer un nouveau format de données qui n'est pas prédéfini par Microsoft Windows. Notez que ces fonctions ne traduisent pas les données elles-mêmes (dans PL/SQL, toutes les données DDE sont représentées par le type de données CHAR), mais uniquement les constantes de type de données.

DDE.GETFORMATNUM	Convertit un format de données nombre en chaîne et l'enregistre.
DDE.GETFORMATSTR	Convertit un format de données nombre en chaîne.


DDE.APP_BEGIN

 Exemples

Description

Permet de lancer une conversation avec une application serveur DDE.

Syntaxe

DDE.APP_BEGIN (commande, mode)

Paramètres

Paramètre	Type	Description
Commande	VARCHAR2	Ligne de commande d'exécution d'un programme
Mode	PLS_INTEGER	Mode d'ouverture de fenêtre d'application
Retourne PLS_INTEGER

Remarques

Dans la chaîne Commande, le nom du programme d'application serveur DDE peut inclure un chemin d'accès. S'il n'en comporte pas, Form Builder explore les répertoires suivants :

•	le répertoire courant

•	le répertoire Windows

•	le répertoire système Windows

•	le répertoire contenant le fichier exécutable de la tâche en cours

•	les répertoires énumérés dans la variable d'environnement PATH

•	les répertoires mis en correspondance dans un réseau

Le nom du programme d'application serveur DDE peut être suivi d'arguments qui doivent être séparés du nom du programme d'application par un espace.

Lancez l'application serveur DDE en taille normale, réduite ou maximum en utilisant le paramètre mode. Les constantes de mode d'application de DDE.APP_BEGIN sont les suivantes :

Mode	Description
DDE.APP_MODE_NORMAL	Ouverture de la fenêtre d'application en taille normale.
DDE.APP_MODE_MINIMIZED	Ouverture de la fenêtre d'application en taille réduite.
DDE.APP_MODE_MAXIMIZED	Ouverture de la fenêtre d'application en taille maximum.
Cette fonction retourne l'identificateur d'application PLS_INTEGER. Cet identificateur est utilisé dans tous les appels ultérieurs à DDE.APP_END et à DDE.APP_FOCUS pour cette fenêtre d'application.


DDE.APP_BEGIN - Exemple

DECLARE
IDApp   PLS_INTEGER;
BEGIN
/* Lancer Microsoft Excel avec la feuille de calcul emp.xls chargée. */
IDApp := DDE.App_Begin('C:\excel\excel.exe C:\emp.xls',
 DDE.APP_MODE_MINIMIZED);
END;


DDE.APP_END

 Exemples  [image] Restrictions

Description

Permet de mettre fin à un programme d'application serveur DDE lancé par DDE_APP_BEGIN.

Syntaxe

DDE.APP_END (IDApp)

Paramètres

Paramètre	Type	Description
IDApp	PLS_INTEGER	Identificateur d'application retourné par DDE.APP_BEGIN
Remarques

L'application serveur DDE peut également être arrêtée selon les procédures Microsoft Windows standard, par exemple en cliquant deux fois sur la case du menu système.


DDE.APP_END - Restrictions

Pour pouvoir mettre fin à une application serveur DDE, il faut que l'application serveur DDE ait été préalablement lancée par appel de DDE.APP_BEGIN.


DDE.APP_END - Exemple

DECLARE
IDApp  PLS_INTEGER:
BEGIN
/* Lancer Microsoft Excel avec la feuille de calcul emp.xls chargée. */
IDApp := DDE.App_Begin('C:\excel\excel.exe C:\emp.xls'
DDE.APP_MODE_NORMAL);
...
/* Fin du programme Microsoft Excel. */
DDE.App_End(IDApp);
END;


DDE.APP_FOCUS

 Exemples   [image] Restrictions

Description

Permet d'activer un programme d'application serveur DDE lancé par DDE.APP_BEGIN.

Syntaxe

DDE.APP_FOCUS (IDApp)

Paramètres

Paramètre	Type	Description
IDApp	PLS_INTEGER	Identificateur d'application retourné par DDE.APP_BEGIN
Remarques

L'application serveur DDE peut également être lancée selon les procédures Microsoft Windows standard, par exemple en cliquant dans la fenêtre de l'application.


DDE.APP_FOCUS - Restrictions

Pour pouvoir activer une application serveur DDE, il faut que cette application ait été préalablement lancée par appel de DDE.APP_BEGIN.


DDE.APP_FOCUS - Exemple

DECLARE
IDApp   PLS_INTEGER;
BEGIN
/* Lancer l'application Microsoft Excel en mode plein écran. */
IDApp := DDE.App_Begin('C:\excel\excel.exe,
DDE.APP_MODE_MAXIMIZED);
/* Activer la fenêtre d'application. */
DDE.App_Focus(IDApp);
END;


DDE.EXECUTE

 Exemples

Description

Permet d'exécuter une chaîne de commandes acceptable dans l'application serveur DDE cible.

Syntaxe

DDE.EXECUTE (ID_conv, Commande, Délai_attente)

Paramètres

Paramètre	Type	Description
ID_conv	PLS_INTEGER	Id de conversation DDE
Commande	VARCHAR2	Chaîne de commandes que le serveur doit exécuter
Délai_attente	PLS_INTEGER	Durée du délai d'attente, en millisecondes
Remarques

La valeur de Commande dépend des valeurs prises en charge par l'application serveur.

Délai_attente indique, en millisecondes, le temps pendant lequel cette routine attend une réponse de l'application serveur DDE. Si l'utilisateur indique une valeur non valide (un nombre négatif, par exemple), Form Builder utilise par défaut la valeur 1000 ms. Le délai d'attente dépend de la configuration machine et de l'application serveur DDE.


DDE.EXECUTE - Exemple

DECLARE
ID_conv   PLS_INTEGER;
BEGIN
/* Engager une conversation DDE avec Microsoft Excel pour Windows */
ID_conv := DDE.Initiate('EXCEL', 'C:\abc.xls');
/* Recalculer la feuille de calcul Excel.*/
DDE.Execute(ID_conv, '[calculer.maintenant()]', 1000);
END;


DDE.GETFORMATNUM

 Exemples

Description

Permet de traduire ou d'enregistrer un nom de format de données indiqué et de retourner un format nombre.

Syntaxe

DDE.GETFORMATNUM (ChaîneFormat)

Paramètres

Paramètre	Type	Description
ChaîneFormat	VARCHAR2	Chaîne de noms de format de données

Retourne PLS_INTEGER

Remarques

Cette fonction convertit un format de données de type chaîne en nombre. Ce nombre peut être utilisé dans des transactions Poke et Request pour représenter le paramètre Format_données.

Si le nom indiqué n'est pas enregistré, cette fonction l'enregistre et retourne un nombre de format unique. C'est la seule façon d'utiliser dans une transaction Poke ou Request un format qui n'est pas prédéfini.

Cette fonction retourne la représentation numérique de la chaîne de formats de données qui est de type PLS_INTEGER.

Reportez-vous à Formats de données prédéfinis Microsoft Windows pour connaître les constantes de format de données prédéfinies.


DDE.GETFORMATNUM - Exemple

DECLARE
FormatNbre   PLS_INTEGER;
MonFormatNbre PLS_INTEGER;
BEGIN
/* Extraire le format nombre prédéfini pour "CF_TEXTE"
(doit retourner CF_TEXTE=1). */
FormatNbre := DDE.GetFormatNum('CF_TEXT');
/* Enregistrer un format de données défini par l'utilisateur appelé "MON_FORMAT". */
MonFormatNbre := DDE.GetFormatNum('MON_FORMAT');
END;


DDE.GETFORMATSTR

 Exemples

Description

Permet de traduire un format de données nombre en format de données CHAR.

Syntaxe

DDE.GETFORMATSTR (FormatNbre)

Paramètres

Paramètre	Type	Description
FormatNbre	PLS_INTEGER	Format de données nombre

Retourne CHAR

Remarques

Cette fonction retourne la représentation chaîne du format de données nombre qui est de type CHAR.

Cette fonction retourne un nom de format de données si le format de données nombre est valide. Les formats nombre valides comprennent les formats de données prédéfinis Microsoft Windows et les formats définis par l'utilisateur enregistrés par DDE.GETFORMATNUM.


DDE.GETFORMATSTR - Exemple

DECLARE
ChaîneFormat   CHAR(20);
BEGIN
/* Extraire un nom de format de données
(doit retourner la chaîne 'CF_TEXT') */
ChaîneFormat := DDE.GetFormatStr(CF_TEXT);
END;


DDE.INITIATE

 Exemples

Description

Permet d'engager une conversation DDE avec une application serveur DDE.

Syntaxe

DDE.INITIATE (Service, Rubrique)

Paramètres

Paramètre	Type	Description
Service	VARCHAR2	Code de service DDE d'application serveur DDE
Rubrique	VARCHAR2	Nom de rubrique de la conversation
La valeur de Service et de Rubrique dépend des valeurs prises en charge par une application serveur DDE donnée. Le programme d'application serveur DDE s'appelle généralement Service. Pour les applications qui utilisent des documents basés sur des fichiers, le nom de fichier document est généralement Rubrique ; en outre, la rubrique Système est généralement prise en charge par chaque service.

Retourne PLS_INTEGER

Remarques

Une application peut engager simultanément plusieurs conversations avec plusieurs services et plusieurs rubriques à condition que les identificateurs de conversation ne soient pas permutés.

Cette fonction retourne l'identificateur de conversation DDE de type PLS_INTEGER. Cet identificateur doit être utilisé dans tous les appels ultérieurs Execute, Poke, Request et Terminate concernant cette conversation.

Pour mettre fin à la conversation, utilisez DDE.TERMINATE.


DDE.INITIATE - Exemple

DECLARE
ID_conv   PLS_INTEGER;
BEGIN
/* Engager une conversation avec Microsoft Excel pour
Windows sur la rubrique abc.xls. */
ID_conv := DDE.Initiate('EXCEL', 'c:\abc.xls');
END;


DDE.POKE

 Exemples

Description

Permet d'envoyer des données à une application serveur DDE.

Syntaxe

DDE.POKE (ID_conv, Elément, Données, Format_données, Délai_attente)

Paramètres

Paramètre	Type	Description
ID_conv	PLS_INTEGER	Identificateur de conversion DDE retourné par DDE.INITIATE
Elément	VARCHAR2	Nom de l'élément de données auquel les données doivent être transmises
Données	VARCHAR2	Données à transmettre
Format_données	PLS_INTEGER	Format des données à transmettre
Délai_attente	PLS_INTEGER	Délai d'attente, exprimé en millisecondes
La valeur de Elément dépend des valeurs prises en charge par l'application serveur DDE pour la rubrique de la conversation en cours.

Les formats de données prédéfinis Microsoft Windows peuvent être utilisés pour Format_données. Vous pouvez également utiliser un format défini par l'utilisateur et préalablement enregistré par DDE.GETFORMATNUM, à condition que l'application serveur le reconnaisse. C'est vous qui devez vous assurer que l'application serveur DDE traite le format de données indiqué.

Délai_attente indique, en millisecondes, le temps maximal pendant lequel cette routine attendra une réponse de l'application serveur DDE. Si vous indiquez une valeur non valide (par exemple un nombre négatif), le système utilisera par défaut la valeur 1000 ms. La durée du délai d'attente dépend de la configuration de la machine et de l'application serveur DDE.


DDE.POKE - Exemple

DECLARE
ID_conv   PLS_INTEGER;
BEGIN
/* Engager une conversation DDE avec Microsoft Excel pour Windows sur
la rubrique abc.xls. */
ID_conv = DDE.Initiate('EXCEL', 'C:\abc.xls');
/* Envoyer les données "arc" à la cellule de la ligne 2, colonne 2. */
DDE.Poke(ID_conv, 'R2C2', 'arc', DDE.CF_TEXT, 1000);
END;


DDE.REQUEST

 Exemples

Description

Permet de demander des données à une application serveur DDE.

Syntaxe

DDE.REQUEST (ID_conv, Elément, Tampon, Format_données, Délai_attente)

Paramètres

Paramètre	Type	Description
ID_conv	PLS_INTEGER	Identificateur de conversion DDE retourné par DDE.INITIATE
Elément	VARCHAR2	Nom de l'élément de données demandé
Tampon	VARCHAR2	Tampon destiné à retourner les données demandées
Format_données	PLS_INTEGER	Format des données demandées
Délai_attente	PLS_INTEGER	Délai d'attente, exprimé en millisecondes
La valeur de Elément dépend des valeurs prises en charge par l'application serveur DDE sur la rubrique de la conversation en cours.

N'oubliez pas que le paramètre Tampon détermine la longueur de la chaîne retournée. C'est vous qui devez vous assurer que le tampon destiné à recevoir les données retournées est suffisamment grand pour les données demandées. S'il ne l'est pas, les données sont tronquées et cela peut provoquer une erreur.

Les formats de données prédéfinis Microsoft Windows peuvent être utilisés pour Format_données. Vous pouvez également utiliser un format défini par l'utilisateur et préalablement enregistré par DDE.GETFORMATNUM, à condition que l'application serveur DDE le reconnaisse. C'est vous qui devez vous assurer que l'application serveur DDE traite le format de données indiqué.

Délai_attente indique, en millisecondes, le temps maximal pendant lequel cette routine attendra une réponse de l'application serveur DDE. Si vous indiquez une valeur non valide (par exemple, un nombre négatif), le système utilise par défaut la valeur 1000 ms. Le délai d'attente dépend de la configuration de la machine et de l'application serveur DDE.


DDE.REQUEST - Exemple

DECLARE
ID_conv   PLS_INTEGER;
Tampon   CHAR(100);
BEGIN
/* Engager une conversation DDE avec Microsoft Excel pour
Windows sur la rubrique abc.xls. */
ID_conv := DDE.Initiate('EXCEL', 'C:\abc.xls');
/* Demander les données des 6 cellules se trouvant entre
la ligne 2, colonne 2 et la ligne 3, colonne 4. */
DDE.Request(ID_conv, 'R2C2:R3C4', Tampon, DDE.CF_TEXT,1000);
END;


DDE.TERMINATE

 Exemples   [image] Restrictions

Description

Permet de mettre fin à la conversation spécifiée avec une application serveur DDE.

Syntaxe

DDE.TERMINATE (ID_conv)

Paramètres

Paramètre	Type	Description
ID_conv	PLS_INTEGER	Identificateur de conversation DDE retourné par DDE.INITIATE
Remarques

Après l'appel de DDE.TERMINATE, tous les appels ultérieurs de Execute, Poke, Request et Terminate utilisant l'identificateur de conversation terminée généreront une erreur.


DDE.TERMINATE - Restrictions

Engagez la conversation au préalable avec une application serveur par DDE.INITIATE pour y mettre fin par DDE.TERMINATE.


DDE.TERMINATE - Exemple

DECLARE
ID_conv   PLS_INTEGER;
BEGIN
/* Engager une conversation DDE avec Microsoft Excel pour
Windows sur la rubrique abc.xls. */
ID_conv := DDE.Initiate('EXCEL', 'C:\abc.xls');
...
/* Mettre fin à la conversation avec Microsoft Excel pour Windows. */
DDE.Terminate(ID_conv);
END;


Formats de données prédéfinis Microsoft Windows

Format	Description
DDE.CF_BITMAP	Les données sont de type bitmap.
DDE.CF_DIB	Les données sont un objet mémoire contenant une structure BITMAPINFO suivie des données bitmap.
DDE.CF_DIF	Les données sont en format DIF (Data Interchange Format).
DDE.CF_DSPBITMAP	Les données sont une représentation bitmap d'un format privé. Elles sont affichées en format bitmap à la place des données en format privé.
DDE.CF_DSPMETAFILEPICT	Les données sont la représentation métafichier d'un format de données privé. Elles sont affichées en format image métafichier à la place des données en format privé.
DDE.CF_DSPTEXT	Les données sont la représentation texte d'un format de données privé. Elles sont affichées en format texte à la place des données en format privé.
DDE.CF_METAFILEPICT	Les données sont au format métafichier.
DDE.CF_OEMTEXT	Les données sont un tableau de caractères texte d'un jeu de caractères OEM. Chaque ligne se termine par une combinaison de retour de ligne-saut de page (CR-LF). Un caractère nul indique la fin des données.
DDE.CF_OWNERDISPLAY	Les données sont dans un format privé que le propriétaire du presse-papiers doit afficher.
DDE.CF_PALETTE	Les données sont une palette de couleurs.
DDE.CF_PENDATA	Les données concernent les extensions stylet du système d'exploitation Microsoft Windows.
DDE.CF RIFF	Les données sont en format RIFF (Resource Interchange File Format).
DDE.CF_SYLK	Les données sont en format Microsoft SYLK (Symbolic Link).
DDE.CF_TEXT	Les données sont un tableau de caractères texte. Chaque ligne se termine par une combinaison de retour de ligne-saut de page (CR-LF). Un caractère nul indique la fin des données.
DDE.CF_TIFF	Les données sont en format TIFF (Tag Image File Format).
DDE.CF_WAVE	Les données décrivent une onde sonore. Il s'agit d'un sous-ensemble du format de données CF_RIFF qui ne peut être utilisé que pour les fichiers RIFF WAVE.


Exceptions

Exception	Description
DDE.DDE_APP_FAILURE	Un programme d'application indiqué dans un appel DDE.APP_BEGIN n'a pas pu être lancé.
DDE.DDE_APP_NOT_FOUND	Un identificateur d'application indiqué dans un appel DDE.APP_END ou DDE.APP_FOCUS ne correspond pas à une application en cours d'exécution.
DDE.DDE_FMT_NOT_FOUND	Un format nombre indiqué dans un appel DDE.GETFORMATSTR est inconnu.
DDE.DDE_FMT_NOT_REG	Une chaîne de formats indiquée dans un appel DDE.GETFORMATNUM ne correspond pas à un format prédéfini et n'a pas pu être enregistrée en tant que format défini par l'utilisateur.
DDE.DDE_INIT_FAILED	L'application n'a pas pu initialiser les communications DDE, ce qui a provoqué l'échec de l'appel de la couche DDE.
DDE.DDE_PARAM_ERR	Un paramètre non valide, par exemple une valeur NULL, a été passé à une routine du package DDE.
DDE.DMLERR_BUSY	Une transaction a échoué parce que l'application serveur était occupée.
DDE.DMLERR_DATAACKTIMEOUT	Le temps alloué à une demande de transaction de données synchrone a été dépassé.
DDE.DMLERR_EXECACKTIMEOUT	Le temps alloué à une demande de transaction d'exécution synchrone a été dépassé.
DDE.DMLERR_INVALIDPARAMETER	La validation d'un paramètre a échoué. Certaines des causes possibles sont indiquées ci-dessous : L'application a utilisé un identificateur de données initialisé avec un identificateur de nom d'élément ou un format de données de presse-papiers différent de celui requis par la transaction. L'application a utilisé un identificateur de conversation non valide. Plusieurs instances de l'application ont utilisé le même objet.
DDE.DMLERR_MEMORY_ERROR	Une allocation de mémoire a échoué.
DDE.DMLERR_NO_CONV_ESTABLISHED	Un client a tenté sans succès d'établir une conversation. Le nom du service ou de la rubrique, dans un appel DDE.INITIATE, peut être erroné.
DDE.DMLERR_NOTPROCESSED	Une transaction a échoué. Le nom de l'élément, dans une transaction DDE.Poke ou Request peut être erroné.
DDE.DMLERR_POKEACKTIMEOUT	Le temps alloué à une demande de transaction DDE.Poke synchrone a été dépassé.
DDE.DMLERR_POSTMSG_FAILED	Un appel interne à la fonction PostMessage a échoué.
DDE.DMLERR_SERVER_DIED	Le serveur s'est arrêté avant la fin d'une transaction.
DDE.DMLERR_SYS_ERROR	Une erreur interne s'est produite dans la couche DDE.


A propos du processus de débogage

  Rubriques connexes

Le débogage d'une application est un processus itératif consistant à identifier et à corriger les erreurs. En règle générale, la réussite du débogage de vos applications dépend d'une identification et d'une localisation rapides des problèmes posés par le code.

Si ce code s'avère introuvable, exécutez l'application avec les messages de débogage. Dans ce cas, un message d'alerte est affiché lorsqu'il se produit un événement entraînant l'exécution d'un déclencheur.

Une fois l'emplacement identifié, utilisez le Débogueur afin de créer des actions de débogage (points d'interruption et déclencheurs de débogage) pour affiner votre recherche, et la localiser à une région ou à un nombre d'instructions spécifiques.

Après avoir localisé le code posant problème dans une zone, utilisez le Débogueur afin de corriger et de tester les modifications de code possibles.


Débogage d'une application Forms

Pour déboguer une application Forms :

1	Exécutez une application en mode débogage. Le Débogueur apparaît dans Form Builder.

Remarque : Vous devez d'abord fermer le Débogueur pour observer le comportement de votre application. Une fois la zone problématique identifiée, appelez le Débogueur.

2	Dans ce dernier, créez les actions de débogage de votre choix.

3	Fermez le Débogueur. Form Builder exécute l'application Forms.

4	Passez en revue les actions de débogage et prenez connaissance des informations relatives à cette application.

5	Dans le Débogueur, modifiez et testez les modifications de code possibles pour les codes d'exécution.

6	Mettez ces solutions en oeuvre via Form Builder.


A propos de l'exécution d'une application Forms en mode débogage

  Rubriques connexes

Lorsque vous exécutez votre application Forms en mode débogage, le Débogueur apparaît ; il vous permet de créer des actions de débogage, telles que des points d'interruption et des déclencheurs de débogage.

Une fois ces actions définies, cliquez sur Fermer dans la barre d'outils pour fermer le Débogueur et exécutez l'application Forms. Cette commande n'est requise qu'au démarrage du programme de débogage.

Une fois le Débogueur fermé, il devient actif à chaque interruption de l'exécution du programme, lorsqu'un point d'interruption se présente, ou lorsque vous choisissez Aide [image] Débogage dans le menu.

Pour exécuter une application Forms en mode débogage, vous devez d'abord activer l'option Mode débogage.

Remarque : Par défaut, lorsque vous procédez à l'exécution de cette application via Programme [image] Lancer application Forms [image] Débogage, Form Builder la compile, puis l'exécute. Si l'option Mode débogage est activée pendant la compilation, Form Builder crée un fichier .FMX ou .MMX contenant les symboles des codes source que vous pouvez afficher et modifier lors de l'exécution. L'accès au code source est essentiel pour déboguer l'application Forms.

Si vous ne procédez pas à la compilation via l'option Mode débogage, vous ne pouvez ni afficher ni modifier ce code au cours de l'exécution. N'oubliez pas que cette option est disponible tant pour le développement que pour la compilation.


A propos des messages de débogage

  Rubriques connexes

Lorsque vous exécutez une application en mode débogage en activant l'affichage de messages de débogage, Form Builder affiche une zone de message pour chaque événement provoquant l'exécution d'un déclencheur.

Les messages de débogage apparaissent sur la ligne de message. Chaque message indique le nom du déclencheur en cours d'exécution et celui de l'objet (application Forms, bloc ou élément) auquel il est attaché.


Affichage des messages de débogage

Pour afficher les messages de débogage lors de l'exécution :

Activez la préférence Mode débogage en incluant le mot-clé Debug (DEBUG_MESSAGES=YES) dans la commande pour exécuter l'application. Par exemple, sous MS Windows :

IFRUN60 nomapplicationForms nomutilisateur/motdepasse debug_messages=YES


A propos du Débogueur

  Rubriques connexes

Lorsque vous exécutez l'application Forms en mode débogage, le Débogueur apparaît pour vous permettre de créer des actions de débogage, comme des points d'interruption et des déclencheurs de débogage. Une fois le Débogueur fermé, il devient actif à chaque interruption de l'exécution du programme, lorsqu'un point d'interruption se présente ou lorsque vous choisissez Aide [image] Débogage dans le menu.

Généralement, une session de débogage est centrée sur le Navigateur d'objet. En utilisant le Navigateur d'objet, vous pouvez inspecter et modifier des unités de programme, des variables globales, des valeurs d'élément d'application Forms, etc.


A propos des fonctions du Débogueur

  Rubriques connexes

Les fonctions du Débogueur permettent notamment les opérations suivantes :

•	Débogage par manipulation directe -- insérez des actions de débogage et inspecter des données de programme en manipulant directement le texte source affiché.

•	Contrôle dynamique de l'exécution -- Form Builder affiche et suit automatiquement l'emplacement de la source PL/SQL en cours lorsque l'exécution du programme est interrompue par des actions de débogage ou progresse par incrément pendant l'exécution pas à pas du programme.

•	Survol de l'état d'un programme interrompu -- lorsque l'exécution d'un programme a été interrompue, il est possible de parcourir la pile en cours, parcourir et modifier l'état des variables et exécuter des instructions PL/SQL arbitraires. Toutes les informations sont accessibles symboliquement, c'est-à-dire au moyen, non pas de leur adresse ou de leur numéro, mais de leur nom.


A propos de la fenêtre du Débogueur

  Rubriques connexes

Le Débogueur comporte cinq éléments principaux : le menu Débogueur, la Barre d'outils, la fenêtre Source, la fenêtre Navigateur d'objet et la fenêtre Interpréteur.


A propos du menu du Débogueur

  Rubriques connexes

Le menu du Débogueur comprend trois menus : Affichage, Débogage et Navigateur.

Menu Affichage Le menu Affichage contient les éléments suivants :

Fenêtre Source	Affiche la fenêtre Source.
Fenêtre Navigateur d'objet	Affiche la fenêtre du Navigateur d'objet.
Fenêtre Interpréteur	Affiche la fenêtre Interpréteur.
Journal de l'Interpréteur	La commande LOG enregistre une transcription des entrées et des sorties du Débogueur dans le fichier journal indiqué.
Menu Débogage Le menu Débogage contient les éléments suivants :

Point d'interruption...	Affiche la boîte de dialogue Point d'interruption qui vous permet de créer un point d'interruption dans une unité de programme.
Déclencheur...	Affiche la boîte de dialogue Déclencheur qui vous permet de créer un déclencheur de débogage dans une unité de programme.
Editer	Appelle l'Editeur d'unité de programme et affiche la source de l'unité de programme sélectionnée dans le Navigateur d'objet.
Step	Exécute la commande STEP dans la fenêtre Interpréteur. Cette commande fait avancer l'exécution d'une unité de programme interrompue et rend le contrôle au niveau de débogage en cours après l'exécution de la série d'instructions spécifiée.
Go	Exécute la commande GO dans la fenêtre Interpréteur. Cette commande reprend l'exécution du programme jusqu'à ce que la série d'instructions en cours d'exécution soit terminée ou interrompue par une action de débogage.
Reset	La commande RESET rend le contrôle à un niveau de débogage extérieur sans poursuivre l'exécution au niveau de débogage en cours.

Menu Navigateur  Le menu Navigateur comprend non seulement les options de développement standard (Créer, Supprimer, Compiler, etc.) mais aussi deux options de débogage :

Désactiver	Désactive l'action de débogage sélectionnée dans la fenêtre Navigateur.
Activer	Active l'action de débogage sélectionnée dans la fenêtre Navigateur.


A propos de la barre d'outils du Débogueur

  Rubriques connexes

La barre d'outils du Débogueur comporte les icônes suivantes :

Step Into	Exécute la commande STEP INTO qui permet de passer à des appels de sous-programme.
Step Over	La commande STEP OVER exécute les sous-programmes appelés sans passer à un corps de sous-programme appelé.
Step Out	La commande STEP OUT reprend l'exécution jusqu'au retour au sous-programme en cours.
Go	Exécute la commande GO dans la fenêtre Interpréteur. Cette commande reprend l'exécution du programme jusqu'à ce que la série d'instructions en cours d'exécution soit terminée ou interrompue par une action de débogage.
Reset	La commande RESET rend le contrôle à un niveau de débogage extérieur sans poursuivre l'exécution au niveau de débogage en cours.
Fermer	Lorsque vous exécutez votre application Forms en mode débogage, le Débogueur s'affiche, initialement, pour vous permettre de créer des actions de débogage avant le démarrage de l'application Forms. Lorsque vous avez créé vos actions de débogage, choisissez Fermer pour exécuter votre application Forms.
Créer	Permet de créer une unité de programme.
Delete	Supprime l'unité de programme sélectionnée dans la fenêtre du navigateur.
Développer	Développe le noeud sélectionné dans la fenêtre du navigateur.
Réduire	Réduit le noeud sélectionné dans la fenêtre du navigateur.
Développer tout	Développe tous les sous-noeuds du noeud sélectionné.
Réduire tout	Réduit tous les sous-noeuds du noeud sélectionné.
Rechercher	Saisissez dans cette zone de texte le nom d'une unité de programme pour la rechercher dans la fenêtre du navigateur.


A propos de la fenêtre Source

  Rubriques connexes

La fenêtre Source affiche une copie en lecture seule de l'unité de programme sélectionnée dans la fenêtre Navigateur d'objet.

Les numéros de ligne à la marge de gauche correspondent aux numéros de ligne de l'unité de programme affichée.

La marge peut également comporter les symboles suivants :

|	Indique l'emplacement source en cours.
=>	Indique l'emplacement de travail en cours.
-	Indique l'emplacement de l'exécution en cours (s'il est différent de l'emplacement de travail en cours).
B(n)	Indique l'emplacement d'un point d'interruption où n est l'ID d'action de débogage correspondante. Il apparaît dans la colonne de numéro de ligne.
T(n)	Indique l'emplacement d'un déclencheur, où n est l'ID d'action de débogage correspondante. Il apparaît dans la colonne de numéro de ligne.


A propos de la fenêtre du Navigateur d'objet

  Rubriques connexes

Le Navigateur d'objet affiche des informations concernant l'état actuel d'une application Form Builder. Utilisez-les pour analyser le traitement interne ayant lieu pendant l'exécution de cette application. Vous pouvez également modifier les variables système, les variables globales et les valeurs des éléments.

L'affichage hiérarchique comprend les noeuds suivants :

Modules	Répertorie tous les modules de l'application Forms. Sous ce noeud, vous trouverez pour chaque module la liste exhaustive des unités de programme, des bibliothèques attachées, des déclencheurs, des blocs, des éléments, des listes de paramètres, des sous-programmes, des références et la valeur de chaque objet.
Variables globales	Répertorie toutes les variables globales et leurs valeurs.
Variables système	Répertorie les variables système courantes.
Paramètres de ligne de commande	Répertorie les paramètres de ligne de commande et les valeurs de l'instance courante de Forms Runtime.
Packages intégrés	Répertorie les packages intégrés disponibles, y compris le package DEBUG.
Actions de débogage	Répertorie les éventuels points d'interruption ou déclencheurs créés dans le Débogueur.
Pile	Répertorie toutes les variables locales de l'application Forms.
Objets de la base de données	Répertorie les objets des bases de données attachées.
Cliquez sur le signe [image] (plus) pour afficher davantage de noeuds.


A propos de la fenêtre Interpréteur

  Rubriques connexes

La fenêtre Interpréteur offre une interface de ligne de commande qui vous permet d'entrer des éléments PL/SQL et des commandes du Débogueur.


A propos des actions de débogage

  Rubriques connexes

Vous pouvez appeler le Débogueur à l'aide d'un code d'application Forms (déclencheurs, unités de programme nommées par l'utilisateur, bibliothèques, etc.), en y incluant des actions de débogage. Ces actions sont des instructions qui interrompent l'exécution des unités de programme PL/SQL de façon à ce qu'elles soient contrôlées. Il existe deux types d'actions de débogage : les points d'interruption et les déclencheurs de débogage.

Un ID numérique unique est automatiquement affecté à chaque action de débogage créée. Lors du débogage, vous pouvez faire référence à cet ID pour rechercher, afficher ou modifier l'action de débogage via les commandes de débogage de Form Builder.

Vous pouvez afficher des informations détaillées concernant une ou plusieurs actions de débogage, notamment leurs ID, emplacement source et état d'activation/de désactivation. Il est possible de désactiver temporairement certaines actions de débogage, puis de les réactiver ultérieurement, si nécessaire.

Les points d'interruption suspendent l'exécution à une ligne source de l'unité de programme et passe le contrôle au Débogueur.

Créez des points d'interruption pour identifier des zones de débogage spécifiques. Par exemple, définissez un point d'interruption aux lignes 10 et 20 afin de déboguer le code de cette zone.

Ce point d'interruption permet de suspendre l'exécution juste avant d'atteindre la ligne sur laquelle il se trouve. A ce stade, utilisez les fonctions du Débogueur pour vérifier et/ou modifier l'état du programme. Lorsque le résultat vous convient, reprenez l'exécution à l'aide des commandes GO ou STEP, ou abandonnez-la via la commande RESET.

Les déclencheurs de débogage représentent une forme courante d'action de débogage associant un bloc de code PL/SQL à une ligne source d'une unité de programme. Lorsqu'un déclencheur de débogage est détecté, Form Builder exécute le code correspondant.

Créez un déclencheur de débogage pour exécuter un bloc de code PL/SQL indiqué au moment du débogage :

•	lorsque l'exécution du programme atteint une ligne spécifique d'une unité de programme (par exemple, l'emplacement source en cours, la ligne 5 ou 23, etc.) ;

•	chaque fois que le Débogueur prend le contrôle, c'est-à-dire lorsqu'il suspend l'exécution d'un programme à la suite d'un point d'interruption, du déroulement pas à pas d'un programme, etc. ;

•	chaque fois qu'une ligne source PL/SQL est exécutée.

Les déclencheurs de débogage sont particulièrement utiles en tant que points d'interruption conditionnels. Vous pouvez générer l'exception DEBUG.BREAK à partir d'un déclencheur. Par exemple, le déclencheur de débogage ci-dessous définit un point d'interruption conditionnel à la ligne 10 de mon_proc, qui n'est atteinte que si la variable locale NUMBER mon_sal est supérieure à 5 000 :

PL/SQL>line 10 is
+> IF Debug.Getn('mon_sal') > 5000 THEN
+>   Raise Debug.Suspend;
+> END IF;


A propos de la création d'une action de débogage

  Rubriques connexes

Form Builder vous permet de créer des actions de débogage (points d'interruption et déclencheurs de débogage) :

•	par utilisation des commandes des menus Point d'interruption et Déclencheur

•	par insertion d'actions de débogage dans la fenêtre Navigateur d'objet

•	par entrée de commandes dans la fenêtre Interpréteur.

Lorsque vous créez une action de débogage, attachez le point d'interruption ou votre déclencheur de débogage à une ligne source d'unité de programme "exécutable". Une ligne source est considérée comme exécutable si elle contient une ou plusieurs instructions pour lesquelles le compilateur PL/SQL génère du code. Par exemple, les lignes source contenant des instructions d'affectation et des appels de procédure sont exécutables, alors que les lignes source contenant des commentaires, des lignes vierges, des déclarations ou l'instruction NULL ne le sont pas.


A propos de l'emplacement d'exécution en cours

  Rubriques connexes

L'emplacement d'exécution en cours indique la ligne source PL/SQL suivante à exécuter. Il correspond à l'outil généralement appelé « compteur de programme » (compteur P).

Lorsque le contrôle est passé au Débogueur pendant l'exécution d'un programme (par exemple, lorsque le programme détecte un point d'interruption ou à la suite d'une opération exécutée pas à pas), la ligne source associée à l'emplacement de l'exécution en cours apparaît automatiquement dans la fenêtre Source du Débogueur.

Utilisez la commande LIST de la fenêtre de l'Interpréteur pour afficher manuellement la zone d'exécution en cours.

Par exemple, si vous saisissez :

.LIST PC

cette zone apparaît dans la fenêtre Source.


A propos des niveaux de débogage

  Rubriques connexes

Lorsqu'une action de débogage suspend l'exécution d'un programme, le Débogueur prend le contrôle et crée un niveau de débogage. A un niveau de débogage, vous pouvez entrer des commandes et des instructions PL/SQL pour consulter et modifier l'état de l'unité de programme interrompue, et en reprendre l'exécution.

Etant donné qu'un code PL/SQL saisi de façon interactive à un niveau de débogage peut être lui-même interrompu (par exemple, par la détection d'un autre point d'interruption), les niveaux de débogage peuvent être imbriqués. Pour simplifier la distinction entre les niveaux de débogage, ceux-ci sont numérotés. Le numéro le plus élevé correspond au niveau le plus imbriqué. La numérotation commence à zéro avec le niveau le moins imbriqué.

Ce niveau est généralement appelé premier niveau. Aucun état de programme ne lui est associé car il s'agit du niveau le moins imbriqué auquel les unités de programme sont appelées à l'origine. L'interruption du code à partir du premier niveau crée le niveau de débogage 1. De même, l'interruption du code appelé à partir du niveau de débogage 1 crée le niveau de débogage 2, et ainsi de suite.

Le niveau de débogage en cours est indiqué dans l'invite de commande du Débogueur. Lorsque ce dernier passe à des niveaux qui suivent le niveau le moins imbriqué, cette invite contient un préfixe contenant le numéro du niveau de débogage en cours. Par exemple, l'invite de commande du Débogueur au niveau de débogage 1 est la suivante :

(debug 1)PL/SQL>


A propos de l'emplacement de travail en cours

  Rubriques connexes

L'emplacement de travail en cours indique l'emplacement où le Débogueur recherche les variables locales et les paramètres. Il correspond à l'emplacement d'exécution en cours de l'un des sous-programmes PL/SQL de la pile.

Chaque fois que l'exécution d'une unité de programme est interrompue (par exemple, par une action de débogage), l'emplacement de travail est initialisé à l'emplacement d'exécution du sous-programme au bas de la pile.

Une fois l'exécution interrompue, vous pouvez modifier l'emplacement de travail en cours en le remplaçant par une autre trame de la pile, ce qui vous permet de visualiser les variables locales dans un autre sous-programme de la chaîne d'appels.


A propos de la modification du code lors de l'exécution

  Rubriques connexes

Lors de l'exécution, vous pouvez modifier et compiler les unités de programme, commandes d'élément de menu ou déclencheurs qui ne se trouvent pas dans la pile en cours.

Remarque : Pour modifier un élément de la pile en cours, commencez par effacer la pile en émettant la commande RESET.

Bien que la modification du code lors de l'exécution ne soit pas reflétée sur Designer, vous pouvez tester de façon interactive les modifications éventuelles avant de mettre en oeuvre la modification appropriée dans Designer.


A propos des commandes de débogage

  Rubriques connexes

Les commandes suivantes sont disponibles lors de l'utilisation du Débogueur :

CREATE  Crée une bibliothèque pouvant être stockée dans le système de fichiers ou dans la base de données en cours.

DELETE  Vous pouvez utiliser la commande DELETE pour supprimer les éléments suivants

•	des bibliothèques résidant dans la base de données en cours ;

•	des unités de programme de bibliothèque ;

•	les unités de programme.

DESCRIBE  Utilisez la commande DESCRIBE pour consulter une variable locale ou un paramètre à l'emplacement de travail en cours. La description indique le nom, le type et la valeur de la variable locale indiquée.

EXPORT  Utilisez la commande EXPORT pour écrire la source d'une ou de plusieurs unités de programme dans un fichier texte

LIST  Utilisez la commande LIST pour afficher le texte source d'unités de programme, de déclencheurs et d'actions de débogage.

LOG  La commande LOG enregistre une transcription des entrées et sorties du Débogueur, dans le fichier journal indiqué.

RESET  La commande RESET rend le contrôle à un niveau de débogage extérieur sans poursuivre l'exécution au niveau de débogage en cours.

SET  La commande SET vous permet de changer l'emplacement de travail en cours et de le remplacer par une trame particulière de la pile. Vous pouvez indiquer un déplacement relatif à partir de la trame de pile en cours vers une autre trame, ou passer à un sous-programme donné de la pile. Vous pouvez appeler SET de l'une des manières suivantes :

•	sélectionnez une entrée de trame dans le Navigateur d'objet ;

•	entrez la commande SET dans l'Interpréteur.

SHOW  Utilisez la commande SHOW pour afficher la liste contenant le nom, le type et la valeur de toutes les variables et de tous les paramètres se trouvant à l'emplacement de travail en cours.


A propos du package DEBUG

  Rubriques connexes

Lors du débogage des applications, utilisez le package DEBUG.

Remarque : Le package DEBUG n'est disponible que pendant l'exécution. Il apparaît dans le noeud Packages intégrés.

Le package DEBUG contient les procédures, les fonctions et les exceptions que vous pouvez utiliser lorsque vous déboguez vos applications.

Fonctions DEBUG.GETx  Les fonctions GETx du package DEBUG vous permettent d'extraire la valeur d'une variable locale ou d'un paramètre du sous-programme à l'emplacement de travail en cours. Ces fonctions doivent être utilisées essentiellement dans les déclencheurs de débogage.

Fonctions DEBUG.SETx  Les procédures SETx du package DEBUG vous permettent de définir la valeur d'une variable locale ou d'un paramètre du sous-programme à l'emplacement de travail en cours. Ces procédures doivent être utilisées essentiellement dans les déclencheurs de débogage.

Fonctions DEBUG.SUSPEND  La procédure DEBUG.SUSPEND suspend l'exécution du déclencheur ou de l'unité de programme en cours et transfère le contrôle à l'Interpréteur.

Fonctions DEBUG.BREAK  Utilisez la procédure DEBUG.BREAK afin d'entrer un point d'interruption à partir du déclencheur.


A propos des limites de démarrage du Débogueur

Lorsqu'une application Forms est exécutée en mode débogage, le Débogueur est appelé avant le démarrage de cette application. Bien que vous puissiez, à ce stade, créer des actions de débogage, la plupart des sous-programmes intégrés Form Builder ne peuvent pas être exécutés avant le démarrage de l'application Forms.

Remarque : Le traitement des erreurs en mode débogage diffère du traitement des erreurs par défaut lors de l'exécution. En mode débogage, aucun déclencheur ON-ERROR ou ON-MESSAGE n'est activé. Si le code que vous exécutez génère des erreurs ou des messages, ils apparaissent dans un message d'alerte.

Les sous-programmes intégrés suivants ne peuvent pas être appelés avant le démarrage d'une application Forms :

Abort_Query

Anchor_View

Bell

Block_Menu

Break

Call_Form

Call_Input

Call_Query

Clear_Block

Clear_Eol

Clear_Field

Clear_Form

Clear_Record

Close_Form

Commit_Form

Enregistrement dans la base de données (Commit)

Copier

Copy_Region

Count_Query

Create_Queried_Record

Create_Record

Cut_Region,

Default_Value

Delete_Record

Display_Error

Display_Page

Do_Key

Bas

Duplicate_Record

Edit_Field

Enforce_Column_Security

Enter

Enter_Query

Execute_Query

Execute_Trigger

Exit_Form

Generate_Sequence_Number

Go_Form

Go_Record

Hide_Menu

Erase

Fetch_Records

Fire_Event

First_Record

Go_Block

Go_Field

Aide

Hide_Page

Insert_Record

Last_Record

List_Values

Lock_Record

Logon

Logon_Screen

Logout

Macro

Message

Next_Field

Next_Form

Move_View

New_Form

Next_Block

Next_Key

Next_Record

Next_Set

Ohost

Open_Form

Paste_Region

Pause

Post

Print

Previous_Block

Previous_Form

Previous_Field

Previous_Record

Rollback_Form

Redisplay

Replace_Menu

Resize_View

Select_Records

Scroll_Down

Scroll_Up

Set_Input_Focus

Show_Keys

Show_Menu

Show_Page

Synchronize

Haut

Update_Record

Validate


Exécution d'une application Forms en mode débogage

  Rubriques connexes

Pour compiler et exécuter une application Forms en mode débogage à partir de l'éditeur de présentation :

1	Choisissez Outils [image] Préférences… afin d'appeler la boîte de dialogue Préférences.

2	Dans l'onglet Options d'exécution, cochez la case Mode débogage.

3	Cliquez sur OK pour accepter les options.

4	Sélectionnez Programme [image] Lancer application Forms pour exécuter l'application Forms.

Pour compiler et exécuter une application Forms en mode débogage à partir de la ligne de commande :

Activez la préférence Mode débogage en ajoutant le mot-clé Debug (DEBUG=YES) dans la commande, afin de compiler et d'exécuter l'application. Par exemple, sous MS Windows :

IFCMP60 nomapplicationForms nomutilisateur/motdepasse debug=YES
IFRUN60 nomapplicationForms nomutilisateur/motdepasse debug=YES

Remarque : Lorsque vous compilez l'application Forms avec le mode débogage activé, les informations de débogage (code p) sont incorporées dans le fichier exécutable .FMX. Ces informations vous permettent de modifier le sous-programme runtime.


Création d'un point d'interruption

  Rubriques connexes

Pour créer un point d'interruption :

1	Dans le Navigateur d'objet, sélectionnez une unité de programme, un déclencheur ou une commande d'élément de menu. Le Débogueur affiche votre sélection dans la fenêtre Source.

2	Dans la fenêtre Source, sélectionnez la ligne à laquelle sera rattaché le point d'interruption.

3	Choisissez Débogage [image] Point d'interruption pour appeler la boîte de dialogue Point d'interruption .

4	Sélectionnez une ligne, puis cliquez sur OK pour créer un point d'interruption pour la ligne sélectionnée.

Conseil :  Vous pouvez également créer un point d'interruption en cliquant deux fois sur la ligne source de votre choix dans la fenêtre Source ou en entrant les commandes dans la fenêtre Interpréteur.


A propos de la boîte de dialogue Point d'interruption

La boîte de dialogue Point d'interruption comprend :

Point d'interruption	Identifie le point d'interruption nouveau ou existant. Les points d'interruption existants sont numérotés.
Annuler	Ferme la boîte de dialogue et annule l'opération.
Activé	Indique si le point d'interruption est activé ou désactivé. Lorsque vous créez un point d'interruption, il est activé par défaut.
Ligne	Indique la ligne d'une unité de programme à laquelle le point d'interruption doit être créé.
OK	Crée le point d'interruption et ferme la boîte de dialogue.
Unité de programme	Identifie le corps de l'unité de programme cible.
Déclencheur	Définit un déclencheur PL/SQL pour le point d'interruption. Ce déclencheur est activé chaque fois que le programme rencontre le point d'interruption.


Création d'un déclencheur de débogage

  Rubriques connexes

Pour créer un déclencheur de débogage :

1	Dans le Navigateur d'objet, cliquez sur l'unité de programme, un déclencheur ou une commande d'élément de menu. Le Débogueur affiche votre sélection dans la fenêtre Source.

2	Dans la fenêtre Source, cliquez sur la ligne à laquelle sera rattaché le déclencheur de débogage.

3	Choisissez Débogage [image] Déclencheur pour appeler la boîte de dialogue Déclencheur.

4	Indiquez le corps du déclencheur.

Par exemple, pour créer un déclencheur de débogage destiné à interrompre l'exécution du programme si la variable locale NUMBER mon_sal est supérieure à 5000, entrez comme corps de déclencheur :

IF Debug.Getn('mon_sal') > 5000 THEN
   raise Debug.Suspend;
END IF;

Remarque : Pour créer un déclencheur de débogage contenant plusieurs lignes de texte, ajoutez respectivement les instructions BEGIN et END au début et à la fin de votre code.

Vous devez générer l'exception DEBUG.SUSPEND à partir du package DEBUG si vous voulez que le Débogueur s'affiche lorsque cette ligne est exécutée. Sinon Form Builder exécute le code sans vous en informer et le Débogueur n'apparaît pas.

5	Cliquez sur OK pour créer un déclencheur de débogage pour la ligne sélectionnée.

Conseil :  Vous pouvez également créer un déclencheur de débogage en entrant les commandes dans la fenêtre Interpréteur.


A propos de la boîte de dialogue Déclencheur

La boîte de dialogue Déclencheur comprend :

Annuler	Ferme la boîte de dialogue et annule l'opération.
Activé	Indique si le déclencheur de débogage est activé ou désactivé. Lorsque vous créez un déclencheur de débogage, il est activé par défaut.
Ligne	Indique la ligne d'une unité de programme à laquelle le déclencheur de débogage doit être créé.
Emplacement	Indique l'emplacement source du déclencheur de débogage. L'élément Unité de programme indique que cet emplacement est entré dans le champ Unité de programme et le champ Ligne. Ces deux champs ne sont activés que lorsque l'élément Unité de programme est l'élément sélectionné dans la liste déroulante Emplacement. Le fait de placer un déclencheur sur Entrée de débogage appelle le Débogueur lorsque l'exécution du programme est suspendue à cause d'un point d'interruption, de l'exécution du programme pas à pas, etc. Le fait de placer un déclencheur sur Chaque instruction provoque l'évaluation du bloc indiqué avant l'exécution de chaque ligne source PL/SQL.
OK	Crée le déclencheur de débogage et ferme la boîte de dialogue.
Unité de programme	Identifie le corps de l'unité de programme cible.
Déclencheur	Identifie le déclencheur de débogage (nouveau ou existant). Les déclencheurs de débogage existants sont numérotés.
Corps du déclencheur	Indique le code PL/SQL à utiliser comme corps du déclencheur de débogage.


Exploration des actions de débogage

  Rubriques connexes

Pour explorer les actions de débogage :

Dans le Navigateur d'objet, étendez le noeud Actions de débogage. Le Navigateur d'objet affiche la liste des actions de débogage associées à l'application Forms en cours.

ou

Dans l'Interpréteur, utilisez la commande DESCRIBE pour afficher des informations sur une action de débogage spécifique.

Par exemple, l'entrée de .DESCRIBE BREAK 1 dans la fenêtre Interpréteur fournit, au sujet du Point d'interruption 1, les informations suivantes :

Point d'interruption : 1
   Unité de programme : corps de procédure <nom_unitéprogramme>
Ligne : 3
Activé : OUI


Affichage de la source d'une action de débogage

  Rubriques connexes

Pour afficher la source d'une action de débogage :

1	Dans le Navigateur d'objet, développez le noeud Actions de débogage.

2	Cliquez sur une action. La source apparaît dans la fenêtre Source.

ou

Dans l'Interpréteur, utilisez la commande .LIST.

Par exemple, l'entrée de .LIST BREAKPOINT 1 dans la fenêtre Interpréteur affiche des informations relatives au Point d'interruption 1.


Désactivation et activation d'actions de débogage

  Rubriques connexes

Pour désactiver/activer une action de débogage :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'action de débogage désirée. La boîte de dialogue Point d'interruption/Déclencheur s'affiche.

2	Cochez la case Activé pour activer l'action de débogage ou désélectionnez-la pour la désactiver.

ou

Dans l'Interpréteur, utilisez la commande DISABLE.

Par exemple, l'entrée de .DISABLE BREAKPOINT 1 dans la fenêtre Interpréteur désactive le point d'interruption 1.


Suppression des actions de débogage

  Rubriques connexes

Pour supprimer une action de débogage :

1	Dans le Navigateur d'objet, cliquez sur l'action de débogage de votre choix.

2	Choisissez Navigateur [image] Supprimer.

ou

Dans l'Interpréteur, utilisez la commande DELETE.

Par exemple, l'entrée de .DELETE BREAK 1 dans l'Interpréteur supprime le point d'interruption 1.


Enregistrement des actions de débogage

  Rubriques connexes

Les actions de débogage créées dans le Débogueur ne sont pas enregistrées et n'existent que pendant la session de débogage en cours. Chaque fois que vous lancez une session de débogage, vous devez créer les actions de débogage requises pour cette session.

Pour réutiliser des points d'interruption de session en session, créez vos points d'interruption lors de la conception en appelant le sous-programme intégré BREAK dans le code de votre choix. Ce sous-programme propose les mêmes fonctions qu'un point d'interruption créé dans le Débogueur.

Vous pouvez également créer des points d'interruption conditionnels en ajoutant une logique conditionnelle lorsque vous utilisez la procédure interne BREAK.

Par exemple :

IF :emp.sal > 5000 THEN
   Break;
END IF;


Affichage des références d'un sous-programme

Pour afficher les références de sous-programme :

1	Dans le Navigateur d'objet, sélectionnez et développez le sous-programme de votre choix.

2	Sélectionnez et développez le noeud Références ou Référencé par.

Le Navigateur d'objet affiche les références de sous-programme.

Remarque : Référencé par affiche les unités de programme qui appellent l'unité de programme en cours. Références affiche les unités de programme appelées par l'unité de programme en cours.


Consultation de la pile

La pile représente la chaîne d'appels de sous-programme, depuis le point d'entrée initial jusqu'au sous-programme en cours d'exécution.

Par exemple, si la procédure A appelle la procédure B qui appelle la procédure C, alors qu'une instruction de la procédure C est en cours d'exécution, la chaîne des appels en cours se présentera de la manière suivante :

Pile :

(0) A (Corps de procédure) Ligne 3

(1) B (Corps de procédure) Ligne 22

(2) C (Corps de procédure) Ligne 5

Chaque appel de sous-programme est représenté dans la pile par une trame. Une trame contient des informations sur l'appel au sous-programme correspondant -- c'est-à-dire son nom, les valeurs de paramètre en cours, les valeurs des variables locales et la prochaine instruction à exécuter.

Form Builder utilise le modèle de débogage standard d'une pile ascendante, dans laquelle les derniers sous-programmes entrés sont ajoutés au bas de la pile. La trame la plus ancienne, qui correspond au point d'entrée initial, se trouve donc au sommet de la pile, alors que la plus récente, associée à l'appel au sous-programme imbriqué le plus profondément, se trouve au bas de la pile.

Les trames de pile sont numérotées de 0 à N, où la trame n° 0 se trouve au sommet de la pile et la trame n° N au bas de la pile. La trame 0 correspond donc au point d'entrée initial, et la trame N au sous-programme en cours d'exécution.


Contrôle de l'exécution des unités de programme

  Rubriques connexes

Après avoir vérifié et modifié l'état d'un programme, vous pouvez en reprendre ou en arrêter l'exécution via les fonctions suivantes :

STEP	Vous pouvez utiliser la commande STEP pour reprendre momentanément l'exécution d'un programme interrompu. Le contrôle est rendu au Débogueur après exécution du jeu d'instructions indiqué. Les fonctions STEP Into ou STEP Over vous permettent d'effectuer les opérations suivantes : • exécution de l'instruction suivante (avec descente éventuelle dans les appels des sous-programmes) ; • reprise de l'exécution jusqu'au retour au sous-programme en cours ; • poursuite de l'exécution jusqu'à l'emplacement source indiqué.
GO	Utilisez cette commande pour reprendre en permanence l'exécution d'un programme, c'est-à-dire jusqu'à ce que la séquence d'instructions en cours d'exécution prenne fin ou qu'elle soit à nouveau interrompue par une action de débogage.
RESET	Utilisez cette commande pour rendre le contrôle à un niveau de débogage supérieur sans poursuivre l'exécution au niveau de débogage en cours. RESET met donc effectivement fin à l'exécution du programme aux niveaux de débogage en cours, et éventuellement aux niveaux supérieurs. Vous pouvez réinitialiser l'exécution de façon explicite à un précédent niveau de débogage, ou le reprendre simplement au premier niveau (selon l'option par défaut choisie).
 Exécutez ces commandes à partir de la barre d'outils du Débogueur ou en indiquant leur nom dans la fenêtre de l'Interpréteur.


Affichage de l'emplacement de travail en cours

Pour afficher l'emplacement de travail en cours

1	Dans le Navigateur d'objet, développez le noeud Pile.

2	Développez la trame choisie dans la pile pour afficher des informations relatives aux variables locales et aux paramètres.

ou

Dans l'Interpréteur, utilisez la commande .LIST SCOPE.


Modification des variables d'une application

Pour modifier une variable :

1	Dans le Navigateur d'objet, développez le noeud Variables globales ou Pile pour les variables locales.

2	Développez une entrée. Le Navigateur d'objet affiche les variables associées à l'entrée.

3	Cliquez sur la valeur existante après le symbole « = », puis remplacez-la par la valeur de votre choix.

ou

Dans l'Interpréteur, utilisez les packages Debug.Getx et Debug.Setx pour modifier une variable locale.


Modification d'une valeur d'élément

Pour modifier une valeur d'élément d'application Forms :

1	Dans le Navigateur d'objet, sélectionnez et développez les noeuds Module, Bloc et Elément de votre choix, puis sélectionnez un élément.

Le Navigateur d'objet affiche les valeurs d'élément d'application Forms associées à la pile en cours.

2	Cliquez sur la valeur existante après le symbole « = », puis remplacez-la par la valeur de votre choix.


Modification du code lors de l'exécution

Pour modifier votre code lors de l'exécution :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'unité de programme, la commande d'élément de menu ou le déclencheur de votre choix pour appeler l'Editeur d'unité de programme.

2	Dans l'Editeur PL/SQL, apportez les modifications voulues.

3	Choisissez Compiler, puis Fermer pour sortir de l'Editeur PL/SQL.

4	Dans la barre d'outils du Débogueur, choisissez Go ou Step Into, Over ou Out pour reprendre l'exécution du programme.


Création d'unités de programme lors de l'exécution

Pour créer des unités de programme lors de l'exécution :

Dans le Navigateur d'objet, sélectionnez un noeud, puis choisissez Navigateur [image] Créer.

Pour attacher une bibliothèque lors de l'exécution :

1	Dans le Navigateur d'objet, sélectionnez le noeud Bibliothèques attachées puis choisissez Navigateur [image] Créer.

La boîte de dialogue Attacher bibliothèque s'affiche.

Remarque : Lors de l'exécution, vous pouvez attacher un fichier de bibliothèque .PLL ou .PLX. Form Builder commence par rechercher un fichier .PLX. S'il n'en trouve pas, il recherche le fichier .PLL ayant le nom indiqué.

2	Indiquez la bibliothèque à attacher, puis choisissez OK.

ou

Dans la fenêtre Interpréteur, utilisez la commande ATTACH.


Accès module

Description :

La boîte de dialogue Accès module permet d'accorder ou de révoquer un droit d'accès (en lecture, écriture ou exécution) au module indiqué, si celui-ci est stocké dans la base de données.

Cette boîte de dialogue contient les options suivantes :

Module	Entrez le nom d'un module dans cette zone de texte.
Opération	Permet d'indiquer Autoriser ou Révoquer.
Bouton Extraire liste	Récupère la liste des modules stockés dans la base de données, parmi lesquels vous pouvez effectuer un choix.
Afficher	Filtre la liste de modules retournés par l'option Extraire liste dans un ou dans tous les types de module : applications Forms, menus, bibliothèques PL/SQL ou bibliothèques d'objets.
Utilisateur	Précise le nom de l'utilisateur auquel vous voulez accorder ou révoquer des droits.
Notes d'utilisation :

Pour les modules stockés dans des fichiers, utilisez la méthode de contrôle d'accès de votre système d'exploitation.


Rôles base de données

Description :

Les rôles de base de données permettent d'afficher une boîte de dialogue contenant deux commandes :

Rôle	Permet de définir et de modifier les rôles de contrôle ayant une incidence sur l'accès aux menus.

Accès au rôle 	Permet de contrôler les utilisateurs ayant des privilèges d'administration de rôle.

Rôle    Cette option permet de définir et de modifier les rôles de contrôle ayant une incidence sur la sécurité des menus.

Nouveau	Permet de définir un rôle de contrôle en affichant la boîte de dialogue Liste des rôles.

Editer	Permet d'éditer un rôle de sécurité en affichant la boîte de dialogue Rôle pour un rôle précédemment défini. Vous pouvez modifier n'importe lequel des champs précédemment répertoriés pour l'option Nouveau (vous pouvez notamment ajouter ou supprimer des utilisateurs du rôle).

Supprimer 	Permet de supprimer un rôle de la liste de rôles.

Enregistrer 	Permet d'enregistrer la liste des rôles modifiée.

Quitter	Permet de quitter sans accepter les modifications.

Boîte de dialogue Rôle     Oracle Forms affiche la boîte de dialogue Liste des rôles, qui comprend les options suivantes :

Nom du rôle	Précise le nom du rôle de contrôle.

Nom utilisateur	Précise le nom des utilisateurs que vous voulez ajouter à ce rôle. (Les noms d'utilisateur ne sont pas exigés, vous pouvez créer un rôle maintenant et lui affecter des utilisateurs par la suite.)

Mode débogage	Indique que les opérateurs qui sont membres de ce rôle peuvent exécuter un menu en mode débogage.

Commande OS	Indique que les opérateurs qui sont membres de ce rôle peuvent quitter une application Forms pour revenir dans le système d'exploitation, où ils peuvent saisir les commandes relatives au système d'exploitation.

Menu d'arrière-plan	Indique que les opérateurs qui sont membres de ce rôle peuvent afficher le menu d'arrière-plan en tant que fenêtre d'affichage de touches.

Accès au rôle     Cette option permet d'accorder ou de révoquer individuellement des privilèges d'administration de rôle. Oracle Forms affiche la boîte de dialogue Accorder un rôle, qui comprend les options suivantes :

Opération	Permet d'indiquer Autoriser ou Révoquer.

Utilisateur	Permet d'indiquer le nom de l'utilisateur auquel vous voulez accorder ou révoquer un privilège d'administration de rôle.


Supprimer

Description :

La boîte de dialogue Supprimer permet de supprimer un module de la base de données.

Cette boîte de dialogue contient les options suivantes :

Supprimer	Entrez le nom d'un module à supprimer dans cette zone de texte.
Extraire liste	Récupère la liste des modules stockés dans la base de données parmi lesquels vous pouvez effectuer un choix.
Afficher	Filtre la liste de modules retournés par l'option Extraire liste dans un ou dans tous les types de module : applications Forms, menus, bibliothèques PL/SQL ou bibliothèques d'objets.
Notes d'utilisation :

Pour supprimer les modules stockés dans des fichiers, utilisez la méthode de contrôle d'accès fournie par votre système d'exploitation.


Renommer

Description :

La boîte de dialogue Renommer permet de modifier le nom d'un module dans la base de données.

Cette boîte de dialogue contient les options suivantes :

Nouveau	Entrez le nouveau nom du module dans cette zone de texte.
Ancien	Entrez dans cette zone de texte le nom d'un module existant à renommer.
Extraire liste	Récupère la liste des modules stockés dans la base de données parmi lesquels vous pouvez effectuer un choix.
Afficher	Filtre la liste de modules retournés par l'option Extraire liste dans un ou dans tous les types de module : applications Forms, menus, bibliothèques PL/SQL ou bibliothèques d'objets.
Notes d'utilisation :

Pour renommer les modules stockés dans des fichiers, utilisez la méthode de contrôle d'accès fournie par votre système d'exploitation.


Générer

Permet de créer un fichier d'exécution, ayant l'extension appropriée au type de module (.FMX ou .MMX), et destiné à remplacer la version préalablement générée.


Convertir

Description :

La boîte de dialogue Convertir permet de convertir un fichier binaire (.FMB, par exemple) en fichier texte (.FMT, par exemple) ou de convertir un fichier .FMT en fichier .FMB.

Cette boîte de dialogue contient les options suivantes :

Parcourir	Cliquez sur ce bouton pour rechercher un module dans le système de fichiers.
Direction	Sélectionnez Texte-binaire ou Binaire-texte.
File	Entrez dans cette zone de texte le nom d'un module existant à convertir.
Type	Sélectionnez le type d'objet à convertir : applications Forms, menus, bibliothèques PL/SQL ou bibliothèques d'objets.


Mode couleur

Permet de déterminer le mode de chargement d'une palette de couleurs Form Builder dans votre système. Chaque fois que vous chargez, ouvrez ou créez une application Forms, Oracle Forms charge la palette de couleurs Oracle Forms dans la table de couleurs en cours de votre système. Comme cette table ne peut gérer, à un moment donné, qu'un nombre limité de couleurs, Oracle Forms peut ne pas être en mesure de modifier simultanément avec précision plusieurs applications Forms qui utilisent des palettes de couleurs différentes. Vous devrez donc utiliser l'option Lecture seule - partagée, sauf lorsque vous êtes effectivement en train de modifier la palette de couleurs Oracle Forms.


Palette de couleurs

Description :

Il s'agit de la palette de couleurs pouvant être utilisée dans l'Editeur de présentation.

Cette boîte de dialogue contient les options suivantes :

Couleur courante	Cette zone de texte contient le nom de la couleur actuellement sélectionnée.
Editer	Cliquez sur Editer pour modifier la couleur actuellement sélectionnée.
Nom de palette	Nom de la palette importée dans la session en cours. Ce champ est vierge si aucune importation n'a été effectuée.
Renommer	Sélectionnez cette option pour modifier le nom d'une couleur après avoir entré le nouveau nom dans la zone de texte Couleur courante.
Sélectionner la couleur à éditer	Affiche toutes les couleurs actuellement disponibles dans l'Editeur de présentation. Sélectionnez une couleur en cliquant sur le carré qui lui est affecté.


Générer avant d'exécuter

Permet de déterminer si Oracle Forms génère automatiquement le module actif lorsque vous exécutez une application Forms à partir de Designer. Si Générer avant d'exécuter est activé, lorsque vous lancez la commande Fichier, Exécuter pour exécuter une application Forms, Oracle Forms :

•	génère le module application Forms, menu ou bibliothèque actif pour créer un fichier d'exécution exécutable ayant le même nom que le module ;

•	exécute le fichier .FMX (fichier d'exécution d'application Forms) que vous indiquez dans la boîte de dialogue d'exécution.

Cette préférence permet d'éviter de lancer des commandes Générer et Exécuter distinctes chaque fois que vous modifiez une application Forms avant de l'exécuter. Cependant, elle n'enregistre pas le module. Pour l'enregistrer, vous devez lancer la commande Fichier, Enregistrer.


Accès

Indique l'emplacement à partir duquel vous pouvez ouvrir et enregistrer les modules :

Fichier	Les modules sont chargés à partir du système de fichiers et y sont enregistrés.
Base de données	Les modules sont chargés à partir de la base de données et y sont enregistrés.
Pour empêcher Form Builder d'afficher cette boîte de dialogue et pour indiquer un type d'emplacement par défaut, définissez la Préférence d'accès. Elle se trouve sur l'onglet Accès de la boîte de dialogue Préférences qui s'affiche lorsque vous choisissez Outils [image] Préférences.


Ouvrir/enregistrer dans la base de données

Liste les modules disponibles stockés dans la base de données.

Afficher	Filtre la liste de modules retournés par l'option Extraire liste dans un ou dans tous les types de module : applications Forms, menus, bibliothèques PL/SQL ou bibliothèques d'objets.
Bouton Extraire liste	Récupère la liste des modules stockés dans la base de données. Si vous en sélectionnez un dans la liste au-dessous de ce bouton, son nom s'affiche dans la zone de texte Ouvrir/Enregistrer sous située au-dessous la liste. Si vous modifiez le filtre Afficher, vous devez appuyer sur ce bouton pour régénérer l'affichage de la liste.
Ouvrir/Enregistrer sous	Entrez le nom du module à ouvrir ou enregistrer dans cette zone de texte.


Imprimante

Nom de l'imprimante par défaut. Ce nom dépend du système d'exploitation utilisé.


Nouvelle relation

  Rubriques connexes

Crée une nouvelle relation sur la base du Bloc maître affiché.

Bloc déetail	Entrez le nom d'un bloc à relier au bloc maître, ou cliquez sur Sélection pour choisir dans la liste des blocs disponibles. Le bloc détail doit déjà exister lorsque vous lui créez une nouvelle relation.
Suppressions maître	Détermine ce qui se produit lorsqu'un enregistrement est supprimé dans le bloc maître. Définissez l'une des options suivantes : En cascade : Permet de supprimer l'enregistrement maître et supprime automatiquement les enregistrements détail associés lors de la validation (commit). Seuls les enregistrements dans le bloc détail immédiat sont supprimés. Isolé : Permet de supprimer l'enregistrement maître mais sans affecter les enregistrements détail associés. Non-isolé : Empêche la suppression de l'enregistrement maître lorsque des enregistrements détail associés existent.
Coordination	Différé : Les enregistrements détail ne sont pas automatiquement extraits. L'utilisateur doit naviguer jusqu'au bloc détail et exécuter explicitement une interrogation. Interrogation auto : Les enregistrements détail sont extraits lorsque l'utilisateur navigue jusqu'au bloc détail associé . Fait partie du paramètre Différé. Interdiction d'opération sans maître : Empêche l'insertion ou l'interrogation d'enregistrements dans le bloc détail lorsqu'il n'y a aucun enregistrement maître associé.
Condition de jointure	Entrez une condition de jointure valide dans le champ multiligne. Celle-ci définit la relation entre le bloc maître indiqué dans la zone de texte Maître et le bloc détail indiqué dans la zone de texte Détail. Voir Indication de la condition de jointure d'une relation maître-détail. Exemple : entrepôt.id_région = id.région
REF objet	Indique une condition de jointure basée sur un objet existant à la fois dans le bloc maître et le bloc détail. Sélectionnez un objet dans la liste déroulante.


Exécuter les modules en asynchrone

Permet d'indiquer si les applications Forms que vous lancez à partir de Designer sont exécutées de manière synchrone ou asynchrone par rapport à Designer lui-même :

•	Lorsque cette option est désactivée, les applications Forms exécutées à partir de Designer sont synchrones - c'est-à-dire que vous ne pouvez pas utiliser Designer tant que vous n'êtes pas sorti de l'application Forms.

•	Lorsque cette option est activée, les applications Forms exécutées à partir de Designer sont asynchrones - c'est-à-dire que vous pouvez alterner entre Designer et l'application Forms.

Lorsque vous exécutez une application Forms synchrone, Oracle Forms signale les éventuelles erreurs de démarrage de Runform en affichant un message d'alerte dans Designer. Lorsque vous exécutez une application Forms asynchrone, cette communication entre Runform et Designer n'existe pas, et les erreurs de démarrage de Runform ne sont pas signalées dans Designer.


Enregistrer

Permet d'indiquer si Oracle Forms enregistre les définitions en cours lorsque vous acceptez la boîte de dialogue d'options. Lorsque Enregistrer est activé, Oracle Forms enregistre les options en cours dans le fichier d'options par défaut (sur la plupart des plates-formes, le fichier PREFS.ORA). Chaque fois que vous lancez Designer, Oracle Forms lit les valeurs du fichier d'options.


Enregistrer avant de générer

Permet d'indiquer si Oracle Forms enregistre automatiquement le module en cours lorsque vous choisissez Fichier, Générer.


Supprimer les messages d'aide

Permet d'indiquer si les messages d'aide sont supprimés lorsque vous utilisez les fonctions de conception de Designer.


Utiliser l'éditeur système

Permet d'indiquer l'éditeur qu'utilise Oracle Forms lorsque vous appelez un éditeur à partir d'un champ multiligne d'une fenêtre de propriété ou d'une fonction de conception. Lorsque cette fonction est désactivée, Oracle Forms affiche son propre éditeur par défaut. Lorsqu'elle est activée, Oracle Forms affiche l'éditeur système par défaut défini dans votre système.

Remarque : Si cette option est activée et si vous utilisez un éditeur avec un format de document natif, vous devez enregistrer le document en texte ASCII (avec sauts de ligne) et non dans le format de cet éditeur.


Traitement par tableau

Lorsque vous supprimez le traitement par tableau, Oracle Forms demande à la base de données de ne retourner, du serveur au client, qu'une ligne de résultat d'interrogation à la fois.

Lorsque le traitement par tableau est supprimé, le premier enregistrement extrait s'affiche généralement plus rapidement que si vous aviez extrait un certain nombre d'enregistrements avec le traitement par tableau. Cependant, le temps total nécessaire pour extraire et afficher un certain nombre d'enregistrements est plus court avec le traitement par tableau, car le réseau est généralement moins chargé.


Mettre enreg. tampon dans fichier

Permet de limiter le nombre d'enregistrements stockés dans la mémoire tampon au minimum autorisé pour les lignes affichées, plus une constante (pour chaque bloc). Si, à la suite d'une interrogation, le nombre d'enregistrements extraits par un bloc dépasse cette limite, Oracle Forms stocke les enregistrements supplémentaires dans un fichier temporaire sur disque.

La définition de cette préférence économise de la mémoire de Runform, mais risque de ralentir le traitement en raison du nombre d'entrées/sorties sur disque.


Mode débogage

Permet d'appeler le mode débogage pour la session Runform. Lorsque vous exécutez une application Forms en mode débogage, le Débogueur apparaît au départ pour vous permettre de créer des actions de débogage.


Afficher le menu Bloc

Permet d'afficher automatiquement le menu Bloc comme premier écran (après l'écran de connexion, s'il est affiché), au lieu de l'application Forms.


Optimiser traitement SQL

Permet d'indiquer qu'Oracle Forms doit optimiser le traitement des instructions SQL dans les déclencheurs de type V2 par le partage des curseurs de base de données.

Par défaut, Oracle Forms attribue un curseur de base de données distinct à chaque instruction SQL qu'une application Forms exécute explicitement dans un déclencheur V2, ce qui améliore le traitement, car les instructions de chaque curseur ne doivent être analysées que la première fois qu'elles sont exécutées au cours d'une session Runform, et non à chaque fois.

Lorsque vous désactivez cette option, Oracle Forms attribue un curseur unique à toutes les instructions SQL dans les déclencheurs V2. Ces instructions partagent ou réutilisent ce curseur, ce qui économise de la place en mémoire, mais ralentit le traitement, car les instructions SQL doivent être analysées chaque fois qu'elles sont exécutées.

Vous pouvez affiner ce comportement en utilisant la caractéristique d'étape de déclencheur Nouvelle zone de curseur. Si, lors d'une étape de déclencheur contenant une instruction SQL, cette caractéristique est activée, Oracle Forms attribue un curseur distinct à l'instruction, ce qui annule et remplace le paramètre "Optimize SQL" pour cette instruction.


Optimiser traitement transactionnel

Permet d'optimiser le traitement transactionnel.

Par défaut, Oracle Forms attribue un curseur de base de données distinct à chaque instruction SQL qu'une application Forms exécute implicitement pendant l'enregistrement ou l'interrogation des données, ce qui améliore le traitement, car les instructions de chaque curseur ne sont analysées que la première fois qu'elles sont exécutées au cours d'une session Runform, et non à chaque fois.

Notez que les curseurs attribués aux instructions d'interrogation SELECT doivent être analysés chaque fois qu'ils sont exécutés. Cette exception à la règle est due au fait que les interrogations peuvent varier d'une exécution à l'autre.

Lorsque vous désactivez cette option, Oracle Forms n'attribue un curseur distinct qu'à chaque instruction d'interrogation SELECT. Toutes les autres instructions SQL implicites partagent ou réutilisent les curseurs, ce qui économise de la place en mémoire, mais ralentit le traitement car toutes les instructions INSERT, UPDATE, DELETE et SELECT FOR UPDATE doivent être analysées chaque fois qu'elles sont exécutées.


Mode interrogation seulement

Permet d'appeler l'application Forms en Mode interrogation seulement. L'activation de cette préférence équivaut à utiliser le sous-programme intégré CALL_FORM(query_only).


Mode silencieux

Permet d'appeler le Mode silencieux pour la session Runform. Dans ce mode, les messages ne déclenchent pas de signal sonore. Vous pouvez demander explicitement que le signal soit déclenché par un appel au sous-programme intégré BELL. La valeur par défaut (quiet=no) déclenche le signal sonore. Pour le supprimer, activez le Mode silencieux.


Statistiques

Permet d'afficher à la fin de la session un message indiquant le nombre maximum de curseurs simultanés qui ont été utilisés pendant la session. Ce message apparaît sur l'écran du terminal et non dans la ligne de message.

Cette préférence envoie également à la base de données la commande :

ALTER SESSION SET SQL_TRACE TRUE

qui active la fonction de traçage SQL pour la session en cours et affiche le répertoire des fichiers trace sur le serveur.

Si vous exécutez une application Forms à partir de Designer et si vous voulez utiliser cette fonction, activez la préférence Statistiques de Runform.


Paramètres de règles

Description :

La boîte de dialogue de paramètres de règles vous permet de définir les options d'unités de règle, de définition de grille et de points magnétiques.

Cette boîte de dialogue contient les options suivantes :

Taille cellule de caractère (points)	Permet de définir la hauteur et la largeur d'une cellule de caractère lorsque l'option Unité est paramétrée sur Cellule de caractère. La largeur et la hauteur sont exprimées en points. Lorsque la propriété Coordonnée d'application Forms du module d'application Forms est paramétrée sur Cellule de caractère, la largeur et la hauteur de la cellule de caractère de l'Editeur de présentation sont celles de la cellule de caractère de l'applications Forms. Sinon, les valeurs par défaut de largeur et de hauteur sont celles de la police par défaut.
Pas de grille	Cette option précise la distance (mesurée dans l'unité de règle indiquée dans le champ Unité) devant séparer deux lignes de grille dessinées dans l'Editeur de présentation. Par exemple, si l'unité de règle est définie sur pouces et que le pas de grille est défini à 5, les lignes de grille apparaîtront tous les 5 pouces. Un pas de grille de 0,25 entraîne le tracé de quatre lignes de grille par unité de règle (par exemple, une ligne de grille tous les quarts de pouce, dans les conditions indiquées ci-dessus).
Nombre de points magnétiques par pas de grille	Cette option précise le nombre de points magnétiques existant par ligne de grille. Ces points magnétiques sont utilisés lors du glisser-déplacer lorsque l'option Grille magnétique est sélectionnée (sous le menu Affichage). Par exemple, si l'option Unité est définie sur pouces, et que vous paramétrez Pas de grille sur 1 et Nombre de points magnétiques par pas de grille sur 8, un point magnétique sera placé à chaque huitième de pouce. Si le nombre de points magnétiques par pas de grille est défini sur 2, des points magnétiques se trouveront tous les demi-pouce. Choisissez 1 pour que les points magnétiques coïncident avec les lignes de grille. Cette fonction vous permet de créer une grille magnétique plus granulaire que les lignes de grille définies par l'option Pas de grille. Activez l'option Autre et entrez une valeur dans la zone de texte du même nom pour préciser un numéro personnalisé.
Unité	Cette option précise l'unité de mesure utilisée pour les règles affichées dans l'Editeur de présentation. L'unité par défaut est celle définie pour l'application Forms en cours, comme l'indique la propriété Système de coordonnées.


Paramètres de présentation

Description :

La boîte de dialogue de paramètres de présentation permet d'indiquer la taille et l'orientation de page de l'espace de travail de l'Editeur de présentation.

L'espace de travail est la partie de la fenêtre de l'Editeur de présentation dans laquelle vous créez et manipulez des éléments, du texte graphique et des images. Sa taille est indépendante de celle de la fenêtre de l'Editeur de présentation : elle peut être plus grande ou plus petite que la fenêtre intégrale. Si l'espace de travail est plus grand que la fenêtre de l'Editeur de présentation, faites défiler la fenêtre pour afficher d'autres parties de l'espace de travail.

Cette boîte de dialogue contient les options suivantes :

Taille	Permet de définir la hauteur et la largeur de l'espace de travail, en pouces ou en centimètres. L'espace de travail est la partie de la fenêtre de l'Editeur de présentation dans laquelle vous pouvez créer des éléments et des objets standard. Lorsque les lignes de la grille sont affichées, elles s'inscrivent dans les limites de l'espace de travail. Les objets que vous créez en dehors de l'espace de travail peuvent ne pas être affichés correctement.
Orientation de page	Permet d'indiquer l'orientation d'impression des pages lorsque vous exécutez la commande Imprimer Fenêtre. L'orientation de page peut être de gauche à droite ou de haut en bas.
Unités	Définit les unités de mesure à utiliser pour définir la taille.


Boîte de dialogue d'options de dessin - généralités

Description :

Cette boîte de dialogue permet de définir des options générales de dessin.

Cette boîte de dialogue contient les options suivantes :

Type d'extrémité	Permet d'indiquer comment doivent être dessinés les points d'extrémité des lignes (Bout à bout, Arrondi ou Projection).
Type de jointure	Permet d'indiquer comment doivent être dessinés les angles des rectangles (Arrondi, Biseau ou Angle droit).
Création d'objet	Permet d'indiquer comment les nouveaux objets doivent être dessinés lorsque vous cliquez et faites glisser un outil élément ou outil graphique standard. Choisissez Tracer à partir d'un angle pour que le clic initial de la souris marque l'angle d'un nouveau rectangle de la boîte englobante d'un nouvel objet. Choisissez Tracer à partir du centre pour que le premier clic de la souris marque le centre de la boîte englobante d'un nouvel objet.
Notes d'utilisation

Les options générales de dessin que vous choisissez s'appliquent aux objets sélectionnés et deviennent les options par défaut de ceux que vous créez par la suite.


Boîte de dialogue d'options de dessin - arc

Description :

Cette boîte de dialogue permet de définir l'apparence par défaut des objets arc :

Cette boîte de dialogue contient les options suivantes :

Remplissage de l'arc	Permet d'indiquer la façon dont est dessinée la région de remplissage de l'arc. Choisissez Secteurs pour que le remplissage soit dessiné à partir du centre du cercle décrit par l'arc. Choisissez Corde pour que le remplissage soit dessiné dans un segment de droite entre les deux extrémités de l'arc.
Fermeture de l'arc	Permet d'indiquer si les arcs doivent être dessinés fermés ou ouverts. Choisissez Fermé pour que le bord de l'arc soit dessiné sur la totalité du périmètre de la région de remplissage de l'objet de l'arc. Choisissez Ouvert pour que le bord de l'arc entoure uniquement l'arc lui-même.
Les options de dessin d'arc s'appliquent aux objets d'arc actuellement sélectionnés et deviennent les options par défaut des arcs créés par la suite.

Notes d'utilisation

Vous pouvez masquer la région de remplissage d'un arc en appliquant le motif transparent à la région de remplissage.


Options de dessin - texte - Boîte de dialogue

Description :

Cette boîte de dialogue permet de définir les options ayant une incidence sur l'affichage des objets texte.

Cette boîte de dialogue contient les options suivantes :

Boîte englobante prédéfinie	Lorsque cette option est activée, la boîte englobante d'un objet texte peut être redimensionnée indépendamment du texte qu'elle contient (si la case Boîte englobante variable est cochée). Lorsque cette option est désactivée, la boîte englobante d'un objet texte est seulement redimensionnée pour s'adapter au texte.
Origine horizontale	Permet d'indiquer comment sont alignés horizontalement les objets texte (A gauche, Au centre ou A droite).
Texte invisible	Permet d'indiquer si le texte d'un objet texte est affiché ou masqué.
Boîte englobante variable	Permet d'indiquer si la boîte englobante des objets texte peut être redimensionnée. Cette option est désactivée lorsque l'option Boîte englobante prédéfinie est désactivée. Lorsque l'option Boîte englobante variable est activée, vous pouvez créer des objets texte à l'aide de l'outil texte en cliquant et en faisant glisser jusqu'à ce que la boîte englobante ait la taille voulue. Le texte que vous entrez en mode Texte est automatiquement renvoyé à la ligne pour rester dans les limites de la boîte englobante.
Polices proportionnelles	Permet d'indiquer si l'échelle proportionnelle est appliquée au texte d'un objet texte lorsque vous redimensionnez l'objet lui-même.
Origine verticale	Permet d'indiquer comment sont alignés verticalement les objets texte (Coin supérieur, Au centre ou Coin inférieur).
Renvoi à la ligne	Lorsque l'option Boîte englobante prédéfinie est activée, l'option Renvoi à la ligne permet de déterminer si le texte d'un objet texte est renvoyé à la prochaine ligne pour s'adapter à la boîte englobante.
 Notes d'utilisation

Les options de dessin de texte s'appliquent aux objets texte actuellement sélectionnés et deviennent les options par défaut des objets texte créés par la suite.


Options de dessin - rectangles arrondis - Boîte de dialogue

Description :

La boîte de dialogue Rectangles arrondis permet de définir l'apparence des rectangles.

Cette boîte de dialogue contient les options suivantes :

Rayons de coin	Permet d'indiquer le facteur d'arrondi qu'Oracle Forms applique lors du dessin des angles d'un rectangle arrondi standard. Vous pouvez définir les rayons horizontal et vertical en pouces, en centimètres ou en points. Plus la valeur est élevée, plus l'arrondi de chaque coin est important.
Unités	Permet d'indiquer l'unité de mesure (Pouces, Centimètres, ou Points).
Notes d'utilisation

Les options de dessin des rectangles arrondis sont appliquées aux objets rectangle actuellement sélectionnés et deviennent les valeurs par défaut des objets rectangle créés par la suite.


Options de dessin - image - Boîte de dialogue

Description :

La boîte de dialogue Rectangles arrondis permet de définir l'apparence des rectangles.

Cette boîte de dialogue contient les options suivantes :

Qualité de l'image	Permet d'indiquer la qualité d'affichage de l'image de Oracle Forms. Plus la qualité est élevée, plus l'image est nette, mais plus la régénération de l'écran est lente.
Trame de l'image	Permet d'indiquer si Oracle Forms trame l'image. Le tramage est l'opération par laquelle Oracle Forms Form Builder simule les couleurs qui apparaissent dans l'image, mais qui n'existent pas dans la palette de couleurs en cours. Si l'image n'est pas tramée, Oracle Forms Form Builder utilise les couleurs qui se rapprochent le plus de celles de l'image. Plus la trame est élevée, plus l'image est nette, mais plus la régénération de l'écran est lente.


Préférences

Onglet Général

Enregistrer avant de générer

Générer avant d'exécuter

Supprimer les messages d'aide

Utiliser l'éditeur système

Palette de couleurs

Mode couleur

Imprimante

Onglet Accès

Accès

Chemin de sous-classement

Onglet Assistants

Boîte de dialogue de bienvenue

Assistants - pages de bienvenue

Onglet Runtime

Mettre enregistrement tampon dans fichier

Messages de débogage

Traitement par tableau

Optimiser traitement SQL

Optimiser traitement transactionnel

Statistiques

Afficher menu Bloc

Mode interrogation seulement

Mode silencieux

Nom du fichier HTML


Préférences - onglet Accès

Accès

Chemin de sous-classement


Préférences - onglet Assistants

Boîte de dialogue de bienvenue

Assistants - pages de bienvenue


Préférences - onglet Runtime

Mettre enregistrement tampon dans fichier

Messages de débogage

Traitement par tableau

Optimiser traitement SQL

Optimiser traitement transactionnel

Statistiques

Afficher menu Bloc

Mode interrogation seulement

Mode silencieux

Nom du fichier HTML


A propos des modules

  Rubriques connexes

Les applications Form Builder sont constituées de composants individuels d'application appelés modules. Les modules de Form Builder sont de quatre types :

Module Application Forms	Ensemble d'objets et de routines de code. Les objets pouvant être définis dans une application Forms sont les suivants : fenêtres, éléments texte (champs), cases à cocher, boutons, zones de message, listes de valeurs et blocs de code PL/SQL appelés déclencheurs.

Module Menu	Ensemble de menus (un objet menu principal et un ou plusieurs objets sous-menus) et de commandes d'élément menu qui constituent un menu d'application.

Module Bibliothèque PL/SQL	Ensemble de procédures nommées par l'utilisateur, de fonctions et de packages qui peuvent être appelés à partir d'autres modules de l'application.

Module Bibliothèque objet	Ensemble d'objets pouvant être utilisés pour développer des applications.

Vous pouvez développer une application en utilisant plusieurs modules Bibliothèque, Menu et Applications Forms. Les modules peuvent être enregistrés dans le système de fichiers ou dans la base de données, et convertis en formats binaire, texte ou exécutable compilé.


A propos des formats de fichier de module

  Rubriques connexes

Les modules Application Forms, Menu et Bibliothèque créés dans Form Builder sont stockés en format binaire, peuvent être enregistrés dans des fichiers ou dans la base de données et sont portables d'une plate-forme à l'autre.

Lorsque vous compilez un module binaire, Form Builder crée un fichier exécutable propre à la plate-forme utilisée. Vous pouvez également utiliser le Compilateur d'applications Forms pour créer un fichier texte lisible en clair et portable entre les différentes plates-formes.

Les suffixes de fichier de chaque type de module et format de stockage sont représentés ci-dessous :

Module	Binaire (Développement)	Texte	Exécutable
Application Forms	.FMB	.FMT	.FMX
Menu	.MMB	.MMT	.MMX
Bibliothèque PL/SQL	.PLL	.PLD	.PLX, PLL
Bibliothèque objet	.OLB	.OLT	NA

Les suffixes de fichier par défaut indiquent le type de module et le format de stockage :

.FMB	Module Application Forms binaire
.FMT	Module Application Forms texte
.FMX	Module Application Forms exécutable
.MMB	Module Menu binaire
.MMT	Module Menu texte
.MMX	Module Menu exécutable
.PLL	Module Bibliothèque PL/SQL binaire
.PLD	Module Bibliothèque PL/SQL texte
.PLX	Module Bibliothèque PL/SQL exécutable (ne contient pas de source)
.OLB	Module Bibliothèque objet binaire
.OLT	Module Bibliothèque objet texte


A propos de la compilation des modules

  Rubriques connexes

Avant qu'une application puisse être exécutée, vous devez compiler un fichier .FMX exécutable à partir d'un fichier de développement .FMB créé dans Form Builder. Lorsque vous générez un module Application Forms ou Menu, toutes les unités de programme non compilées sont créées et un fichier exécutable est créé.

Lorsque la préférence Générer avant d'exécuter est activée (valeur par défaut), Form Builder compile implicitement une application Forms lorsque la commande Programme [image] Lancer application Forms est appelée. Une application Forms peut également être compilée explicitement à partir soit de Form Builder, soit de la ligne de commande.

Lorsque vous compilez une application Forms, Form Builder compile le code PL/SQL non compilé qu'elle contient. Les erreurs de compilation entraînent l'échec de la génération. Dans ce cas, la boîte de dialogue Erreurs de génération apparaît avec les messages d'erreur correspondants. Par défaut, chaque fois que la commande de compilation est appelée, Form Builder ne compile que les unités de programme marquées comme non compilées.

Pour qu'une application utilisant plusieurs modules puisse être déployée correctement au moment de l'exécution, tous les fichiers .FMX, .MMX et .PLX utilisés par l'application Forms doivent être livrés.


A propos de la compilation de bibliothèques

  Rubriques connexes

A la différence des modules Application Forms et Menu, les modules Bibliothèque n'ont pas à être compilés explicitement pour créer un fichier exécutable séparé. Le fichier de bibliothèque .PLL que vous utilisez dans Form Builder comprend à la fois le code source nécessaire lors de la conception et le code exécutable compilé nécessaire lors de l'exécution. L'utilisation de la version .PLL de la bibliothèque est obligatoire lorsque vous voulez utiliser le Débogueur pour visualiser le code source au sein des unités de programme compilées.

Lorsqu'une bibliothèque est attachée à une application Forms, à un menu ou à une autre bibliothèque de Form Builder, la version .PLL de la bibliothèque est également attachée. Pour exécuter l'application à partir de Form Builder, il vous suffit de vérifier que les sous-programmes et les packages de la bibliothèque ont bien été compilés. Reportez-vous à Compilation de toutes les unités dans un module.

Lorsque vous êtes prêt à mettre en place votre application, vous pouvez compiler un fichier de bibliothèque .PLX à partir du fichier de bibliothèque .PLL. Le fichier .PLX ne comporte pas le composant de code source qui fait partie du fichier .PLL. Vous pouvez compiler un fichier .PLX à partir soit de Form Builder, soit de la ligne de commande.

Lorsque vous attachez une bibliothèque à un module dans Form Builder, vous attachez la version .PLL de la bibliothèque. Lors de l'exécution, Form Builder recherche un fichier .PLX portant ce nom dans les chemins de recherche par défaut. S'il n'en trouve pas, il recherche le fichier .PLL portant ce nom.


A propos du système de coordonnées

  Rubriques connexes

Le système de coordonnées sélectionné pour un module Application Forms définit les unités de mesure qui sont utilisées lors de la définition des coordonnées de taille et de position des objets de l'application Forms. Les unités du système de coordonnées d'une application Forms peuvent être soit des cellules de caractère, soit des unités réelles (centimètres, pouces, pixels ou points). Les unités par défaut sont les points.

Les coordonnées de taille et de position des objets sont indiquées dans Form Builder et par programme lors de l'exécution. Lorsque la taille et la position des objets sont modifiées par programme, Form Builder interprète les valeurs dans les unités du système de coordonnées de l'application Forms en cours. Par exemple, si les coordonnées d'une fenêtre sont exprimées en points, vous pouvez la redimensionner en appelant la procédure interne RESIZE_WINDOW, comme indiqué ci-dessous :

Resize_Window('my_window',20,25);

Lors de l'exécution, les valeurs de largeur et de hauteur (respectivement 20 et 25) sont interprétées en points, c'est-à-dire dans l'unité du système de coordonnées de l'application Forms en cours.


Conseils pour le choix d'unités du système de coordonnées

  Rubriques connexes

Il est recommandé de définir les unités de coordonnées avant de développer l'interface de l'application et de placer les objets sur les canevas.  Lorsque vous choisissez les unités du système de coordonnées, tenez compte des plates-formes runtime sur lesquelles l'application sera mise en place. En général, si l'application doit s'exécuter sur des systèmes en mode caractère et en mode interface graphique, vous devez utiliser des cellules de caractère.

Si vous exécutez l'application uniquement sur des plates-formes à interface graphique, comme Microsoft Windows, le choix d'un système de coordonnées est une question de préférences personnelles. Si vous la déployez sur plusieurs plates-formes à interface graphique ou sur la même plate-forme, mais avec des tailles ou des résolutions d'écran différentes, vous ne devez pas utiliser le pixel comme unité de coordonnées.


A propos de l'utilisation du système de coordonnées de cellules de caractère

  Rubriques connexes

Lorsque vous utilisez le système de coordonnées de cellules de caractère, toutes les dimensions d'objet et coordonnées de position sont exprimées en cellules de caractère représentées sous forme de nombres entiers. Form Builder n'accepte que les nombres entiers pour les propriétés de taille et de position et arrondit si nécessaire ces chiffres au nombre entier supérieur. Par exemple, si la valeur de la propriété de largeur d'un élément texte est paramétrée sur des cellules de 12,5 caractères, Form Builder arrondit automatiquement cette valeur à 13.

Lorsque le système de coordonnées est défini à Cellule de caractère, les propriétés Largeur/Hauteur de cellule de caractère affichent la taille réelle d'une cellule de caractère, en unités réelles en cours. Cette taille de cellule de caractère est fondée sur la taille de la police par défaut de l'unité utilisée pour le développement, et vous ne pouvez pas en modifier les valeurs de propriété de largeur et de hauteur.

L'utilisation des cellules de caractère dans l'Editeur de présentation peut donner des résultats imprévisibles, surtout si vous vous servez de la souris pour dessiner et positionner des éléments, du texte graphique et des images. En effet, le recours aux cellules de caractère produit un effet de grille magnétique, dont les incréments équivalent à la taille d'une cellule de caractère.


A propos de l'utilisation du système de coordonnées d'unités réelles

  Rubriques connexes

Les propriétés Largeur et Hauteur de cellule de caractère indiquent les dimensions de la police par défaut en unités réelles. Si vous développez en unités réelles et que vous envisagiez d'utiliser la police par défaut dans votre application Forms, vous aurez intérêt à garder ces dimensions présentes à l'esprit lorsque vous créerez des éléments et des graphiques standard affichant du texte.

Si vous travaillez en unités réelles, assurez-vous que la largeur et la hauteur de la boîte englobante de l'élément texte sont compatibles avec la taille de la police appliquée à l'élément texte. Notez également que, sur certaines plates-formes, la présence d'un cadre d'objet peut diminuer la place disponible pour l'affichage du texte. Par exemple, la définition de la propriété Relief d'un élément texte peut diminuer le nombre de caractères que l'élément peut afficher.


A propos de la conversion d'unités de système de coordonnées

  Rubriques connexes

Lorsque vous changez le système de coordonnées d'une application Forms, Form Builder convertit toutes les valeurs de taille et de position d'objet dans les nouvelles unités de mesure. La conversion en unités différentes peut entraîner une perte de précision. Lors de la conversion d'une unité réelle en une autre, la perte de précision est généralement dépourvue de signification.

Cependant, la conversion d'unités réelles en cellules de caractère risque de modifier la présentation de l'application Forms. Form Builder arrondit toutes les valeurs à la valeur de cellule de caractère la plus proche et peut modifier notablement la taille et la position des objets dans votre interface.

Remarque : Form Builder ne convertit pas automatiquement les valeurs de taille ou de position indiquées en code PL/SQL (déclencheurs, sous-programmes et autres). Il interprète ces valeurs dans les unités de coordonnées en vigueur lors de l'exécution.

Par exemple, dans le cas d'une application Forms développée avec le pixel comme unité système de coordonnées et contenant du code PL/SQL qui modifie explicitement la largeur d'une zone de texte de l'application de 3 unités, si l'unité système de coordonnées réelle de l'application est ensuite convertie de pixels en pouces, le code, à l'exécution, modifie la largeur de la zone de texte de 3 pouces.


A propos de l'échelle de police par défaut

  Rubriques connexes

La propriété Echelle de police par défaut ne s'applique que dans le système de coordonnées de cellules de caractère. Lorsqu'elle est définie à Oui (valeur par défaut), Form Builder met à l'échelle toutes les dimensions de taille et de position en fonction de la taille de la police par défaut utilisée sur l'unité en cours.

Si vous utilisez au moment de l'exécution la même unité qu'à la conception, la définition de Echelle de police par défaut à Oui ou à Non est sans effet. Cependant, si vous déployez une application Forms sur une unité d'exécution différente, la propriété Echelle de police par défaut détermine la mise à l'échelle des dimensions de taille et de position en fonction de la police par défaut de l'unité utilisée lors de l'exécution, ou de la taille indiquée par les valeurs de largeur et de hauteur de cellules de caractère, indiquées dans la zone de message Descriptions coordonnées :

•	Lorsque Echelle de police par défaut est définie à Oui, Form Builder met les objets à l'échelle en fonction de la taille de la police par défaut utilisée lors de l'exécution. Dans ce cas, les éléments texte et les autres objets sont "agrandis" et "réduits" pour tenir compte de la taille de la police par défaut utilisée lors de l'exécution.

•	Lorsque Echelle de police par défaut est définie à Non, Form Builder ne tient pas compte de la police utilisée lors de l'exécution et met les objets à l'échelle en fonction de la taille de la police par défaut utilisée lors de la conception. Dans ce cas, les éléments et les graphiques standard semblent mis à l'échelle indépendamment de la police par défaut utilisée lors de l'exécution. Par exemple, un élément texte peut apparaître beaucoup plus grand ou plus petit que les caractères qu'il affiche.


Indication du système de coordonnées

  Rubriques connexes

Pour indiquer le système de coordonnées d'une application Forms :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet du module Application Forms pour afficher la Palette de propriétés.

2	Dans la Palette de propriétés, cliquez deux fois sur la propriété Système de coordonnées pour faire apparaître la boîte de dialogue correspondante.

3	Si vous voulez utiliser les unités de cellules de caractère, définissez la propriété Système de coordonnées à Caractère. Pour utiliser les unités réelles, définissez Système de coordonnées à Réel, puis sélectionnez les unités voulues dans la liste instantanée Unités réelles.


Compilation d'un module pour créer un fichier exécutable

  Etape suivante	    Rubriques connexes

Pour compiler un module à partir de Form Builder :

1	Vérifiez que le module à compiler est ouvert dans Form Builder. Si vous avez ouvert plusieurs modules, définissez le module en cours en sélectionnant l'un des objets qu'il contient.

2	Sélectionnez Fichier [image] Administration [image] Compiler fichier.

Si la génération réussit, le message "Module compilé avec succès" est affiché dans la barre d'état.


Compilation automatique d'un module

  Rubriques connexes

Pour compiler automatiquement une application Forms exécutée à partir de Form Builder:

1	Choisissez Outils [image] Préférences.

2	Cochez la case de préférence Générer avant d'exécuter (valeur par défaut).

3	Activez l'application Forms que vous voulez exécuter.

4	Choisissez Programme [image] Lancer application Forms [image] Client/Serveur (ou Web).

Form Builder effectue une compilation implicite, puis exécute l'application Forms indiquée.

Remarque : L'exécution d'une application Forms lorsque la préférence Générer avant d'exécuter est définie à Oui ne compile ni menu ni bibliothèque attachée à cette application Forms. Vous devez compiler explicitement les menus et les bibliothèques à l'aide de la commande Fichier [image] Administration [image] Compiler fichier.


Compilation de toutes les unités dans un module

  Rubriques connexes

Pour compiler explicitement toutes les unités de programme dans un module :

1	Cliquez sur un module, une application Forms, un menu ou une bibliothèque PL/SQL dans le Navigateur d'objet.

2	Choisissez Programme [image] Compiler [image] Tout.


Compilation d'une bibliothèque .PLL

Pour compiler une bibliothèque .PLL :

Dans Form Builder :

1	Sélectionnez la bibliothèque dans le Navigateur d'objet.

2	Choisissez Programme [image] Compiler [image] Tout.

- Ou -

A l'aide du Compilateur d'applications Forms, utilisez les options module_type et compile_all comme indiqué ci-dessous :

ifcmp60 mylib.PLL [user ID/password] module_type=library compile_all=yes


Création d'un module

  Etape suivante	    Rubriques connexes

Pour créer un module :

1	Dans le Navigateur d'objet, cliquez sur le nœud souhaité : Applications Forms, Menus, Bibliothèques ou Bibliothèques d'objets.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.


Ouverture d'un module

  Rubriques connexes

Pour ouvrir un module :

1	Choisissez Fichier [image] Ouvrir pour afficher la boîte de dialogue Fichier ou Base de données.

2	Choisissez le module à ouvrir et cliquez sur OK.

Un module ouvert dans Form Builder apparaît sous le nœud approprié (Applications Forms, Menus, Bibliothèques ou Bibliothèques objet) dans le Navigateur d'objet.


Enregistrement d'un module

  Rubriques connexes

Pour enregistrer un module :

 Choisissez Fichier [image] Enregistrer.

Si vous enregistrez le module pour la première fois, la boîte de dialogue Fichier ou Base de données apparaît pour vous permettre d'indiquer le nom du module. Si vous enregistrez un module existant, Form Builder remplace la version enregistrée précédemment par la version en cours.

Remarque : Si vous utilisez plusieurs modules à la fois, Form Builder garde la trace des modifications que vous apportez à chacun d'eux. Lorsque vous émettez une commande Enregistrer, seul le module en cours est enregistré.


Fermeture d'un module

Pour fermer un module :

1	Sélectionnez un objet dans le module que vous voulez fermer.

2	Choisissez Fichier [image] Fermer.


Suppression d'un module

Pour supprimer un module stocké dans la base de données :

1	Choisissez Fichier [image] Administration [image] Supprimer.

2	(Etape facultative) Choisissez Extraire liste pour afficher tous les modules auxquels vous avez accès.

3	Entrez le nom du module à supprimer dans la zone de texte Supprimer ou choisissez un module dans la liste.

4	Cliquez sur OK pour supprimer le module.

Remarque : Pour supprimer un module du système de fichiers, utilisez les commandes du système de fichiers de votre plate-forme.


Changement de nom de module

Pour changer le nom d'un module stocké dans la base de données :

1	Choisissez Fichier [image] Administration [image] Renommer.

2	(Etape facultative) Choisissez Extraire liste pour afficher tous les modules auxquels vous avez accès.

3	Entrez le nom du module à renommer dans la zone de texte Ancien.

4	Entrez le nouveau nom du module dans la zone de texte Nouveau. N'ajoutez pas de suffixe.

5	Cliquez sur OK pour renommer le module.

Remarque : Pour renommer un module dans le système de fichiers, utilisez les commandes du système de fichiers de votre plate-forme.


Retour à la dernière version enregistrée d'un module

Pour revenir à la dernière version enregistrée d'un module :

 Choisissez Fichier [image] Rétablir.


Exécution d'une application Forms en mode Client/Serveur

  Etape suivante	    Rubriques connexes

Pour exécuter une application Forms en mode Client/Serveur :

1	Définissez le module d'application Forms que vous voulez exécuter comme module en cours en sélectionnant l'un des objets qu'il contient.

2	Choisissez Programme [image] Lancer application Forms [image] Client/Serveur.

Si la case de préférence Générer avant d'exécuter est cochée, Form Builder compile d'abord l'application Forms pour créer un fichier .FMX, puis exécute cette application à l'aide de Forms Runtime. Si la case Générer avant d'exécuter n'est pas cochée, Form Builder recherche dans le répertoire courant un fichier .FMX ayant le même nom que l'application Forms actuelle avant d'exécuter cette application à l'aide de Forms Runtime.


A propos de l'aperçu des applications Forms basées sur le Web

  Rubriques connexes

Lorsque vous utilisez le Web Previewer pour exécuter vos applications Forms, leur apparence et leur comportement sont les mêmes que si vous les exécutiez depuis un serveur Web. Le Web Previewer est un outil permettant de tester les applications Forms destinées à Internet sans les déployer réellement depuis un serveur. Toutes les fonctionnalités web sont activées et vous pouvez créer un fichier HTML de base pour exécuter l'application Forms avec les paramètres client personnalisés de la mini-application. Si vous utilisez votre propre fichier HTML de base, vous pouvez indiquer les options personnalisées du Web Previewer qui restent constantes durant l'intégralité du développement.

Pour plus d'informations sur le déploiement d'applications sur le Web, et notamment sur la création d'un fichier HTML de base, reportez-vous à au manuel Guidelines for Building Applications.

Le Web Previewer n'est actuellement disponible que sur les plates-formes Microsoft Windows.


Aperçu d'une application Forms basée sur le Web

  Rubriques connexes

Pour exécuter une application Forms dans le Web Previewer :

1	Définissez le module d'application Forms que vous voulez exécuter comme module en cours en sélectionnant l'un des objets qu'il contient.

2	Choisissez Programme [image] Lancer application Forms [image] Web,

OU

cliquez sur le bouton Lancer application Forms en mode Web [image] dans le Navigateur d'objet ou dans l'Editeur de présentation.

Si la case de préférence Générer avant d'exécuter est cochée, Form Builder compile d'abord l'application Forms pour créer un fichier .FMX, puis exécute cette application à l'aide du Web Previewer. Si la case Générer avant d'exécuter n'est pas cochée, Form Builder recherche dans le répertoire courant un fichier .FMX ayant le même nom que l'application actuelle avant d'exécuter cette application à l'aide du Web Previewer.

Si vous avez défini une préférence pour le fichier HTML, ce fichier sera utilisé pour l'exécution de l'application dans le Web Previewer.

Remarque : Le Web Previewer n'est actuellement disponible que sur les plates-formes Microsoft Windows.


Exécution d'une application Forms à partir de la ligne de commande

  Rubriques connexes

Pour exécuter une application Forms à partir de la ligne de commande :

Entrez le nom de l'exécutable Forms Runtime (IFRUN32 sur Microsoft Windows), suivi des paramètres appropriés :

ifrun60 [nom_module] [idutil/motdepasse] [paramètres]

Par exemple :

ifrun60 appcli scott/tiger statistics=yes

Pour exécuter une application Forms à partir de l'icône de programme :

1	Sous Microsoft Windows, cliquez deux fois sur l'icône Forms Runtime.

2	Dans la boîte de dialogue qui apparaît, entrez le nom de l'application Forms à exécuter et indiquez les informations de connexion à la base de données.

3	Cliquez sur OK.

Remarque : N'exécutez pas de fichiers exécutables de menu et de bibliothèque indépendamment des applications Forms, mais associez-les à une application Forms lors de la conception en définissant les propriétés appropriées. Lorsque vous exécutez l'application Forms, Form Builder charge les fichiers de menu et de bibliothèque associés (fichiers .MMX and .PLL) nécessaires.


A propos de la conversion en format texte de modules en format binaire

  Rubriques connexes

Dans Form Builder, les modules peuvent être convertis du format binaire en format texte, et vice versa. Par exemple, des modules Application Forms, Menu et Bibliothèque peuvent être convertis en format binaire (.FMB, .MMB, .PLL) en format texte (.FMT, .MMT, .PLD). La version texte d'un module est un fichier lisible en clair qui décrit ses objets et son code.

La conversion d'un module en crée une nouvelle version et garde la version en cours intacte. Par exemple, lorsque vous convertissez un fichier binaire (.FMB) en fichier texte (.FMT), vous avez, une fois la conversion exécutée, le fichier .FMT et le fichier .FMB d'origine.

La commande de conversion appelle le composant du Compilateur Forms de Forms Developer.

Remarque : La modification des fichiers .FMT, .MMT et.PLD n'est pas prise en charge par Oracle.


Conversion en format texte d'un module en format binaire

  Rubriques connexes

Pour convertir un module :

1	Choisissez Fichier [image] Administration [image] Convertir.

2	Indiquez le type et le nom du module à convertir, ainsi que le sens de la conversion : Binaire-texte (par exemple .FMB [image].FMT) ou Texte-binaire (.FMT [image].FMB).

3	Cliquez sur Convertir.


A propos de la préférence Accès

  Rubriques connexes

Les modules peuvent être enregistrés et chargés à partir du système de fichiers ou de la base de données, en définissant la préférence Accès.

Par défaut, la préférence Accès est définie à Fichier, et Form Builder considère que les modules seront ouverts à partir du système de fichiers et non de la base de données. Pour que vous puissiez accéder aux modules stockés dans la base de données, la préférence de conception Accès doit être paramétrée sur Base de données ou sur Demander.

Lorsqu'un module a été enregistré, dans le système de fichiers ou dans la base de données, le changement de préférence Accès n'a aucun effet sur les enregistrements ultérieurs de ce module. Un module est toujours enregistré sur la source à partir de laquelle il a été ouvert ou sur laquelle a été effectuée la dernière copie via la commande Enregistrer sous.

Boîte de dialogue Filtre Lorsque la préférence Accès est paramétrée sur Demander, Form Builder vous invite à indiquer l'emplacement (système de fichiers ou base de données) et le type de module à chaque ouverture et enregistrement de module. La boîte de dialogue Filtre comprend les options suivantes :

Accès objet :	Détermine si Form Builder affiche la boîte de dialogue Fichier ou Base de données lorsque vous enregistrez ou ouvrez un module. Paramétrez cette option sur Base de données ou sur Système de fichiers.
Afficher :	Indique les fichiers/modules affichés dans la boîte de dialogue Fichier ou Base de données qui apparaît lors de l'enregistrement, de l'ouverture, de la suppression ou du changement de nom d'un module. Paramétrez cette option sur Tous les fichiers, Applications Forms ou Menus.


Définition de la préférence Accès

Pour définir la préférence Accès :

1	Choisissez Outils [image] Préférences.

2	Cliquez sur l'onglet Accès.

3	Définissez Accès à Fichier, Base de données ou Demander.

•	Choisissez Fichier si vous voulez que tous les modules soient enregistrés et chargés à partir du système de fichiers.

•	Choisissez Base de données si vous voulez que tous les modules soient enregistrés et chargés à partir de la base de données.

•	Choisissez Demander si vous voulez que Form Builder affiche la boîte de dialogue Filtre qui vous demande de choisir entre Fichier et Base de données chaque fois que vous enregistrez ou ouvrez un module existant.

4	Cliquez sur OK.


Accès à des sources de données non Oracle

  Rubriques connexes

Via Oracle Open Client Adapter (OCA), votre application peut se connecter à toute source de données ODBC. Des informations particulières vous sont fournies concernant les sources de données énumérées ci-dessous.

Cliquez sur la source de données à laquelle vous voulez accéder :

Personal Oracle Lite

Microsoft SQL Server  (versions 4.2, 6.0 et 6.5)

Microsoft Access  (version 2.0 et ultérieures)

Oracle Rdb  (versions 5.1, 6.1 et 7.0)

Sybase   (SQL Server version 4.9, System 10 et System 11)

Tandem NonStop SQL

Informix   (SE et Online versions 5.x, 6.x et 7.x)


Préparation pour l'utilisation de OCA (Open Client Adapter)

  Rubriques connexes

Pour configurer votre système en vue de l'utilisation de OCA :

1	Installez le serveur de base de données et le logiciel client nécessaires, y compris les bibliothèques réseau. Configurez votre base de données, créez les comptes de base de données et accordez aux utilisateurs les autorisations d'accès appropriées. Notez que pour certaines sources de données mono-utilisateurs et mono-ordinateurs, comme par exemple Microsoft Access, les notions de serveur ou de client de base de données n'interviennent pas et qu'aucune configuration particulière n'est requise (il vous faut cependant créer le fichier de base de données dans lequel stocker les tables de base de données).

2	Installez sur votre ordinateur client les pilotes ODBC nécessaires et configurez la source de données à l'aide de Microsoft ODBC Administrator (automatiquement installé avec les pilotes). Les pilotes ODBC Intersolv (pour SQL Server, Rdb, Sybase, Informix, Ingres et de nombreuses autres bases de données) sont installables à partir de votre CD d'installation. Vous pouvez également utiliser des pilotes écrits par Microsoft, IBM et d'autres fournisseurs de pilotes ODBC.


Accès à Personal Oracle Lite

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Personal Oracle Lite :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données utilisées par les composants de conception pour afficher des noms d'objets de base de données parmi lesquels effectuer une sélection. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt à vous connecter à la source de données Personal Oracle Lite, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Personal Oracle Lite, reportez-vous à la rubrique oca_info.pdf.


Init_Form est la routine OPENDB qui modifie automatiquement vos propriétés de niveau application Forms afin que votre application Forms puisse communiquer avec une source de données ODBC.


OCA.PLL se trouve dans votre répertoire ORACLE_HOME\oca20. Pour que Form Builder puisse le retrouver, vous devez ajouter le répertoire ORACLE_HOME\oca20 à la variable d'environnement FORMS50_PATH dans la base de registres.


Accès à Microsoft SQL Server

  Rubriques connexes	  Ouvre oca_info.pdf.

Pour accéder à Microsoft SQL Server :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt pour la connexion à la source de données Microsoft SQL Server, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd] Exemple

Pour plus d'informations sur l'accès à Microsoft SQL Server, reportez-vous à la rubrique oca_info.pdf.


Accès à Rdb
Accès à Oracle Rdb

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Oracle Rdb :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement). Attachez la bibliothèque OCA.PLL à votre application, puis créez un déclencheur Pre-Form ou When-New-Form-Instance comprenant la routine OPENDB.Init_Form.

7	Lorsque vous êtes prêt pour la connexion à la source de données Oracle Rdb, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Personal Rdb, reportez-vous à la rubrique oca_info.pdf.


Accès à Microsoft Access

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Microsoft Access :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	(Facultatif) Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration à l'aide de l'utilitaire UBT.

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

6	Lorsque vous êtes prêt pour la connexion à la source de données Microsoft Access, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Microsoft Access, reportez-vous à la rubrique oca_info.pdf.


Accès à Sybase

  Rubriques connexes 	  Ouvre oca_info.pdf.

Pour accéder à Sybase :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt pour la connexion à la source de données Sybase, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Sybase, reportez-vous à la rubrique oca_info.pdf.


Accès à Tandem NonStop SQL

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Tandem NonStop SQL :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt pour la connexion à la source de données Tandem NonStop SQL, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Tandem NonStop SQL, reportez-vous à la rubrique oca_info.pdf.


Accès à Informix

  Rubriques connexes 	  Ouvre oca_info.pdf

Pour accéder à Informix :

1	Configurez votre système pour l'utilisation de OCA (Open Client Adapter).

2	Lisez attentivement les notes de version et la documentation PDF (oca_info.pdf).

3	Exécutez les scripts SQL permettant de créer côté serveur des vues de dictionnaires de données qui affichent les noms d'objets de base de données parmi lesquels effectuer une sélection au moment de la conception. Remarque

UBT32.EXE utilisateur/motdepasse@ODBC:sourcedonnées[:nombd] @sqlscript  Exemple

Si nombd n'est pas précisé, les vues seront créées dans la base de données " courante " pour la connexion ODBC.

4	Lancez l'application Builder.

5	(Facultatif)  Exécutez les scripts SQL permettant de créer et de remplir les tables de démonstration. Exemple

6	(Form Builder seulement) Définissez à Oui la propriété Clé primaire pour chaque élément de données. Les éléments de données correspondent aux colonnes dans votre source de données.

7	Lorsque vous êtes prêt pour la connexion à la source de données Informix, entrez la chaîne de connexion suivante dans la boîte de dialogue Connexion :

[utilisateur[/motdepasse]]@ODBC:sourcedonnées[:nombd]  Exemple

Pour plus d'informations sur l'accès à Informix, reportez-vous à la rubrique oca_info.pdf.


A propos de OCA (Open Client Adapter)

  Ouvre oca_info.pdf.

OCA (Oracle Open Client Adapter) pour ODBC permet aux applications sous Microsoft Windows 3.1, Windows 95/98 et Windows NT d'accéder à des sources de données compatibles ODBC via des pilotes ODBC. OCA nécessite que le pilote ODBC soit compatible ODBC niveau 1. OCA utilise également certaines fonctions ODBC de niveau 2 en vue de meilleures performances, si cette possibilité est offerte par le pilote ODBC.

A l'aide d'OCA, une application peut accéder à différentes sources de données de façon homogène, ce qui permet à un développeur de concevoir une application capable de s'exécuter sans modifications sur une source de données parmi plusieurs possibles. L'application peut également être conçue en vue d'une source de données en particulier et tirer parti des fonctions propres à ce système.

OCA s'installe via l'installateur Oracle qui copie tous les fichiers nécessaires dans votre répertoire ORACLE_HOME. Un de ces fichiers, oca.pll, est une bibliothèque de fonctions PL/SQL que vous pouvez utiliser à partir d'applications pour :

•	ouvrir des connexions auxiliaires vers d'autres sources de données en sus de la connexion principale de l'application ;

•	exécuter des instructions SQL arbitraires et des appels de procédures stockées sur une connexion quelconque ;

•	récupérer des jeux de résultats à partir de procédures stockées non Oracle ;

•	obtenir les noms et versions de pilotes DBMS et ODBC d'une connexion donnée ;

•	adapter automatiquement les propriétés Application Forms et Bloc de données au moment de l'exécution, en fonction de la source de données.

Pour en savoir davantage sur ces fonctions, cliquez sur le bouton [image] en tête de cette rubrique.

Pour plus d'informations sur les autres fichiers install+s, reportez-vous au fichier relnotes


Par défaut, oca_info.pdf est installé dans ORACLE_HOME\TOOLS\DOC60\US. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


A propos de l'utilitaire UBT

OCA (Oracle Open Client Adapter) pour ODBC comprend un utilitaire de type SQL*Plus nommé UBT (Universal Backend Tester). UBT vous permet de manipuler des commandes SQL à l'intérieur de l'interpréteur ou via des fichiers de commandes.

L'exécutable de l'utilitaire UBT (UBT32.EXE pour Windows NT et Windows 95/98, et UBT.EXE pour Windows 3.1) est installé dans ORACLE_HOME\BIN.

Pour plus d'informations sur Oracle Client Adapter, reportez-vous à oca_info.pdf (comprend des informations sur l'utilitaire UBT).


Les notes sur la version d'OCA se trouvent dans le fichier RELNOTES.TXT du CD d'installation.


Par défaut, les informations relatives à l'accès à Personal Oracle Lite sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Ceci est facultatif pour le développement d'applications et n'est pas nécessaire au moment de l'exécution. Pour certaines bases de données (par exemple, Microsoft Access), les vues de dictionnaires de données ne peuvent pas être créées du fait d'une présentation inadaptée des informations du catalogue de bases de données et d'une absence de prise en charge de la création de vues. Dans ce cas, vous pouvez entrer les noms d'objets de base de données au moment de la conception au lieu de les sélectionner parmi une liste.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Personal Oracle Lite sont installés dans ORACLE_HOME\OCA20\SQL\POLITE :

polvudrp.sql	supprime toutes les anciennes versions des vues.

polvubld.sql	crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:polite_ds @polvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Personal Oracle Lite est installé dans ORACLE_HOME\OCA20\SQL\POLITE :

poldmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:polite_ds @poldmbld.sql


scott/tiger@ODBC:polite_ds


Par défaut, les informations relatives à l'accès à Microsoft SQL Server sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Microsoft SQL Server sont installés dans ORACLE_HOME\OCA20\SQL\SQLSRV :

sqsvudrp.sql	supprime toutes les anciennes versions des vues.

sqsvubld.sql	pour SQL Server version 4.2, crée les vues nécessaires.

sqs60bld.sql	pour SQL Server version 6.0, crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Microsoft SQL Server est installé dans ORACLE_HOME\OCA20\SQL\SQLSRV :

sqsdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:sqlserver_ds @sqsdmbld.sql


scott/tiger@ODBC:sqlserver_ds


Par défaut, les informations relatives à l'accès à Microsoft Access sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, le script SQL permettant la création de tables de démonstration pour Microsoft Access est installé dans ORACLE_HOME\OCA20\SQL\ACCESS :

accdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:access_ds @accdmbld.sql


scott/tiger@ODBC:access_ds


Par défaut, les informations relatives à l'accès à Oracle Rdb sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Oracle Rdb sont installés dans ORACLE_HOME\OCA20\SQL\RDB :

rdbvudrp.sql	supprime toutes les anciennes versions des vues.

rdbvubld.sql	crée les vues nécessaires.

rdbdual.sql	crée deux vues (pour la prise en charge de SYSDATE).


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Oracle Rdb est installé dans ORACLE_HOME\OCA20\SQL\RDB :

rdbdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:rdb_ds @rdbdmbld.sql


scott/tiger@ODBC:rdb_ds


Par défaut, les informations relatives à l'accès à Sybase sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Sybase sont installés dans ORACLE_HOME\OCA20\SQL\SYBASE :

sybvudrp.sql	supprime toutes les anciennes versions des vues.

sybvubld.sql	crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Sybase est installé dans ORACLE_HOME\OCA20\SQL\SYBASE :

sybdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:sybase_ds @sybdmbld.sql


scott/tiger@ODBC:sybase_ds


Par défaut, les informations relatives à l'accès à Tandem NonStop SQL sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant la création de vues de dictionnaires de données pour Tandem NonStop SQL sont installés dans ORACLE_HOME\OCA20\SQL\NONSTOP :

nssvudrp.sql	supprime toutes les anciennes versions des vues.

nssvubld.sql	crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Tandem NonStop SQL est installé dans ORACLE_HOME\OCA20\SQL\NONSTOP :

nssdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:nonstop_ds @nssdmbld.sql


scott/tiger@ODBC:nonstop_ds


Par défaut, les informations relatives à l'accès à Informix sont installées dans ORACLE_HOME\TOOLS\DOC60\US\oca_info.pdf. Si Adobe Acrobat Reader est installé dans le répertoire par défaut, cliquez sur le bouton [image] en tête de cette rubrique pour afficher ce document. Dans le cas contraire, lancez votre visualiseur PDF et ouvrez oca_info.pdf.


Par défaut, les scripts SQL permettant le création de vues de dictionnaires de données et de tables de démonstration pour Informix sont installés dans ORACLE_HOME\OCA20\SQL\INFORMIX :

infvudrp.sql	supprime toutes les anciennes versions des vues.

infvubld.sql	crée les vues nécessaires.


UBT32.EXE scott/tiger@ODBC:informix_ds @infvubld.sql


Par défaut, le script SQL permettant la création de tables de démonstration pour Informix est installé dans ORACLE_HOME\OCA20\SQL\INFORMIX :

infdmbld.sql	crée les tables de démonstration.

Le script SQL permettant de remplir les tables de démonstration est installé dans ORACLE_HOME\OCA20\DEMO :

demodata.sql	insère des données dans les tables de démonstration.


UBT32.EXE scott/tiger@ODBC:informix_ds @infdmbld.sql


scott/tiger@ODBC:informix_ds


Dépannage

Si une application qui fonctionnait avec Oracle échoue avec une autre source de données ODBC, l'explication la plus probable est que vous rencontrez une restriction ou une limitation d'ODBC ou de la source de données.

Pour afficher les instructions SQL émises par OCA et les messages générés par le pilote ODBC ou par la base de données :

1	Vérifiez que l'entrée suivante est définie dans le fichier ORACLE.INI sous Windows 3.1, ou dans la base de registres de Windows NT ou de Windows 95/98 :

•	UB=ORACLE_HOME\OCA20

2	Ajoutez les entrées suivantes dans le fichier ORACLE.INI sous Windows 3.1, ou dans la base de registres de Windows NT ou de Windows 95/98, sous SOFTWARE\ORACLE :

•	OCA_DEBUG_SQL=TRUE

•	OCA_DEBUG_ERROR=TRUE

3	Lancez votre application sur la source de données ODBC pour afficher les instructions SQL ou les messages d'erreur dans la fenêtre de débogage. Cliquez sur OK pour fermer la fenêtre de débogage et poursuivre le traitement.

4	Si vous ne parvenez pas à résoudre l'erreur, appelez l'assistance technique Oracle.


Messages OCA

Code	Libellé du message

30000	General OCA error.

30001	NULL hostdef.

30002	Function not supported.

30003	NULL username in connect string.

30004	NULL hostname in connect string.

30005	All cursors are in use.

30006	Error creating parse tree.

30007	NULL SQL statement.

30008	Memory allocation failed.

30009	Error processing bind variables.

30010	Oracle to ODBC datatype conversion error.

30011	ODBC to Oracle datatype conversion error.

30012	Error binding reference value.

30013	No parameters to bind.

30014	Hostname too long.

30015	Stored procedures not supported for this datasource.

30016	Sequences not supported by this database.

30017	Error logging on to non-Oracle database.

30018	Username or password too long.

30019	Error handling non-Oracle stored procedures.

30020	Stored procedure name is missing.

30021	Error preparing/executing SQL statement.

30022	Error retrieving column.

30023	Error fetching result set.

30024	Error retrieving column descriptors.

30025	Error getting number of columns in result set.

30026	Error retrieving procedure descriptors.

30027	Error setting ODBC connection/statement option.

30028	Error at commit/rollback.

30029	Error binding column.

30030	Error binding parameter.

30031	Error retrieving information about driver/database.

30032	Error freeing memory.

30033	Row status error.

30034	Table not found.

30035	Column not found.

30036	Invalid authorization specification.

30037	Data source not available.

30038	Invalid column number.

30039	Illegal bundled operation combination.

30040	Invalid cursor context.

30041	Bind variable does not exist.

30042	No data found.

30043	Fetched column value is NULL.

30044	Fetched column value was truncated.

30045	Error returning result data.

30046	No data source name specified.

30047	Unsupported transaction isolation level.

30048	Binding arrays not supported.

30049	Not logged on.

30050 	Error freeing SQL statement.

30051	Error fetching data.  You must re-execute after a commit for this datasource.

30052	Parameter value was truncated at execution.

31000	General ODBC error issued by the ODBC driver in use.

Si une erreur se produit et que l'application est incapable de lire le message dans le fichier des messages, vérifiez que l'entrée suivante est définie dans le fichier ORACLE.INI sous Windows 3.1, ou dans la base de registres de Windows NT ou de Windows 95/98 :

•	UB=ORACLE_HOME\OCA20


Fichier PDF
Document PDF

Pour afficher le document PDF, vous devez lancer votre visualiseur PDF et ouvrir le fichier oca_info.pdf à partir du répertoire dans lequel il est installé.


A propos du Navigateur d'objet

Le Navigateur d'objet permet un affichage hiérarchique des objets de tous les modules ouverts. Les objets sont groupés sous le noeud approprié. Par exemple, toutes les fenêtres définies dans un module application Forms apparaissent sous le noeud Fenêtre. Le noeud Fenêtre, à son tour, apparaît sous l'objet module application Forms approprié.

Les noeuds de niveau supérieur du Navigateur d'objet comprennent les applications Forms, les menus, les bibliothèques, les bibliothèques d'objets, les packages intégrés et les objets de la base de données. Tous les autres noeuds, ainsi que les objets qu'ils contiennent, sont mis en retrait pour indiquer qu'ils appartiennent à ces noeuds de niveau supérieur.

Les objets et les noeuds du Navigateur d'objet sont affichés avec un signe + ou - pour indiquer, respectivement, qu'ils sont développés ou réduits. Un signe + grisé indique un noeud qui ne contient pas encore d'objets de niveau inférieur. Une puce ronde précédant un objet atomique indique que celui-ci ne peut pas contenir d'objets de niveau inférieur.

Chaque objet du Navigateur d'objet est affiché avec une icône indiquant son type. Pour certains objets, cliquer deux fois sur l'icône appelle un éditeur approprié à ce type d'objet. Par exemple, cliquer deux fois sur l'icône objet d'un canevas appelle l'Editeur de présentation.

Dans le Navigateur d'objet, vous pouvez effectuer les opérations suivantes :

• développer et réduire des entrées pour localiser rapidement des objets ;

• sélectionner des objets ;

• créer et supprimer des objets ;

• copier et déplacer des objets à l'intérieur de modules ou d'un module à un autre ;

• passer d'une vue à une autre pour afficher les objets que vous voulez utiliser ;

• localiser rapidement des objets à l'aide de la recherche rapide ;

• afficher rapidement le code associé à des objets tels que des déclencheurs et des unités de programme.

Dans le Navigateur d'objet, vous pouvez sélectionner des commandes à partir du menu et de la barre d'outils. La barre d'outils permet d'accéder rapidement aux commandes. Cliquez une fois sur l'icône correspondant à la commande que vous voulez exécuter. Pour afficher une description instantanée d'une commande de la barre d'outils, faites passer le curseur sur l'icône sans cliquer avec la souris.

Informations d'état

Le Navigateur d'objet fournit également à l'utilisateur des informations sur l'état des unités de programme à l'aide des indicateurs suivants :

*   Si le nom d'une unité de programme est suivi d'un astérisque, cela signifie que l'unité a été modifiée depuis l'ouverture de la bibliothèque et qu'elle doit être recompilée.

@   Si le nom d'une unité de programme est suivi de ce symbole, cela signifie que l'unité n'a pas été modifiée depuis l'ouverture de la bibliothèque.


A propos de la synchronisation du Navigateur d'objet

Vous pouvez activer ou désactiver la fonction de synchronisation du Navigateur d'objet.

Lorsque la synchronisation est activée, le Navigateur d'objet et tout Editeur de présentation et Editeur de menu ouverts ont la même sélection en cours. Par exemple, si vous sélectionnez un bouton de l'Editeur de présentation, ce bouton devient aussi automatiquement la sélection en cours du Navigateur d'objet. De même, lorsque vous sélectionnez un élément de menu du Navigateur d'objet, cet élément devient la sélection en cours de l'Editeur de menu.

Lorsque la synchronisation est désactivée, la sélection d'un objet dans le Navigateur d'objet ou dans un éditeur ne met pas à jour la sélection en cours dans d'autres fenêtres.

Pour activer ou désactiver la fonction de synchronisation, configurez l'option correspondante dans le menu du Navigateur.

Remarque : Par défaut, la Palette de propriétés est toujours synchronisée sur la sélection en cours. Vous pouvez alterner entre l'activation et la désactivation de la synchronisation en cliquant sur le bouton Figer/libérer de la barre d'outils de la Palette de propriétés. Figer la Palette de propriétés est intéressant lorsque vous voulez que les palettes de propriétés soient ouvertes ensemble, pour que vous puissiez comparer côte à côte les propriétés de deux objets.


A propos des affichages du Navigateur d'objet

Le Navigateur d'objet peut afficher les modules selon l'un des deux affichages suivants : Organisation hiérarchique (par défaut) et Organisation visuelle. L'affichage détermine les objets qui sont affichés dans le Navigateur d'objet et la disposition de ces objets.

Organisation hiérarchique  En Organisation hiérarchique, tous les objets de l'applications Forms sont visibles, et la hiérarchie d'affichage correspond à la hiérarchie des objets de Form Builder : application Forms—bloc—élément. Les éléments et les relations appartiennent aux blocs ; les blocs appartiennent à des applications Forms ; les déclencheurs peuvent appartenir à des applications Forms, à des blocs ou à des éléments. Tous les autres objets de l'application Forms (fenêtres, éditeurs, groupes d'enregistrements, etc.) appartiennent à des applications Forms.

Organisation visuelle En Organisation visuelle, seuls sont affichés les fenêtres, les canevas et les éléments. Cette hiérarchie correspond à la hiérarchie des objets dans une fenêtre d'application Forms : fenêtre—canevas—élément. Les éléments sont attribués à des canevas ; les canevas sont attribués à des fenêtres. Chaque fenêtre peut avoir plusieurs canevas, et il peut y avoir plusieurs éléments dans un même canevas.

Lorsque le Navigateur d'objet est en Organisation hiérarchique, les éléments d'application Forms apparaissent sous les blocs auxquels ils sont attribués. Lorsque le Navigateur d'objet est en Organisation visuelle, les éléments d'application Forms sont classés sous les canevas sur lesquelles ils sont affichés.

Lorsqu'une application Forms contient des éléments qui ne sont pas attribués à un canevas (parce que leur propriété Canevas d'élément a la valeur <NULL>), ces éléments sont affichés sous le noeud Canevas NULL. Lorsque des canevas ne sont pas encore attribués à une fenêtre, ils sont affichés sous le noeud Fenêtre NULL.

Option Objets avec PL/SQL seuls Vous pouvez activer l'option de menu Objets avec PL/SQL seuls [image]. Par défaut, cette option est désactivée, et tous les objets sont visibles. L'activation de l'option Objets avec PL/SQL seuls masque tous les objets, sauf les objets de code (déclencheurs, unités de programme, etc.) et les objets auxquels des déclencheurs peuvent être attachés (application Forms, bloc, éléments).


Affichage du Navigateur d'objet

Pour afficher le Navigateur d'objet :

•	Choisissez Outils [image] Navigateur d'objet.


Changement d'affichage dans le Navigateur d'objet

Pour changer d'affichage dans le Navigateur d'objet :

•	Dans le Navigateur d'objet, choisissez Affichage [image], Organisation hiérarchique ou Organisation visuelle.


Navigation et sélection d'objets dans le Navigateur d'objet

Pour sélectionner des entrées du Navigateur d'objet, déplacez le curseur vers le haut ou vers le bas dans le Navigateur d'objet. L'entrée en cours peut être soit un noeud, soit un objet réel. Lorsque vous sélectionnez un objet, la Palette de propriétés est actualisée pour afficher les propriétés de cet objet.

Pour vous déplacer et sélectionner des objets dans le Navigateur d'objet, utilisez les touches suivantes :

Haut	Sélectionne le noeud ou l'objet précédent, affiché au-dessus de l'entrée en cours.

Bas	Sélectionne le noeud ou l'objet suivant, affiché au-dessous de l'entrée en cours.

Gauche	Sélectionne et réduit le noeud ou l'objet se trouvant au niveau précédant l'entrée en cours.

Droite	Sélectionne le noeud ou l'objet se trouvant au niveau suivant la sélection en cours, en développant les entrées réduites, si nécessaire. Si ce type d'objet n'existe pas, sélectionnez l'entrée se trouvant immédiatement sous le curseur.

Sélection d'objets à l'aide de la souris Pour sélectionner des noeuds et des objets, utilisez les techniques suivantes :

Sélection simple	permet de sélectionner une entrée du Navigateur d'objet en cliquant avec la souris ou en déplaçant le curseur à l'aide des touches de défilement. Lorsqu'aucune autre entrée n'est sélectionnée, la position du curseur indique la seule sélection en cours.

Sélection de plage	Majuscules-clic permet de sélectionner une plage d'entrées du Navigateur d'objet, c'est-à-dire toutes les entrées entre la position du curseur et le point de sélection. Les objets d'une sélection multiple doivent être de même type.

Sélection multiple	Ctrl-clic permet de sélectionner plusieurs entrées du Navigateur d'objet. Vous pouvez sélectionner autant d'objets que vous le désirez, en les ajoutant un à un. Pour annuler la sélection des objets, cliquez à nouveau sur le bouton de la souris tout en maintenant la touche Ctrl enfoncée.

Lorsque vous sélectionnez un seul objet, ses propriétés s'affichent dans la Palette de propriétés. Lorsque vous sélectionnez plusieurs objets dans le Navigateur d'objet, la Palette de propriétés affiche soit l'union soit l'intersection des propriétés des objets sélectionnés.

Navigation à l'aide de la liste contextuelle Lorsque vous vous déplacez vers le haut ou vers le bas dans le Navigateur d'objet, la liste contextuelle située en haut de la fenêtre du Navigateur d'objet affiche le nom de l'objet sélectionné, ses ancêtres dans la hiérarchie des objets et les noms de tous les modules ouverts. La sélection d'un objet de la liste vous fait passer à cet objet dans le Navigateur d'objet.


Développement et réduction d'objets dans le Navigateur d'objet

Pour localiser rapidement les objets sur lesquels vous voulez travailler, vous pouvez utiliser à la fois les touches de navigation et les commandes de développement et de réduction d'objets du Navigateur d'objet. Le développement d'une entrée dans le Navigateur d'objet rend visibles les objets préalablement masqués, parce qu'ils étaient réduits. Inversement, la réduction d'une entrée masque les objets qui étaient visibles en mode développé.

Les entrées du Navigateur d'objet sont précédées d'un signe plus, d'un signe moins ou d'une puce pour indiquer si l'entrée est développée ou réduite :

+ (plus)	L'entrée contient des objets de niveau inférieur qui sont masqués parce que l'entrée est réduite.

+ (grisé)	L'entrée ne contient pas encore d'objets de niveau inférieur.

- (moins)	L'entrée contient des objets de niveau inférieur qui sont visibles, car l'entrée est développée.

o (puce)	L'entrée est un objet atomique qui ne peut pas contenir d'objets de niveau inférieur.

Pour développer et réduire des entrées du Navigateur d'objet, utilisez les commandes de menu ci-après. Ces commandes ne sont valides que lorsque la sélection en cours est précédée d'un signe + ou -.

Navigateur [image] Développer	Développe les objets au niveau immédiatement inférieur à celui du ou des objet(s) sélectionné(s). Equivaut à cliquer sur + devant un noeud.
Navigateur [image] Réduire	Réduit les objets au niveau immédiatement inférieur à celui du ou des objet(s) sélectionné(s). Equivaut à cliquer sur le signe - devant un noeud.
Navigateur [image] Développer tout	Développe de manière récursive chaque entrée en dessous de l'entrée en cours. Equivaut à cliquer sur le signe + devant un noeud, tout en maintenant la touche Majuscules enfoncée.
Navigateur [image] Réduire tout	Réduit de manière récursive chaque entrée en dessous de l'entrée en cours. Equivaut à cliquer sur le signe - devant un noeud, tout en maintenant la touche Majuscules enfoncée.
Vous pouvez développer ou réduire une entrée du Navigateur d'objet en cliquant sur le signe + (plus) ou - (moins) qui le précède :

• Cliquez sur le signe + qui précède une entrée réduite pour développer les objets au niveau immédiatement inférieur à celui de l'objet en cours. Cette opération équivaut à la commande Développer. Pour activer Développer tout, utilisez Majuscules+clic.

• Cliquez sur le signe - qui précède une entrée développée pour réduire les objets au niveau immédiatement inférieur à celui de l'objet en cours. Cette opération équivaut à la commande Réduire. Pour activer Réduire tout, utilisez Majuscules+clic.

Développer/Réduire et Développer tout/Réduire tout Les commandes Développer et Réduire ne s'appliquent qu'aux entrées se trouvant immédiatement en dessous de l'entrée en cours. En revanche, les commandes Développer tout et Réduire tout sont récursives, ce qui signifie qu'elles développent ou réduisent les entrées se trouvant à chacun des niveaux en dessous de l'entrée en cours.

Après le développement d'une entrée réduite, certains objets de niveau inférieur peuvent rester masqués. Par exemple, lorsque vous développez un objet d'application Forms, tous les blocs de cette application sont visibles ; cependant, les éléments de chaque bloc (qui sont au niveau inférieur dans la hiérarchie des objets) restent masqués s'ils étaient préalablement réduits. Inversement, lorsque vous choisissez Développer tout, tous les objets et tous les noeuds se trouvant à chacun des niveaux en dessous de l'entrée en cours deviennent visibles.


Création et suppression d'objets dans le Navigateur d'objet

Pour créer un objet dans le Navigateur d'objet :

1	Sélectionnez un noeud ou un objet du type que vous voulez créer.

2	 Choisissez Navigateur [image] Créer ou cliquez sur le bouton Créer.

Form Builder insère le nouvel objet immédiatement après la sélection en cours.

Par exemple, pour créer une fenêtre, faites passer le curseur sur le noeud Fenêtres et choisissez Navigateur [image] Créer. La commande Créer n'est pas disponible lorsque plusieurs objets ont été sélectionnés.

Lorsqu'un noeud ne contient pas encore d'objet (il est précédé d'un signe + et grisé), vous pouvez créer un objet de ce type en cliquant deux fois sur +.


Suppression d'objets du Navigateur d'objet

Pour supprimer un objet du Navigateur d'objet

1	Sélectionnez le noeud ou l'objet à supprimer.

2	Choisissez Edition [image] Couper.

La commande Couper place l'objet dans le presse-papiers, pour que vous puissiez ultérieurement le coller dans un autre module.

Remarque : Lorsque la sélection en cours est un noeud, et non un objet, la commande Couper supprime tous les objets se trouvant sous ce noeud. Lorsque la sélection en cours est un module, la commande Couper ferme le module.


Changement de nom d'objet dans le Navigateur d'objet

Pour changer le nom d'un objet dans le Navigateur d'objet :

1	Sélectionnez l'objet en cliquant sur ce dernier ou en naviguant à l'aide des touches de défilement.

2	Cliquez sur le nom. Le curseur se transforme en curseur de saisie.

3	Modifiez le nom comme vous le désirez, puis appuyez sur Retour.

Vous pouvez également changer le nom d'un objet en sélectionnant l'objet et en définissant sa propriété Nom dans la Palette de propriétés.

Remarque : Vous ne pouvez pas modifier le nom des modules bibliothèque PL/SQL dans le Navigateur d'objet. Vous devez indiquer le nom de votre choix lorsque vous enregistrez le module bibliothèque à l'aide de la commande de menu Enregistrer sous.


Déplacement et copie d'objets dans le Navigateur d'objet

Pour déplacer et copier des objets dans des modules du Navigateur d'objet, vous pouvez utiliser les commandes suivantes :

• Pour déplacer la sélection en cours, faites-la glisser à l'endroit voulu. Vous pouvez également choisir Edition [image] Couper, faire passer le curseur à l'endroit voulu, puis choisir Edition [image] Coller.

• Pour copier la sélection en cours, faites-la glisser jusqu'à l'endroit voulu, tout en maintenant la touche Ctrl enfoncée. Vous pouvez également choisir Edition [image] Copier, faire passer le curseur à l'endroit voulu, puis choisir Edition [image] Coller.

• Pour couper ou copier tous les objets d'un noeud, faites passer le curseur sur ce noeud, puis choisissez Edition [image] Couper ou Edition [image] Copier.

Restrictions relatives aux destinations de Copier/Déplacer Lorsque vous déplacez et copiez des objets dans le Navigateur d'objet, notez que :

• Les objets peuvent être copiés d'un module à un autre, mais ne peuvent pas être déplacés d'un module à un autre.

• Vous devez faire glisser les objets ou les coller à l'endroit voulu dans la hiérarchie des modules. Par exemple, en Organisation hiérarchique, les éléments qui appartiennent aux blocs ne peuvent être copiés que sous d'autres blocs. De même, vous ne pouvez pas faire glisser un objet de fenêtre sous le noeud Paramètres, car cette opération ne serait pas logique.

Si vous faites glisser un objet sous un noeud non valide du Navigateur d'objet, Form Builder émet un signal sonore et interdit le déplacement.

• Seuls les objets de même type peuvent être déplacés au cours d'une sélection multiple.

Effets de l'Organisation hiérarchique des objets sur les opérations Copier/Déplacer Lorsque vous déplacez ou copiez un objet, vous déplacez ou copiez aussi tous les objets qui appartiennent à cet objet. Par exemple, si vous copiez un bloc, vous copiez aussi les déclencheurs attachés à ce bloc, les éléments appartenant à ce bloc et les déclencheurs attachés à ces éléments.

La distinction entre l'organisation hiérarchique des objets et les simples associations pouvant exister entre les objets est importante. Par exemple, les canevas sont affichés dans les fenêtres et chaque canevas est attribué à une fenêtre spécifique lors du développement. Cependant, le canevas n'appartient pas à la fenêtre. Les deux objets appartiennent à l'application Forms. La relation entre la fenêtre et le canevas n'est qu'une simple association que vous pouvez définir en sélectionnant la propriété Fenêtre du canevas.

Lorsque vous déplacez ou copiez un objet, seuls les objets appartenant à cet objet sont déplacés ou copiés. Les règles d'organisation hiérarchique des objets des modules d'application Forms peuvent être énoncées de la manière suivante : les éléments et les relations appartiennent aux blocs. Les déclencheurs peuvent appartenir aux éléments, aux blocs ou aux applications Forms. Tous les autres objets appartiennent aux applications Forms.

Les règles d'organisation hiérarchique des modules de menu sont encore plus simples : les éléments de menu appartiennent aux menus. Les menus appartiennent aux modules menu. Tous les autres objets appartiennent aux modules menu.

Les modules bibliothèque PL/SQL ne contiennent que des sous-programmes et des packages, qui appartiennent tous au module bibliothèque.


Recherche d'entrées du Navigateur d'objet via la fonction de recherche rapide

Vous pouvez utiliser la fonction de recherche rapide du Navigateur d'objet pour localiser rapidement des objets et des noeuds dans le Navigateur d'objet. Pour lancer une recherche, entrez la chaîne à rechercher dans le champ Rechercher, en haut de la fenêtre du Navigateur d'objet. Lorsque vous entrez un caractère, Form Builder fait passer le curseur sur la prochaine entrée du Navigateur d'objet qui correspond à l'expression classique <chaîne de recherche> * , où * est un caractère générique représentant un nombre quelconque de caractères.

Par exemple, lorsque le curseur est sur le noeud Application Forms et que vous entrez la lettre A dans le champ Rechercher, le curseur passe sur la première entrée qui commence par A (le noeud Alertes, par exemple). Si vous entrez ensuite le caractère C, le curseur passe à la première entrée qui commence par AC (l'élément ACHATS_REP, par exemple).

Si nécessaire, Form Builder développe les entrées réduites pour afficher un objet correspondant à la chaîne de recherche.

Les commandes de recherche du Navigateur d'objet sont les suivantes :

taper tout caractère	Lance ou continue une recherche et fait passer le curseur sur la prochaine entrée qui commence par les caractères correspondant à la chaîne de critères affichée dans le champ Rechercher.

Recherche avant	Lorsque vous avez entré une chaîne de recherche, recherche, entre l'entrée en cours et la fin du texte, la prochaine entrée qui correspond à la chaîne de recherche.

Recherche arrière	Lorsque vous avez lancé une recherche, recherche, entre l'entrée en cours et le début du texte, la prochaine entrée qui correspond à la chaîne de recherche.

La recherche est circulaire. Si Form Builder ne trouve aucune entrée, il poursuit la recherche à partir du début ou de la fin de la hiérarchie.


Pose d'un signet dans le Navigateur d'objet

Vous pouvez utiliser les commandes Ajouter signet et Atteindre signet pour marquer une entrée dans le Navigateur d'objet, puis y revenir ultérieurement. Vous pouvez poser un signet sur un noeud (Blocs, Déclencheurs, etc.) ou sur un objet (CLIENT, CDE, etc.).

Pour insérer un signet, faites passer le curseur sur l'entrée voulue et choisissez Navigateur [image] Ajouter signet.

Vous pouvez alors travailler dans le Navigateur d'objet et dans d'autres fenêtres. Pour revenir à l'entrée sur laquelle vous avez posé un signet, choisissez Navigateur [image] Atteindre signet. Si nécessaire, Form Builder développe les entrées réduites pour afficher celle qui comporte un signet.

Un signet reste posé jusqu'à ce que :

•	vous en posiez un nouveau en utilisant Navigateur [image] Ajouter signet ;

•	vous supprimiez l'objet comportant ce signet ;

• vous fermiez le module contenant le signet ;

• vous quittiez Form Builder.

Lorsque vous utilisez la fonction de partage de fenêtres, vous pouvez poser un signet dans chaque fenêtre. Vous ne pouvez cependant poser qu'un signet par fenêtre.


Utilisation de plusieurs fenêtres dans le Navigateur d'objet

Pour partager la fenêtre du Navigateur d'objet :

1	Cliquez sur la ligne noire au-dessus de la barre de défilement verticale ou sur la ligne noire à gauche de la barre de défilement horizontale. Le curseur de la souris change de forme lorsque vous êtes sur la barre de division.

2	Faites glisser la barre de division à l'endroit choisi dans la fenêtre du Navigateur d'objet.

Ajouter des barres de division permet de créer jusqu'à huit fenêtres différentes. Chaque fenêtre a ses propres barres de défilement. Une fois que vous avez partagé la fenêtre du Navigateur d'objet, vous ne pouvez pas diviser les fenêtres résultantes dans la  direction opposée.

Pour supprimer une barre de division, faites-la glisser en dehors de la fenêtre du Navigateur d'objet.


Fermeture du Navigateur d'objet

Pour fermer le Navigateur d'objet :

•	Choisissez Fichier [image] Fermer.


Rubriques relatives à la Palette de propriétés

A propos de la Palette de propriétés

Affichage de la Palette de propriétés

Commandes de la barre d'outils de la Palette de propriétés


A propos de la Palette de propriétés

La Palette de propriétés permet de définir les propriétés des objets que vous créez dans les modules application Forms et menu.

Lorsque vous sélectionnez un objet d'un éditeur ou du Navigateur d'objet, la Palette de propriétés est actualisée pour afficher les propriétés de cet objet. Par défaut, la liste des propriétés de la palette est synchronisée lorsque vous sélectionnez un autre objet. Vous pouvez activer ou désactiver la synchronisation d'une palette en cliquant sur le bouton Figer/libérer de la barre d'outils de la Palette de propriétés.

Si vous voulez comparer les propriétés de deux objets, vous pouvez appeler des Palettes de propriétés supplémentaires.

La Palette de propriétés offre les fonctions suivantes :

Liste de propriétés

Cette liste affiche, en 2 colonnes, les noms des propriétés et les valeurs des propriétés. Lorsqu'aucun objet n'est sélectionné, la liste est vide. Pour sélectionner des propriétés de la liste, cliquez sur celles-ci et naviguez en utilisant les touches de défilement vers le haut et vers le bas. Pour définir des propriétés dans la fenêtre de liste de propriétés, sélectionnez la propriété, puis saisissez-la ou cliquez deux fois, selon le cas.

Nom

Ce champ affiche le nom de l'objet sélectionné dans le Navigateur d'objet ou dans un éditeur. Il n'est pas affiché lorsqu'aucun objet n'est sélectionné ou que plusieurs objets sont sélectionnés simultanément.

Définition des contrôles de propriétés

Lorsque vous avez sélectionné une propriété dans la liste des propriétés, un champ texte, une liste instantanée ou le bouton Suite, s'affiche à côté de la propriété, de la manière suivante :

Un champ texte est affiché lorsque la propriété en cours peut être définie par l'entrée d'une valeur de texte. Pour les propriétés demandant des valeurs de texte plus longues, un bouton en forme d'icône, à côté du champ texte, appelle un éditeur modal.

Une liste instantanée est affichée pour les propriétés qui peuvent avoir la valeur Oui ou Non, ou qui ont un ensemble fixe de valeurs valides. Pour faire défiler les valeurs, cliquez deux fois de manière répétitive.

Le bouton Suite... est affiché lorsque la propriété en cours demande des valeurs plus complexes. Lorsque vous sélectionnez ce bouton, vous appelez une boîte de dialogue dans laquelle vous entrez les informations requises.


Affichage de la Palette de propriétés

Pour afficher la Palette de propriétés :

•	Choisissez Outils [image] Palette de propriétés.

Ou,

• Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet, à l'exception des objets de code et des vues-canevas. Si la Palette de propriétés est déjà affichée, cliquer deux fois la fait apparaître devant les autres fenêtres.

Pour appeler une seconde Palette de propriétés, cliquez deux fois sur l'icône objet tout en maintenant la touche Majuscules enfoncée.

Ou,

•	Dans l'Editeur de présentation, cliquez deux fois sur un élément.

Ou,

• Cliquez sur l'objet voulu, puis choisissez Propriétés dans le menu instantané à l'aide du bouton droit de la souris.


Commandes de la barre d'outils de la Palette de propriétés

  Rubriques connexes

La barre d'outils permet d'accéder rapidement aux commandes. Cliquez une fois sur l'icône de la commande que vous voulez exécuter.

Copier propriétés	permet de copier dans le presse-papiers les définitions de propriété sélectionnées dans la Palette de propriétés.

Coller propriétés	permet de coller les définitions de propriété du presse-papiers dans la liste des propriétés de la Palette de propriétés. Les propriétés qui sont présentes dans le presse-papiers mais absentes de la liste des propriétés ne sont pas prises en compte.

Afficher propriété	permet d'afficher une liste de valeurs (LOV) dans laquelle vous pouvez choisir une propriété à ajouter à une classe de propriétés. Cette commande n'est disponible que lorsque la sélection en cours est un objet de classe de propriétés.

Supprimer propriété	permet de supprimer la propriété sélectionnée de la liste des propriétés. Cette commande n'est disponible que lorsque la sélection en cours est un objet de classe de propriétés.

Classe de propriétés	permet de créer une classe de propriétés à partir de la liste des propriétés affichée dans la palette. Le nouvel objet de classe de propriétés est inséré sous le noeud Classes de propriétés dans le Navigateur d'objet et reçoit un nom par défaut.

Hériter	permet d'attribuer à la propriété en cours sa définition par défaut. Si la propriété est basée sur une classe de propriétés, la définition par défaut est celle qui a été définie dans la classe. Si la liste de propriétés en cours n'est pas basée sur une classe de propriétés ou est basée sur une classe qui ne comporte pas la propriété en cours, Hériter donne à la propriété la valeur par défaut. (Hériter redonne à la propriété la valeur par défaut de Form Builder uniquement pour les valeurs de chaîne, et non pour les valeurs complexes comme celles définies dans les boîtes de dialogue.)

Intersection/Union	permet d'alterner entre les modes d'affichage d'union et d'intersection de la Palette de propriétés. Cette option détermine les propriétés qui apparaissent lorsque vous sélectionnez plusieurs objets à la fois (sélection multiple). En mode intersection (par défaut), seules les propriétés communes aux objets sélectionnés sont affichées. En mode union, les propriétés de tous les objets de la sélection en cours sont affichées.

Figer/Libérer	permet de passer de l'activation à la désactivation de la synchronisation de la Palette de propriétés, et inversement. Lorsque Figer est désactivé (par défaut), la liste de propriétés est actualisée pour afficher les propriétés des objets que vous sélectionnez dans le Navigateur d'objet et dans d'autres fenêtres. Lorsque Figer est activé, la liste de propriétés est figée et n'est pas actualisée, pour que vous puissiez la comparer à d'autres listes de propriétés.


Fermeture de la Palette de propriétés

Pour fermer la Palette de propriétés :

•	Choisissez Fichier [image] Fermer.


A propos de l'Editeur de présentation

L'Editeur de présentation est un outil de conception graphique qui permet de créer et de positionner des objets graphiques et des éléments d'interface dans une application Forms. Dans l'Editeur de présentation, vous travaillez sur un seul canevas. Les canevas sont affichés dans la fenêtre lors de l'exécution. Vous indiquez la fenêtre dans laquelle sera affichée un canevas en définissant la propriété Fenêtre de ce canevas.

Contexte de l'Editeur de présentation La barre de titre de la fenêtre Editeur de présentation affiche des informations de contexte et notamment le nom de l'application Forms en cours, le nom du canevas en cours de modification et le nom du bloc en cours. Lorsque vous créez un élément en le dessinant sur un canevas dans l'Editeur de présentation, Form Builder attribue l'élément au bloc en cours, comme l'indique le contexte de bloc de l'Editeur de présentation. Vous pouvez modifier ce contexte en utilisant la liste instantanée Bloc de la barre d'outils.

Règles Les règles horizontale et verticale en haut et à gauche de l'espace de travail peuvent être utilisées comme point de référence pour redimensionner ou déplacer des objets dans l'Editeur de présentation. Pour masquer les règles, désélectionnez l'option Règles dans le menu Affichage.

Vous pouvez choisir comme unités de règle de l'Editeur de présentation des cellules de caractère, des pouces, des centimètres ou des points. Pour afficher la boîte de dialogue de paramètres de règle, choisissez Affichage [image] Paramètres [image] Paramètres de règle.

Grille Une grille définie dans l'espace de travail vous permet de positionner vos objets. La grille utilise les unités de règle en cours. Pour masquer le quadrillage de la grille, désélectionnez l'option Grille dans le menu Affichage.

Guides Les guides sont des lignes horizontale et verticale en pointillés qui peuvent être utilisées comme référence pour l'alignement d'objets sur un canevas. Pour créer un guide, faites passer le pointeur sur l'un des guides, puis cliquez et faites-le glisser dans l'espace de travail. Les guides ne sont pas affichés lors de l'exécution.

Pour déplacer un guide, faites-le glisser jusqu'à l'endroit de votre choix. Pour désélectionner un guide, faites-le glisser en dehors de l'espace de travail. Pour masquer temporairement des guides sans les supprimer, désélectionnez l'option Guides du menu Réorganisation.

Ligne d'état La ligne d'état, au bas de la fenêtre de l'Editeur de présentation, affiche les informations suivantes :

• position absolue de la souris ;

•	distance de déplacement de la souris (lors de la création ou du déplacement d'objets)

• angle de rotation (lors de la rotation de la sélection en cours) ;

• niveau de grossissement.

Remarque : Vous ne pouvez ni effacer, ni couper, ni copier, ni dupliquer, ni exporter les objets suivants dans l'Editeur de présentation :

•	l'objet Canevas (lorsque l'option Affichage [image] Afficher le canevas est activée) ;

•	le rectangle d'affichage (lorsque l'option Affichage [image] Afficher la vue est activée) ;

•	une barre de défilement de bloc.


Affichage de l'Editeur de présentation

Pour afficher l'Editeur de présentation :

•	Choisissez Outils [image] Editeur de présentation, puis sélectionnez le canevas que vous souhaitez utiliser :

•	S'il y a plusieurs canevas définis dans l'application Forms, Form Builder affiche une liste de valeurs (LOV) dans laquelle vous pouvez sélectionner le canevas à modifier.

•	Si l'application Forms ne comporte qu'un canevas, Form Builder l'affiche automatiquement dans l'Editeur de présentation.

•	Si l'application Forms ne comporte aucun canevas, Form Builder en crée un par défaut.

ou

•	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet du canevas à modifier.

ou

•	Dans le Navigateur d'objet, sélectionnez Editeur de présentation dans le menu instantané. (Sous Microsoft Windows, appuyez sur le bouton droit de la souris pour afficher ce menu.)

Vous pouvez ouvrir plusieurs éditeurs de présentation simultanément et y placer des objets par copier-coller, selon vos besoins.


Palette d'outils de l'Editeur de présentation

La palette d'outils de l'Editeur de présentation contient les types d'outil suivants :

• Outils de présentation

• Outils de dessin de graphiques

• Outils de dessin d'éléments

•	 Palettes de couleurs de remplissage et de trait

Ces outils permettent de créer et de manipuler des éléments et des objets graphiques. Sélection est l'outil par défaut. Il vous permet de sélectionner et de manipuler des objets et des groupes. Pour activer un autre outil, cliquez sur son icône dans la palette d'outils.

L'outil sur lequel vous cliquez devient l'outil actif pour une seule opération, et le cadre qui entoure son icône est mis en évidence. Lorsque vous cliquez deux fois sur une icône d'outil, cet outil devient l'outil par défaut et son icône change pour refléter son nouvel état.

Pour afficher une description instantanée d'un outil, faites passer le curseur sur son icône sans cliquer sur le bouton de la souris.


Changement de canevas dans l'Editeur de présentation

Pour afficher un autre canevas d'un Editeur de présentation :

•	Sélectionnez-le dans la liste instantanée Canevas.

Cette liste affiche tous les canevas définis dans l'application Forms en cours.


Fermeture de l'Editeur de présentation

Pour fermer l'Editeur de présentation :

•	Choisissez Fichier [image] Fermer.


A propos de l'Editeur PL/SQL

L'Editeur PL/SQL permet d'entrer et de compiler des objets de code. Les objets de code de Form Builder comprennent les déclencheurs événementiels, les sous-programmes (fonctions et procédures), les commandes des éléments de menu, le code de démarrage de menu et les packages.


Affichage de l'Editeur PL/SQL

Pour afficher l'éditeur PL/SQL :

Choisissez Programme [image] Editeur PL/SQL.

ou

•	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'un objet de code.

Cliquer deux fois sur l'icône d'une unité de programme ou d'un déclencheur, lorsqu'un Editeur PL/SQL est déjà affiché, synchronise l'éditeur sur cet objet. Pour appeler un autre Editeur PL/SQL pour l'objet, cliquez deux fois tout en maintenant la touche Majuscules enfoncée.


Contexte de l'éditeur PL/SQL

Les options Type et Objet, en haut de l'Editeur PL/SQL, définissent le contexte de l'objet en cours. L'option Nom permet d'afficher tous les objets de code définis dans ce contexte.

Lorsque vous appelez l'Editeur PL/SQL, si l'objet sélectionné est un objet de code ou un objet auquel sont associés des objets de code, l'Editeur PL/SQL est synchronisé sur le contexte de cet objet. S'il y a un objet de code défini dans le contexte en cours, il est affiché dans l'Editeur PL/SQL. Si aucun objet de code n'est défini, le champ Nom est vierge et vous pouvez choisir Nouveau pour créer un nouvel objet de code.

Vous pouvez modifier les options Type, Objet et Nom lorsque vous voulez afficher des objets de code définis dans un contexte différent, ou créer un nouvel objet de code dans un contexte différent.

Type Définit le contexte d'éditeur sur un type particulier d'objet de code. Lorsque le module en cours est une application Forms, Type peut être défini sur Déclencheur ou sur Unité de programme. Lorsque le module en cours est un menu, Type peut être défini sur Code de démarrage de menu, Code d'élément de menu ou Unité de programme. Lorsque le module en cours est une bibliothèque, Type est toujours Unité de programme.

Objet Définit le contexte d'éditeur sur une portée d'objet particulière. Lorsque Type est défini sur Déclencheur, vous pouvez définir la portée de l'objet sur une application Forms en sélectionnant Niveau application Forms dans la première liste instantanée. Pour définir le contexte d'éditeur sur un bloc particulier, sélectionnez le nom du bloc dans la première liste instantanée Objet. Pour définir le contexte d'éditeur sur un élément, sélectionnez d'abord le bloc contenant l'élément dans la première liste instantanée Objet, puis l'élément lui-même dans la seconde.

Lorsque le module en cours est un menu, vous pouvez éditer les commandes PL/SQL d'éléments de menu en définissant Type sur Code d'élément de menu, puis en sélectionnant dans la première liste instantanée Objet le menu dans lequel apparaît l'élément, puis le menu lui-même dans la seconde.

Nom L'option Nom affiche tous les objets de code définis dans le contexte en cours. Lorsque vous sélectionnez un objet de code dans la liste instantanée Nom, cet objet devient l'objet en cours dans l'éditeur. Par exemple, lorsque le contexte est défini sur le déclencheur de niveau élément, la liste instantanée Nom affiche tous les déclencheurs attachés à cet élément. Pour afficher un déclencheur particulier, sélectionnez-le dans la liste instantanée Nom.

Lorsque le contexte d'éditeur est défini sur Unité de programme, la liste instantanée Nom affiche tous les sous-programmes et tous les packages définis dans le module en cours.


Commandes de l'éditeur PL/SQL

Compiler	permet de compiler le code dans le champ Code source. Le compilateur détecte les erreurs de syntaxe, les erreurs sémantiques et les références aux objets, aux procédures et aux fonctions qui n'existent pas. A la fin de la compilation, la ligne d'état affiche le message <Compilé avec succès>.

Rétablir	permet d'annuler toutes les modifications apportées au texte source depuis l'appel de l'éditeur ou depuis la dernière opération Rétablir. Le bouton Rétablir est désactivé lorsque le texte source n'a pas été modifié.

Nouveau	permet de créer un nouvel objet de code de même type et de même portée que l'objet de code en cours. Par exemple, si l'objet en cours est un déclencheur attaché à un élément, choisir Nouveau affiche la LOV des déclencheurs pour vous permettre de créer un nouveau déclencheur attaché à cet élément. Lorsque l'objet en cours est une unité de programme,  Nouveau appelle la boîte de dialogue Nouvelle unité de programme.

Supprimer	permet de supprimer l'objet de code en cours et de synchroniser l'Editeur PL/SQL sur le prochain objet de ce type et de même portée.

Fermer	permet de fermer l'Editeur PL/SQL.

Aide	Affiche une rubrique d'aide.

Cliquer sur un message	Fait passer le point d'insertion sur la ligne à l'origine de l'erreur dans la fenêtre de code source.

Fenêtre de messages Affiche les messages de compilation en cas d'erreur pendant la compilation de l'unité de programme en cours.

Barre d'état Affiche les informations d'état sur l'objet de code en cours. Le témoin <Non modifié|Modifié> indique l'existence d'éventuelles modifications non enregistrées. Le témoin <Non compilé|Compilé avec succès|Compilé avec erreurs> indique l'état de la compilation en cours.


Fermeture de l'Editeur PL/SQL

Pour fermer l'éditeur PL/SQL :

•	Cliquez sur le bouton Fermer de l'Editeur PL/SQL.


A propos de la bibliothèque d'objets

  Rubriques connexes

Tout environnement de développement comporte des normes que vos développeurs devront respecter et des objets communs qui pourront être réutilisés pendant toute la phase de développement.

La bibliothèque d'objets permet de réutiliser des objets et d'appliquer des normes à tous les niveaux du développement.

Vous pouvez utiliser la bibliothèque d'objets pour :

• créer, stocker, tenir à jour et distribuer des objets standard et réutilisables ;

• créer rapidement des applications en faisant glisser des objets prédéfinis dans votre application Forms.

L'utilisation de bibliothèques d'objets pour développer des applications présente un certain nombre d'avantages :

• Comme les bibliothèques d'objets sont automatiquement réouvertes lorsque vous lancez Form Builder, vos objets réutilisables sont immédiatement accessibles.

• Vous pouvez associer plusieurs bibliothèques d'objets à une application. Par exemple, vous pouvez créer une bibliothèque d'objets consacrée aux normes de votre société et une autre destinée à répondre aux besoins d'un projet donné.

• Les bibliothèques d'objets comportent des SmartClasses, c'est-à-dire des objets que vous définissez comme standard. Les SmartClasses permettent de convertir des objets en objets standard.


Affichage de la bibliothèque d'objets

  Rubriques connexes

Pour afficher la bibliothèque d'objets :

•	Choisissez Outils [image] Bibliothèque d'objets.


Ouverture d'un module Bibliothèque d'objets

  Rubriques connexes

Pour ouvrir un module Bibliothèque d'objets :

1	Dans la bibliothèque d'objets, cliquez sur le bouton Ouvrir.

2	Dans la boîte de dialogue, entrez le nom du fichier que vous voulez ouvrir.


Création d'un onglet dans la bibliothèque d'objets

Pour créer un onglet :

1	Dans le Navigateur d'objet, cliquez sur le noeud Onglets Bibliothèque correspondant à la bibliothèque d'objets qui vous intéresse.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Indiquez le nom du nouvel onglet.


Entrée de commentaires sur les objets de la bibliothèque d'objets

Pour ajouter un commentaire :

1	Dans la Bibliothèque d'objets, cliquez sur l'objet de votre choix.

2	Cliquez sur le bouton Modifier commentaire de la barre d'outils.

3	Entrez le texte dans la boîte de dialogue Commentaires.


Suppression d'un objet de la bibliothèque d'objets

  Rubriques connexes

Pour supprimer un objet de la bibliothèque d'objets :

1	Dans la Bibliothèque d'objets, cliquez sur l'objet de votre choix.

2	Cliquez sur le bouton Supprimer objet de la barre d'outils.


Suppression d'un onglet de la bibliothèque d'objets

Pour supprimer un onglet de la bibliothèque d'objets :

1	Dans la bibliothèque d'objets, cliquez sur l'onglet à supprimer.

2	Cliquez sur le bouton Supprimer onglet de la barre d'outils.

Remarque : Lorsque vous supprimez un onglet, vous supprimez également tous les objets de l'onglet.


Enregistrement d'un objet dans la bibliothèque d'objets

Pour enregistrer un objet dans la bibliothèque d'objets :

1	Dans la bibliothèque d'objets, cliquez sur le bouton Enregistrer.

2	Dans la boîte de dialogue, entrez un nom.

3	Cliquez sur Enregistrer.


Fermeture de la bibliothèque d'objets

Pour fermer la bibliothèque d'objets :

•	Choisissez Fichier [image] Fermer.


A propos de l'Editeur de menu

  Rubriques connexes

L'Editeur de menu est un outil de conception de Form Builder que vous utilisez (avec le Navigateur d'objet et la Palette de propriétés) pour créer et déplacer à l'écran des menus instantanés et des modules menu d'application Forms personnalisés.

Pour pouvoir utiliser l'Editeur de menu pour travailler sur des objets menu, vous devez créer un nouveau module menu (ou ouvrir un module existant) dans le Navigateur d'objet.

Synchronisation Que vous utilisiez l'Editeur de menu, le Navigateur d'objet ou la Palette de propriétés, Form Builder synchronise automatiquement ses outils de conception pour afficher simultanément l'objet sélectionné en cours, même s'il doit développer les noeuds et les menus pour afficher l'objet. Lorsque vous utilisez les menus, l'objet menu sélectionné dans l'Editeur de menu, dans le Navigateur d'objet et dans la Palette de propriétés est donc toujours le même.


Affichage de l'Editeur de menu

Pour afficher un module menu dans l'Editeur de menu :

1	Dans le Navigateur d'objet, créez un nouveau module menu ou sélectionnez un module existant.

2	Choisissez Outils [image] Editeur de menu, ou cliquez deux fois sur l'icône de l'objet du module menu dans le Navigateur d'objet.

Form Builder affiche le module menu dans l'Editeur de menu.

Vous pouvez afficher simultanément plusieurs modules menu dans des fenêtres distinctes de l'Editeur de menu. Lorsque vous avez ouvert une fenêtre de l'Editeur de menu, sélectionnez un autre module menu dans le Navigateur d'objet, puis affichez une seconde fenêtre de l'Editeur de menu.


Création d'objets dans l'Editeur de menu

  Rubriques connexes

Pour créer de nouveaux objets de menu sous un objet de menu existant :

1	Sélectionnez un élément de menu principal ou un élément de menu de niveau inférieur dans l'Editeur de menu.

2	Effectuez l'une des opérations suivantes :

• Cliquez sur le bouton Créer option dans la barre d'outils de l'Editeur de menu ;

• Choisissez Menu [image] Créer option ;

• Appuyez sur Ctrl-flèche vers le bas.

Un nouvel objet de menu apparaît sous l'objet de menu existant.

Pour créer un élément de menu à la droite d'un objet de menu existant :

1	Sélectionnez un menu, un sous-menu ou un élément de menu dans l'Editeur de menu.

2	Effectuez l'une des opérations suivantes :

• Cliquez sur le bouton Créer sous-menu dans la barre d'outils de l'Editeur de menu ;

• Choisissez Menu [image] Créer sous-menu ;

• Appuyez sur Ctrl-flèche vers la droite.

Un nouvel objet de menu apparaît à droite de l'objet de menu existant.

Poignées d'élément de menu Notez que chaque fois que vous ajoutez le premier élément d'un menu ou d'un sous-menu de niveau inférieur, Form Builder affiche un rectangle grisé, appelé poignée, à gauche de l'objet. Utilisez cette poignée pour effectuer des opérations globales sur tous les éléments de menu, ou pour afficher les propriétés de niveau Menu dans la Palette de propriétés.


Affichage d'objets dans l'Editeur de menu

  Rubriques connexes

Pour savoir à quel menu appartient un élément, cliquez deux fois sur la poignée de menu et recherchez la propriété Nom dans la Palette de propriétés. La poignée de menu de l'Editeur de menu correspond au nom de menu dans le Navigateur d'objet.

Remarque : L'élément de menu qui apparaît en haut d'un menu n'est pas le premier élément du menu, car il appartient à son menu père.


A propos du développement et de la réduction d'objets de menu

  Rubriques connexes

Le développement et la réduction d'objets (menus de niveau inférieur et sous-menus), dans l'Editeur de menu, ressemblent au développement et à la réduction d'objets Form Builder dans le Navigateur d'objet. Les indicateurs triangulaires de développement et de réduction de l'Editeur de menu équivalent aux indicateurs + et - du Navigateur d'objet. Un triangle vide indique un menu développé, un triangle plein un menu réduit.

Vous pouvez développer ou réduire un objet de menu d'un niveau (en utilisant Développer ou Réduire), ou développer ou réduire tous les niveaux connexes d'un objet de menu (en utilisant Développer tout et Réduire tout). Les niveaux d'objets de menu connexes font référence à l'objet de menu en cours et à tous les objets placés en dessous ou à la droite de cet objet.

L'objet que vous sélectionnez dans l'Editeur de menu (avant de le développer ou de le réduire) définit la portée de l'opération. Si vous sélectionnez :

• une poignée de menu grisée, Développer, Développer tout, Réduire ou Réduire tout s'applique à tous les menus et sous-menus reliés à cette structure de menus ;

• un élément de menu, Développer, Développer tout, Réduire ou Réduire tout s'applique uniquement aux menus et aux sous-menus de niveau inférieur, reliés à cet élément de menu.


Développement et réduction d'objets isolés dans l'Editeur de menu

  Rubriques connexes

Pour développer et réduire des objets de menu isolés :

1	Sélectionnez un objet qui affiche un triangle Développer/Réduire.

2	Pour alterner entre l'état développé et l'état réduit, effectuez l'une des opérations suivantes :

• cliquez deux fois sur le triangle ;

• appuyez sur Retour ;

• choisissez Menu [image] Développer ou Menu [image] Réduire.


Développement et réduction d'objets connexes dans l'éditeur de menu

  Rubriques connexes

Pour développer et réduire des objets de menu connexes :

1	Sélectionnez un objet qui affiche un indicateur triangulaire de développement/réduction .

2	Pour alterner entre l'état totalement développé et l'état totalement réduit, effectuez l'une des opérations suivantes :

• appuyez sur Majuscules et cliquez deux fois de suite sur le triangle ;

• appuyez sur Majuscules-Retour ;

• choisissez Menu [image] Développer tout ou Menu [image] Réduire tout.


Affichage d'un menu au niveau supérieur de l'Editeur de menu

  Rubriques connexes

Pour afficher un menu au niveau supérieur de l'Editeur de menu :

1	Dans la barre d'outils de l'Editeur de menu, cliquez sur la liste instantanée Afficher menu.

2	Sélectionnez le menu que vous voulez afficher au niveau supérieur.

Form Builder affiche temporairement le menu de niveau inférieur comme menu de niveau supérieur dans l'Editeur de menu. Pour revenir à l'affichage d'origine, sélectionnez le menu principal dans la liste instantanée Afficher menu.

Remarque : N'affichez un menu de niveau inférieur comme menu de niveau supérieur dans l'Editeur de menu que pour des opérations temporaires de conception. Cette option ne reste en vigueur que pendant la session de conception en cours. Lors de l'exécution, le menu principal est toujours le menu de niveau supérieur.


Modification de l'orientation de l'Editeur de menu

  Rubriques connexes

Pour changer de l'orientation de l'Editeur de menu:

1	Dans le Navigateur d'objet, sélectionnez le menu.

2	Choisissez Outils [image] Editeur de menu pour ouvrir l'Editeur de menu.

3	Choisissez Menu [image] Modifier sens.


Changement de noms et de libellés d'objet dans l'Editeur de menu

  Rubriques connexes

Pour changer le nom d'un objet de menu :

1	Sélectionnez l'objet de menu dans l'Editeur de menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Général, changez la propriété Nom de l'objet.

Remarque : L'effet de cette modification ne sera pas visible dans l'Editeur de menu (cependant, si l'objet est un menu, vous verrez le nouveau nom dans la liste instantanée Afficher menu).

Pour changer le libellé d'un objet de menu :

1	Dans l'Editeur de menu, sélectionnez l'objet de menu.

Le libellé s'affiche en vidéo inverse.

2	Cliquez une nouvelle fois pour passer en mode Edition.

Le curseur se transforme en pointeur en I, la vidéo inverse redevient normale et le pointeur en I se trouve à l'endroit où vous avez cliqué.

3	Remplacez l'ancien libellé par le nouveau.

Pour sortir du mode Edition, appuyez sur Retour. Pour vérifier le changement de libellé, reportez-vous à la propriété Libellé de l'objet dans la Palette de propriétés.

Remarque : La première fois que vous modifiez le libellé d'un objet de menu dans l'Editeur de menu ou dans la Palette de propriétés, le Navigateur d'objet et la Palette de propriétés reflètent automatiquement (aussi précisément que possible) cette modification du nom de l'objet, et vous pouvez alors rechercher facilement l'élément que vous venez de créer. Par exemple, si vous remplacez le libellé <Nouvel élément> de l'objet ELEMENT2 par Afficher touches, Form Builder remplace automatiquement le nom ELEMENT2 par AFFICHER_TOUCHES. Cependant les modifications ultérieures apportées au libellé de l'objet ne seront pas automatiquement répercutées sur le nom de l'objet.


Déplacement d'objets dans l'Editeur de menu

Pour déplacer un menu :

1	Cliquez sur la poignée grisée de menu et faites-la glisser.

Lorsque vous cliquez sur une poignée, elle s'affiche sous la forme d'un rectangle plein, le curseur est remplacé par un signe plus (+) et, lorsque vous déplacez le curseur en direction de l'endroit voulu, Form Builder met en surbrillance les endroits où vous pouvez déposer le menu.

2	Déposez le menu à l'endroit voulu.

Remarque : Lorsque vous déplacez un menu, vous déplacez également les sous-menus qui lui sont associés.

Pour déplacer un élément de menu :

1	Cliquez sur l'élément de menu et faites-le glisser.

Lorsque vous faites glisser un élément, Form Builder affiche une ligne en gras pour indiquer où vous pouvez le déposer.

2	Déposez l'élément de menu à l'endroit voulu.

Remarque : Un élément de menu qui affiche un sous-menu doit avoir sa propriété Type de commande définie à Menu. Si vous déplacez un sous-menu vers un élément père alors que Type de commande est défini à PL/SQL ou Null, Form Builder affiche le message d'alerte suivant :

RM-15207: Modification du type d'élément parent obligatoire avant d'attacher un sous-menu (perte de code possible).

3	Effectuez l'une des opérations suivantes :

•	 Choisissez Modifier le type pour accepter le changement de type à moins qu'un code PL/SQL ne soit attaché à l'élément de menu que vous voulez enregistrer.

•	S'il y a un code PL/SQL attaché à cet élément de menu, choisissez Annuler et copiez le code PL/SQL avant de déplacer l'élément.


Copie d'objets dans l'Editeur de menu

Pour copier un menu :

1	Appuyez sur Ctrl et faites glisser la poignée de menu grisée sur l'élément cible.

Lorsque vous cliquez sur une poignée, elle s'affiche sous la forme d'un rectangle plein, le curseur est remplacé par un signe plus (+) et, lorsque vous déplacez le curseur en direction de l'endroit voulu, Form Builder met en surbrillance les endroits où vous pouvez déposer le menu.

Form Builder affiche alors le message d'alerte suivant :

   Voulez-vous dupliquer le menu ou réutiliser l'original ?

2	Effectuez l'une des opérations suivantes :

•	 Choisissez Dupliquer pour faire une copie séparée du menu.

S'il y a des sous-menus, Form Builder affiche le message :

   Voulez-vous copier les sous-menus ?

Sélectionnez Oui pour copier tous les niveaux des sous-menus, ou Non pour ne copier que le premier niveau.

•	Choisissez Réutiliser pour ne conserver qu'une copie du menu, mais pouvoir y faire référence à partir de deux endroits.

Réutiliser ne crée pas une nouvelle instance de l'original, mais définit simplement un pointeur à l'original, ce qui vous permet d'appeler le même menu à partir de plusieurs éléments de menu. Les deux menus sont identiques et, comme ils ont le même nom, ils affichent l'indicateur Partagé. Toute modification ultérieure de l'une des instances du menu sera répercutée sur l'autre menu.

Conseil : Si une instance d'un menu partagé est sélectionnée et si vous voulez savoir où sont les autres instances, choisissez Menu [image] Instance suivante.

Pour copier un élément de menu :

• .	Sélectionnez l'élément de menu, puis appuyez sur Ctrl et faites glisser l'élément de menu sur l'élément cible.


Suppression d'objets de l'Editeur de menu

Pour supprimer un menu ou un sous-menu :

1	Cliquez sur la poignée de menu ou de sous-menu.

2	Effectuez l'une des opérations suivantes :

• cliquez sur l'icône Supprimer dans la barre d'outils de l'Editeur de menu ;

• sélectionnez Menu [image] Supprimer ;

• appuyez sur Supprimer.

Form Builder affiche le message d'alerte suivant :

   Voulez-vous détacher le menu de son père ou le supprimer ?

3	Choisissez Supprimer, à moins que vous n'envisagiez de réutiliser le fragment de menu résultant.

Si le menu à supprimer comporte des sous-menus, Form Builder affiche un message vous demandant si vous voulez supprimer les sous-menus.

• Choisissez Oui pour supprimer toute la structure, sous-menus compris.

• Choisissez Non si vous voulez enregistrer la structure des sous-menus pour pouvoir l'utiliser ultérieurement. (Pour utiliser le sous-menu orphelin, passez au Navigateur d'objet et déplacez le sous-menu.)

Choisissez Détacher si vous voulez conserver le fragment de menu pour pouvoir le réutiliser ultérieurement. (Pour ré-attacher le fragment, passez dans le Navigateur d'objet et attachez le fragment de menu à un nouveau père.)

Pour supprimer un élément d'un menu ou d'un sous-menu :

1	Sélectionnez l'élément.

2	Choisissez Menu [image] Supprimer (ou cliquez sur l'icône Supprimer).

Form Builder affiche un message d'alerte vous demandant de confirmer la suppression.

3	Cliquez sur Oui.


Création d'un menu principal

  Rubriques connexes

Pour créer un menu principal :

1	Affichez le module menu dans l'Editeur de menu.

L'Editeur de menu apparaît et affiche un menu appelé MENU_PRINCIPAL dans lequel un élément appelé <Nouvel élément> est en surbrillance.

2	Entrez un libellé plus descriptif (par exemple, Action).

3	Ajoutez de nouveaux éléments au menu principal en créant de nouveaux objets de menu à droite de l'élément de menu principal existant.

L'Editeur de menu crée des éléments appelés <Nouvel élément>.

4	Remplacez les libellés par défaut.

5	Répétez les étapes 3 et 4 pour créer de nouveaux éléments de menu principal.

Lorsque vous avez créé le menu principal, créez des menus individuels en ajoutant des éléments sous chaque élément de menu principal. Vous pouvez créer une liste d'éléments de menu "fils" connexe pour chaque élément "père" du menu principal (par exemple Action, Edition, Bloc, etc.).


Création de menus de niveau inférieur

  Rubriques connexes

Pour créer un menu de niveau inférieur :

1	Dans le menu principal, sélectionnez un élément père.

2	Créez un nouvel objet de menu sous l'élément de menu principal existant.

L'Editeur de menu crée un élément de menu appelé <Nouvel élément>.

3	Remplacez le libellé par défaut.

4	Pour créer d'autres éléments, répétez les étapes 2 et 3 ci-dessus.

Remarque : En ajoutant des éléments de menu en dessous de l'élément père du menu principal, vous avez converti l'élément père en un intitulé de menu. Form Builder inverse automatiquement la propriété Type de commande de l'élément père pour refléter cette opération. Reportez-vous aux propriétés de l'élément père dans la Palette de propriétés ; la propriété Type de commande est passée de PL/SQL à Menu.

Lorsque vous avez créé un menu à partir du menu principal, vous pouvez créer des sous-menus qui s'affichent à la droite des éléments de menu.


Création de sous-menus

  Rubriques connexes

Pour créer un sous-menu :

1	Sélectionnez un élément de menu.

2	Créez un nouvel objet de menu à la droite de l'élément de menu existant.

L'Editeur de menu crée un élément de menu appelé <Nouvel élément>.

3	Remplacez le libellé par défaut.

4	Créez un nouvel objet de menu sous l'élément de sous-menu que vous venez de créer.

5	Remplacez le libellé par défaut.

6	Répétez les étapes 4 et 5 ci-dessus pour créer d'autres éléments de sous-menus.


A propos des assistants

Form Builder comporte plusieurs assistants qui automatisent les tâches répétitives des utilisateurs, débutants ou confirmés.

Un assistant permet de :

• créer ou modifier une application Forms ;

• créer ou modifier un bloc de données ;

• créer et déplacer des éléments dans un cadre ;

• créer ou modifier une liste de valeurs (LOV) ;

• créer ou modifier des éléments graphiques.

Pour appeler un assistant :

• Choisissez l'option correspondante, dans le menu Outils.


Edition de texte dans Form Builder

La présente section décrit les commandes que vous pouvez utiliser pour éditer et sélectionner du texte dans Form Builder. Vous pouvez entrer du texte en mode Insertion ou en mode Remplacement. Le mode d'édition en cours est affiché dans la ligne d'état de Form Builder. Pour changer de mode, appuyez sur [Insérer/Remplacer].

Pour modifier un texte, vous pouvez utiliser les commandes suivantes :

Pour...	Procédez de la manière suivante...
Revenir au caractère précédent ou passer au caractère suivant.	Appuyez sur [Gauche] ou [Droite].
Passer à la ligne suivante ou revenir à la ligne précédente d'un éditeur.	Appuyez sur [Haut] ou [Bas].
Passer à la fin de la ligne.	Appuyez sur [Fin de ligne].
Passer au début d'une ligne.	Appuyez sur [Début de ligne].
Sélectionner du texte avec la souris.	Cliquez sur le texte et faites glisser la souris jusqu'à la fin du texte.
Supprimer un texte sélectionné.	Sélectionnez Edition [image] Effacer.
Supprimer un texte sélectionné et le copier dans le presse-papiers.	Sélectionnez Edition [image] Couper ou appuyez sur [Couper].
Copier le texte sélectionné dans le presse-papiers.	Sélectionnez Edition [image] Copier ou appuyez sur [Copier].
Insérer le texte du presse-papiers au point d'insertion.	Sélectionnez Edition [image] Coller ou appuyez sur [Coller].
Supprimer le caractère à la gauche du point d'insertion.	Appuyez sur [Suppression arrière].


Création d'éditeurs


A propos des éditeurs

  Rubriques connexes

Lors de l'exécution, vous avez le choix entre trois éditeurs : l'éditeur par défaut, un éditeur système ou un éditeur nommé par l'utilisateur.

Editeur par défaut	L'éditeur par défaut offre des fonctions d'édition standard comme rechercher/remplacer, couper, copier et coller. Il est intégré à chaque application Forms et disponible automatiquement à partir de tout élément texte.

Editeur système	Si vous disposez d'un éditeur système, vous pouvez utiliser l'éditeur système en cours plutôt que l'éditeur par défaut.

Editeur nommé par l'utilisateur	Cet éditeur a les mêmes fonctions d'édition de texte que l'éditeur par défaut ; cependant, comme il s'agit d'un objet nommé, vous pouvez indiquer des attributs d'éditeur comme la taille d'affichage de la fenêtre, sa position et son titre. En outre, un éditeur nommé par l'utilisateur peut être affiché par programme à l'aide de la procédure interne SHOW_EDITOR, indépendamment de tout élément texte particulier.

Par défaut, les utilisateurs peuvent appeler un éditeur en passant à un élément texte et en appuyant sur [Editer] ou en choisissant Edition [image] Editer dans le menu par défaut. Un éditeur peut également être affiché par programme par l'exécution de la procédure interne EDIT_TEXTITEM lorsque le curseur est dans un élément texte.


Utilisation de l'éditeur par défaut

  Rubriques connexes

A la différence des éditeurs nommés par l'utilisateur, l'éditeur par défaut n'a pas à être créé ou attaché ; il est intégré à chaque application Forms et peut être appelé à partir de n'importe quel élément texte.

Lorsque l'éditeur par défaut est appelé lors de l'exécution, Form Builder détermine dynamiquement la taille et la position de son affichage, en fonction de la taille et de la position de l'élément texte à partir duquel cet éditeur a été appelé.

Pour modifier la taille et la position d'affichage de l'éditeur par défaut :

1.	Dans le Navigateur d'objet, sélectionnez l'élément texte voulu.

2.	Dans la Palette de propriétés, définissez la propriété Editeur à <Null> en sélectionnant <Null> dans la liste instantanée des propriétés de l'éditeur.

3.	Indiquez les coordonnées d'affichage de l'éditeur en définissant les propriétés Position X et Position Y de l'éditeur.


Utilisation d'un éditeur nommé par l'utilisateur

  Rubriques connexes

Un éditeur nommé par l'utilisateur a les mêmes fonctions d'édition de texte que l'éditeur par défaut. Vous créez cet éditeur lorsque vous voulez afficher l'éditeur par programme avec SHOW_EDITOR ou indiquer des attributs d'éditeur personnalisés comme la barre de défilement et le titre.

Une fois cet éditeur défini, vous pouvez l'attacher à un élément texte de l'application Forms. Lorsque l'utilisateur passe à l'élément texte et appelle un éditeur, l'éditeur nommé par l'utilisateur remplace l'éditeur par défaut pour cet élément.

Pour créer un éditeur nommé par l'utilisateur :

1.	Dans le Navigateur d'objet, créez un objet éditeur.

Pour créer un éditeur, sélectionnez le noeud Editeurs dans le Navigateur d'objet, puis choisissez Navigateur [image] Créer.

2.	Dans la Palette de propriétés, définissez les propriétés de l'éditeur comme Hauteur, Largeur, Position X, Position Y, Type de césure, Canevas à barre de défilement horizontale, Canevas à barre de défilement verticale, etc.

3.	Attachez l'éditeur à un ou plusieurs éléments texte de votre application Forms ou affichez l'éditeur en appelant la procédure interne SHOW_EDITOR.

Pour attacher un éditeur nommé par l'utilisateur à un élément texte :

1.	Dans le Navigateur d'objet, sélectionnez un élément texte.

2.	Dans la Palette de propriétés, définissez la propriété Editeur à l'éditeur nommé par l'utilisateur en le sélectionnant dans la liste instantanée des propriétés de l'éditeur.

3.	Indiquez les coordonnées d'affichage de l'éditeur en définissant les propriétés Position X et Position Y.


Utilisation d'un éditeur système

  Rubriques connexes

Vous pouvez utiliser un éditeur système à la place de l'éditeur par défaut. L'utilisateur appelle l'éditeur système de la même manière que l'éditeur par défaut.

L'éditeur système à utiliser est défini par la variable d'environnement FORMS60_EDITOR. L'éditeur indiqué doit utiliser le format de texte ASCII. Pour toute information sur les variables d'environnement et la disponibilité de l'éditeur système, reportez-vous à la documentation Form Builder de votre système d'exploitation.

Pour utiliser un éditeur système :

1.	Dans le Navigateur d'objet, sélectionnez un élément texte.

2.	Cliquez deux fois sur l'icône située en regard de l'élément texte pour afficher la Palette de propriétés.

3.	Dans la Palette de propriétés, sélectionnez SYSTEM_EDITOR dans la liste instantanée des propriétés de l'éditeur.

4.	Indiquez les coordonnées d'affichage de l'éditeur en définissant les propriétés Position X et Position Y de l'éditeur dans la Palette de propriétés.

5.	Définissez la variable d'environnement FORMS60_EDITOR.

Par exemple, sous Microsoft Windows, vous pouvez utiliser le Bloc-notes comme éditeur système en définissant FORMS60_EDITOR de la manière suivante :

FORMS60_EDITOR = C:\WINDOWS\NOTEPAD.EXE


Utilisation de EDIT_TEXTITEM pour afficher un éditeur

  Rubriques connexes

La procédure EDIT_TEXTITEM appelle l'éditeur associé à l'élément texte en cours dans l'application Forms (l'éditeur par défaut, un éditeur nommé par l'utilisateur ou l'éditeur système en cours). L'exemple suivant illustre le passage à un élément texte, puis l'affichage de l'éditeur associé à cet élément.

Go_Item('commentaires.client');
Edit_TextItem;

Le point d'insertion doit se trouver dans un élément texte pour que EDIT_TEXTITEM s'exécute correctement. Si le point d'insertion est dans un autre type d'élément, Form Builder affiche le message FRM-41026: Opération non reconnue par ce champ. EDIT_TEXTITEM comporte des paramètres facultatifs qui vous permettent d'indiquer des coordonnées dynamiques de position et de taille :

Edit_Textitem(x, y, largeur, hauteur);


Utilisation de SHOW_EDITOR pour afficher un éditeur

  Rubriques connexes

La procédure SHOW_EDITOR affiche un éditeur nommé par l'utilisateur aux coordonnées d'affichage indiquées. SHOW_EDITOR utilise les paramètres message_entrée et message_sortie qui vous permettent de passer une chaîne de texte à l'éditeur et d'obtenir en retour la chaîne de texte éditée lorsque l'utilisateur accepte l'éditeur.

SHOW_EDITOR(nom_éditeur, message_entrée, x, y, message_sortie, résultat);

Le paramètre résultat est de type BOOLEAN (IN OUT). Si l'utilisateur accepte l'éditeur, SHOW_EDITOR positionne résultat à TRUE et message_sortie à la chaîne de texte en cours. Si l'utilisateur annule l'éditeur, SHOW_EDITOR positionne résultat à FALSE et message_sortie à NULL.


A propos du traitement des erreurs d'exécution dans les déclencheurs

  Rubriques connexes

Lorsque vous compilez un déclencheur lors de la conception ou que vous générez un module Application Forms, le compilateur détecte les erreurs qui empêcheraient le bon déroulement du déclencheur au moment de l'exécution. D'autres erreurs, cependant, n'apparaissent qu'à l'exécution et sont souvent impossibles à éviter.

Lorsqu'il se produit une erreur d'exécution, vous devez la détecter et la corriger dans le code du déclencheur afin qu'il n'y ait pas d'interruption dans le déroulement de l'application. Vous devez écrire des déclencheurs qui traitent progressivement les erreurs d'exécution sans interrompre le travail de l'utilisateur.

Les fonctionnalités par défaut de Form Builder vous permettent de traiter les erreurs d'exécution en les détectant au moment où elles se produisent, en émettant des messages d'erreur, en définissant les valeurs des variables d'erreur et, le cas échéant, en annulant les transactions qui ne peuvent pas s'exécuter correctement. Vous pouvez compléter le traitement des erreurs par défaut en écrivant des déclencheurs qui réagissent aux erreurs en fonction de l'application.

Remarque : Pour tirer pleinement parti des informations de cette section, vous devez connaître les techniques de traitement des erreurs PL/SQL. Pour plus d'informations, reportez-vous à PL/SQL User's Guide and Reference.


A propos du traitement des anomalies PL/SQL dans les déclencheurs

  Rubriques connexes

Les erreurs de code PL/SQL portent le nom d'anomalie. Une erreur entraîne la génération d'une anomalie. Pour traiter les anomalies générées, vous pouvez écrire des gestionnaires d'anomalies. Dans Form Builder, ceux-ci servent à traiter les erreurs d'exécution qui surviennent dans les types d'instruction suivants :

•	instructions SQL ;

•	instructions PL/SQL ;

•	appels aux sous-programmes nommés par l'utilisateur.

Lorsque l'une de ces instructions d'un déclencheur ou d'un bloc PL/SQL génère une anomalie, le traitement normal s'arrête et le contrôle est transféré à la section de traitement des anomalies du déclencheur.

Propagation des anomalies dans les déclencheurs Dans les déclencheurs Form Builder, les blocs PL/SQL peuvent être imbriqués sous la forme de blocs intégrés. Par exemple, un déclencheur peut comporter un bloc comportant lui-même un autre bloc.

Lorsque le bloc interne génère une anomalie à laquelle ne correspond aucun gestionnaire d'anomalies, le bloc prend fin et l'anomalie se propage au bloc dans lequel elle est imbriquée. Si celui-ci ne comporte pas non plus de gestionnaire d'anomalies, l'anomalie se propage à nouveau, pour atteindre enfin le bloc externe du déclencheur. Si le bloc externe ne gère pas l'anomalie, le déclencheur échoue et Form Builder retourne une erreur d'exécution.

Anomalies générées dans les sous-programmes nommés par l'utilisateur Pour le traitement des anomalies, les appels aux sous-programmes nommés par l'utilisateur sont considérés comme des blocs PL/SQL intégrés dans un déclencheur - c'est-à-dire qu'une anomalie non traitée dans un sous-programme nommé par l'utilisateur, se propage au bloc dans lequel le sous-programme a été appelé.


A propos des échecs de déclencheur

  Rubriques connexes

Un déclencheur activé peut soit s'exécuter correctement soit échouer. Un déclencheur échoue lorsqu'il génère une anomalie non traitée. Dans ce cas, Form Builder interrompt le déclencheur et exécute le traitement approprié, en fonction du type de déclencheur qui a échoué.

Le tableau suivant décrit le traitement déclenché après un échec pour trois types de déclencheur :

Type de déclencheur	Résultat de l'échec du déclencheur
Sur touche - * (tout déclencheur sur touche)	L'échec du déclencheur n'est pas pris en compte.
Pre-Item	Form Builder tente de faire revenir le point d'insertion à l'élément source.
On-Insert	Form Builder annule toutes les modifications de la base de données inscrites par le processus commit en cours et tente de passer au premier élément de l'enregistrement en cours du bloc erroné.
When-Validate-Item	Echec de validation de l'élément. Form Builder définit l'emplacement de l'erreur. Si possible, il fait revenir le point d'insertion à l'élément source.

Lorsqu'un déclencheur échoue, Form Builder tente d'annuler les conditions susceptibles de provoquer une erreur d'exécution à la suite de l'échec du déclencheur.

Par exemple, le déclencheur Pre-Item est activé lorsque Form Builder tente de faire passer le point d'insertion d'un élément source à un élément cible. Lorsqu'un déclencheur Pre-Item échoue, la navigation ne peut pas s'exécuter normalement et Form Builder fait revenir le point d'insertion à l'élément source.

De même, lorsqu'un déclencheur de traitement commit, tel que On-Insert, échoue, Form Builder effectue l'annulation appropriée, de façon à garantir l'intégrité des données.


A propos du traitement des anomalies générées dans les déclencheurs

  Rubriques connexes

Lorsque vous écrivez des déclencheurs comprenant des instructions SQL, des instructions PL/SQL ou des appels à des sous-programmes nommés par l'utilisateur, vous devez envisager la façon de traiter les anomalies générées. Selon le comportement souhaité, vous pouvez traiter les anomalies de trois façons différentes :

•	en écrivant des gestionnaires d'anomalies dans le déclencheur, afin de traiter toutes les anomalies générées ;

•	en tirant parti du traitement des déclencheurs Post-failure par défaut de Form Builder, en omettant délibérément les gestionnaires d'anomalies ; dans ce cas, la génération d'une anomalie entraîne l'échec du déclencheur et l'exécution du traitement après échec approprié ;

•	en écrivant des gestionnaires d'anomalies uniquement pour les anomalies que vous voulez gérer dans le déclencheur et en laissant toutes les autres anomalies non gérées afin de provoquer délibérément l'échec du déclencheur.


Réponse aux erreurs

  Rubriques connexes

Lorsqu'une erreur se produit, vous pouvez, pour obtenir des informations sur l'erreur (notamment son numéro, son type et le message correspondant), faire appel aux sous-programmes intégrés suivants :

•	ERROR_TYPE (retourne une valeur de type CHAR)

•	ERROR_CODE (retourne une valeur de type NUMBER)

•	ERROR_TEXT (retourne une valeur de type CHAR)

•	DBMS_ERROR_CODE (retourne une valeur de type NUMBER)

•	DBMS_ERROR_TEXT (retourne une valeur de type CHAR)


A propos de l'évaluation du succès ou de l'échec des procédures internes

  Rubriques connexes

L'exécution d'un sous-programme intégré peut se solder par un succès, un échec ou une erreur fatale. L'échec d'un sous-programme intégré provoque une erreur d'exécution pour laquelle Form Builder envoie le message d'erreur approprié. Cependant, aucune anomalie n'est générée dans le déclencheur. Le déclencheur lui-même n'échoue donc pas, et les instructions ultérieures qu'il contient sont exécutées.

Lorsque vous appelez des sous-programmes intégrés dans des déclencheurs, vous voudrez souvent détecter le succès ou l'échec du sous-programme afin de pouvoir soit corriger les erreurs éventuelles, soit provoquer explicitement un échec du déclencheur - surtout lorsque les instructions ultérieures dépendent de la réussite d'un sous-programme intégré précédent.

Pour détecter le succès ou l'échec d'un sous-programme intégré, utilisez les procédures internes Form Builder suivantes :

•	FORM_SUCCESS (retourne une valeur de type BOOLEAN)

•	FORM_FAILURE (retourne une valeur de type BOOLEAN)

•	FORM_FATAL (retourne une valeur de type BOOLEAN)

Ces fonctions indiquent le résultat du dernier sous-programme intégré exécuté. Dans le déclencheur When-Button-Pressed ci-dessous, la fonction FORM_SUCCESS est utilisée pour tester le résultat de la procédure interne GO_BLOCK :

Go_Block('xyz_block');

IF NOT Form_Success THEN

--corrige l'erreur

END IF;

Ce test détecte à la fois les erreurs fatales et les erreurs de type échec, et couvrent donc davantage de cas que les procédures internes FORM_FAILURE ou FORM_FATAL utilisées seules.


Traitement des erreurs dans les sous-programmes intégrés

  Rubriques connexes

Lorsqu'un sous-programme intégré échoue ou provoque une erreur fatale, vous pouvez provoquer l'échec du déclencheur à partir duquel le sous-programme a été appelé, plutôt que de laisser Form Builder continuer à traiter les instructions ultérieures du déclencheur.

Dans une précédente rubrique, nous avons vu qu'un déclencheur échoue lorsqu'il génère une anomalie non traitée. Cependant, comme les erreurs des sous-programmes intégrés ne génèrent pas d'anomalie, vous devez en provoquer une explicitement dans votre code afin qu'un déclencheur échoue :

/*  Déclencheur When-Button-Pressed :  */

Go_Block('xyz_block');

IF NOT Form_Success THEN

RAISE Form_Trigger_Failure;

END IF; END IF;

Comme ce déclencheur ne comporte pas de section de traitement des anomalies, la génération d'une anomalie entraîne l'échec du déclencheur, et Form Builder exécute le traitement après échec approprié. Bien qu'il soit possible de générer n'importe quelle anomalie valide pour provoquer l'échec d'un déclencheur, l'exemple précédent fait appel à l'anomalie intégrée FORM_TRIGGER_FAILURE.


Génération de l'anomalie FORM_TRIGGER_FAILURE

  Rubriques connexes

L'anomalie FORM_TRIGGER_FAILURE est une anomalie PL/SQL prédéfinie qui n'existe que dans Form Builder. Comme elle est prédéfinie, vous pouvez la générer sans avoir à la définir au préalable dans la section déclarative d'un déclencheur ou d'un sous-programme nommé par l'utilisateur.

En fait, cette anomalie est utilisée si fréquemment dans Form Builder qu'il est courant d'écrire une procédure nommée par l'utilisateur pouvant servir à tester le résultat des fonctions et des procédures internes.

/*  sous-programme nommé par l'utilisateur :  */

PROCEDURE Check_Builtin ISBEGIN

IF NOT Form_Success THEN

RAISE Form_Trigger_Failure;

END IF; END;

Vous pouvez définir la procédure dans une application Forms ou dans une bibliothèque attachée, puis l'appeler à partir d'un déclencheur de votre application Forms :

/*  Déclencheur When-Button-Pressed :  **/

Go_Block('xyz_block');

Check_Builtin;

Remarque : N'utilisez pas le code d'erreur interne associé à l'anomalie FORM_TRIGGER_FAILURE, car ce code peut changer sans préavis.


Traitement des erreurs dans des déclencheurs nommés par l'utilisateur

  Rubriques connexes

Les déclencheurs nommés par l'utilisateur sont appelés à l'aide du sous-programme intégré EXECUTE_TRIGGER :

/*  Déclencheur intégré :  */

instruction a;

Execute_Trigger('my_user_named_trigger');

instruction b;

Lorsqu'une anomalie non traitée est générée dans un déclencheur nommé par l'utilisateur, celui-ci échoue, mais l'anomalie ne se propage pas au déclencheur appelant. Form Builder traite l'échec comme une erreur dans la procédure interne EXECUTE_TRIGGER et définit en conséquence les valeurs de retour des fonctions d'erreur intégrées. Le résultat d'un déclencheur nommé par l'utilisateur peut donc être détecté comme un appel à un autre sous-programme intégré - c'est-à-dire par l'évaluation des fonctions d'erreur intégrées :

/*  Déclencheur intégré :  */

statement a;

Execute_Trigger('my_usernamed_trigger');

IF NOT Form_Success THEN

RAISE Form_Trigger_Failure;

END IF;

instruction b;


Traitement des erreurs pour les procédures stockées

  Rubriques connexes

Pour détecter les erreurs ORACLE retournées par le noyau pendant le traitement de votre code PL/SQL, vous avez le choix entre trois méthodes principales :

•	vérifier les sous-programmes intégrés DBMS_ERROR_TEXT et DBMS_ERROR_CODE dans un déclencheur ON-ERROR de niveau Application Forms ;

•	créer les anomalies appropriées, définies par l'utilisateur ;

•	évaluer les fonctions SQLCODE et SQLERRM dans un gestionnaire d'anomalies WHEN OTHERS.


Vérification de DBMS_ERROR_TEXT et de DBMS_ERROR_CODE

  Rubriques connexes

Dans un déclencheur ON-ERROR, vous pouvez vérifier si la fonction ERROR_CODE renvoie l'une des erreurs de base de données suivantes :

40501: Erreur ORACLE : réservation d'enregistrement impossible en vue de M.A.J. ou suppression

40502: Erreur ORACLE : lecture de liste de valeurs impossible

40505: Erreur ORACLE : exécution impossible de l'interrogation

40506: Erreur ORACLE : contrôle impossible d'unicité d'enregistrement

40507: Erreur ORACLE : extraction impossible de l'enregistrement d'interrogation suivant

40508: Erreur ORACLE : insertion (INSERT) d'enregistrement impossible

40509: Erreur ORACLE : mise à jour (UPDATE) d'enregistrement impossible

40510: Erreur ORACLE : suppression (DELETE) d'enregistrement impossible

40512: Erreur ORACLE : lancement de la commande SAVEPOINT impossible

40513: Erreur ORACLE : lecture impossible de la date/heure dans la base de données

40504: Erreur ORACLE : exécution impossible du déclencheur nomg

40511: erreur ORACLE pendant l'exécution d'un déclencheur nomg

Lorsque vous savez qu'une erreur de base de données a provoqué l'échec du traitement d'une application Forms, vous pouvez interroger les fonctions DBMS_ERROR_TEXT et DBMS_ERROR_CODE pour déterminer avec précision l'erreur qui s'est produite au niveau du serveur. Le texte intégral du message d'erreur figure dans la valeur de retour de DBMS_ERROR_TEXT.


Anomalies définies par l'utilisateur

 Exemples	     Rubriques connexes

Bien que PL/SQL comprenne de nombreuses anomalies prédéfinies (comme NO_DATA_FOUND, DUP_VAL_ON_INDEX et VALUE_ERROR), elles ne couvriront jamais toute la gamme des erreurs ORACLE que vous pouvez avoir à détecter. PL/SQL permet donc de définir vos propres anomalies et de les associer à l'occurrence d'une erreur Oracle de votre choix. Le code ci-après illustre la façon d'utiliser EXCEPTION_INIT pour demander à PL/SQL de signaler l'erreur de votre choix. Pour plus d'informations, reportez-vous à PL/SQL User's Guide and Reference.


Anomalies définies par l'utilisateur - Exemple

Exemple

/*

**	Exemple de déclaration de vos propres anomalies provoquées par des erreurs.

*/ DECLARE

    /*

    ** Commencer par déclarer le nom de l'anomalie

    */

    cannot_del_parent  EXCEPTION;

    /*

    ** L'associer ensuite à l'erreur ORA-2292

    ** "violation de contrainte d'intégrité (XYZ) -

    ** enregistrement fils existant". Notez que le numéro d'erreur est négatif.

    */

    PRAGMA Exception_Init (cannot_del_parent, -2292);

BEGIN

    DELETE FROM PARENT_TABLE

    WHERE PRIMARY_KEY_FIELD = :BLOCK.PK;

    /*

    ** Jusqu'ici, tout s'est bien passé.

    */

EXCEPTION

    /*

    ** Si notre erreur se présente, cette anomalie sera

    ** générée. Nous pouvons la traiter élégamment.

    */

    WHEN cannot_del_parent THEN

       Message(Impossible de supprimer le numéro '||

       'd'erreur ouverte'||:block.pk);

       RAISE Form_Trigger_Failure;

END;

Cette méthode donne de bons résultats lorsque le numéro d'erreur ORACLE lui-même suffit pour permettre à votre application de déterminer la cause de l'erreur. Les messages d'erreur définis par l'utilisateur peuvent être retournés par les procédures, les fonctions ou les déclencheurs de base de données, comme nous l'avons vu avec RAISE_APPLICATION_ERROR. La création d'anomalies correspondantes, définies par l'utilisateur, est la contrepartie naturelle de la détection des erreurs que vous générez.

Cependant, certaines erreurs retournées par le noyau contiennent le nom de la contrainte (parmi de nombreuses possibilités) ayant été violée, et retourne toujours un seul numéro d'erreur ORACLE. Exemple :

ORA-02290: violation des contraintes de vérification (SCOTT.C_CK)


Détection de SQLCODE et de SQLERRM

 Exemples	     Rubriques connexes

Dans ce cas, nous devons accéder au message d'erreur lui-même pour connaître l'origine du problème. La clause WHEN OTHERS doit être utilisée pour permettre de saisir et d'évaluer SQLCODE et SQLERRM. Ces deux fonctions PL/SQL, qui simulent leurs équivalents en PRO*Language, ne peuvent être utilisées que dans un gestionnaire d'anomalies, et servent surtout dans une clause WHEN OTHERS. En outre, la fonction appelée strip_constraint_name accepte le texte d'une erreur Oracle et retourne en majuscules le nom de la contrainte qui a été violée. Voir les deux exemples ci-après.


Détection de SQLCODE et de SQLERRM - Exemples

Exemple 1

/*

** Exemple d'utilisation de SQLCODE/SQLERRM dans WHEN OTHERS

*/

DECLARE

    lv_sqlcode NUMBER; /* Emplacement de SQLCODE */

    lv_sqlerrm VARCHAR2(240); /* Emplacement de SQLERRM */

    lv_constr  VARCHAR2(41); /* Emplacement du nom de contrainte */

BEGIN

    UPDATE PARENT_TABLE

       SET SOME_FIELD = 5

    WHERE PRIMARY_KEY_FIELD = :BLOCK.PK;

    /*

    ** Jusqu'ici, tout s'est bien passé.

    */

EXCEPTION

    /*

    ** En cas d'erreur, le gestionnaire d'anomalies prend le contrôle

    */

    WHEN OTHERS THEN

       lv_sqlcode := SQLCODE;

       lv_sqlerrm := SQLERRM;

       IF (lv_sqlcode = -2290) THEN

          /*

          ** Extraire le nom de la contrainte violée

          */

          lv_constr := strip_constraint_name(lv_sqlerrm);

           IF (lv_constr = 'SCOTT.C_CK') THEN

                         Message('Le code doit être A, B ou C');

                         RAISE Form_Trigger_Failure;

          END IF;

       END IF;

END;

Exemple 2

/*	STRIP_CONSTRAINT_NAME: Retourner le nom de contrainte fourni par l'erreur.

**  Le nom de contrainte doit figurer entre parenthèses

**  dans les erreurs Oracle 02290-02292 et 02296-02299.

**  Retourner le texte entre parenthèses lorsque le texte

**  du message d'erreur est indiqué.

*/

FUNCTION strip_constraint_name( errmsg VARCHAR2 )

RETURN VARCHAR2

IS

   lv_pos1 NUMBER;

   lv_pos2 NUMBER;

BEGIN

   lv_pos1 := INSTR(errmsg, '(');

   lv_pos2 := INSTR(errmsg, ')');

   IF (lv_pos1 = 0 OR lv_pos2 = 0 ) THEN

       RETURN(NULL);

     ELSE

        RETURN(UPPER(SUBSTR(errmsg, lv_pos1+1,

                               lv_pos2-lv_pos1-1)));

    END IF;

END;

Pour détecter les erreurs ORACLE résultant d'opérations INSERT, UPDATE et DELETE sur des blocs de base de données, vous devez coder les déclencheurs ON-INSERT, ON-UPDATE et/ou ON-DELETE respectifs, pour effectuer réellement les opérations DML.

Les erreurs liées aux fonctions traitées ci-dessus et pouvant être détectées dans le premier exemple sont les suivantes :

•	Après un SET ROLE :

       ORA-01919: Le rôle ROLENAME n'existe pas

       ORA-01979: Mot de passe absent ou non valide

•	Après une opération DML correspondante :

       ORA-00001: Violation de contrainte unique

       ORA-01400: Colonne obligatoire (NOT NULL) absente

       ORA-01407: Mise à jour de colonne obligatoire (NOT NULL)

                  impossible

       ORA-04088: Erreur lors de l'exécution du déclencheur

                 (OWNER.TRIGGERNAME)

       ORA-04092: Impossible de valider ou d'annuler dans un déclencheur


A propos de l'assistant Graphique

  Etape suivante

A propos de l'assistant Graphique

L'assistant Graphique vous explique, étape par étape, la création d'un graphique à partir d'un état, et vous permet d'effectuer les opérations suivantes :

•	Indiquer un type et un sous-type de graphique.

•	Indiquer le groupe de données ou l'interrogation qui contient les données que vous voulez attribuer aux colonnes du graphique.

•	Indiquer les données qui apparaîtront sur l'axe Catégorie (X) du graphique.

•	Indiquer les données qui apparaîtront sur l'axe Valeur (Y) du graphique.

Pour indiquer les paramètres du graphique que vous voulez créer, suivez les messages de chaque page de l'assistant.

L'assistant Graphique est invariant

L'une des principales qualités de l'assistant Graphique est sa possibilité de fonctionner en mode invariant. Dans ce mode, vous pouvez utiliser l'assistant Graphique pour modifier les graphiques créés à l'aide de cet assistant.

Pour appeler l'assistant Graphique en mode invariant, sélectionnez l'objet graphique dans le Navigateur d'objet, puis choisissez Outils [image] Assistant Graphique dans le menu.

Navigation dans l'assistant Graphique

L'assistant Graphique comporte cinq boutons qui vous permettent de vous déplacer dans ses différentes pages :

• Annuler  permet d'annuler toutes les modifications que vous avez apportées (le cas échéant) et de vous faire sortir de l'assistant ;

•	Aide-permet d'afficher le texte d'aide en ligne de la page en cours de l'assistant ;

•	Précédent-permet de revenir à la page précédente de l'assistant ;

• Suivant-permet de passer à la page suivante de l'assistant ;

• Fin-permet d'enregistrer les modifications que vous avez apportées en utilisant l'assistant (le cas échéant) et de quitter l'assistant.

Remarque : Si vous cliquez sur Suivant ou sur Précédent avant d'avoir entré toutes les informations concernant une page d'assistant donnée, l'assistant vous empêche de passer à la page suivante ou de revenir à la page précédente. De même, si vous n'avez pas entré toutes les informations nécessaires lorsque vous cliquez sur Fini l'assistant affiche automatiquement la page dans laquelle vous pouvez entrer les données nécessaires.


Assistant Graphique : page Type

  Etape suivante 	  A propos de l'assistant

Pour indiquer un type de graphique à l'aide de l'assistant Graphique :

1	(Facultatif) Dans le champ Titre, entrez le titre qui apparaîtra au-dessus du graphique.

2	Dans la liste Type de graphique, sélectionnez un type. Le type de graphique indique le format de base de l'affichage (par exemple, graphique à secteurs ou graphique à barres). La fenêtre de l'affichage comporte un exemple du type de graphique que vous avez sélectionné.

3	Dans la liste Sous-type de graphique, sélectionnez un sous-type. Le sous-type est un modèle ou un style propre à l'affichage (ombre, par exemple). La liste Sous-type de graphique affiche les sous-types que vous pouvez sélectionner pour le type de graphique choisi.


Assistant Graphique : page Bloc

  Etape suivante 	  A propos de l'assistant

Pour sélectionner un bloc de données pour votre graphique à l'aide de l'assistant Graphique :

  Dans la liste Nom de bloc, cliquez sur le bloc de données à utiliser dans votre graphique. Le bloc que vous sélectionnez détermine les données qui pourront être attribuées aux axes Catégorie et Valeur de votre graphique.


Assistant Graphique : page Catégorie

  Etape suivante 	  A propos de l'assistant

Pour établir la correspondance des données avec l'axe Catégorie (X) de votre graphique à l'aide de l'assistant Graphique :

1	Dans la liste Champs disponibles, sélectionnez le champ dont vous voulez établir la correspondance avec l'axe Catégorie (X) du graphique.

Remarque :Vous devez sélectionner au moins un champ avant de passer à la page suivante.

2	Cliquez sur [image] pour transférer le champ sélectionné de la liste Champs disponibles à la liste Axe Catégorie .

Remarque :  Vous devez transférer au moins un champ de la liste Champs disponibles à la liste Catégorie avant de passer à la page suivante.


Assistant Graphique : page Valeur

  Etape suivante 	  A propos de l'assistant

Pour établir la correspondance des données avec l'axe Valeur (Y) de votre graphique à l'aide de l'assistant Graphique :

1	Dans la liste Champs disponibles, sélectionnez le champ dont vous voulez établir la correspondance avec l'axe Valeur (Y) du graphique

2	Cliquez sur [image] pour transférer le champ sélectionné de la liste Champs disponibles à la liste Axe Valeur.  Conseil

Remarque :  Vous devez transférer au moins un champ de la liste Champs disponibles à la liste Valeur avant de passer à la page suivante.


Assistant Graphique : page Nom de fichier

  A propos de l'assistant

Pour enregistrer votre graphique sous le nom de fichier par défaut :

  Cliquez sur Fin. Le graphique est enregistré sous le nom par défaut qui est généré automatiquement et affiché dans le champ Nom de fichier. Le graphique terminé apparaît sur la présentation.

Pour enregistrer votre graphique sous un nom de fichier autre que le nom par défaut :

1	Cliquez sur Enregistrer sous.

2	Dans la boîte de dialogue Enregistrer sous, passez au répertoire dans lequel vous voulez enregistrer le graphique et entrez le nouveau nom de fichier. Cliquez sur Enregistrer.

3	Cliquez sur Fin. Le graphique s'affiche dans la présentation.

Etape suivante

Lorsque vous cliquez sur Fin, Form Builder affiche votre graphique terminé dans la présentation. Pour revenir à l'assistant, vous pouvez sélectionner l'objet graphique terminé et choisir Outils [image] Assistant Graphique dans le menu.


Cliquez sur  pour retransférer un champ sélectionné de la liste Axe Valeur à la liste Champs disponibles.
Cliquez sur [image] pour retransférer un champ sélectionné de la liste Axe Catégorie à la liste Champs disponibles.


Cliquez sur [image] pour retransférer un champ sélectionné de la liste Axe Valeur à la liste Champs disponibles.


FRM-50001
FRM-50001 : Les caractères valides comprennent les lettres a-z et A-Z, ainsi que l'espace.

Cause :	Vous avez entré un caractère interdit dans l'élément.

Action :	Entrez un caractère compris entre a et z ou A et Z, ou un espace.

Niveau :	15

Type :	Erreur


FRM-50002
FRM-50002 : Le mois doit être représenté par un chiffre compris entre 1 et 12.

Cause :	Vous avez entré une valeur non valide pour le mois dans un champ date.

Action :	Entrez un mois compris entre 1 (pour janvier) et 12 (pour décembre).

Niveau :	15

Type :	Erreur


FRM-50003
FRM-50003 : L'année doit être représentée par un chiffre compris entre 00 et 99 ou 1000 et 4712.

Cause :	Vous avez entré une date non valide.

Action :	Entrez une date valide. L'année peut être un nombre compris entre 0 et 99 (pour les années 1900 à 1999) ou entre 1000 et 4712.

Niveau :	15

Type :	Erreur


FRM-50004
FRM-50004 : Le jour doit être compris entre le 1er et le dernier jour du mois.

Cause :	Vous avez entré un jour non valide.

Action :	Entrez un jour valide. Pour avril, par exemple, entrez un nombre compris entre 1 et 30.

Niveau :	15

Type :	Erreur


FRM-50006
FRM-50006 : Caractères acceptés : 0-9 + et -.

Cause :	Vous avez entré un caractère interdit dans un élément nombre.

Action :	Entrez un nombre valide. Un nombre valide se compose des chiffres 0 à 9, éventuellement précédés du signe plus (+) ou moins (-). Si le message le permet, un nombre peut contenir une décimale en un endroit quelconque, sauf avant le signe.

Niveau :	15

Type :	Erreur


FRM-50007
FRM-50007 : Trop de chiffres après la décimale.

Cause :	Vous avez entré un nombre à 3 chiffres ou plus après la décimale dans un élément de type de données MONEY ou RMONEY.

Action :	Entrez un nombre valide.

Niveau :	15

Type :	Erreur


FRM-50009
FRM-50009 : Trop de décimales.

Cause :	Vous avez entré un nombre contenant deux décimales ou davantage, ou un nombre contenant une décimale dans un élément exigeant un nombre entier (non décimal).

Action :	Entrez un nombre ne contenant qu'une seule décimale. Si vous n'en avez utilisé qu'une, supprimez-la ainsi que la partie décimale du nombre.

Niveau :	15

Type :	Erreur


FRM-50010
FRM-50010 : Représentation monétaire acceptée : [+-]9999999,99

Cause :	Vous avez entré une valeur non valide dans un élément MONEY ou RMONEY.

Action :	Entrez une valeur valide. Cette valeur doit être formée d'un ou plusieurs chiffres, suivis d'une décimale et de deux chiffres. Le nombre peut être précédé d'un signe plus (+) ou moins (-).

Niveau :	15

Type :	Erreur


FRM-50011
FRM-50011 : Nom de mois erroné.

Cause :	Vous avez entré un nom de mois non valide dans un champ date.

Action :	Entrez un nom de mois valide. Form Builder reconnaît les trois premiers caractères d'un nom de mois. Par exemple, JAN représente le mois de janvier et JUN le mois de juin.

Niveau :	15

Type :	Erreur


FRM-50012
FRM-50012 : Format de date accepté : %s.

Cause :	Vous avez entré une date non valide ou formatée de façon incorrecte.

Action :	Entrez à nouveau la date selon le format requis.

Niveau :	15

Type :	Erreur


FRM-50013
FRM-50013 : Les signes Plus et Moins doivent être placés en première position.

Cause :	Vous avez entré un signe plus ou moins dans une position erronée.

Action :	Entrez le signe plus ou moins en première position.

Niveau :	15

Type :	Erreur


FRM-50014
FRM-50014 : Exposant incorrect.

Cause :	Vous avez entré un exposant dans un élément qui n'accepte pas les exposants.

Action :	Entrez une valeur sans exposant.

Niveau :	15

Type :	Erreur


FRM-50016
FRM-50016 : Caractères acceptés : 0-9 - + E .

Cause :	Vous avez entré un caractère interdit dans un élément nombre.

Action :	Entrez un nombre valide. Un nombre valide se compose des chiffres 0 à 9, éventuellement précédés du signe plus (+) ou moins (-). Si le message le permet, un nombre peut contenir une décimale en un endroit quelconque, sauf avant le signe. Vous pouvez utiliser un E pour indiquer la notation scientifique.

Niveau :	15

Type :	Erreur


FRM-50017
FRM-50017 : L'heure doit être comprise entre 0 et 23.

Cause :	Vous avez entré une heure non valide.

Action :	Entrez une heure valide. Form Builder enregistre l'heure selon un format de 24 heures.

Niveau :	15

Type :	Erreur


FRM-50018
FRM-50018 : Les minutes doivent être représentées par un chiffre entre 00 et 59.

Cause :	Vous avez entré une valeur non valide pour les minutes.

Action :	Entrez une valeur valide pour les minutes.

Niveau :	15

Type :	Erreur


FRM-50019
FRM-50019 : Les secondes doivent être représentées par un chiffre entre 00 et 59.

Cause :	La valeur que vous avez entrée n'est pas valide.

Action :	Entrez une valeur comprise entre 00 et 59.

Niveau :	15

Type :	Erreur


FRM-50020
FRM-50020 : Absence d'exposant.

Cause :	Vous avez omis d'entrer un exposant.

Action :	Entrez un exposant.

Niveau :	15

Type :	Erreur


FRM-50021
FRM-50021 : Format de date accepté : %s.

Cause :	Vous avez entré une date non valide ou formatée de façon incorrecte.

Action :	Entrez à nouveau la date selon le format requis.

Niveau :	15

Type :	Erreur


FRM-50022
FRM-50022 : Représentation de l'heure acceptée : %s.

Cause :	Vous avez entré une représentation de l'heure non valide.

Action :	Entrez à nouveau l'heure selon la représentation requise.

Niveau :	15

Type :	Erreur


FRM-50023
FRM-50023 : Format de date accepté : %s.

Cause :	Vous avez entré une date non valide ou formatée de façon incorrecte.

Action :	Entrez à nouveau la date selon le format requis.

Niveau :	15

Type :	Erreur


FRM-50024
FRM-50024 : Espaces autorisés en première position uniquement.

Cause :	Vous avez inséré des espaces entre les données.

Action :	Entrez à nouveau les données sans insérer d'espaces.

Niveau :	15

Type :	Erreur


FRM-50025
FRM-50025 : Format date/heure accepté : %s.

Cause :	Vous avez entré une date/heure non valide ou formatée de façon incorrecte.

Action :	Entrez à nouveau la date et l'heure selon le format requis.

Niveau :	15

Type :	Erreur


FRM-50026
FRM-50026 : Format de date accepté : %s.

Cause :	Vous avez entré une date non valide ou formatée de façon incorrecte.

Action :	Entrez à nouveau la date selon le format requis.

Niveau :	15

Type :	Erreur


FRM-50027
FRM-50027 : Masque de format incorrect pour le type de données indiqué.

Cause :	Le masque de format que vous avez affecté à un élément texte est incompatible avec le type de données de cet élément texte.

Action :	Affectez un nouveau masque de format à l'élément texte. Pour plus d'informations, reportez-vous à l'aide concernant les masques de format d'élément.

Niveau :	15

Type :	Erreur


FRM-50028
FRM-50028 : Masque de format non autorisé pour ce type de données.

Cause :	Les types de données LONG, IMAGE et GRAPHICS ne prennent pas en charge le masque de format.

Action :	N'essayez pas de créer un masque de format pour les types de données LONG, IMAGE ou GRAPHICS.

Niveau :	15

Type :	Erreur


FRM-50029
FRM-50029 : Trop de chiffres avant la décimale pour une notation scientifique.

Cause :	Vous avez indiqué un nombre en recourant à la notation scientifique, mais vous avez entré plus d'un chiffre avant la décimale.

Action :	Entrez à nouveau votre nombre en respectant la notation scientifique.

Niveau :	15

Type :	Erreur


FRM-50045
FRM-50045 : Les secondes après minuit sont en conflit avec l'heure.

Cause:	Vous avez entré des secondes après minuit qui ne correspondent pas à l'heure.

Action:	Assurez-vous que l'heure et les secondes après minuit correspondent ou utilisez un masque de format sans seconde après minuit.

Niveau :	15

Type :	Erreur


FRM-50048
FRM-50048 : Les nouveaux mots de passe ne concordent pas. Faites en sorte qu'ils soient identiques.

Cause :	Vous avez entré des chaînes différentes dans les champs 'Nouveau mot de passe' et 'Confirmation du nouveau mot de passe'.

Action :	Ressaisissez les valeurs dans les champs (Nouveau et Confirmation) de manière qu'elles soient identiques.

Niveau :	15

Type :	Erreur


FRM-90925
FRM-90925 : Trop d'arguments dans la ligne de commande.

Cause :	De trop nombreux arguments ont été indiqués sur la ligne de commande.

Action :	Entrez à nouveau vos commandes et réessayez.


FRM-90926
FRM-90926 : Paramètre en double dans la ligne de commande.

Cause :	Deux paramètres identiques ont été entrés sur la ligne de commande.

Action :	Corrigez la commande que vous avez entrée et essayez à nouveau.


FRM-90927
FRM-90927 : Paramètre inconnu dans la ligne de commande.

Cause :	Vous avez indiqué un paramètre inconnu dans la ligne de commande.

Action :	Vérifiez la ligne de commande et apportez les corrections nécessaires.


FRM-90928
FRM-90928 : Paramètre de pondération après la clé sur la ligne de commande.

Cause :	Les paramètres ne sont pas dans l'ordre requis sur la ligne de commande, un paramètre est absent ou le signe '=' est absent.

Action :	Apportez les corrections nécessaires à la ligne de commande et essayez à nouveau.


FRM-90929
FRM-90929 : Valeur incorrecte dans le paramètre de la ligne de commande.

Cause :	Vous avez indiqué une valeur de paramètre non valide sur la ligne de commande.

Action :	Vérifiez la ligne de commande et apportez les corrections nécessaires.


FRM-90930
FRM-90930 : Paramètre de fichier incorrect sur la ligne de commande.

Cause :	Vous avez indiqué un paramètre de fichier non valide sur la ligne de commande.

Action :	Vérifiez la ligne de commande et apportez les corrections nécessaires.


FRM-90931
FRM-90931 : Erreur de traitement de la ligne de commande.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.


FRM-90932
FRM-90932 : Valeur de liste incorrecte dans la ligne de commande.

Cause :	La valeur de liste indiquée n'est pas valide.

Action :	Indiquez la valeur correcte et essayez à nouveau.


FRM-90933
FRM-90933 : Valeur de liste interdite sur la ligne de commande.

Cause :	Une valeur de liste interdite a été indiquée sur la ligne de commande.

Action :	Vérifiez la ligne de commande et apportez les corrections nécessaires.


FRM-91010
FRM-91010 : Paramètre Module_Access : FILE ou DATABASE.

Cause :	Le paramètre indiqué pour Module_Access n'était pas FILE ni DATABASE.

Action :	Indiquez FILE ou DATABASE pour le paramètre Module_Access.


FRM-91017
FRM-91017 : Paramètre Module_type : FORM, MENU, LIBRARY ou PECS.

Cause :	Le paramètre indiqué pour Module_Type n'était pas FORM, MENU? LIBRARY ni PECS.

Action:	Indiquez FORM, MENU, LIBRARY ou PECS pour le paramètre Module_Type.


FRM-91100
FRM-91100 : Erreur interne : impossible de créer contexte Commun.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.


FRM-91101
FRM-91101 : Erreur interne : impossible de créer contexte Foundation.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.


FRM-91102
FRM-91102 : Erreur interne : impossible d'interpréter la ligne de commande.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.


FRM-91103
FRM-91103 : Erreur interne : mémoire insuffisante.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-91104
FRM-91104 : Erreur interne : erreur inconnue.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.


FRM-91108
FRM-91108 : Erreur interne : impossible d'initialiser PL/SQL.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.


FRM-91109
FRM-91109 : Erreur interne : échec de démarrage de l'application.

Cause :	Impossible de démarrer le système de fenêtres.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91110
FRM-91110 : Erreur interne : nom de fichier %s introuvable.

Cause :	Fichiers de ressources introuvables.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91111
FRM-91111 : Erreur interne : échec de démarrage du système de fenêtres.

Cause :	Vous essayez d'exécuter Form Builder sur un système de fenêtres alors que vous êtes en mode caractère.

Action :	Lancez le programme exécutable adéquat.

Niveau :	15

Type :	Erreur


FRM-91112
FRM-91112 : Erreur interne : échec de démarrage du gestionnaire de ressources.

Cause :	Fichiers de ressources introuvables.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91113
FRM-91113 : Erreur interne : nom du fichier de ressources par défaut introuvable.

Cause :	Fichiers de ressources introuvables.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91115
FRM-91115 : Erreur interne : échec de liaison de table.

Cause :	Correspondances de clés introuvables.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91116
FRM-91116 : Erreur interne : échec de démarrage de Oracle*Image.

Cause :	Fichiers de ressources introuvables.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91117
FRM-91117 : Erreur interne : échec d'initialisation de la taille de police.

Cause :	Fichiers de ressources introuvables.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91118
FRM-91118 : Erreur interne : échec d'initialisation de la fenêtre principale.

Cause :	Fenêtre principale introuvable.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91119
FRM-91119 : Erreur interne : échec de démarrage de Oracle*VGS.

Cause :	Démarrage impossible du contexte VGS.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91120
FRM-91120 : Erreur interne : chargement du jeu de caractères NLS impossible.

Cause :	Chargement impossible du jeu de caractères NLS indiqué.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91121
FRM-91121 : Erreur interne : démarrage impossible du lecteur Assistant.

Cause :	Impossible de démarrer le lecteur Assistant.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91122
FRM-91122 : Erreur interne : création de contexte de chaîne impossible.

Cause :	Impossible de démarrer le contexte de chaîne.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91123
FRM-91123 : Erreur interne : démarrage du gestionnaire quark impossible.

Cause :	Impossible de démarrer le gestionnaire quark.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-91124
FRM-91124 : Attention : %s indiqué pour ORAFORMS_DECIMAL_PREFIX. Valeur autorisée : 0 (zéro) ou ' ' (chaîne vide).

Cause :	Vous avez indiqué une valeur non valide pour la variable d'environnement ORAFORMS_DECIMAL_PREFIX.

Action :	Effectuez l'une des actions suivantes :

1.  Donnez à ORAFORMS_DECIMAL_PREFIX la valeur 0 afin d'imposer un zéro devant la décimale de tête pour tout nombre affiché sans masque de format dans l'application.

2.  Donnez à ORAFORMS_DECIMAL_PREFIX la valeur ' ' (chaîne vide).

3.  N'indiquez aucune valeur de variable.


FRM-91125
FRM-91125 : Erreur interne : démarrage de la couche navigateur impossible.

Cause:	Impossible de démarrer la couche navigateur.

Action :	Contactez le Support technique Oracle.

Niveau :	15

Type :	Erreur


FRM-10063
FRM-10063 : Fichier d'aide soit introuvable soit endommagé.

Cause :	Form Builder ne parvient pas à localiser ou à charger le fichier d'aide.

Action :	Vérifiez votre environnement ainsi que le chemin d'accès du fichier d'aide. Si nécessaire, contactez votre administrateur de bases de données.


FRM-91500
FRM-91500 : Impossible de démarrer/terminer la génération.

Cause :	Fichiers de ressources introuvables.

Action :	Contactez le Support technique Oracle.


FRM-91506
FRM-91506 : L'insertion d'un module de bibliothèque dans la base de données n'est pas prise en charge.

Cause:	Impossible d'insérer un module de bibliothèque dans la base de données.

Action:	Enregistrez le module de bibliothèque dans le système de fichiers.


FRM-91507
FRM-91507 : Erreur interne : impossible de générer la bibliothèque.

Cause:	Génération de la bibliothèque impossible à cause d'une erreur interne.

Action:	La cause de cette erreur peut être l'une des suivantes.

Le système de fichiers est saturé.

Le fichier PLX est en lecture seule ou il est utilisé par un autre programme.

Action :	Si ce n'est pas le cas, contactez le Support technique Oracle.


FRM-99999
FRM-99999 : Erreur %d. Reportez-vous au fichier relnotes pour plus d'informations sur cette erreur.

Cause :	Une erreur s'est produite.

Action :	Reportez-vous au fichier relnotes.


FRM-99999
FRM-99999 : Erreur %d. Pour plus d'informations sur cette erreur, reportez-vous au fichier relnotes.

Cause :	Une erreur s'est produite. Elle est documentée dans le fichier Relnotes.

Action :	Reportez-vous au fichier relnotes.


FRM-10000
FRM-10000 : Erreur de validation dans l'élément.

Cause :	Vous avez tenté d'appliquer une définition d'élément non valide.

Action :	Modifiez les paramètres de propriété de l'élément afin que sa définition soit valide.


FRM-10001
FRM-10001 : Erreur interne : TOS.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10002
FRM-10002 : Impossible d'enregistrer le module courant.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10003
FRM-10003 : Impossible d'extraire le module à partir du fichier.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10004
FRM-10004 : Entrer une valeur unique et valide.

Cause :	La valeur que vous avez entrée n'est pas valide.

Action :	Remplacez cette valeur par une valeur valide.


FRM-10005
FRM-10005 : Vous devez entrer une valeur.

Cause :	Vous avez tenté de quitter ce champ sans y avoir entré aucune valeur.

Action :	Entrez une valeur.


FRM-10006
FRM-10006 : Erreur interne.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10007
FRM-10007 : Impossible d'accéder à la table.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10008
FRM-10008 : Impossible de créer la table.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10009
FRM-10009 : Objet introuvable.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10010
FRM-10010 : Erreur interne : impossible d'insérer un objet.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10011
FRM-10011 : Erreur interne : impossible de supprimer un objet.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10012
FRM-10012 : Erreur interne : mémoire insuffisante.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10013
FRM-10013 : Le système a trouvé un objet dupliqué.

Cause :	Une erreur système interne s'est produite lors de l'enregistrement d'un module dans la base de données.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10014
FRM-10014 : Un module de ce nom existe déjà.

Cause :	Une erreur système interne s'est produite lors de l'enregistrement d'un module dans la base de données.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10015
FRM-10015 : Le système a trouvé des références dupliquées.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10016
FRM-10016 : Erreur interne : impossible de fermer la zone de stockage des objets.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10017
FRM-10017 : Erreur interne : annulation (rollback) impossible.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10018
FRM-10018 : Erreur interne: impossible de valider les modifications.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10019
FRM-10019 : Erreur interne : impossible d'ouvrir la zone de stockage des objets.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10020
FRM-10020 : Module existant.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10021
FRM-10021 : Module introuvable.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10022
FRM-10022 : Erreur interne : impossible de référencer un objet.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10023
FRM-10023 : Erreur interne : impossible d'extraire des objets de la zone de stockage des objets.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10025
FRM-10025 : Impossible d'extraire l'objet Table de correspondance de colonne.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10027
FRM-10027 : Impossible d'extraire l'objet Définition de colonne.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10029
FRM-10029 : Impossible d'extraire l'objet Liste nommée.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10031
FRM-10031 : Impossible d'extraire l'objet Bouton d'option.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10033
FRM-10033 : Impossible d'extraire l'objet VGS.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10034
FRM-10034 : Vous devez entrer un nom de module valide.

Cause :	Une erreur système interne s'est produite lors de l'ouverture d'un module à partir de la base de données.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10035
FRM-10035 : Module inexistant.

Cause :	Le nom de module que vous avez indiqué n'existe pas.

Action :	Vérifiez le nom du module ou entrez un autre nom.


FRM-10037
FRM-10037 : Impossible d'extraire les relations.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10038
FRM-10038 : Suppression impossible : objet verrouillé.

Cause :	Vous avez tenté de supprimer un objet, tel qu'un élément ou un canevas, qui est verrouillé par un Editeur de présentation actif. Un objet est verrouillé lorsqu'il a été modifié par l'Editeur de présentation.

Action :	Déverrouillez l'objet.


FRM-10039
FRM-10039 : Impossible de lancer Form Builder.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10040
FRM-10040 : La commande Rétablir ne s'applique pas à un nouveau module.

Cause :	Vous avez choisi Fichier->Rétablir pour un module qui n'a pas été enregistré. Il n'existe donc aucune version de ce module à rétablir.

Action :	Fermez le module sans l'enregistrer, puis ouvrez un nouveau module.


FRM-10041
FRM-10041 : Opération non valide si vous n'êtes pas connecté à la base de données.

Cause :	Vous avez tenté d'effectuer une opération de développement qui nécessite Form Builder pour vous connecter à la base de données.

Action :	Ouvrez une session et connectez-vous à la base de données.


FRM-10042
FRM-10042 : Ce fichier n'est pas un fichier Form Builder.

Cause :	Vous avez tenté d'ouvrir un fichier qui n'est pas un module de développement Form Builder valide.

Action :	Ouvrez un module Application Forms (.FMB), menu (.MMB) ou bibliothèque (.PLL).


FRM-10043
FRM-10043 : Ouverture de fichier impossible.

Cause :	Vous avez tenté d'ouvrir un fichier qui n'est pas un module de développement Form Builder valide.

Action :	Ouvrez un module Application Forms (.FMB), menu (.MMB) ou bibliothèque (.PLL).


FRM-10044
FRM-10044 : Création de fichier impossible.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10045
FRM-10045 : Connexion à la base de données impossible.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10046
FRM-10046 : Impossible de supprimer l'objet VGS.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10047
FRM-10047 : Import autorisé uniquement vers un élément Texte multiligne.

Cause :	Vous avez tenté d'importer du texte vers un champ texte monoligne ou vers un autre type de contrôle. (Vous ne pouvez importer du texte que vers un élément multiligne.)

Action :	Aucune.


FRM-10048
FRM-10048 : Export autorisé uniquement à partir d'un élément Texte multiligne.

Cause :	Vous avez tenté d'exporter du texte à partir d'un champ texte monoligne ou d'un autre type de contrôle. (Vous ne pouvez exporter du texte qu'à partir d'un élément multiligne.)

Action :	Aucune.


FRM-10049
FRM-10049 : Opération autorisée uniquement à partir d'un élément Texte multiligne.

Cause :	Vous avez tenté d'appeler l'opération par défaut, qui ne peut être appelée qu'à partir d'un champ texte multiligne.

Action :	Aucune.


FRM-10050
FRM-10050 : Vous devez entrer une valeur correcte.

Cause :	Vous avez indiqué une valeur non valide ou laissé vierge un champ obligatoire.

Action :	Indiquez une valeur valide.


FRM-10051
FRM-10051 : Une erreur s'est produite au cours de l'import de texte.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10052
FRM-10052 : Une erreur s'est produite au cours de l'export de texte.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10053
FRM-10053 : Aucune imprimante disponible.

Cause :	L'imprimante que vous avez indiquée est occupée ou n'est pas connectée.

Action :	Vérifiez les connexions de l'imprimante ou essayez à nouveau plus tard.


FRM-10054
FRM-10054 : Impossible d'attacher la bibliothèque PL/SQL %s.

Cause :	La bibliothèque que vous avez indiquée est verrouillée pour les autres utilisateurs ou son nom n'est pas valide.

Action :	Vérifiez le nom de la bibliothèque et retentez l'opération.


FRM-10056
FRM-10056 : Ce fichier contient un type de module incorrect.

Cause :	Le fichier n'est pas du type de module adéquat pour l'opération que vous tentez d'exécuter.

Action :	Aucune.


FRM-10057
FRM-10057 : Opération interdite sur un module qui ne vous appartient pas.

Cause :	Vous avez tenté d'exécuter une opération, telle que la révocation d'autorisations d'accès, sur un module de la base de données dont vous n'êtes pas le propriétaire.

Action :	Aucune.


FRM-10058
FRM-10058 : Impossible de trouver l'objet à copier/à référencer.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10059
FRM-10059 : Modifications non enregistrées dans la bibliothèque PL/SQL avant la génération.

Cause :	Vous avez tenté de compiler la bibliothèque avant d'enregistrer vos modifications.

Action :	Enregistrez vos modifications, puis compilez la bibliothèque.


FRM-10060
FRM-10060 : L'extraction d'objets référencés n'est possible que si vous êtes connecté à la base de données.

Cause :	Vous avez tenté de référencer un objet alors que Form Builder n'était pas connecté à la base de données. Seuls les objets appartenant à des modules stockés dans la base de données peuvent être référencés.

Action :	Ouvrez une session et connectez-vous à la base de données.


FRM-10061
FRM-10061 : Compilation/décompilation d'un fichier de bibliothèque PL/SQL impossible

Cause :	Vous avez tenté de compiler ou décompiler un fichier bibliothèque.

Action :	Ne tentez pas de compiler ou décompiler un fichier bibliothèque.


FRM-10062
FRM-10062 : Vous devez fermer la fenêtre modale avant de quitter.

Cause :	Le système n'a pas reçu votre réponse à une fenêtre modale.

Action :	Répondez à la fenêtre modale avant de quitter.


FRM-10064
FRM-10064 : Impossible de charger l'objet à partir du fichier de ressources.

Cause :	Un problème de mémoire ou de fichier de ressources erroné, ou un autre problème de ressources, est survenu.

Action :	Vérifiez votre environnement de développement.


FRM-10065
FRM-10065 : Echec d'initialisation de l'environnement de développement (DE).

Cause :	L'environnement de développement ne s'est pas initialisé, probablement parce que le système n'est pas parvenu à localiser les ressources.

Action :	Vérifiez votre environnement de développement.


FRM-10066
FRM-10066 : Impossible de créer un module.

Cause :	Le système n'est pas parvenu à localiser les ressources nécessaires.

Action :	Vérifiez votre environnement de développement.


FRM-10067
FRM-10067 : Impossible de verrouiller le module.

Cause :	Le module est actuellement ouvert par d'autres utilisateurs.

Action :	Attendez que le module se libère ou demandez aux autres utilisateurs du module de quitter.


FRM-10068
FRM-10068 : Impossible de déverrouiller le module.

Cause :	Le module est verrouillé par un autre utilisateur.

Action :	L'autre utilisateur doit déverrouiller le module.


FRM-10069
FRM-10069 : Impossible de détacher le module bibliothèque PL/SQL en cours.

Cause :	Vous avez tenté de détacher une bibliothèque en cours d'utilisation.

Action :	Ne détachez pas une bibliothèque en cours d'utilisation.


FRM-10070
FRM-10070 : Impossible de charger les informations associées au rattachement de la bibliothèque PL/SQL en cours.

Cause :	Vous avez tenté de charger un module de bibliothèque Forms 4.0, mais Forms n'est pas parvenu à charger ce module.

Action :	Vérifiez que la bibliothèque peut être chargée à l'aide de Forms 4.0. Si c'est le cas, contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10071
FRM-10071 : Erreur interne : impossible d'ouvrir le fichier de ressources %s.

Cause :	Fichier de ressources introuvable.

Action :	Réinstallez Form Builder ou appelez le Support technique Oracle.


FRM-10072
FRM-10072 : Erreur interne : impossible d'ouvrir la définition de menu %s

Cause :	Impossible de trouver les définitions de ressources du menu.

Action :	Réinstallez Form Builder ou appelez le Support technique Oracle.


FRM-10074
FRM-10074 : Impossible de générer un fichier script de bibliothèque PL/SQL.

Cause :	Erreur de lecture d'un fichier bibliothèque.

Action :	Corrigez les erreurs détectées lors du processus de scriptage.


FRM-10075
FRM-10075 : Impossible de générer une bibliothèque PL/SQL à partir d'un fichier script.

Cause :	Impossible de convertir un fichier bibliothèque ASCII au format bibliothèque.

Action :	Corrigez les erreurs détectées lors du processus de conversion.


FRM-10076
FRM-10076 : Pour tenir dans l'espace alloué, la valeur entrée sera tronquée.

Cause :	La chaîne que vous avez entrée est trop longue pour tenir dans le champ.

Action :	Diminuez la longueur de la chaîne.


FRM-10077
FRM-10077 : Impossible d'extraire chaînes à traduire vers fichier NX.

Cause :	Une erreur interne est survenue lors de la traduction des chaînes à partir du fichier NX.

Action :	Contactez le Support technique Oracle.


FRM-10078
FRM-10078 : Impossible de fusionner des chaînes traduites à partir du fichier NX.

Cause :	Une erreur interne est survenue lors de la traduction des chaînes à partir du fichier NX.

Action :	Contactez le Support technique Oracle.


FRM-10080
FRM-10080 : Services de gestion des archives et rapports non installés sur cette machine.

Cause :	Le composant de gestion des archives et rapports de Form Builder n'est pas installé sur votre machine.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10081
FRM-10081 : Extraction de %s impossible à partir du module '%s'.

Cause :	Une erreur interne est apparue lors du processus de chargement.

Action :	Contactez le Support technique Oracle.


FRM-10082
FRM-10082 : Enregistrement de %s impossible.

Cause :	Une erreur interne est apparue lors du processus de chargement.

Action :	Contactez le Support technique Oracle.


FRM-10083
FRM-10083 : Impossible de trouver/ouvrir le module '%s' pour les objets référencés.

Cause :	Le fichier contenant le module Application Forms est introuvable ou l'ID utilisateur pour la connexion à la base de données n'est pas valide.

Action :	Vérifiez que le fichier contenant le module Application Forms se trouve dans votre répertoire local ou dans le chemin de recherche FORMS50_PATH. Assurez-vous également que l'ID utilisateur que vous utilisez pour vous connecter à la base de données est valide.


FRM-10084
FRM-10084 : Ce module semble être une ancienne version du fichier Form Builder.

Cause :	Le module que vous référencez n'est pas au dernier format de Form Builder.

Action :	Chargez le fichier de référence et enregistrez-le sous le dernier format de Form Builder.


FRM-10085
FRM-10085 : Lecture des informations sur module impossible.

Cause :	Le fichier que vous avez tenté d'ouvrir n'est pas un fichier Form Builder ou il est corrompu.

Action :	Contactez le Support technique Oracle.


FRM-10086
FRM-10086 : Fichier déjà ouvert.

Cause :	Le fichier que vous tentez d'ouvrir est déjà ouvert.

Action :	Aucune.


FRM-10087
FRM-10087 : Compilation des bibliothèques impossible.

Cause :	Vous ne pouvez pas compiler les bibliothèques.

Action :	Aucune.


FRM-10088
FRM-10088 : Exécution des bibliothèques impossible.

Cause :	Vous ne pouvez pas exécuter les bibliothèques.

Action :	Aucune.


FRM-10089
FRM-10089 : Exécution des menus impossible à partir de Form Builder.

Cause :	Vous avez cliqué sur le bouton Exécuter alors qu'un module Menu était sélectionné.

Action :	Sélectionnez un module Application Forms avant de cliquer sur Exécuter.


FRM-10090
FRM-10090 : Enregistrement impossible du module dans la base de données.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.


FRM-10091
FRM-10091 : Création de fichier script/d'analyse impossible.

Cause :	Erreur interne. Des erreurs sont survenues lors du processus de conversion.

Action :	Contactez le Support technique Oracle.


FRM-10092
FRM-10092 : Conversion impossible d'un ancien module en format courant :

Cause :	Une erreur interne est survenue lors de la conversion des structures Oracle Forms 4.0 en structures Forms 4.5.

Action :	Contactez le Support technique Oracle.


FRM-10093
FRM-10093 : Pas de code source PL/SQL.

Cause :	Vous avez créé un déclencheur qui ne contient aucun code source PL/SQL.

Action :	Ajoutez du code source PL/SQL à votre déclencheur ou supprimez-le.


FRM-10094
FRM-10094 : Compilation impossible de la formule.

Cause :	Forms n'est pas parvenu à compiler l'expression PL/SQL indiquée dans la propriété Formule.

Action :	Vérifiez l'absence d'erreurs de syntaxe dans l'expression PL/SQL et recompilez.


FRM-10095
FRM-10095 : Echec d'assertion dans %s, à %s:%d.

Cause :	Une incohérence interne a été détectée.

Action :	Contactez le Support technique Oracle et poursuivez avec précautions.


FRM-10096
FRM-10096 : Chargement impossible du fichier Assistant.

Cause :	Form Builder n'est pas parvenu à charger le fichier Assistant. Celui-ci est absent ou corrompu.

Action :	Réinstallez Form Builder ou contactez le Support technique Oracle.


FRM-10097
FRM-10097 : Chargement impossible du fichier Aperçu produit.

Cause :	Form Builder n'est pas parvenu à charger le fichier Aperçu produit. Celui-ci est absent ou corrompu.

Action :	Réinstallez Form Builder ou contactez le Support technique Oracle.


FRM-10098
FRM-10098 : Impossible de mettre le module entier dans la bibliothèque d'objets.

Cause :	Vous avez tenté de placer un module Form Builder complet dans une bibliothèque d'objets.

Action :	Vous ne pouvez placer dans une bibliothèque d'objets que des objets isolés.


FRM-10099
FRM-10099 : Opération impossible : un objet de ce nom existe déjà.

Cause :	Vous avez tenté une opération SmartClass sur un objet qui serait entré en conflit avec un autre objet de même nom.

Action :	Renommez l'objet existant.


FRM-10100
FRM-10100 : Vous devez taper le nom du fichier.

Cause :	Vous avez tenté d'exécuter une opération pour laquelle vous devez indiquer un nom de fichier valide.

Action :	Indiquez un nom de fichier valide.


FRM-10101
FRM-10101 : Impossible de générer le module.

Cause :	Le module n'a pas été créé du fait des erreurs générées.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10102
FRM-10102 : Impossible d'attacher la bibliothèque PL/SQL %s. Ce rattachement de bibliothèque sera perdu si le module est enregistré.

Cause :	La bibliothèque que vous avez indiquée est verrouillée pour les autres utilisateurs ou son nom n'est pas valide.

Action :	Vérifiez le nom de la bibliothèque et retentez l'opération.


FRM-10103
FRM-10103 : Vous devez faire évoluer cette application Forms vers une nouvelle version avant d'en créer le script.

Cause :	Erreur interne. Il n'est pas possible de définir des scripts pour les applications Forms de versions 5.0.0.0.0 à 5.0.4.8.3 sans les mettre à un niveau de version plus récent.

Action :	Contactez le Support technique Oracle.


FRM-10150
FRM-10150 : Une erreur s'est produite lors de l'enregistrement des préférences.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10200
FRM-10200 : Le mot de passe que vous venez d'entrer à nouveau ne correspond pas au nouveau mot de passe.

Cause :	Le mot de passe que vous avez ressaisi diffère du nouveau mot de passe.

Action :	Vérifiez que le mot de passe ressaisi est identique au nouveau mot de passe.


FRM-10201
FRM-10201:  Impossible de changer le mot de passe.%s

Cause :	Une erreur de base de données s'est produite lors de votre tentative de modification du mot de passe.

Action :	Aucune action requise. Informez votre administrateur de base de données de l'erreur qui s'est produite.


FRM-10250
FRM-10250 : Vous devez indiquer le type de module avant d'effectuer une suppression.

Cause :	Vous n'avez pas nommé le module de façon valide.

Action :	Vérifiez le nom du module, puis entrez-le à nouveau correctement.


FRM-10275
FRM-10275 : Le module cible existe déjà.

Cause :	Vous avez tenté de changer le nom d'un module de la base de données pour un nom déjà porté par un module existant.

Action :	Donnez un nom unique au module.


FRM-10325
FRM-10325 : Type de module erroné.

Cause :	Vous avez indiqué une extension de nom de fichier non valide.

Action :	Utilisez l'extension valide (.FMX, .MMX ou .LIB).


FRM-10326
FRM-10326 : Le propriétaire de module doit disposer de droits d'accès.

Cause :	Vous avez tenté de révoquer les autorisations de développement du propriétaire du module. L'utilisateur identifié comme propriétaire d'un module doit toujours pouvoir y accéder.

Action :	Aucune.


FRM-10327
FRM-10327 : Seul le propriétaire d'un module peut en modifier l'accès.

Cause :	Vous avez tenté d'accorder ou de révoquer l'accès à un module dont vous n'êtes pas le propriétaire.

Action :	Aucune action requise. Pour modifier l'accès au module, contactez son propriétaire ou votre administrateur de bases de données.


FRM-10328
FRM-10328 : Impossible de modifier l'accès à ce module.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10329
FRM-10329 : Vous devez entrer un nom utilisateur.

Cause :	Form Builder requiert un nom d'utilisateur valide.

Action :	Entrez un nom d'utilisateur valide.


FRM-10350
FRM-10350 : L'utilisateur ne dispose pas des privilèges lui permettant d'effectuer cette opération.

Cause :	Vous avez tenté d'exécuter une opération pour laquelle vous ne disposez pas des autorisations d'accès nécessaires.

Action :	Si vous souhaitez exécuter cette opération, contactez votre administrateur de bases de données pour obtenir les autorisations d'accès nécessaires.


FRM-10400
FRM-10400 : Ouverture impossible de Report Builder.

Cause :	Form Builder n'est pas parvenu à lancer Report Builder.

Action :	Démarrez Report Builder en tant que processus distinct.


FRM-10401
FRM-10401 : Vous devez entrer un nom de bloc de données valide.

Cause :	Vous n'avez entré aucun nom de bloc de données dans la boîte de dialogue.

Action :	Entrez un nom de bloc de données avant d'accepter ou d'annuler la boîte de dialogue.


FRM-10651
FRM-10651 : Extraction impossible de la liste de tables.

Cause :	Form Builder n'a pas pu extraire la liste des tables.

Action :	Vérifiez la connexion à la base de données, puis contactez votre administrateur de base de données ou le support technique Oracle.


FRM-10700
FRM-10700 : Objet de remplacement introuvable dans module cible.

Cause :	Le nom que vous avez indiqué dans la boîte de dialogue Options de copie d'objets est introuvable dans le module cible pour le type d'objet approprié.

Action :	Cliquez sur un bouton Sélectionner dans la boîte de dialogue pour voir une liste des types d'objet appropriés dans le module cible.


FRM-10725
FRM-10725 : Echec du chargement de l'Assistant à partir du fichier de ressources.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10750
FRM-10750 : Vous devez entrer un nom de table valide.

Cause :	Vous devez entrer un nom de table avant de quitter cette page de l'Assistant.

Action :	Entrez un nom de table ou cliquez sur Parcourir pour rechercher une table dans la base de données.


FRM-10751
FRM-10751 : Vous devez sélectionner au moins une colonne de base de données.

Cause :	Au moins une colonne doit apparaître dans la liste d'éléments de base de données pour que vous puissiez quitter cette page de l'Assistant.

Action :	Déplacez une ou plusieurs colonnes de la liste de colonnes disponibles vers la liste d'éléments de base de données.


FRM-10752
FRM-10752 : L'Assistant ne peut modifier qu'un bloc de données à la fois.

Cause :	Vous avez appelé l'Assistant Bloc de données alors que deux blocs de données ou davantage sont sélectionnés dans le Navigateur objet. L'Assistant ne peut modifier qu'un seul bloc de données à la fois.

Action :	Vérifiez qu'un seul bloc de données est sélectionné dans le Navigateur objet avant d'appeler l'Assistant Bloc de données.


FRM-10753
FRM-10753 : Condition de jointure au bloc de données maître %s non valide.

Cause :	En chargeant un bloc de données afin de le modifier, l'Assistant Bloc de données a détecté une condition de jointure non valide au bloc de données maître indiqué.

Action :	Recherchez l'objet relation concerné dans le bloc de données maître indiqué et corrigez la condition de jointure avant d'invoquer à nouveau l'Assistant Bloc de données.


FRM-10754
FRM-10754 : Plusieurs jointures au bloc de données maître %s.

Cause :	En chargeant un bloc de données afin de le modifier, l'Assistant Bloc de données a détecté que celui-ci possédait plusieurs jointures avec le bloc de données maître. Il s'agit d'une erreur interne qui ne doit normalement pas se produire.

Action :	Effectuez l'une des actions suivantes :

1. Vérifiez qu'un seul objet relation relie le bloc de données maître au bloc de données détail.

2. Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10755
FRM-10755 : Aucune condition de jointure au bloc de données maître %s.

Cause :	Il doit exister une condition de jointure au bloc de données maître indiqué pour que vous puissiez quitter cette page de l'Assistant.

Action :	Utilisez les listes instantanées Elément détail et Elément maître pour définir une condition de jointure au bloc de données maître indiqué.


FRM-10756
FRM-10756 : Erreur d'extraction des contraintes pour la table %s.

Cause :	Une erreur interne s'est produite lorsque l'Assistant Bloc de données a tenté d'extraire les contraintes pour la table indiquée.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10757
FRM-10757 : Aucun bloc de données maître disponible.

Cause :	Aucun bloc de données n'est disponible avec lequel définir une relation maître-détail.

Action :	Si la case à cocher Relier automatiquement des blocs est :

1. activée, les seuls blocs de données maîtres potentiels sont ceux basés sur des tables référencées par une clé externe sur la table de base du bloc en cours ;

2. désactivée, tous les blocs de données de l'application Forms sont des blocs de données maîtres potentiels, mais vous devez entrer manuellement la condition de jointure.


FRM-10758
FRM-10758 : Aucun élément fondé sur la colonne de jointure %s dans ce bloc de données détail.

Cause :	L'Assistant Bloc de données tente d'utiliser des informations de contrainte par clé externe pour définir automatiquement la condition de jointure entre le bloc de données en cours et le bloc de données maître sélectionné, mais une des colonnes incluses dans la contrainte par clé externe n'apparaît pas comme élément du bloc de données en cours.

Action :	Retournez à la page Table de l'Assistant et vérifiez que toutes les colonnes nécessaire à la jointure du bloc de données en cours au bloc de données maître requis apparaissent dans la liste d'éléments de base de données.


FRM-10759
FRM-10759 : Aucun élément fondé sur la colonne de jointure %s dans le bloc de données maître %s.

Cause :	L'Assistant Bloc de données tente d'utiliser des informations de contrainte par clé externe pour définir automatiquement la condition de jointure entre le bloc de données en cours et le bloc de données maître sélectionné, mais une des colonnes incluses dans la contrainte par clé externe n'apparaît pas comme élément du bloc de données maître sélectionné.

Action :	Quittez l'Assistant et vérifiez que les éléments nécessaire à la jointure du bloc de données en cours au bloc de données maître requis apparaissent comme éléments de ce dernier.


FRM-10760
FRM-10760 : Erreur survenue lors de la description de procédure stockée.

Cause :	Erreur Oracle interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-10761
FRM-10761 : L'Assistant ne peut modifier que des blocs de données fondés sur une table unique ou sur un ensemble de procédures.

Cause :	En chargeant un bloc de données afin de le modifier, l'Assistant Bloc de données a détecté une combinaison de propriétés de blocs de données qu'il ne prend pas en charge.

Action :	Vérifiez que le bloc de données est basé sur l'un des éléments suivants :

1. une seule table (avec les propriétés Type de source de données d'interrogation et Type de cible de données DML toutes deux définies sur Table, et les propriétés Nom de source de données d'interrogation et Nom de cible de données DML identiques) ;

2. un jeu de procédures stockées (avec les propriétés Type de source de données d'interrogation et Type de cible de données DML toutes deux définies sur Procédure).


FRM-10762
FRM-10762 : Vous devez entrer un nom de procédure.

Cause :	Vous devez entrer un nom de procédure pour quitter cette page de l'Assistant.

Action :	Entrez un nom de procédure.


FRM-10763
FRM-10763 : Un argument de type TABLE ou REFCURSOR doit être IN OUT.

Cause :	Un argument de type TABLE ou REFCURSOR (dans le cadre d'une procédure utilisée pour l'interrogation des données du bloc de données) doit avoir le mode IN OUT.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une autre procédure pour l'interrogation des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, modifiez le mode de l'argument en IN OUT, puis appelez à nouveau l'Assistant.


FRM-10764
FRM-10764 : Aucun argument de type TABLE ou REFCURSOR.

Cause :	Une procédure utilisée pour l'interrogation des données d'un bloc de données doit avoir un argument de type TABLE ou REFCURSOR.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une autre procédure pour l'interrogation des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, ajoutez un argument de type TABLE ou REFCURSOR à la procédure, puis appelez à nouveau l'Assistant.


FRM-10765
FRM-10765 : Un seul argument de type TABLE ou REFCURSOR est autorisé.

Cause :	Une procédure utilisée pour l'interrogation des données d'un bloc de données ne peut avoir qu'un seul argument de type TABLE ou REFCURSOR.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une autre procédure pour l'interrogation des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, vérifiez que la procédure n'a qu'un argument de type TABLE ou REFCURSOR, puis appelez à nouveau l'Assistant.


FRM-10766
FRM-10766 : Arguments de type RECORD non autorisés.

Cause :	Les arguments de type RECORD ne sont pas autorisés dans les procédures d'interrogation, d'insertion, de mise à jour, de suppression ni de verrouillage des données d'un bloc de données.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une autre procédure pour l'interrogation, l'insertion, la mise à jour, la suppression ou le verrouillage des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, vérifiez que la procédure n'a aucun argument de type RECORD, puis appelez à nouveau l'Assistant.


FRM-10767
FRM-10767 : Sélectionner une colonne de paramètres de résultat au minimum.

Cause :	Au moins une colonne de paramètres de résultats doit apparaître dans la liste d'éléments de base de données  pour que vous puissiez quitter cette page de l'Assistant.

Action :	Déplacez une ou plusieurs colonnes de paramètres de résultats de la liste de colonnes disponibles vers la liste d'éléments de base de données.


FRM-10768
FRM-10768 : Un argument de type TABLE doit être IN ou IN OUT.

Cause :	Un argument TABLE d'une procédure utilisée pour l'insertion, la mise à jour, la suppression ou le verrouillage des données d'un bloc de données doit avoir le mode IN ou IN OUT.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une autre procédure pour l'insertion, la mise à jour, la suppression ou le verrouillage des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, corrigez le mode de l'argument en IN ou IN OUT, puis appelez à nouveau l'Assistant.


FRM-10769
FRM-10769 : Aucun argument de type TABLE.

Cause :	Une procédure utilisée pour l'insertion, la mise à jour, la suppression ou le verrouillage des données d'un bloc de données doit avoir un argument de type TABLE.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une autre procédure pour l'insertion, la mise à jour, la suppression ou le verrouillage des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, ajoutez un argument de type TABLE à la procédure, puis appelez à nouveau l'Assistant.


FRM-10770
FRM-10770 : Un seul argument de type TABLE est autorisé.

Cause :	Une procédure utilisée pour l'insertion, la mise à jour, la suppression ou le verrouillage des données d'un bloc de données ne doit avoir qu'un seul argument de type TABLE.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une autre procédure pour l'insertion, la mise à jour, la suppression ou le verrouillage des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, vérifiez que la procédure n'a qu'un seul argument de type TABLE, puis appelez à nouveau l'Assistant.


FRM-10771
FRM-10771 : Arguments de type REFCURSOR non autorisés.

Cause :	Une procédure utilisée pour l'insertion, la mise à jour, la suppression ou le verrouillage des données d'un bloc de données ne doit pas avoir d'argument de type REFCURSOR.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une autre procédure pour l'insertion, la mise à jour, la suppression ou le verrouillage des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, vérifiez que la procédure n'a pas d'arguments de type REFCURSOR, puis appelez à nouveau l'Assistant.


FRM-10772
FRM-10772 : L'utilisation d'une fonction est interdite.

Cause :	Une fonction a été indiquée pour l'interrogation, l'insertion, la mise à jour, la suppression ou le verrouillage des données d'un bloc de données. Seules les procédures peuvent être utilisées à cet effet.

Action :	Effectuez l'une des actions suivantes :

1. Sélectionnez une procédure pour l'interrogation, l'insertion, la mise à jour, la suppression ou le verrouillage des données de votre bloc de données.

2. Quittez l'Assistant Bloc de données, convertissez la fonction en procédure, puis appelez à nouveau l'Assistant.


FRM-10773
FRM-10773 : Aucun élément fondé sur l'élément REF %s ne figure dans ce bloc de données détail.

Cause :	L'Assistant Bloc de données essaie actuellement d'utiliser un élément REF pour configurer automatiquement la relation existant entre le bloc de données en cours et le bloc de données maître sélectionné. Toutefois, l'élément REF sélectionné n'apparaît pas en tant qu'élément dans le bloc de données en cours.

Action :	Retournez à la page Table de l'Assistant et vérifiez que la colonne REF nécessaire pour joindre le bloc de données en cours au bloc de données maître requis apparaît dans la liste d'éléments de base de données.


FRM-10774
FRM-10774 : Aucun élément détail indiqué pour le bloc de données maître %s.

Cause :	Il doit exister un élément détail pour le bloc de données maître indiqué pour que vous puissiez quitter cette page de l'Assistant.

Action :	Utilisez les listes instantanées Elément détail pour définir une condition maître-détail au bloc de données maître indiqué.


FRM-10800
FRM-10800 : Sélectionner un élément affiché au minimum.

Cause :	Au moins un élément doit figurer dans la liste d'éléments affichés pour que vous puissiez quitter cette page de l'Assistant.

Action :	Faites passer un ou plusieurs éléments de la liste d'éléments disponibles dans la liste d'éléments affichés.


FRM-10801
FRM-10801 : Aucun bloc de données de l'application Forms courante à disposer.

Cause :	Vous ne pouvez pas appeler l'Assistant présentation car il n'existe aucun bloc de données à présenter.

Action :	Vérifiez qu'il existe au moins un bloc de données dans l'application Forms avant d'appeler l'Assistant Présentation.


FRM-10802
FRM-10802 : L'Assistant ne peut modifier qu'un cadre à la fois.

Cause :	Vous avez appelé l'Assistant Présentation alors que plusieurs cadres sont sélectionnés dans l'Editeur de présentation. L'Assistant ne peut modifier qu'un cadre à la fois.

Action :	Avant d'appeler l'Assistant Présentation, vérifiez qu'un seul cadre est sélectionné dans l'Editeur de présentation.


FRM-10803
FRM-10803 : Un ou plusieurs éléments ont une largeur ou une hauteur négative.

Cause :	Un ou plusieurs des éléments de la table ont une largeur ou une hauteur négative.

Action :	Vérifiez qu'aucun élément de la table n'a une largeur ou une hauteur négative.


FRM-10804
FRM-10804 : La valeur Distance entre les enregistrements doit être 0 ou plus.

Cause :	Vous avez entré une valeur négative pour la Distance entre les enregistrements.

Action :	Entrez une valeur nulle ou positive pour la Distance entre les enregistrements.


FRM-10805
FRM-10805 : La valeur Enregistrements affichés doit être supérieure à 0.

Cause :	Vous avez entré une valeur inférieure à 1 pour les Enregistrements affichés.

Action :	Entrez une valeur supérieure à 0 pour les Enregistrements affichés.


FRM-10850
FRM-10850 : Le cadre %s ne peut afficher que %d enregistrements.

Cause :	Le cadre indiqué ne peut pas afficher le nombre d'enregistrements demandé.

Action :	Aucune action n'est nécessaire. Le cadre affichera le nombre maximum d'enregistrements indiqué. Si vous voulez afficher davantage d'enregistrements dans le cadre, utilisez la Palette de propriétés pour attribuer la valeur Oui à la propriété Autoriser développement du cadre.


FRM-10851
FRM-10851 : Espace horizontal insuffisant dans le cadre %s pour démarrer la présentation.

Cause :	Le cadre indiqué ne dispose pas de suffisamment d'espace horizontal pour démarrer la présentation de son bloc de données associé.

Action :	Augmentez la largeur du cadre afin de dégager davantage d'espace horizontal.


FRM-10852
FRM-10852 : Espace vertical insuffisant dans le cadre %s pour démarrer la présentation.

Cause :	Le cadre indiqué ne dispose pas de suffisamment d'espace vertical pour démarrer la présentation de son bloc de données associé.

Action :	Effectuez l'une des actions suivantes :

1. Augmentez la hauteur du cadre afin de dégager davantage d'espace vertical.

2. Attribuez la valeur Oui à la propriété Autoriser développement du cadre.


FRM-10853
FRM-10853 : Dépassement horizontal dans le cadre %s.

Cause :	La présentation a dépassé horizontalement les limites du cadre, et le cadre n'est pas autorisé à s'étendre.

Action :	Augmentez la largeur du cadre afin de dégager davantage d'espace horizontal ou utilisez la Palette de propriétés pour attribuer la valeur Oui à la propriété Autoriser développement du cadre.


FRM-10854
FRM-10854 : Dépassement vertical dans le cadre %s.

Cause :	La présentation a dépassé verticalement les limites du cadre, et le cadre n'est pas autorisé à s'étendre.

Action :	Augmentez la hauteur du cadre afin de dégager davantage d'espace vertical ou utilisez la Palette de propriétés pour attribuer la valeur Oui à la propriété Autoriser développement du cadre.


FRM-10855
FRM-10855 : Espace horizontal insuffisant dans le cadre %s pour l'objet %s.

Cause :	L'objet indiqué est trop large pour tenir dans la largeur du cadre.

Action :	Diminuez la largeur de l'objet ou augmentez la largeur du cadre.


FRM-10900
FRM-10900 : L'Assistant ne peut modifier qu'une LOV à la fois.

Cause :	Vous avez appelé l'Assistant LOV alors que plusieurs LOV sont sélectionnées dans le Navigateur objet. L'Assistant ne peut modifier qu'une seule LOV à la fois.

Action :	Vérifiez qu'une seule LOV est sélectionnée dans le Navigateur objet avant d'appeler l'Assistant LOV.


FRM-10901
FRM-10901:  Veuillez entrer une interrogation SQL pour la LOV.

Cause :	Vous avez essayé de quitter cette page de l'assistant LOV sans entrer une interrogation SQL.

Action :	Entrez une interrogation SQL valide qui sera utilisée pour créer la LOV (et le groupe d'enregistrements sous-jacent).


FRM-10902
FRM-10902 : Interrogation SQL non valide.%s

Cause :	L'interrogation SQL entrée n'est pas valide.

Action :	Vérifiez la syntaxe de l'interrogation et corrigez les erreurs éventuelles.


FRM-10903
FRM-10903 : Vous devez sélectionner au moins une colonne de groupe d'enregistrements.

Cause :	Au moins une colonne de groupe d'enregistrements doit apparaître dans la liste Colonnes de la LOV pour que vous puissiez quitter cette page de l'Assistant.

Action :	Déplacez une ou plusieurs colonnes de la liste Colonnes de groupe d'enregistrements vers la liste Colonnes de la LOV.


FRM-10904
FRM-10904:  Impossible de lancer Query Builder.

Cause :	Form Builder n'est pas parvenu à lancer Query Builder.

Action :	Contactez le Support technique Oracle.


FRM-10905
FRM-10905 : Les valeurs renvoyées suivantes ne sont pas valides.

Cause :	Vous devez corriger les valeurs de retour non valides avant de pouvoir quitter cette page de l'assistant.

Action :	Entrez une valeur de retour valide. Elle doit être l'une des suivantes :

1. Un nom d'élément complet (<DATABLOCK-NAME>.<DATAITEM-NAME>).

2. Un paramètre d'application Forms (PARAMETER.<PARAMETER-NAME>).

3. Une variable PL/SQL globale (GLOBAL.<VARIABLE-NAME>).


FRM-10906
FRM-10906 : Une ou plusieurs colonnes de la LOV présentent une largeur négative.

Cause :	Une ou plusieurs des colonnes de la table ont une largeur négative.

Action :	Vérifiez qu'aucune colonne de la table n'a une largeur négative.


FRM-10907
FRM-10907 : La taille ou la position de la LOV présente une valeur négative.

Cause :	Un ou plusieurs des attributs de taille et de position de la LOV sont négatifs.

Action :	Assurez-vous qu'aucun des attributs de taille et de position de la LOV n'est négatif.


FRM-10908
FRM-10908 : Le nombre de lignes extraites est inférieur ou égal à zéro.

Cause :	Le nombre de lignes extraites est inférieur ou égal à zéro.

Action :	Entrez une valeur supérieure à zéro pour le nombre d'enregistrements extraits.


FRM-10909
FRM-10909 : les colonnes LOV "Ancien style" ne peuvent pas être modifiées via l'Assistant LOV.

Cause :	Une ou plusieurs des LOV sélectionnées sont de style ancien

Action :	Convertissez la LOV en type groupe d'enregistrements avant d'appeler l'assistant LOV.


FRM-11001
FRM-11001 : La largeur de la cellule de caractère est erronée.

Cause :	La largeur de la cellule de caractère est fixée à zéro ou à une valeur négative.

Action :	Fixez la largeur de la cellule de caractère à un nombre entier supérieur à zéro.


FRM-11002
FRM-11002 : La hauteur de la cellule de caractère est erronée.

Cause :	La hauteur de la cellule de caractère est fixée à zéro ou à une valeur négative.

Action :	Fixez la hauteur de la cellule de caractère à un nombre entier supérieur à zéro.


FRM-11004
FRM-11004 : Un module Application Forms de même nom existe déjà.

Cause :	Vous avez tenté de renommer un module en lui donnant un nom déjà utilisé.

Action :	Choisissez un autre nom à attribuer au module.


FRM-11006
FRM-11006 : Impossible d'extraire l'application Forms courante.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11007
FRM-11007 : Nom d'application Forms erroné.

Cause :	Le nom de module Application Forms que vous avez entré n'est pas valide.

Action :	Entrez un nom de module Application Forms composé de caractères valides : lettres, chiffres, traits de soulignement et le symbole  (ni tiret, ni point, ni symbole @).


FRM-11008
FRM-11008 : Bloc de données inexistant.

Cause :	Le bloc référencé n'existe pas.

Action :	Vérifiez le nom du bloc, puis réessayez.


FRM-11009
FRM-11009 : Impossible de charger la palette de couleurs %s.

Cause :	Vous étiez probablement en train de travailler avec une palette de couleurs modifiable et vous avez lancé une nouvelle Application Forms ou ouvert une Application Forms existante.

Action :	Passez en mode couleur partageable et relancez Form Builder.


FRM-11010
FRM-11010 : Echec d'enregistrement de la palette de couleurs %s.

Cause :	Vous étiez probablement en train de travailler avec une palette de couleurs modifiable et vous avez lancé une nouvelle Application Forms ou ouvert une Application Forms existante.

Action :	Passez en mode couleur partageable et relancez Form Builder.


FRM-11201
FRM-11201 : Le nombre d'enregistrements affichés n'est pas valide.

Cause :	Vous avez entré une valeur non valide ou un blanc pour la propriété Enregistrements affichés.

Action :	Entrez une valeur valide. Attribuez à la propriété Enregistrements affichés l'un des nombres suivants :

1. Un nombre entier.

2. Un nombre supérieur à 0.

3. Un nombre inférieur ou égal au nombre d'enregistrements en tampon.


FRM-11204
FRM-11204 : Un bloc de données de même nom existe déjà.

Cause :	Il existe déjà dans l'application Forms active un bloc de données portant le nom indiqué par la propriété Nom du bloc.

Action :	Entrez un nom de bloc de données unique parmi tous les blocs de données de l'application Forms active.


FRM-11206
FRM-11206 : Impossible d'extraire des blocs de données.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11208
FRM-11208:  Impossible d'obtenir le bloc de données %s copié/référencé.

Cause :	Le bloc de données indiqué n'existe pas dans la base de données.

Action :	Vérifiez le nom du bloc, puis réessayez.


FRM-11304
FRM-11304 : Vous devez entrer une coordonnée X valide.

Cause :	La propriété Position X est vide ou indique un nombre négatif.

Action :	Entrez un nombre non négatif dans la propriété Position X pour indiquer la position du coin supérieur gauche de l'élément sur le canevas.


FRM-11305
FRM-11305 : Vous devez entrer une coordonnée Y valide.

Cause :	La propriété Position Y est vide ou indique un nombre négatif.

Action :	Entrez un nombre non négatif dans la propriété Position Y pour indiquer la position du coin supérieur gauche de l'élément sur le canevas.


FRM-11306
FRM-11306 : Vous devez entrer une coordonnée de largeur valide.

Cause :	La propriété Largeur d'affichage est vide ou indique un nombre négatif.

Action :	Entrez un nombre non négatif dans le champ Largeur pour indiquer la largeur de l'élément dans les coordonnées de l'application Forms courante.


FRM-11307
FRM-11307 : Vous devez entrer une coordonnée de hauteur valide.

Cause :	La propriété Hauteur d'affichage est vide ou indique un nombre négatif.

Action :	Entrez un nombre non négatif dans le champ Hauteur pour indiquer la hauteur de l'élément dans les coordonnées de l'application Forms courante.


FRM-11310
FRM-11310 : Longueur maximum non valide pour le type d'élément ou de données courant.

Cause :	Vous avez entré une longueur maximum d'élément non valide.

Action :	Si l'élément courant est :

1. un élément image, définissez la propriété Longueur maximum à 1024 ou plus ;

2. un élément autre qu'un élément image, définissez la propriété Longueur maximum à 1 ou plus.

3. La propriété Longueur maximum des éléments de type CHAR doit être inférieure à 32 767 (32 Ko).


FRM-11312
FRM-11312 : Un élément de même nom existe déjà dans le bloc de données courant.

Cause :	Le nom que vous avez indiqué est déjà utilisé.

Action :	Entrez un nom d'élément unique.


FRM-11314
FRM-11314 : Impossible d'extraire les éléments du fichier.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11319
FRM-11319 : La longueur d'interrogation doit être 0 ou >= à longueur maximale et < 65536 (selon le type de données).

Cause :	Le paramètre de la propriété Longueur d'interrogation n'est pas valide.

Action :	Entrez une longueur valide pour la propriété Longueur d'interrogation. Si elle est différente de 0, elle doit être égale ou supérieure à la valeur de la propriété Longueur maximum.


FRM-11323
FRM-11323 : Valeur initiale non valide.

Cause :	La valeur initiale indiquée pour un groupe de boutons, un élément de liste ou une case à cocher n'est pas valide.

Action :	La valeur initiale doit être l'une des suivantes :

1. Elément, paramètre, séquence ou référence globale.

2. Egale à la valeur " cochée " (case à cocher seulement).

3. Egale à la valeur " non cochée " (case à cocher seulement).

4. Egale à la valeur  " cochée " ou " non cochée " - sans distinction entre majuscules et minuscules (case à cocher seulement).

5. NULL.


FRM-11324
FRM-11324 : Valeur non valide.

Cause :	La valeur que vous avez entrée est en-dehors de la plage autorisée.

Action :	Entrez une valeur autorisée.


FRM-11327
FRM-11327 : Impossible d'obtenir l'élément %s copié/référencé à partir du bloc de données %s.

Cause :	L'élément que vous avez indiqué n'existe pas dans ce bloc de données.

Action :	Vérifiez le nom du bloc de données et de l'élément, puis réessayez.


FRM-11328
FRM-11328 : Valeur initiale non valide; le format approprié est %s.

Cause :	Valeur non compatible avec le type de données.

Action :	Choisissez une valeur compatible avec le type de données.


FRM-11329
FRM-11329 : Autre valeur non valide; le format approprié est %s.

Cause :	Valeur non compatible avec le type de données.

Action :	Choisissez une valeur compatible avec le type de données.


FRM-11330
FRM-11330 : Valeur non valide; le format approprié est %s.

Cause :	Valeur non compatible avec le type de données.

Action :	Choisissez une valeur compatible avec le type de données.


FRM-11331
FRM-11331 : La valeur de plage max. doit être supérieure à la valeur de plage min.

Cause :	La valeur de plage minimum est supérieure à la valeur de plage maximum.

Action :	Vérifiez que la valeur de plage maximum soit supérieure à la valeur de plage minimum.


FRM-11332
FRM-11332 : La valeur n'est pas adaptée au type de données.

Cause :	Valeur non compatible avec le type de données.

Action :	Choisissez une valeur compatible avec le type de données.


FRM-11400
FRM-11400 : Un segment PL/SQL de même nom existe déjà.

Cause :	Vous avez peut-être créé deux segments de code de même nom.

Action :	Renommez l'un des segments de code.


FRM-11402
FRM-11402 : Impossible d'extraire le segment PL/SQL.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11403
FRM-11403 : Impossible d'initialiser le contexte PL/SQL.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11404
FRM-11404 : Impossible de charger les procédures.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11405
FRM-11405 : Impossible de charger l'explorateur d'unité de programme à partir du fichier de ressources.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11406
FRM-11406 : Impossible d'afficher l'explorateur d'unité de programme.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11407
FRM-11407 : Impossible de charger l'éditeur PL/SQL.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11408
FRM-11408 : Impossible d'obtenir le segment PL/SQL %s copié/référencé.

Cause :	Le segment PL/SQL indiqué n'existe pas dans la base de données.

Action :	Vérifiez le nom du segment PL/SQL puis réessayez.


FRM-11409
FRM-11409 : L'unité de programme %s apparaît déjà dans une autre fenêtre.

Cause :	Vous ne pouvez afficher une unité de programme que dans une seule fenêtre de l'Editeur PL/SQL.

Action :	Affichez l'unité de programme dans une autre fenêtre.


FRM-11410
FRM-11410 : L'élément Menu %s apparaît déjà dans une autre fenêtre.

Cause :	Vous ne pouvez afficher un élément Menu que dans une seule fenêtre de l'Editeur PL/SQL.

Action :	Affichez l'élément Menu dans une autre fenêtre.


FRM-11411
FRM-11411 : Le menu %s apparaît déjà dans une autre fenêtre.

Cause :	Vous ne pouvez afficher le code de démarrage du menu que dans une seule fenêtre de l'Editeur PL/SQL.

Action :	Affichez le code de démarrage du menu dans une autre fenêtre.


FRM-11412
FRM-11412 : Le code PL/SQL pour %s ne peut pas être stocké faute d'espace mémoire.

Cause :	L'unité de programme est de taille trop importante pour être stockée dans une seule allocation de mémoire.

Action :	Réduisez la taille du code PL/SQL en l'encapsulant et en créant plusieurs unités de programme.


FRM-11413
FRM-11413 : Le code PL/SQL associé à %s est trop grand pour être décodé. Veuillez découper %s en plus petites unités.

Cause :	L'unité de programme est de taille trop importante pour être décodée dans une seule allocation de mémoire. Vous risquez de perdre la fonction de compilation incrémentielle.

Action :	Divisez l'unité de programme en plusieurs unités de programme plus petites de façon à pouvoir décoder chacune d'elles dans une seule allocation de mémoire.


FRM-11414
FRM-11414 : Le code d'option de menu PL/SQL ne s'applique pas à cette option.

Cause :	Impossible d'entrer du code PL/SQL pour les éléments de menu de type 'Séparateur' ou lorsque le type de commande est 'Null' ou 'Menu'.

Action :	Choisissez un autre type de menu.


FRM-11504
FRM-11504 : Un déclencheur de même nom existe déjà.

Cause :	Vous avez tenté de définir un déclencheur au même niveau de définition qu'un déclencheur existant de même type.

Action :	Aucune.


FRM-11507
FRM-11507 : Impossible d'extraire les déclencheurs du fichier.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11508
FRM-11508 : Déclencheur intégré défini au mauvais niveau.

Cause :	Vous avez tenté de définir un déclencheur à un niveau de définition non valide (form-, block- ou item-). Certains déclencheurs ne sont valides qu'à des niveaux de définition spécifiques.

Action :	Modifiez le champ Objet afin d'indiquer un niveau de définition valide. Pour plus d'informations, reportez-vous à l'aide concernant le niveau de définition des déclencheurs .


FRM-11510
FRM-11510 : Impossible d'obtenir le déclencheur %s copié/référencé à partir de l'application Forms %s.

Cause :	Le déclencheur indiqué n'existe pas dans cette application Forms.

Action :	Vérifiez le nom du déclencheur et de l'application Forms, puis réessayez.


FRM-11511
FRM-11511 : Impossible d'obtenir le déclencheur %s copié/référencé à partir du bloc de données %s.

Cause :	Le déclencheur indiqué n'existe pas dans ce bloc de données.

Action :	Vérifiez le nom du déclencheur et du bloc de données, puis réessayez.


FRM-11512
FRM-11512 : Impossible d'obtenir le déclencheur %s copié/référencé à partir de l'élément %s du bloc de données %s.

Cause :	Le déclencheur indiqué n'existe pas dans l'élément de ce bloc.

Action :	Vérifiez le nom du déclencheur, de l'élément et du bloc de données, puis réessayez.


FRM-11513
FRM-11513 : Le déclencheur %s apparaît déjà dans une autre fenêtre.

Cause :	Vous ne pouvez afficher un déclencheur que dans une seule fenêtre de l'Editeur PL/SQL.

Action :	Affichez le déclencheur dans une autre fenêtre.


FRM-11601
FRM-11601 : Impossible d'extraire les déclencheurs V2 du fichier.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11604
FRM-11604 : Les déclencheurs de style V2 ne peuvent pas être modifiés via Form Builder.

Cause :	Les déclencheurs de style V2-sont obsolètes et ne peuvent plus être modifiés.

Action :	Remplacez le déclencheur de style V2 par un nouveau déclencheur PL/SQL.


FRM-11701
FRM-11701 : Une alerte de même nom existe déjà.

Cause :	Une alerte de même nom est déjà définie dans l'application Forms active.

Action :	Entrez un nom unique pour l'alerte.


FRM-11703
FRM-11703 : Impossible d'extraire les objets d'alerte du fichier.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11706
FRM-11706 : Impossible d'obtenir l'alerte %s copiée/référencée.

Cause :	L'alerte indiquée n'existe pas dans la base de données.

Action :	Vérifiez le nom de l'alerte, puis réessayez.


FRM-11801
FRM-11801 : Un éditeur de même nom existe déjà.

Cause :	Un éditeur de même nom est déjà défini dans l'application Forms active.

Action :	Entrez un nom unique pour l'éditeur.


FRM-11803
FRM-11803 : Impossible d'extraire les objets d'éditeur du fichier.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11804
FRM-11804 : Impossible d'obtenir l'éditeur %s copié/référencé.

Cause :	L'éditeur indiqué n'existe pas dans la base de données.

Action :	Vérifiez le nom de l'éditeur, puis réessayez.


FRM-11900
FRM-11900 : Une liste de valeurs (LOV) de même nom existe déjà.

Cause :	Le nom indiqué pour la LOV est identique à celui d'une LOV existante définie dans la même application Forms.

Action :	Entrez un nom valide unique parmi les LOV de l'application Forms active.


FRM-11901
FRM-11901 : Erreur lors de la création de la liste de valeurs (LOV).

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11903
FRM-11903 : Impossible d'extraire du fichier les objets Liste de valeurs (LOV).

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-11905
FRM-11905 : L'élément référencé dans l'instruction Select n'existe pas.

Cause :	Vous essayez de sélectionner un élément qui n'existe pas.

Action :	Vérifiez la table et corrigez l'instruction Select.


FRM-11907
FRM-11907 : Le groupe d'enregistrements doit exister dans l'application Forms.

Cause :	Le groupe d'enregistrements indiqué dans la propriété Type de groupe d'enregistrements n'existe pas dans l'application Forms active.

Action :	Entrez le nom d'un groupe d'enregistrements existant ou créez un nouveau groupe d'enregistrements.


FRM-11908
FRM-11908 : Vous devez entrer un nom d'élément valide, déjà existant dans l'application Forms.

Cause :	La propriété Elément récepteur contient une valeur non valide.

Action :	Entrez une valeur valide dans la propriété Elément récepteur. Les valeurs valides sont le nom d'un élément de l'application Forms active, le nom d'une variable globale ou le nom d'un paramètre d'application Forms. Ne faites pas précéder le nom de l'objet d'un deux-points et ne l'entourez pas de guillemets.


FRM-11909
FRM-11909 : Vous devez entrer une largeur d'affichage de colonne valide.

Cause :	La propriété Largeur d'affichage d'une ou plusieurs colonnes de la LOV n'est pas renseignée ou contient un nombre non valide.

Action :	Changez la largeur de chacune des colonnes de la LOV en 0 (colonne cachée) ou un nombre non négatif.


FRM-11910
FRM-11910 : Impossible d'obtenir la liste LOV %s copiée/référencée.

Cause :	La LOV indiquée n'existe pas dans la base de données.

Action :	Vérifiez le nom de la LOV puis réessayez.


FRM-12000
FRM-12000 : Un groupe d'enregistrements de même nom existe déjà.

Cause :	Le nom indiqué pour le groupe d'enregistrements est identique à celui d'un groupe d'enregistrements existant défini dans la même application Forms.

Action :	Entrez un nom valide unique parmi les groupes d'enregistrements de l'application Forms active.


FRM-12001
FRM-12001 : La création du groupe d'enregistrements a échoué (vérifiez votre interrogation).

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12003
FRM-12003 : Impossible d'extraire les objets Groupes d'enregistrements.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12005
FRM-12005 : Impossible d'obtenir le groupe d'enregistrements %s copié/référencé.

Cause :	Le groupe d'enregistrements indiqué existe déjà dans la base de données.

Action :	Vérifiez le nom du groupe d'enregistrements, puis réessayez.


FRM-12006
FRM-12006 : Vous devez entrer un nom de groupe d'enregistrements valide, unique à l'application Forms.

Cause :	Form Builder ne peut pas interpréter ce nom de groupe d'enregistrements.

Action :	Entrez un nom unique.


FRM-12103
FRM-12103 : Un canevas de même nom existe déjà.

Cause :	Le nom indiqué pour le canevas est identique à celui d'un canevas existant défini dans la même application Forms.

Action :	Entrez un nom valide unique parmi les objets canevas de l'application Forms active.


FRM-12105
FRM-12105 : Impossible d'extraire du fichier les objets Canevas.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12107
FRM-12107 : Impossible d'obtenir le canevas %s copié/référencé.

Cause :	La vue-canevas indiquée n'existe pas dans la base de données.

Action :	Vérifiez le nom de la vue-canevas, puis réessayez.


FRM-12211
FRM-12211 : Une fenêtre de même nom existe déjà.

Cause :	Le nom indiquée pour la fenêtre est identique à celui d'une fenêtre existante définie dans la même application Forms.

Action :	Entrez un nom valide unique parmi les fenêtres de l'application Forms active.


FRM-12213
FRM-12213 : Impossible d'extraire les objets Fenêtres.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12214
FRM-12214 : Impossible d'obtenir la fenêtre %s copiée/référencée.

Cause :	La fenêtre indiquée n'existe pas dans la base de données.

Action :	Vérifiez le nom de la fenêtre, puis essayez de nouveau.


FRM-12301
FRM-12301 : Impossible d'extraire les attributs visuels.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12305
FRM-12305 : Il n'existe aucune couleur de ce nom.

Cause :	La propriété Couleur de premier plan ou Couleur d'arrière-plan n'est pas valide.

Action :	Entrez un nom de couleur valide dans la propriété Couleur de premier plan ou Couleur d'arrière-plan ou laissez ces propriétés Null.


FRM-12306
FRM-12306 : Il n'existe aucun motif de ce nom.

Cause :	La propriété Motif de remplissage n'est pas valide.

Action :	Entrez un nom de motif valide dans la propriété Motif de remplissage ou laissez cette propriété Null.


FRM-12307
FRM-12307 : Vous devez entrer une taille de police valide (1-100).

Cause :	Le champ Taille de police n'est pas valide.

Action :	Entrez une taille de polie valide ou laissez ce champ Null.


FRM-12308
FRM-12308 : Impossible d'obtenir l'attribut visuel %s copié/référencé.

Cause :	L'attribut visuel indiqué n'existe pas dans la base de données.

Action :	Vérifiez le nom de l'attribut visuel, puis réessayez.


FRM-12400
FRM-12400 : Un module Menu de même nom existe déjà.

Cause :	Vous avez entré un nom de module Menu qui existe déjà.

Action :	Entrez un nom valide et unique parmi les modules Menu.


FRM-12402
FRM-12402 : Impossible d'extraire le module Menu du fichier.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12404
FRM-12404 : Les éléments %s ont les menus partagés %s.

Cause :	Cette version ne prend pas en charge les menus partagés.

Action :	Mettez votre logiciel à niveau afin de pouvoir utiliser des menus dupliqués ou surclassésr avant de compiler.


FRM-12500
FRM-12500 : Vous devez entrer un nom de menu valide, unique à l'application Forms.

Cause :	Vous avez tenté de quitter le champ Nom du menu sans avoir entré aucun nom.

Action :	Entrez un nom de menu.


FRM-12502
FRM-12502 : Impossible d'extraire les menus.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12504
FRM-12504 : Impossible d'obtenir le menu %s copié/référencé.

Cause :	Le menu indiqué n'existe pas dans la base de données.

Action :	Vérifiez le nom du menu, puis réessayez.


FRM-12600
FRM-12600 : Un élément Menu de même nom existe déjà.

Cause :	Vous avez tenté d'entrer un nom d'élément Menu qui existe déjà.

Action :	Entrez un nom unique et valide pour l'élément Menu.


FRM-12602
FRM-12602 : Impossible d'extraire les éléments Menu du fichier.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12606
FRM-12606 : Impossible d'obtenir l'élément menu %s copié/référencé dans le menu %s.

Cause :	L'élément Menu indiqué n'existe pas dans ce menu.

Action :	Vérifiez le nom du menu et de l'élément Menu, puis réessayez.


FRM-12700
FRM-12700 : Un paramètre de même nom existe déjà.

Cause :	Le nom indiqué pour le paramètre est identique à celui d'un paramètre existant défini dans le même module.

Action :	Entrez un nom valide et unique parmi les paramètres du module actif.


FRM-12702
FRM-12702 : Impossible d'extraire les paramètres de menu.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12705
FRM-12705 : Impossible d'obtenir le paramètre de menu %s copié/référencé.

Cause :	Le paramètre de menu indiqué n'existe pas dans la base de données.

Action :	Vérifiez le nom de paramètre de menu, puis réessayez.


FRM-12800
FRM-12800 : Un rôle de même nom existe déjà.

Cause :	Le nom indiqué pour le rôle est identique à celui d'un rôle existant dans la base de données.

Action :	Entrez un nom de rôle unique.


FRM-12802
FRM-12802 : Impossible d'extraire les objets Rôles de menu.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12900
FRM-12900 : Un paramètre de même nom existe déjà.

Cause :	Le nom indiqué pour le paramètre est identique à celui d'un paramètre existant à l'intérieur du module courant.

Action :	Entrez un nom de paramètre unique et valide.


FRM-12902
FRM-12902 : Impossible d'extraire les paramètres d'application Forms.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-12906
FRM-12906 : Impossible d'obtenir le paramètre d'application Forms %s copié/référencé.

Cause :	Le paramètre d'application Forms indiqué n'existe pas dans la base de données.

Action :	Vérifiez le nom du paramètre d'application Forms, puis réessayez.


FRM-13000
FRM-13000 : Une erreur fatale s'est produite.

Cause :	Une erreur interne s'est produite dans l'Editeur de présentation.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-13001
FRM-13001 : Impossible d'accepter ce canevas.

Cause :	Une erreur interne s'est produite dans l'Editeur de présentation.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-13002
FRM-13002 : Les canevas empilés et onglet doivent être créés dans des canevas intégraux.

Cause :	Une erreur interne s'est produite dans l'Editeur de présentation.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-13003
FRM-13003 : Evénement observateur non mis en oeuvre ; fermer et rouvrir l'éditeur de présentation.

Cause :	Une erreur interne s'est produite dans l'Editeur de présentation.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-13504
FRM-13504 : Aucun canevas empilé pour ce canevas.

Cause :	Vous avez sélectionné une vue empilée alors qu'aucune vue empilée n'a été créée.

Action :	Définissez une vue empilée avant de sélectionner cette option.


FRM-13005
FRM-13005 : L'élimination des objets de ce type dans l'éditeur de présentation n'est pas supportée.

Cause :	Une erreur interne s'est produite dans l'Editeur de présentation.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-13006
FRM-13006 : Une erreur non fatale s'est produite.

Cause :	Ce message apparaît par défaut quand aucun message plus spécifique n'a été défini.

Action :	Contactez le Support technique Oracle.


FRM-13007
FRM-13007 : Création impossible de la vue d'un objet dans l'éditeur de présentation.

Cause :	L'application Forms n'a pas pu afficher un objet dans l'éditeur de présentation.

Action :	Vous êtes peut-être à court de ressources ; essayez de fermer d'autres fenêtres ou de relancer l'application Forms.


FRM-13008
FRM-13008 : Nom de composant JavaBean '%s' introuvable.

Cause :	L'application Forms n'a pas pu trouver le composant JavaBean indiqué dans la classe de mise en oeuvre.

Action :	Vérifiez le nom du composant JavaBean et/ou la variable CLASSPATH.


FRM-15000
FRM-15000 : Nom de relation dupliqué.

Cause :	Il existe déjà une relation de même nom.

Action :	Modifiez le nom de la relation.


FRM-15001
FRM-15001 : Vous devez entrer un nom de relation unique au bloc de données.

Cause :	Il existe déjà une relation de même nom dans le bloc de données sélectionné.

Action :	Utilisez un nom unique pour la relation.


FRM-15002
FRM-15002 : Vous devez entrer un bloc de données maître déjà défini dans cette application Forms.

Cause :	Vous avez tenté d'entrer un nom de bloc de données maître ou détail qui n'est pas valide.

Action :	Entrez un nom de bloc de données valide ou sélectionnez-en un dans la liste.


FRM-15003
FRM-15003 : Vous devez entrer un bloc de données détail déjà défini dans cette application Forms.

Cause :	Vous avez tenté d'entrer un nom de bloc de données maître ou détail qui n'est pas valide.

Action :	Entrez un nom de bloc de données valide ou sélectionnez-en un dans la liste.


FRM-15004
FRM-15004 : Erreur au cours de l'analyse de la condition de jointure.

Cause :	La condition de jointure n'est pas valide.

Action :	Entrez une condition de jointure valide dans le champ multiligne proposé. La condition de jointure définit la relation entre le bloc de données maître indiqué dans le champ Maître et le bloc de données détail indiqué dans le champ Détail.


FRM-15005
FRM-15005 : Le champ Condition de jointure doit être renseigné.

Cause :	La condition de jointure n'est pas définie.

Action :	Entrez une condition de jointure valide dans le champ multiligne proposé. La condition de jointure définit la relation entre le bloc de données maître indiqué dans le champ Maître et le bloc de données détail indiqué dans le champ Détail.


FRM-15006
FRM-15006 : Les blocs de données maître et détail doivent être différents.

Cause :	Le bloc de données maître et le bloc de données détail sont les mêmes.

Action :	Indiquez un bloc de données maître ou détail différent.


FRM-15007
FRM-15007 : La relation maître-détail a déjà été définie pour les blocs de données indiqués.

Cause :	Vous avez tenté de créer une relation entre deux blocs de données qui possèdent déjà une relation maître-détail.

Action :	Vérifiez le nom du bloc de données détail, puis réessayez.


FRM-15008
FRM-15008 : Les déclencheurs définissant la relation maître-détail ont été modifiés.

Cause :	Les déclencheurs définissant la relation maître-détail entre les deux blocs de données ont été modifiés manuellement et empêchent la mise à jour automatique du code.

Action :	Supprimez puis recréez l'objet relation.


FRM-15009
FRM-15009 : Le bloc de données maître ne doit pas être référencé.

Cause :	Vous ne pouvez pas ajouter de nouvelles relations à un bloc de données de référence.

Action :	Ne tentez pas d'ajouter une nouvelle relation à un bloc de données de référence.


FRM-15100
FRM-15100 : Tous les objets sélectionnés doivent être de même type.

Cause :	Vous avez tenté d'exécuter une opération qui requiert que tous les objets sélectionnés dans le Navigateur objet soient de même type.

Action :	Exécutez l'opération séparément pour chaque groupe d'objets de même type.


FRM-15101
FRM-15101 : Copie impossible de %s car son père est un objet référencé.

Cause :	Vous avez tenté d'exécuter une opération sur un objet dont le propriétaire est un objet référencé.

Action :	Vous ne pouvez exécuter l'opération que sur le père de l'objet ou sur l'objet source de la référence. Vous pouvez déterminer dans quel module se trouve l'objet en consultant les informations de référence de la fenêtre Propriétés.


FRM-15102
FRM-15102 : Classe de propriété en train d'hériter d'elle-même.

Cause :	Vous avez tenté d'affecter une classe de propriété à elle-même. En d'autres termes, vous essayez de faire de la classe de propriété père la même que celle que vous modifiez.

Action :	Affectez une autre classe de propriété à l'objet.


FRM-15103
FRM-15103 : Suppression impossible de %s car son père est un objet référencé.

Cause :	Vous avez tenté de supprimer un objet dont le propriétaire est un objet référencé.

Action :	Vous ne pouvez pas supprimer cet objet ; essayez plutôt de le désactiver en modifiant la propriété appropriée dans la palettes de propriétés.


FRM-15104
FRM-15104 : Déplacement impossible de %s car son père est un objet référencé.

Cause :	Vous avez tenté de déplacer (réordonner) un objet dont le propriétaire est un objet référencé.

Action :	Essayez de réordonner la source de l'objet propriétaire. Vous pouvez déterminer dans quel module se trouve l'objet en consultant les informations de sous-classe dans la fenêtre Propriétés.


FRM-15107
FRM-15107 : Création de référence impossible.

Cause :	Vous avez tenté de créer un objet référencé et le système ne dispose pas d'informations suffisantes pour créer la référence.

Action :	Vérifiez que la source de référencement a été enregistrée dans le système de fichiers ou dans la base de données. Une nouvelle application Forms qui n'a pas été enregistrée ne peut pas être la source d'une référence.


FRM-15108
FRM-15108 : Création impossible d'un objet avant un objet hérité.

Cause :	Vous avez tenté d'ajouter ou de supprimer des sous-objets dans un objet référencé.

Action :	Si vous avez besoin de modifier la structure d'un objet référencé, vous devez exécuter cette opération à la source de la référence. Vous pouvez déterminer la source de la référence en consultant les informations de référence dans la fenêtre Propriété de l'objet concerné.


FRM-15109
FRM-15109 : Le module source doit être enregistré avant d'être référencé.

Cause :	Vous avez tenté de référencer un module source qui n'a pas été enregistré.

Action :	Enregistrez le module source, puis établissez à nouveau la référence.


FRM-15110
FRM-15110 : Suppression impossible de %s car il appartient à un groupe d'objets référencés.

Cause :	Vous avez tenté de supprimer un objet qui appartient à un groupe d'objets référencés.

Action :	Si vous ne voulez pas de tous les objets dans le groupe d'objets référencés, essayez de référencer individuellement les objets souhaités ou de créer un groupe d'objets référencés qui ne contient que les objets souhaités.


FRM-15111
FRM-15111 : Impossible de créer un élément : le module ne comporte pas de bloc.

Cause :	Vous avez tenté de créer un élément dans une application Forms qui ne contient aucun bloc de données.

Action :	Revenez en Organisation hiérarchique et créez un nouveau bloc.


FRM-15200
FRM-15200 : Ce module comprend des cycles.

Cause :	Il existe des cycles de références de sous-menus dans le module.

Action :	Recherchez et corrigez les cycles avant la génération. Pour vous aider, utilisez l'option Développer tout.


FRM-15201
FRM-15201 : Développement impossible sous peine de bouclage.

Cause :	L'élément sélectionné fait référence à un menu qui est également un ancêtre de cet élément.

Action :	Corrigez le cycle avant de développer.


FRM-15202
FRM-15202 : Ce module fait référence à des sous-menus qui n'existent pas.

Cause :	Le module contient des éléments qui font référence à des menus qui n'existent pas.

Action :	Corrigez les références inexistantes avant la génération.


FRM-15203
FRM-15203 : Développement impossible faute de sous-menu.

Cause :	Il existe des cycles de références de sous-menus dans le module.

Action :	Recherchez et corrigez les cycles avant la génération. Pour vous aider, utilisez l'option Développer tout.


FRM-15204
FRM-15204 : Il est impossible de faire glisser en même temps menus et options de menu.

Cause :	Vous avez tenté de faire glisser une sélection multiple contenant des menus et des éléments Menu.

Action :	Faites glisser les menus un par un.


FRM-15205
FRM-15205 : Il est impossible de faire glisser plus d'un menu à la fois.

Cause :	Vous avez tenté de faire glisser une sélection multiple de menus.

Action :	Faites glisser les menus un par un.


FRM-15206
FRM-15206 : Modification de menu référencé ou d'option de menu impossible.

Cause :	Les objets référencés ne peuvent pas être modifiés.

Action :	Si vous avez besoin de modifier la structure d'un objet référencé, vous devez exécuter cette opération à la source de la référence. Vous pouvez déterminer la source de la référence en consultant les informations de référence dans la fenêtre Propriété de l'objet concerné.


FRM-15207
FRM-15207 : Modification du type d'élément parent obligatoire avant d'attacher un sous-menu. (Eventuelle perte de code).

Cause :	L'élément père est d'un type qui ne peut pas avoir de sous-menu.

Action :	Modifiez le type père avant d'attacher le sous-menu.


FRM-15208
FRM-15208 : Démarrage impossible de l'éditeur de menu.

Cause :	L'application Forms n'est pas parvenue à démarrer l'Editeur de menu pour cause d'erreur interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-15300
FRM-15300 : Valeur de colonne supérieure à la longueur indiquée.

Cause :	Une valeur de colonne est supérieure à la longueur spécifiée dans le champ.

Action :	Modifiez la valeur de la longueur ou celle des colonnes.


FRM-15400
FRM-15400 : Chargement impossible de l'assistant Graphique.

Cause :	Un erreur interne s'est produite ou Oracle Graphics n'a pas été installé correctement.

Action :	Vérifiez qu'Oracle Graphics est installé correctement.


FRM-15401
FRM-15401 : Impossible de charger le fichier Graphics Designer (OGD) indiqué.

Cause :	Impossible de trouver le fichier OGD indiqué dans la propriété  Nom de fichier de l'élément graphique.

Action :	Vérifiez que le fichier OGD indiqué existe à l'emplacement précisé.


FRM-15402
FRM-15402 : Exécution impossible de l'assistant Graphique.

Cause :	Un erreur interne s'est produite ou Oracle Graphics n'a pas été installé correctement.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-15403
FRM-15403 : Affichage impossible de l'élément Graphique.

Cause :	L'application Forms n'a pas pu obtenir de liste d'affichage VGS à partir du fichier Graphics Designer (OGD).

Action :	Vérifiez que le fichier indiqué est un fichier OGD valide ou essayez de recréer le fichier OGD.


FRM-15404
FRM-15404 : Impossible de définir des attributs dans le fichier Graphics Designer (OGD).

Cause :	L'application Forms n'a pas pu appliquer les attributs de l'Assistant graphique au fichier OGD.

Action :	Vérifiez que le fichier indiqué est un fichier OGD valide ou essayez de recréer le fichier OGD.


FRM-15405
FRM-15405 : Impossible de créer un nouveau fichier Graphics Designer (OGD).

Cause :	Une erreur interne s'est produite ou vous n'avez pas l'autorisation de créer un fichier à l'emplacement indiqué.

Action :	Vérifiez que vous êtes autorisé à créer des fichiers à l'emplacement indiqué et qu'Oracle Graphics est installé correctement.


FRM-15500
FRM-15500 : Vous devez entrer un nom d'objet unique et valide.

Cause :	Le nom d'objet doit être un identificateur Oracle valide et unique dans sa portée.

Action :	Entrez un nom valide et unique.


FRM-15502
FRM-15502 : Nom de déclencheur intégré non valide à ce niveau.

Cause :	Vous avez tenté de créer un déclencheur non valide pour un type d'objet.

Action :	Vérifiez que vous définissez le déclencheur pour le niveau approprié.


FRM-15506
FRM-15506 : Extraction de la liste de classes OLE impossible.

Cause :	Impossible de communiquer avec la base de données d'enregistrement.

Action :	Réinstallez les serveurs OLE.


FRM-17001
FRM-17001 : Les éléments affichés ne doivent pas être supérieurs aux enregistrements affichés dans le bloc de données.

Cause :	Vous avez tenté de définir la propriété Eléments affichés d'un élément à un nombre supérieur à celui de la propriété Enregistrements affichés du bloc de données.

Action :	Vérifiez que la propriété Enregistrements affichés est supérieure ou égale à la propriété Eléments affichés.


FRM-17002
FRM-17002 : Aucun contenu n'est associé à ce contrôle.

Cause :	Vous avez tenté de modifier une propriété qui requiert un contenu dans le contrôle.

Action :	A partir de l'Editeur de présentation, insérez un contenu dans le contrôle à l'aide de la commande Insérer objet.


FRM-17003
FRM-17003 : Pour afficher cette propriété, le contrôle doit être visible dans l'éditeur de présentation.

Cause :	Vous avez tenté de modifier une propriété qui requiert que le contrôle soit visible dans l'Editeur de présentation.

Action :	Ouvrez l'Editeur de présentation pour le canevas auquel est affecté ce contrôle.


FRM-17004
FRM-17004 : Aucune aide n'est associée à ce contrôle.

Cause :	L'application Forms n'est pas parvenue à localiser un fichier d'aide pour ce contrôle.

Action :	Vérifiez que le contrôle est correctement installé ou réinstallez-le.


FRM-17005
FRM-17005 : Impossible de déterminer le nom de la classe du contrôle.

Cause :	L'application Forms n'est pas parvenue à ouvrir le fichier d'aide car le nom de classe du contrôle n'est pas disponible.

Action :	Vérifiez que le contrôle est correctement installé ou réinstallez-le.


FRM-18100
FRM-18100 : Echec de compilation de la bibliothèque.

Cause :	La génération de la bibliothèque a échoué.

Action :	Vérifiez que toutes les unités de programme ont été compilées.


FRM-18101
FRM-18101 : Echec de démarrage du Navigateur d'information.

Cause :	Le démarrage du Navigateur d'information a échoué.

Action :	Vérifiez que le Navigateur d'information a été installé correctement.


FRM-18102
FRM-18102 : Echec d'initialisation de la boîte de dialogue d'erreur.

Cause :	L'application Forms n'est pas parvenue à créer la boîte de dialogue d'erreur par défaut.

Action :	Vérifiez votre environnement de développement.


FRM-18103
FRM-18103 : Echec d'initialisation de l'environnement de développement (DE).

Cause :	L'application Forms n'est pas parvenue à démarrer l'environnement de développement.

Action :	Vérifiez votre environnement de développement.


FRM-18104
FRM-18104 : Echec de démarrage du Navigateur d'objet.

Cause :	L'application Forms n'est pas parvenue à démarrer le Navigateur objet.

Action :	Vérifiez votre environnement de développement.


FRM-18105
FRM-18105 : Echec de démarrage de Help System.

Cause :	L'application Forms n'est pas parvenue à démarrer le système d'aide (Help System).

Action :	Vérifiez votre environnement de développement.


FRM-18106
FRM-18106 : Echec de création du contexte de l'Editeur de présentation.

Cause :	L'application Forms n'est pas parvenue à créer le contexte de l'Editeur de présentation.

Action :	Vérifiez votre environnement de développement.


FRM-18107
FRM-18107 : Echec de création d'un contexte d'environnement de développement (DE) pour le module.

Cause :	L'application Forms n'est pas parvenue à créer le contexte d'environnement de développement pour le module.

Action :	Vérifiez votre environnement de développement.


FRM-18108
FRM-18108 : Echec de chargement des objets suivants :

Cause :	L'application Forms n'est pas parvenue à charger les références externes indiquées.

Action :	Vérifiez que toutes les applications Forms et les bibliothèques d'objets référencées sont présentes.


FRM-18109
FRM-18109 : Un objet intitulé %s existe déjà dans le groupe d'objets %s.

Cause :	Vous avez tenté d'ajouter une unité de programme à la bibliothèque d'objets, alors qu'une unité de programme de même nom est déjà présente dans un groupe d'objets de la bibliothèque.

Action :	Supprimez l'unité de programme du groupe d'objets et retentez l'opération.


FRM-18110
FRM-18110 : L'unité de programme %s (dans le groupe d'objets %s) existe déjà dans cette bibliothèque d'objets.

Cause :	Vous avez tenté d'ajouter groupe d'objets contenant une unité de programme à la bibliothèque d'objets, alors qu'une unité de programme de même nom est déjà présente dans la bibliothèque.

Action :	Supprimez l'unité de programme de la bibliothèque d'objets ou du groupe d'objets, puis réessayez.


FRM-18111
FRM-18111 : La police correspondant aux propriétés de police demandées est introuvable.

Cause :	Vous avez tenté d'afficher la boîte de dialogue de police pour cet objet, mais la police ayant les propriétés requises est introuvable sur votre système.

Action :	Changez l'une les propriétés de la police (nom, taille, style, poids ou espacement) et résessayez.


FRM-18112
FRM-18112 : Echec d'initialisation de Form Builder en tant que serveur Automation.

Cause :	Form Builder n'a pas pu s'initialiser en tant que serveur Automation car OLE/COM n'est pas correctement installé sur votre système.

Action :	Vérifiez l'installation d'OLE/COM et les paramètres de la base de registres.


FRM-18113
FRM-18113 : Echec d'initialisatisation d'Oracle Designer, par Form Builder, en tant que serveur Automation.

Cause :	Oracle Designer n'a pas pu s'initialiser en tant que serveur Automation car la base de registres n'est pas correctement paramétrée ou OLE/COM n'est pas correctement installé sur votre système.

Action :	Vérifiez l'installation d'OLE/COM et les paramètres de la base de registres.


FRM-40007
FRM-40007 : Nom utilisateur ou mot de passe incorrect. Recommencer.

Cause :	Vous avez entré un nom utilisateur ou un mot de passe ORACLE incorrect.

Action :	Entrez à nouveau correctement votre nom utilisateur et votre mot de passe.

Niveau :	>25

Type :	Erreur


FRM-40010
FRM-40010 : Lecture impossible de l'application Forms %s.

Cause :	Causes possibles :

1. Vous avez entré un nom d'application Forms qui n'existe pas.

2. Vous avez indiqué un chemin d'accès incomplet.

3. Vous ne possédez pas les autorisations nécessaires pour exécuter cette application Forms.

4. Vous ne disposez pas d'une version compilée de l'application Forms.

Action :	Entrez correctement le nom de l'application Forms, indiquez le chemin d'accès adéquat, compilez l'application Forms ou contactez l'administrateur de bases de données.

Niveau :	5

Type :	Erreur


FRM-40011
FRM-40011 : Application créée avec ancienne version de Form Builder.

Cause :	Le fichier .FMB a été créé avec une version ancienne et incompatible de Forms Compiler.

Action :	Recompilez l'application Forms ou établissez à nouveau une liaison avec Generate.

Niveau :	>25

Type :	Erreur


FRM-40012
FRM-40012 : Application créée avec nouvelle version de Form Builder.

Cause :	Le fichier .FMB a été créé avec une version nouvelle et incompatible de Forms Compiler.

Action :	Recompilez l'application Forms.

Niveau :	>25

Type :	Erreur


FRM-40013
FRM-40013 : Erreur de programme : une erreur s'est produite en cours de lecture de l'application Forms.

Cause :	Une erreur interne s'est produite alors que Form Builder tentait de lire le fichier .FMB.

Action :	Recompilez l'application Forms.

Niveau :	>25

Type :	Erreur


FRM-40014
FRM-40014 : Espace mémoire insuffisant pour charger l'application Forms.

Cause :	Erreur interne. Votre ordinateur ne dispose pas de suffisamment de mémoire pour exécuter l'application Forms.

Action :	Le développeur de l'application peut éventuellement la modifier afin qu'elle puisse s'exécuter. Si cela n'est pas faisable, libérez davantage de mémoire sur votre installation en modifiant les paramètres du système d'exploitation ou en ajoutant de la mémoire à votre ordinateur.

Niveau :	>25

Type :	Erreur


FRM-40015
FRM-40015 : Fin de fichier inattendue pendant la lecture de l'application Forms.

Cause :	L'application Forms est fragmentée ou incomplète.

Action :	Recompilez l'application Forms.

Niveau	>25

Type :	Erreur


FRM-40019
FRM-40019 : Le numéro d'écran que vous souhaitez afficher est inconnu.

Cause :	Une erreur interne s'est produite.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40020
FRM-40020 : Page %d trop petite pour cette application Forms.

Cause :	Erreur de conception de l'application. Un élément est positionné en-dehors de la page.

Action :	Vérifiez que tous les éléments associés à une page donnée tiennent entièrement sur cette page. Vous pouvez repositionner les éléments ou redimensionner la page.

Niveau :	>25

Type :	Erreur


FRM-40021
FRM-40021 : Elément trop grand dans le fichier de l'application Forms.

Cause :	Une erreur interne s'est produite alors que Form Builder lisait l'application Forms.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40023
FRM-40023 : Erreur de création du contexte utilisé par le gestionnaire d'enregistrement.

Cause :	Form Builder n'est pas parvenu à initialiser son gestionnaire d'enregistrement interne.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40024
FRM-40024 : Mémoire insuffisante.

Cause :	Erreur interne. Votre ordinateur ne dispose pas de suffisamment de mémoire pour exécuter l'application Forms.

Action :	Le développeur de l'application peut éventuellement la modifier afin qu'elle puisse s'exécuter. Si cela n'est pas faisable, libérez davantage de mémoire sur votre installation en modifiant les paramètres du système d'exploitation ou en ajoutant de la mémoire à votre ordinateur.

Niveau :	>25

Type :	Erreur


FRM-40025
FRM-40025 : Suppression de sortie d'écran impossible sans fichier d'entrée.

Cause :	Vous avez tenté d'exécuter une application Forms sur la ligne de commande en utilisant des préférences incompatibles. Les préférences output_file ne fonctionnent qu'avec la préférence keyin.

Action :	Entrez à nouveau la commande en incluant à la fois les préférences output_file et keyin.

Niveau :	>25

Type :	Erreur


FRM-40026
FRM-40026 : Erreur d'ouverture du fichier de séquences de touches.

Cause :	Form Builder ne peut pas ouvrir le fichier que vous avez indiqué avec la préférence keyin.

Action :	Vérifiez que le fichier existe et que les protections de fichier sont définies correctement ou créez un fichier avec la préférence keyin.

Niveau :	>25

Type :	Erreur


FRM-40027
FRM-40027 : Erreur d'ouverture du fichier spoule d'affichage.

Cause :	Erreur du système d'exploitation. Form Builder ne peut pas ouvrir un fichier indiqué avec la préférence output_file par manque d'espace disque ou parce que le nom de fichier que vous avez indiqué est incorrect.

Action :	Contactez votre administrateur de base de données ou votre administrateur système.

Niveau :	>25

Type :	Erreur


FRM-40028
FRM-40028 : Erreur d'ouverture du fichier de messages %s%s%s.MSB.

Cause :	Form Builder ne peut pas trouver le fichier de messages.

Action :	Vérifiez que le fichier de messages existe et que vous avez indiqué le chemin d'accès approprié.

Niveau :	>25

Type :	Erreur


FRM-40029
FRM-40029 : Connexion déjà lancée ; vous devez vous déconnecter avant de recommencer.

Cause :	La procédure interne Login() a été lancée alors que vous étiez déjà connecté.

Action :	Utilisez d'abord la procédure interne Logout().

Niveau :	>25

Type :	Erreur


FRM-40030
FRM-40030 : Le fichier %s n'est pas un fichier Forms 4.0.

Cause :	Le fichier indiqué sur la ligne de commande n'est pas un fichier Form Builder valide.

Action :	Entrez à nouveau la commande de démarrage de Forms Runtime avec le nom d'un fichier valide.

Niveau :	Aucun niveau

Type :	Message de démarrage


FRM-40031
FRM-40031 : Le fichier %s n'est pas un fichier Forms Runtime.

Cause :	Le fichier indiqué sur la ligne de commande n'est pas un fichier Forms Runtime (.FMX).

Action :	Entrez le nom d'un fichier Forms Runtime (.FMX) valide.

Niveau :	Aucun niveau

Type :	Message de démarrage


FRM-40032
FRM-40032 : Erreur interne : le fichier %s contient une taille de tranche de mémoire incorrecte.

Cause :	Erreur interne. Le fichier a été compilé de façon incorrecte ou il est corrompu.

Action :	Recompilez votre fichier.

Niveau :	Aucun niveau

Type :	Message de démarrage


FRM-40033
FRM-40033 : Erreur interne : le fichier %s contient une table de tranches de mémoire incorrecte.

Cause :	Erreur interne. Le fichier a été compilé de façon incorrecte ou il est corrompu.

Action :	Recompilez votre fichier.

Niveau :	Aucun niveau

Type :	Message de démarrage


FRM-40034
FRM-40034 : Impossible d'attacher le fichier bibliothèque.

Cause :	Form Builder n'a pas trouvé le fichier bibliothèque indiqué.

Action :	Quittez Forms Runtime et essayez à nouveau.

Niveau :	>25 (ce message ne peut pas être supprimé)

Type :	Erreur


FRM-40035
FRM-40035 : Erreur de création du contexte utilisé par le gestionnaire d'enregistrement pour ce bloc.

Cause :	Form Builder n'est pas parvenu à initialiser son gestionnaire d'enregistrement interne.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40036
FRM-40036 : La bibliothèque a été créée avec une nouvelle version de Form Builder.

Cause :	Form Builder ne peut pas utiliser la bibliothèque.

Action :	Recompilez la bibliothèque avec la version courante de Form Builder.

Niveau :	>25

Type :	Erreur


FRM-40037
FRM-40037 : La bibliothèque a été créée avec une ancienne version de Form Builder.

Cause :	Form Builder ne peut pas utiliser la bibliothèque.

Action :	Recompilez la bibliothèque avec la version courante de Form Builder.

Niveau :	>25

Type :	Erreur


FRM-40038
FRM-40038 : Elément %s, bloc %s : contrôle VBX %s introuvable.

Cause :	Erreur de conception de l'application. Un contrôle VBX indiqué dans le fichier .FMB est introuvable au moment de l'exécution.

Action :	Vérifiez que le fichier de contrôle VBX se trouve bien à l'emplacement indiqué dans Form Builder.

Niveau :	>25

Type :	Erreur


FRM-40039
FRM-40039 : Rattachement impossible de la bibliothèque %s lors de l'ouverture de l'application Forms %s.

Cause :	La bibliothèque indiquée est attachée à l'application Forms mais elle est introuvable dans le chemin de recherche des bibliothèques PL/SQL.

Action :	Vérifiez que la bibliothèque indiquée existe et dispose des autorisations de lecture.

Niveau :	99

Type :	Erreur


FRM-40100
FRM-40100 : Sur premier enregistrement.

Cause :	Vous avez appuyé sur [Enregistrement précédent] alors que le curseur se trouvait sur le premier enregistrement.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Erreur


FRM-40101
FRM-40101 : Positionnement sur élément clé impossible. Aucun n'est un élément de navigation autorisé.

Cause :	Vous avez appuyé sur [Clé primaire suivante] mais il n'existe aucun élément clé primaire modifiable dans ce bloc de données.

Action :	Utilisez [Elément suivant] pour la navigation plutôt que [Clé primaire suivante].

Niveau :	10

Type :	Erreur


FRM-40102
FRM-40102 : Vous devez saisir ou supprimer un enregistrement au préalable.

Cause :	Vous avez appuyé sur [Enregistrement suivant] ou sur [Bas] dans un contexte où cela n'est pas pertinent pour l'une des raisons suivantes :

1.  Le dernier enregistrement d'un bloc de données est l'enregistrement courant.

2.  Le bloc de données est vide.

3.  Vous êtes dans un nouvel enregistrement au milieu du bloc, créé en appuyant sur [Insérer enregistrement].

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Erreur


FRM-40103
FRM-40103 : Positionnement sur champ Clé primaire impossible. Aucun ne peut faire l'objet d'une interrogation.

Cause :	Vous avez tenté d'utiliser [Clé primaire suivante], mais aucun des éléments de clé primaire du bloc de données ne vous autorise à entrer des critères d'interrogation.

Action :	Aucune action nécessaire.

Niveau :	10

Type :	Erreur


FRM-40104
FRM-40104 : Bloc %s inexistant.

Cause :	Erreur d'exécution. Une instruction GO_BLOCK fait référence à un bloc de données qui n'existe pas.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40105
FRM-40105 : Impossible de trouver l'élément %s pour en retourner la valeur.

Cause :	Erreur d'exécution. Une instruction GO_ITEM fait référence à un élément qui n'existe pas.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40106
FRM-40106 : Absence d'élément de navigation autorisé dans le bloc cible.

Cause :	Erreur d'exécution. Une instruction GO_BLOCK fait référence à un bloc de données sans éléments modifiables.

Action :	Supprimez l'instruction ou faites en sorte qu'au moins un élément du bloc de données soit modifiable.

Niveau :	>25

Type :	Erreur


FRM-40107
FRM-40107 : Navigation impossible vers le champ non affichable %s.

Cause :	Erreur d'exécution. Une instruction GO_ITEM fait référence à un élément non affiché.

Action :	Supprimez l'instruction ou désactivez la propriété Affiché de l'élément indiqué.

Niveau :	>25

Type :	Erreur


FRM-40108
FRM-40108 : L'application Forms %s n'existe pas.

Cause :	Vous avez tenter d'obtenir/définir les propriétés d'une application Forms inexistante ou non chargée.

Action :	Utilisez un nom d'application Forms valide.

Niveau :	>25

Type :	Erreur


FRM-40109
FRM-40109 : Sortie du bloc courant impossible en mode Saisie interrogation.

Cause :	Vous avez tenté de naviguer en-dehors du bloc de données courant en mode Saisie interrogation.

Action :	Aucune action nécessaire. Vous ne pouvez pas naviguer en-dehors du bloc de données ou de l'enregistrement courant en mode Saisie interrogation.

Niveau :	99

Type :	Erreur


FRM-40110
FRM-40110 : Sur premier bloc.

Cause :	Vous avez tenté d'utiliser [Bloc précédent] alors que vous étiez sur le premier bloc de données.

Action :	Aucune. Optez pour une autre méthode de navigation.

Niveau :	5

Type :	Erreur


FRM-40111
FRM-40111 : Sur dernier bloc.

Cause :	Vous avez tenté d'utiliser [Bloc suivant] alors que vous étiez sur le dernier bloc de données.

Action :	Aucune. Optez pour une autre méthode de navigation.

Niveau :	5

Type :	Erreur


FRM-40200
FRM-40200 : Champ protégé contre les modifications.

Cause :	Vous avez tenté de modifier un champ qui ne permet pas les modifications.

Action :	Aucune action nécessaire. Vous ne pouvez pas modifier ce champ de l'application Forms.

Niveau :	15

Type :	Erreur


FRM-40201
FRM-40201 : Le champ est rempli. Insertion de caractère impossible.

Cause :	Form Builder est en mode insertion et le champ courant est plein.

Action :	Supprimez un caractère afin de libérer de l'espace pour un nouveau caractère ou appuyez sur [Insertion/Remplacement] pour passer en mode remplacement.

Niveau :	10

Type :	Erreur


FRM-40202
FRM-40202 : Le champ doit être renseigné.

Cause :	Vous n'avez entré aucune valeur (ou vous avez supprimé une valeur) dans un champ qui requiert l'entrée de données.

Action :	Vous devez entrer une valeur dans ce champ.

Niveau :	15

Type :	Erreur


FRM-40203
FRM-40203 : Le champ doit être renseigné complètement.

Cause :	Vous avez entré une valeur incomplète (ou vous avez supprimé une partie d'une valeur) dans un champ de longueur fixe.

Action :	Entrez une valeur complète (ou une valeur qui s'étend jusqu'à l'extrémité du champ).

Niveau :	15

Type :	Erreur


FRM-40204
FRM-40204 : Le curseur se trouve au début du champ.

Cause :	Vous avez tenté de supprimer un caractère avant la première position du champ.

Action :	Utilisez [Supprimer caractère] pour supprimer le caractère sur lequel se trouve le curseur.

Niveau :	10

Type :	Erreur


FRM-40205
FRM-40205 : Le curseur est en dehors du champ courant.

Cause :	Sur un terminal en mode bloc de données, vous avez positionné le curseur en-dehors d'un champ.

Action :	Placez le curseur dans le champ et essayez votre entrée à nouveau.

Niveau :	15

Type :	Erreur


FRM-40206
FRM-40206 : Le caractère précédent est actuellement masqué.

Cause :	Vous avez tenté de supprimer un caractère qui se trouve en-dehors de l'écran.

Action :	Faites apparaître par défilement le caractère que vous voulez supprimer à l'aide des touches fléchées ou de [Défiler vers la gauche] et [Défiler vers la droite].

Niveau :	10

Type :	Erreur


FRM-40207
FRM-40207 : La valeur doit être comprise entre %.30s et %.30s.

Cause :	La valeur que vous avez entrée n'appartient pas à la plage d'éléments valide.

Action :	Entrez une valeur appartenant à la plage indiquée.

Niveau :	15

Type :	Erreur


FRM-40208
FRM-40208 : Application Forms exécutée en mode interro seulement. Modification des champs de la base impossible.

Cause :	Vous avez entré une valeur dans une application Forms en mode interrogation seulement.

Action :	N'entrez pas de valeurs dans cette application. Vous pouvez exécuter des interrogations et afficher des données, mais vous ne pouvez pas modifier les données existantes ni entrer de nouvelles données.

Niveau :	15

Type :	Erreur


FRM-40209
FRM-40209 : La valeur dans ce champ doit prendre la forme %s.

Cause :	La valeur que vous avez entrée ne correspond pas au masque de format du champ.

Action :	Essayez à nouveau avec une valeur de champ conforme au masque de format.

Niveau :	>25

Type :	Erreur


FRM-40210
FRM-40210 : Chaîne de recherche introuvable.

Cause :	La chaîne de recherche n'existe pas dans le module.

Action :	Vérifiez l'exactitude de votre chaîne de recherche ou essayez une autre chaîne de recherche.

Niveau :	99

Type :	Information


FRM-40211
FRM-40211 : Attention ! Les retours ligne risquent d'être supprimés de ce champ.

Cause :	Vous avez tenté d'affecter à un champ texte monoligne des données contenant des retours ligne.

Action :	Si vous avez besoin de retours ligne, affectez les données à un champ texte multiligne.

Niveau :	5

Type :	Information


FRM-40212
FRM-40212 : Valeur non valide dans le champ %s.

Cause :	Causes possibles :

1.  La valeur n'est pas d'un type de données adéquat.

2.  La valeur ne correspond à aucune de celles de la liste des valeurs acceptables.

3.  Pour un champ texte, la valeur n'appartient pas à la plage indiquée.

Action :	Essayez à nouveau avec une autre valeur.

Niveau :	>20

Type :	Message


FRM-40213
FRM-40213 : Impossible d'effectuer l'opération Copier_zone/Couper_zone ; aucune zone sélectionnée.

Cause :	Aucune zone sélectionnée.

Action :	Sélectionnez une zone et essayez à nouveau.

Niveau :	5

Type :	Erreur


FRM-40214
FRM-40214 : Opération Copier/couper : ouverture du Presse-papiers impossible.

Cause :	Presse-papiers indisponible.

Action :	Spécifique à la plate-forme.

Niveau :	99

Type :	Erreur


FRM-40215
FRM-40215 : Impossible d'écrire dans le Presse-papiers.

Cause :	Presse-papiers indisponible.

Action :	Spécifique à la plate-forme.

Niveau :	99

Type :	Erreur


FRM-40216
FRM-40216 : Opération Coller : impossible d'ouvrir le Presse-papiers.

Cause :	Presse-papiers indisponible.

Action :	Spécifique à la plate-forme.

Niveau :	99

Type :	Erreur


FRM-40217
FRM-40217 : Impossible d'obtenir la taille des données à partir du Presse-papiers.

Cause :	Données non valides.

Action :	Spécifique à la plate-forme.

Niveau :	99

Type :	Erreur


FRM-40218
FRM-40218 : Lecture impossible à partir du Presse-papiers.

Cause :	Données non valides.

Action :	Spécifique à la plate-forme.

Niveau :	99

Type :	Erreur


FRM-40219
FRM-40219 : Formatage impossible des données lues dans le Presse-papiers.

Cause :	Données non valides.

Action :	Spécifique à la plate-forme.

Niveau :	99

Type :	Erreur


FRM-40220
FRM-40220 : Collage impossible à partir du Presse-papiers ; valeur trop longue.

Cause :	Données non valides.

Action :	Spécifique à la plate-forme.

Niveau :	99

Type :	Erreur


FRM-40221
FRM-40221 : Opération Coller région impossible ; région non sélectionnée.

Cause :	Vous avez appelé Coller région alors qu'aucune partie de l'élément image n'était sélectionnée.

Action :	Sélectionnez une région de l'élément image avant d'appeler Coller région.


FRM-40222
FRM-40222 : Elément '%s désactivé. Echec de validation de %s'.

Cause :	Erreur probable de conception de l'application. Form Builder a déterminé que l'élément contient une valeur non valide, mais il ne peut pas donner le point d'insertion à l'élément, car il est désactivé. Causes possibles :

L'application a attribué par programme une valeur non valide à l'élément.

L'application a désactivé par programme l'élément après que l'utilisateur final ait entré une valeur non valide pour l'élément (et avant que l'élément ne soit validé).

Action :	Corrigez la logique de l'application.

Niveau :	25

Type :	Erreur


FRM-40301
FRM-40301 : L'interrogation n'a ramené aucun enregistrement. Recommencer.

Cause :	Aucun enregistrement ne correspond aux critères d'interrogation. Vous êtes toujours en mode Saisie interrogation.

Action :	Adaptez vos critères d'interrogation ou appuyez sur [Quitter/Annuler] pour quitter le mode Saisie interrogation.

Niveau :	>25

Type :	Information


FRM-40302
FRM-40302 : Interrogation impossible. Aucun champ n'est interrogeable.

Cause :	Vous avez appuyé sur [Saisie interrogation] alors que le curseur se trouvait dans un bloc de données sans aucun champ interrogeable.

Action :	Aucune action nécessaire.

Niveau :	15

Type :	Erreur


FRM-40303
FRM-40303 : Ce bloc ne contient aucun champ de la table de base.

Cause :	Un des blocs du module courant ne contient aucun champ de la table de base.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-40350
FRM-40350 : L'interrogation n'a ramené aucun enregistrement.

Cause :	L'interrogation courante n'a ramené aucun enregistrement de la table. La table est vide ou ne contient aucun enregistrement répondant aux critères de recherche de l'interrogation.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-40352
FRM-40352 : Dernier enregistrement d'interrogation ramené.

Cause :	Vous avez appuyé sur [Bas], [Enregistrement suivant], [Ensemble d'enreg. suivant] ou [Défiler vers le bas] après que tous les enregistrements ont été ramenés.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-40353
FRM-40353 : Interrogation annulée.

Cause :	Vous avez appuyé sur [Quitter/Annuler] en mode Saisie interrogation ou sur CTRL-C (ou son équivalent) alors que Form Builder ramenait des enregistrements de la base de données.

Action :	Aucune action nécessaire.

Niveau :	Le niveau de message est 5 lorsque le message est appelé par CTRL-C.

Type :	Information


FRM-40355
FRM-40355 : L'interrogation ramènera %ld enregistrements.

Cause :	Vous avez appuyé sur [Compter nbre de lignes extraites]. Si vous appuyez maintenant sur [Exécuter interrogation], ce nombre d'enregistrements sera ramené.

Action :	Aucune action nécessaire.

Niveau :	25

Type :	Information


FRM-40356
FRM-40356 : Numéro erroné dans l'enregistrement exemple. Interrogation non lancée.

Cause :	En mode Saisie interrogation, vous avez entré un nombre non valide dans l'enregistrement exemple.

Action :	Corrigez votre entrée et relancez l'interrogation.

Niveau :	>25

Type :	Erreur


FRM-40357
FRM-40357 : Chaîne de caractères non valide dans l'enregistrement exemple. Interrogation non lancée.

Cause :	En mode Saisie interrogation, vous avez entré une valeur ALPHA ou CHAR non valide dans l'enregistrement exemple.

Action :	Corrigez votre entrée et relancez l'interrogation.

Niveau :	>25

Type :	Erreur


FRM-40358
FRM-40358 : Date non valide dans l'enregistrement exemple. Interrogation non lancée.

Cause :	En mode Saisie interrogation, vous avez entré une DATE non valide dans l'enregistrement exemple.

Action :	Corrigez votre entrée et relancez l'interrogation.

Niveau :	>25

Type :	Erreur


FRM-40359
FRM-40359 : Date ou heure non valide dans l'enregistrement exemple. Interrogation non lancée.

Cause :	En mode Saisie interrogation, vous avez entré une valeur JDATE, EDATE ou TIME non valide dans l'enregistrement exemple.

Action :	Corrigez votre entrée et relancez l'interrogation.

Niveau :	>25

Type :	Erreur


FRM-40360
FRM-40360: Impossible d'interroger des enregistrements ici.

Cause :	Vous avez tenté d'interroger un bloc de données qui n'autorise pas les interrogations.

Action :	Ne tentez pas d'interroger ce bloc.

Niveau :	>25

Type :	Erreur


FRM-40361
FRM-40361 : Type de données TIME (heure) non accepté dans une interrogation.

Cause :	Vous avez lancé une interrogation contenant un opérateur "like" % dans un champ heure, ce qui n'est pas autorisé.

Action :	Essayez de reformuler votre interrogation sans type de données heure.

Niveau :	>25

Type :	Erreur


FRM-40355
FRM-40355 : L'interrogation ramènera 1 enregistrement.

Cause :	Vous avez appuyé sur [Compter nbre de lignes extraites]. Si vous appuyez maintenant sur [Exécuter interrogation], ce nombre d'enregistrements sera ramené.

Action :	Aucune action nécessaire.

Niveau :	25

Type :	Information


FRM-40364
FRM-40364 : Le type de données de l'élément '%s' ne correspond pas à la colonne associée dans la procédure stockée.

Cause :	Le type de données de l'élément diffère de celui de la colonne correspondante dans la procédure stockée.

Action :	Faites en sorte que le type de données de l'élément du bloc de données et celui de la colonne de la procédure stockée soient identiques.

Niveau :	20

Type :	Erreur

Cause :	Une interrogation à longue durée d'exécution est en cours ; cliquez sur le bouton Annuler pour l'arrêter.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information

Cause :	Une interrogation à longue durée d'exécution est en cours. Cliquez sur ce bouton pour l'arrêter.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-40400
FRM-40400 : Transaction terminée -- %d enregistrement(s) appliqué(s) et enregistré(s).

Cause :	Enregistrement terminé.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-40401
FRM-40401 : Aucune modification à enregistrer.

Cause :	Aucun enregistrement n'a été ajouté ni modifié depuis la dernière transaction ou la dernière sauvegarde.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Erreur


FRM-40402
FRM-40402 : Enregistrement annulé.

Cause :	Vous avez appuyé sur CTRL-C (ou son équivalent) en attente de verrouillage.

Action :	Aucune action nécessaire.

Niveau :	10

Type :	Information


FRM-40403
FRM-40403 : Modifications non appliquées dans l'appli Forms appelante. Enregistrement non autorisé.

Cause :	Une application Forms appelante a annulé l'application des modifications.

Action :	Appliquez les modifications ou retournez à l'application Forms appelante et essayez l'enregistrement à nouveau.

Niveau :	15

Type :	Erreur


FRM-40404
FRM-40404 : Application dans la base de données terminée -- %d enregistrement(s) appliqué(s).

Cause :	Application terminée.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-40405
FRM-40405 : Aucune modification à appliquer.

Cause :	Aucun enregistrement n'a été ajouté ni modifié depuis la dernière transaction ou la dernière sauvegarde.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Erreur


FRM-40406
FRM-40406 : Transaction terminée : %d enregistrement(s) appliqué(s); tous les enregistrements sont enregistrés.

Cause :	Vous avez terminé une transaction qui a enregistré vos modifications et sauvegardé les modifications précédemment appliquées.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-40407
FRM-40407 : Transaction terminée : les enregistrements appliqués ont été enregistrés.

Cause :	Vous avez terminé l'enregistrement des modifications apportées précédemment.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-40501
FRM-40501 : Erreur ORACLE : réservation d'enregistrement impossible en vue de M.A.J. ou suppression.

Cause :	Une erreur fatale s'est produite lors de la sélection d'enregistrements pour mise à jour.

Action :	Vous obtiendrez davantage d'informations, le cas échéant, en appuyant sur [Afficher erreur]. Vous pouvez également essayer de mettre à jour ou de supprimer cet enregistrement plus tard. Si nécessaire, contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40502
FRM-40502 : Erreur ORACLE : lecture de liste de valeurs impossible.

Cause :	Une erreur fatale s'est produite lors de la lecture d'une liste de valeurs.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-40504
FRM-40504 : Erreur ORACLE : exécution impossible du déclencheur %s.

Cause :	Une erreur fatale s'est produite lors de l'exécution d'un déclencheur.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-40505
FRM-40505 : Erreur ORACLE : exécution impossible de l'interrogation.

Cause :	Erreur de traitement. La table associée au bloc de données courant de l'application Forms n'existe peut-être pas, ou votre nom utilisateur ne vous autorise pas à effectuer sur cette table l'action indiquée.

Action :	Vous obtiendrez davantage d'informations, le cas échéant, en appuyant sur [Afficher erreur]. Vous pouvez également essayer de mettre à jour ou de supprimer cet enregistrement plus tard. Si nécessaire, contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40506
FRM-40506 : Erreur ORACLE : contrôle impossible d'unicité d'enregistrement.

Cause :	Erreur de traitement lors du contrôle d'unicité des éléments de clé primaire d'un enregistrement. la table associée au bloc de données courant de l'application Forms n'existe pas ou vous n'avez pas l'autorisation d'accéder à la table.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40507
FRM-40507 : Erreur ORACLE : extraction impossible de l'enregistrement d'interrogation suivant.

Cause :	Causes possibles :

1. Une erreur fatale s'est produite lors de l'extraction de l'enregistrement d'interrogation suivant.

2. Si vous êtes connecté à une source de données autre que Oracle via ODBC, le curseur perd sa position dans l'ensemble de résultats après un enregistrement dans la base de données.

Action :	Renouvelez votre interrogation si vous êtes connecté à une source de données autre que Oracle. Sinon, contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40508
FRM-40508 : Erreur ORACLE : insertion (INSERT) d'enregistrement impossible.

Cause :	Une erreur fatale s'est produite lors de l'insertion d'un enregistrement. La table associée au bloc de données courant de l'application Forms n'existe peut-être pas, votre nom utilisateur ne vous autorise pas à effectuer sur cette table l'action indiquée ou une raison quelconque est à l'origine de l'erreur fatale.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40509
FRM-40509 : Erreur ORACLE : mise à jour (UPDATE) d'enregistrement impossible.

Cause :	Une erreur fatale s'est produite lors de la mise à jour d'un enregistrement. La table associée au bloc de données courant de l'application Forms n'existe peut-être pas, votre nom utilisateur ne vous autorise pas à effectuer sur cette table l'action indiquée ou une raison quelconque est à l'origine de l'erreur fatale.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40510
FRM-40510 : Erreur ORACLE : suppression (DELETE) d'enregistrement impossible.

Cause :	Une erreur fatale s'est produite lors de la suppression d'un enregistrement. La table associée au bloc de données courant de l'application Forms n'existe peut-être pas, votre nom utilisateur ne vous autorise pas à effectuer sur cette table l'action indiquée ou une raison quelconque est à l'origine de l'erreur fatale.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40511
FRM-40511 : Erreur ORACLE pendant l'exécution d'un déclencheur %s.

Cause :	Une erreur fatale s'est produite lors de l'exécution d'un déclencheur. La table associée au bloc de données courant de l'application Forms n'existe peut-être pas, votre nom utilisateur ne vous autorise pas à effectuer sur cette table l'action indiquée ou une raison quelconque est à l'origine de l'erreur fatale.

Action :	Contactez votre administrateur de bases de données

Niveau :	>25

Type :	Erreur


FRM-40512
FRM-40512 : Erreur ORACLE : lancement de la commande SAVEPOINT impossible.

Cause :	Lors d'une tentative d'appel d'une nouvelle application Forms ou d'enregistrement dans la base de données, la commande SAVEPOINT lancée a échoué. Cela signifie généralement que le module est à court de savepoints.

Action :	Appuyez sur [Afficher erreur] pour afficher l'erreur ORACLE spécifique. Vous pouvez peut-être augmenter le nombre maximum de savepoints dans le fichier INIT.ORA.

Niveau :	>25

Type :	Erreur


FRM-40513
FRM-40513 : Erreur ORACLE : lecture impossible de la date/heure dans la base de données.

Cause :	Une erreur s'est produite lors de la résolution de la valeur date/heure initiale de la base de données.

Action :	Connectez-vous si ce n'est déjà fait. Vérifiez le statut de la base de données.

Niveau :	10

Type :	Erreur


FRM-40514
FRM-40514 : L'opération requiert une connexion à la base de données.

Cause :	Vous avez tenté d'effectuer une opération de base de données sans vous être connecté à la base de données.

Action :	Connectez-vous à la base de données, puis réessayez.

Niveau :	20

Type :	Erreur


FRM-40515
FRM-40515 : Erreur ORACLE : ouverture de curseur impossible.

Cause :	Vous avez atteint le nombre maximum de curseurs que vous pouvez ouvrir.

Action :	Vérifiez le nombre de curseurs ouverts.

Niveau :	99

Type :	Erreur


FRM-40600
FRM-40600 : Enregistrement déjà inséré.

Cause :	Vous avez tenté d'insérer ou de mettre à jour un enregistrement, mais l'unicité s'applique aux éléments de clé primaire du bloc de données. L'enregistrement, tel qu'il a été inséré ou mis à jour, n'est pas unique.

Action :	Modifiez la valeur d'un ou plusieurs champs de clé primaire de l'enregistrement courant afin de les rendre uniques. Si cela pose des problèmes, supprimez la contrainte d'unicité sur les champs de clé primaire.

Niveau :	>25

Type :	Erreur


FRM-40602
FRM-40602 : Insertion ou Mise à jour de données impossible dans une vue.

Cause :	Vous avez tenté de modifier le contenu d'une vue d'une façon qui n'est pas autorisée.

Action :	Aucune action nécessaire ; vous ne pouvez pas exécuter l'opération que vous avez tentée.

Niveau :	20

Type :	Erreur


FRM-40603
FRM-40603 : Enregistrement non réservé pour M.A.J. Relancer l'interrogation pour apporter des modifications.

Cause :	Vous avez enregistré vos modifications dans un bloc de données où vous aviez précédemment entré une procédure en package ENTER_QUERY ou EXECUTE_QUERY avec le paramètre FOR_UPDATE. Cette action a libéré tous les verrouillages d'enregistrements dans ce bloc de données.

Action :	Si vous voulez modifier le bloc, vous devrez relancer l'interrogation.

Niveau :	>25

Type :	Erreur


FRM-40652
FRM-40652 : Verrouillage de table impossible en mode Mise à jour partagée.

Cause :	Causes possibles :

1. Vous n'avez pas accès à cette table.

2. Form Builder ne peut pas verrouiller la table en mode Mise à jour partagée.

Action :	Contactez votre administrateur de bases de données.

Niveau :	15

Type :	Erreur


FRM-40653
FRM-40653 : Enregistrement non réservé pour M.A.J. ou suppression. Ré-essayer plus tard.

Cause :	Vous avez appuyé sur CTRL-C (ou l'équivalent) pour annuler. L'opération de mise à jour ou de suppression de l'enregistrement a été interrompue.

Action :	Aucune action nécessaire.

Niveau :	20

Type :	Information


FRM-40654
FRM-40654 : Enregistrement mis à jour par un autre utilisateur. Relancer l'interrogation pour voir les modifications.

Cause :	Un autre utilisateur a mis à jour cet enregistrement depuis que vous avez lancé une interrogation et il en a modifié au moins un champ. Vos actions n'ont pas affecté l'enregistrement en mémoire.

Action :	Vous ne pouvez mettre à jour ou supprimer cet enregistrement maintenant que si un autre utilisateur a restaurer les valeurs des champs à ce qu'elles étaient lorsque vous avez lancé votre interrogation. Sinon, vous devez relancer une interrogation pour extraire et afficher le nouvel enregistrement dans l'application Forms afin de pouvoir le mettre à jour ou le supprimer.

Niveau :	20

Type :	Erreur


FRM-40655
FRM-40655 : Une erreur SQL a forcé une annulation (rollback). Effacer l'application et relancer la transaction.

Cause :	Une étreinte fatale ou une autre erreur a entraîné l'échec de la transaction courante. Vos modifications ont été annulées.

Action :	Effacez l'application Forms (ou quittez-la avant d'y revenir), puis entrez à nouveau votre transaction. Vous devrez peut-être modifier la conception de l'application afin d'empêcher cette erreur de se reproduire.

Niveau :	>25

Type :	Erreur


FRM-40656
FRM-40656 : Mise à jour impossible à cause de l'annulation précédente. Effacer l'enregistrement.

Cause :	Cet enregistrement a déjà été mis à jour, mais lorsque vous avez tenté d'enregistrer vos modifications dans la base de données, une erreur sérieuse a empêché l'exécution de cette mise à jour ou de toute autre mise à jour ou suppression. Cette erreur peut avoir l'une des causes suivantes :

1.  Une étreinte fatale a forcé la perte de verrouillages de lignes.

2.  L'enregistrement possède une clé de regroupement de base de données et la précédente tentative de mise à jour a été annulée suite à une erreur en un autre point de l'application Forms.

Action :	Vous devez effacer cet enregistrement avant de pouvoir enregistrer d'autres transactions dans l'application Forms.

Niveau :	25

Type :	Erreur


FRM-40657
FRM-40657 : Enregistrement modifié ou supprimé par un autre utilisateur.

Cause :	Un autre utilisateur a supprimé l'enregistrement depuis l'exécution de l'interrogation.

Action :	Vous pouvez effacer cet enregistrement de votre écran, mais vous ne pouvez pas le mettre à jour ni le supprimer car il n'existe plus dans la base de données.

Niveau :	20

Type :	Information


FRM-40659
FRM-40659 : Dernière ligne d'interrogation extraite. Relancer l'interrogation pour obtenir les enregistrements qui restent.

Cause :	Une interrogation FOR_UPDATE a été fermée par l'exécution d'une opération commit. Du fait que cette interrogation était ouverte avant l'opération commit, il peut rester des enregistrements à récupérer.

Action :	Relancez l'interrogation pour voir les enregistrements restants.

Niveau :	5

Type :	Message


FRM-40700
FRM-40700 : Le déclencheur %s n'existe pas.

Cause :	Erreur de conception de l'application. L'application Forms a tenté d'exécuter un déclencheur qui n'existe pas, ce qui a causé une erreur fatale.

Action :	Corrigez la référence au déclencheur.

Niveau :	20

Type :	Erreur


FRM-40702
FRM-40702 : Impossible d'appeler une application Forms comprenant des modifications à enregistrer

Cause :	Vous avez tenté d'appeler une autre application Forms comprenant des modifications non enregistrées dans l'application Forms courante et en mode savepoint désactivé.

Action :	Inscrivez/validez les modifications, puis réessayez.

Niveau :	15

Type :	Erreur


FRM-40703
FRM-40703 : Impossible de modifier un champ extrait en mode interrogation.

Cause :	Vous avez tenté de modifier un champ extrait en mode interrogation.

Action :	Aucune action requise.

Niveau :	20

Type :	Erreur


FRM-40704
FRM-40704 : Instruction SQL interdite en mode Interrogation seulement

Cause :	Erreur de conception de l'application. L'application Forms a tenté d'exécuter une fonction interdite en mode Interrogation seulement.

Action :	Vous devrez peut-être revoir la conception de l'application Forms.

Niveau :	20

Type :	Erreur


FRM-40705
FRM-40705 : Instruction SQL interdite dans un déclencheur de type Non-commit-time.

Cause :	Erreur de conception de l'application. Le déclencheur courant contient une instruction SQL interdite pour ce type de déclencheur.

Action :	Récrivez le texte du déclencheur ou utilisez un autre type de déclencheur.

Niveau :	20

Type :	Erreur


FRM-40714
FRM-40714 : Fonction interdite dans ce contexte.

Cause :	Erreur de conception de l'application. Le déclencheur courant contient un code fonction interdit.

Action :	Récrivez le texte du déclencheur ou utilisez un autre type de déclencheur.

Niveau :	20

Type :	Erreur


FRM-40720
FRM-40720 : Aucune instruction dans la liste d'instructions.

Cause :	Erreur de conception de l'application. Une étape d'un déclencheur V2 utilise une syntaxe non valide.

Action :	Corrigez le texte de l'étape du déclencheur.

Niveau :	>25

Type :	Erreur


FRM-40721
FRM-40721 : Le déclencheur ne comprend pas de code fonction.

Cause :	Erreur de conception de l'application. Une étape d'un déclencheur V2 utilise une syntaxe non valide.

Action :	Corrigez le texte de l'étape du déclencheur.

Niveau :	>25

Type :	Erreur


FRM-40722
FRM-40722 : Nom de fonction non reconnu.

Cause :	Erreur de conception de l'application. Un déclencheur fait référence à un code fonction inexistant.

Action :	Corrigez la référence.

Niveau :	>25

Type :	Erreur


FRM-40723
FRM-40723 : Argument manquant dans le code fonction.

Cause :	Erreur de conception de l'application. Il manque un argument dans une instruction ERASE, EXECUTE_TRIGGER, GO_BLOCK, GO_ITEM, GO_RECORD ou NEW_FORM.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40724
FRM-40724 : Absence de sélecteur dans l'instruction CASE.

Cause :	Erreur de conception de l'application. Il manque la partie sélecteur dans une instruction CASE.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40725
FRM-40725 : Absence de mot-clé dans l'instruction CASE.

Cause :	Erreur de conception de l'application. Il manque un mot-clé dans une instruction CASE.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40726
FRM-40726 : Absence de choix dans l'instruction CASE.

Cause :	Erreur de conception de l'application. Un choix n'est pas indiqué dans une instruction CASE.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40727
FRM-40727 : Mot-clé interdit dans l'instruction CASE.

Cause :	Erreur de conception de l'application. Une instruction CASE contient un mot-clé erroné.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40728
FRM-40728 : Arguments non reconnus ou superflus dans la fonction.

Cause :	Erreur de conception de l'application. Une fonction appelle des arguments superflus.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40729
FRM-40729 : Absence de point-virgule à la fin de l'instruction.

Cause :	Erreur de conception de l'application. Il manque un point-virgule à la fin d'un code fonction.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40730
FRM-40730 : Niveau de suppression de message non valide-- inchangé par rapport à %d.

Cause :	Erreur de conception de l'application. Un déclencheur a tenté de fixer le niveau de message système à un nombre non valide.

Action :	Redéfinissez la variable système SYSTEM.MESSAGE_LEVEL à un nombre valide.

Niveau :	>25

Type :	Erreur


FRM-40731
FRM-40731 : Absence de mot-clé INTO.

Cause :	Erreur de conception de l'application. Il manque une instruction COPY dans la clause INTO.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40732
FRM-40732 : L'élément cible de GOTO n'existe pas dans cette macro.

Cause :	Erreur de conception de l'application. Le libellé référencé dans PL/SQL n'existe pas.

Action :	Corrigez l'instruction.


FRM-40733
FRM-40733 : Echec de la procédure interne PL/SQL %s.

Cause :	Une erreur fatale s'est produite dans Form Builder ou dans PL/SQL lors de l'exécution du déclencheur.

Action :	Avertissez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40734
FRM-40734 : Erreur interne : erreur PL/SQL.

Cause :	Une erreur fatale s'est produite dans PL/SQL lors de l'exécution du déclencheur.

Action :	Avertissez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40735
FRM-40735 : Le déclencheur %s a détecté une exception %s non traitée.

Cause :	Erreur de conception de l'application. Le déclencheur courant a détecté une exception (autre que FORM_TRIGGER_FAILURE), mais il ne l'a pas traitée.

Action :	Récrivez le texte du déclencheur de manière qu'il traite l'exception.

Niveau :	>25

Type :	Erreur


FRM-40736
FRM-40736 : Initialisation de PL/SQL impossible.

Cause :	Une erreur interne s'est produite lors de l'initialisation de PL/SQL.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40737
FRM-40737 : Procédure restreinte interdite %s dans le déclencheur %s.

Cause :	Erreur de conception de l'application. Un déclencheur a tenté d'exécuter une procédure en package restreinte.

Action :	Supprimez la procédure en package du texte du déclencheur.

Niveau :	>25

Type :	Erreur


FRM-40738
FRM-40738 : L'argument %d de la procédure interne %s doit être renseigné.

Cause :	Erreur de conception de l'application. Aucun argument n'a été fourni à la procédure interne.

Action :	Reportez-vous à l'aide en ligne pour connaître l'utilisation correcte de cette procédure intégrée.

Niveau :	99

Type :	Erreur


FRM-40739
FRM-40739 : Paramètre Full_rollback non autorisé dans une application Forms Post-only.

Cause :	Erreur de conception de l'application. Un déclencheur a tenté d'émettre une procédure en package CLEAR_FORM avec le paramètre FULL_ROLLBACK dans une application Forms Post-only appelée.

Action :	Supprimez le paramètre FULL_ROLLBACK ou vérifiez que l'application Forms appelante ne contient pas de modifications non inscrites au moment de l'appel.

Niveau :	>25

Type :	Erreur


FRM-40740
FRM-40740 : Procédure %s uniquement autorisée dans un déclencheur on-%s.

Cause :	Erreur de conception de l'application. Un déclencheur non transactionnel a tenté d'appeler une procédure interne limitée à un déclencheur donné.

Action :	Reportez-vous à l'aide en ligne pour connaître l'utilisation correcte de cette procédure.

Niveau :	>25

Type :	Erreur


FRM-40741
FRM-40741 : Localisation impossible de l'enregistrement %d dans le bloc %s.

Cause :	Vous avez tenté d'obtenir ou de définir les propriétés d'enregistrement d'un numéro d'enregistrement non valide pour le bloc donné.

Action :	Vérifiez les paramètres de la propriété d'enregistrement Rechercher/Définir.

Niveau :	20

Type :	Erreur


FRM-40742
FRM-40742 : Conversion d'état interdite dans l'enregistrement %d : %s à %s.

Cause :	Erreur de conception de l'application. Un appel à SET_RECORD_PROPERTY a tenté une conversion interdite d'état d'enregistrement.

Action :	Reportez-vous à l'aide en ligne concernant SET_RECORD_PROPERTY pour connaître les transitions valides.

Niveau :	>25

Type :	Erreur


FRM-40743
FRM-40743 : Cette opération sur bloc non basé exige l'utilisation du déclencheur %s.

Cause :	Erreur de conception de l'application. Vous avez tenté une opération de base de données (interrogation, insertion, mise à jour, etc.) sur un bloc de données n'appartenant pas à une table de base, sans disposer du déclencheur transactionnel approprié.

Action :	Reportez-vous à l'aide en ligne concernant le déclencheur transactionnel approprié, puis créez un déclencheur valide.

Niveau :	20

Type :	Erreur


FRM-40744
FRM-40744 : La valeur d'entrée va être tronquée si l'éditeur est accepté.

Cause :	Le tampon de l'éditeur est trop petit pour accepter les données en entrée.

Action :	Changer d'éditeur ou augmentez la taille du tampon.

Niveau :	15

Type :	Erreur


FRM-40745
FRM-40745 : La valeur de sortie de la procédure interne %s a été tronquée.

Cause :	La variable en sortie est trop petite.

Action :	Augmentez la taille de la variable PL/SQL en sortie.

Niveau :	15

Type :	Erreur


FRM-40746
FRM-40746 : Impossible d'appeler la procédure interne %s à partir de la fenêtre de débogage de démarrage.

Cause :	La procédure interne n'est pas accessible à partir de la fenêtre de débogage de démarrage.

Action :	Reportez-vous au manuel Form Builder Developer's Guide pour obtenir une liste des procédures internes inaccessibles à partir de la fenêtre de débogage de démarrage.

Niveau :	99

Type :	Information


FRM-40747
FRM-40747 : Impossible d'appeler la procédure interne %s à partir d'un déclencheur de débogage.

Cause :	La procédure interne n'est pas accessible à partir du déclencheur de démarrage.

Action :	Reportez-vous au manuel Form Builder Developer's Guide pour obtenir une liste des procédures internes accessibles à partir d'un déclencheur de démarrage.

Niveau :	99

Type :	Information


FRM-40748
FRM-40748 : Déclencheur %s interrompu par une commande de réinitialisation.

Cause :	Vous avez émis une commande de réinitialisation ou appuyé sur le bouton de réinitialisation dans le débogueur.

Action :	Pour naviguer vers l'aval, accédez à la pile d'appel.

Niveau :	99

Type :	Information


FRM-40749
FRM-40749 : Enregistrement %d : état d'enregistrement incorrect.

Cause :	Erreur de conception de l'application. Vous avez tenté d'attribuer une valeur non valide à la propriété STATUS d'un enregistrement.

Action :	La propriété STATUS d'un enregistrement doit avoir la valeur NEW_STATUS, QUERY_STATUS, INSERT_STATUS ou CHANGED_STATUS.

Niveau :	99

Type :	Erreur


FRM-40750
FRM-40750 : Enregistrement %d : impossible de définir un état QUERY ou CHANGED dans un bloc de contrôle.

Cause :	Erreur de conception de l'application. Vous avez tenté d'attribuer à la propriété STATUS d'un enregistrement d'un bloc de contrôle la valeur QUERY_STATUS ou CHANGED_STATUS.

Action :	La propriété STATUS d'un enregistrement doit avoir la valeur NEW_STATUS ou INSERT_STATUS.

Niveau :	99

Type :	Erreur


FRM-40800
FRM-40800 : Sortie utilisateur %s inexistante.

Cause :	L'application Forms a tenté d'invoquer un user exit qui n'existe pas. Causes possibles :

1. Vous n'utilisez pas la bonne version de Forms Runtime.

2. Une erreur s'est produite dans l'application Forms.

Action :	Si vous n'utilisez pas la bonne version de Forms Runtime, recherchez quelle est la version qui contient le user exit et utilisez cette version pour exécuter l'application Forms. S'il s'agit d'une erreur dans l'application Forms, c'est au développeur qu'il revient de corriger l'appel au user exit.

Niveau :	20

Type :	Erreur


FRM-40801
FRM-40801 : Mémoire insuffisante pour le traitement de la sortie utilisateur.

Cause :	Une erreur fatale s'est produite.

Action :	Contactez votre administrateur de bases de données.

Niveau :	25

Type :	Erreur


FRM-40804
FRM-40804 : Arguments insuffisants dans la commande COPY.

Cause :	Erreur de conception de l'application. Une instruction COPY n'indique pas de source ou de destination.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40805
FRM-40805 : Arguments insuffisants dans la commande ERASE.

Cause :	Erreur de conception de l'application. Une instruction ERASE n'indique pas de variable.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40807
FRM-40807 : Aucune chaîne de commande indiquée pour la commande HOST.

Cause :	Erreur de conception de l'application. Une instruction HOST n'indique pas de chaîne de commande.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40808
FRM-40808 : Exécution impossible de la commande HOST ; code d'erreur = %s.

Cause :	Impossible d'exécuter une instruction HOST suite à une erreur du système d'exploitation.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40809
FRM-40809 : La commande HOST a un code d'erreur %s.

Cause :	La commande du système d'exploitation a abouti au code d'erreur ci-dessus.

Action :	Vérifiez que vous avez entré la commande correctement.

Niveau :	>25

Type :	Erreur


FRM-40811
FRM-40811 : Erreur dans la commande SHELL.

Cause :	La commande du système d'exploitation a abouti au code d'erreur ci-dessus.

Action :	Vérifiez que vous avez entré la commande correctement.

Niveau :	>25

Type :	Erreur


FRM-40814
FRM-40814 : Code fonction interdit dans ce contexte.

Cause :	Erreur de conception de l'application. Le mot-clé NOFAIL est indiqué pour un code fonction qui ne l'accepte pas.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40815
FRM-40815 : Variable GLOBAL %s inexistante.

Cause :	Erreur de conception de l'application. Un déclencheur fait référence à une variable globale qui n'existe pas.

Action :	Créez la variable globale ou supprimez la référence.

Niveau :	>25

Type :	Erreur


FRM-40816
FRM-40816 : Affectation de mémoire impossible pour ce nouveau symbole.

Cause :	Erreur interne. Mémoire insuffisante pour accéder à une nouvelle variable globale.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40817
FRM-40817 : Affectation de mémoire impossible pour cette nouvelle valeur.

Cause :	Erreur interne. Mémoire insuffisante pour accéder à une nouvelle variable globale.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40818
FRM-40818 : Nom de variable système non défini.

Cause :	Vous avez tenté d'accéder à une variable système qui n'existe pas.

Action :	Vérifiez le nom de la variable système.

Niveau :	99

Type :	Erreur


FRM-40819
FRM-40819 : Variable système non modifiable.

Cause :	Vous avez tenté de modifier une variable système.

Action :	Vous ne pouvez pas modifier les variables système.

Niveau :	99

Type :	Erreur


FRM-40820
FRM-40820 : Mémoire insuffisante pour évaluer variable système.

Cause :	Erreur interne. Mémoire insuffisante pour accéder à une nouvelle variable globale.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40822
FRM-40822 : Arguments insuffisants dans la fonction SET.

Cause :	Erreur de conception de l'application. Un code fonction SET n'indique pas suffisamment d'arguments.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40823
FRM-40823 : Trop d'arguments dans la fonction SET.

Cause :	Erreur de conception de l'application. Un code fonction SET indique trop d'arguments.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40824
FRM-40824 : Arguments insuffisants dans la fonction PAGE.

Cause :	Erreur de conception de l'application. Un code fonction HIDEPAGE ou SHOWPAGE n'indique pas suffisamment d'arguments.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40825
FRM-40825 : Arguments insuffisants dans la fonction VIEW.

Cause :	Erreur de conception de l'application. Un code fonction MOVEVIEW, ANCHORVIEW ou RESIZEVIEW n'indique pas suffisamment d'arguments.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40826
FRM-40826 : Nombre d'arguments non valide dans la fonction CALL.

Cause :	Erreur de conception de l'application. Un code fonction CALL ou CALLQRY n'indique pas suffisamment d'arguments.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40827
FRM-40827 : Arguments insuffisants dans la fonction GOREC.

Cause :	Erreur de conception de l'application. Un code fonction GOREC n'indique pas suffisamment d'arguments.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40828
FRM-40828 : Les fonctions CALL ou CALLQRY contiennent une référence à une variable non valide.

Cause :	Erreur de conception de l'application. Un code fonction CALL ou CALLQRY contient une référence à une variable non valide.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-40829
FRM-40829 : Arguments insuffisants dans la fonction EDITFIELD.

Cause :	Erreur de conception de l'application. Un code fonction EDITFIELD n'indique pas assez d'arguments.

Action :	Corrigez l'instruction.

Niveau :	Aucun niveau de suppression de message.

Type :	Erreur


FRM-40830
FRM-40830 : Arguments insuffisants dans la fonction DISPLAYPAGE.

Cause :	Erreur de conception de l'application. Un code fonction DISPLAYPAGE n'indique pas assez d'arguments.

Action :	Corrigez l'instruction.

Niveau :	Aucun niveau de suppression de message.

Type :	Erreur


FRM-40831
FRM-40831 : Valeur tronquée, car trop longue pour le champ %s.

Cause :	Erreur de conception de l'application. Un déclencheur, une interrogation ou un user exit a envoyé une valeur dans un élément qui n'est pas assez long pour le contenir en entier. L'élément a tronqué la valeur.

Action :	Augmentez la longueur de l'élément cible pour éviter la troncature.

Niveau :	15

Type :	Erreur


FRM-40900
FRM-40900 : Affectation impossible de tampon pour enregistrement. Effacer l'appli. Forms avant de poursuivre.

Cause :	Tentative avortée d'affectation de mémoire pour un enregistrement nouveau ou extrait. Les enregistrements restants issus de l'interrogation sont temporairement mis en tampon sur le disque. Cela signifie qu'aucun fichier temporaire ne peut plus être écrit sur le disque.

Action :	Effacez l'application Forms et essayez de continuer. Il se peut que vous soyez obligé de quitter l'application Forms, puis de la rouvrir. Vérifiez également que l'espace disque disponible est suffisant et que vous disposez du droit d'écriture sur le disque et sur le répertoire.

Niveau :	>25

Type :	Erreur


FRM-40901
FRM-40901 : Remarque : Mémoire insuffisante pour stocker tout ou partie de l'interrogation.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40902
FRM-40902 : Instruction SQL trop longue.

Cause :	Erreur de conception de l'application. La conception de l'application Forms contient une commande SQL dont la longueur est supérieure à 2048 caractères.

Action :	Raccourcissez la commande SQL.

Niveau :	>25

Type :	Erreur


FRM-40903
FRM-40903 : Création de fichier de sortie impossible.

Cause :	Vous avez appuyé sur [Impr écran], mais il est impossible d'écrire le contenu de l'écran dans un fichier pour l'une des raisons suivantes :

1. Vous avez entré un nom de fichier non autorisé.

2. Le système d'exploitation ne vous autorise pas à créer des fichiers.

3. L'espace nécessaire n'est pas disponible sur le disque ou dans le répertoire.

Action :	Vérifiez le nom de fichier que vous avez entré et corrigez-le si nécessaire. Pour toute aide complémentaire, contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40904
FRM-40904 : Erreur programme : opération à exécuter sur enregistrement non reconnue.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40905
FRM-40905 : Impossible de mettre plus d'enregistrements en tampon sur le disque.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40906
FRM-40906 : ERREUR FATALE : impossible d'écrire sur disque un enregistrement mémorisé en tampon.

Cause :	Echec de la tentative d'écriture sur disque d'un enregistrement mémorisé en tampon.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40907
FRM-40907 : ERREUR FATALE : impossible de lire sur disque un enregistrement mémorisé en tampon.

Cause :	Echec de la tentative de lecture sur disque d'un enregistrement mémorisé en tampon.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40908
FRM-40908 : Erreur interne de RAM : %s

Cause :	Une erreur interne s'est produite dans le gestionnaire d'enregistrement interne de l'application Forms. Causes possibles :

1. Impossible d'ouvrir le fichier tampon sur disque.

2. Erreur de lecture ou d'écriture sur le fichier tampon sur disque.

3. Mémoire insuffisante.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>20

Type :	Erreur


FRM-40909
FRM-40909 : Erreur interne : erreur %d inconnue.

Cause :	Erreur interne. Tentative d'émission d'un message d'erreur inconnu.

Action :	Contactez le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-40910
FRM-40910 : Erreur interne produite lors de l'exécution du déclencheur ou de la procédure PL/SQL.

Cause :	Une erreur interne s'est produite lors de l'exécution du déclencheur ou de la procédure PL/SQL, suite à une erreur de génération ou à un fichier corrompu.

Action :	Recompilez votre application Forms. Contactez le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-40911
FRM-40911 : Enregistrement non créé suite à une erreur de génération du no de séquence.

Cause :	Erreur interne. L'objet numéro de séquence n'existe pas, le développeur ne dispose pas des droits sur cet objet numéro de séquence ou une autre erreur fatale de base de données s'est produite.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40912
FRM-40912 : Echec du déclencheur WHEN-NEW-RECORD. Enregistrement non créé.

Cause :	Une erreur d'exécution s'est produite sur un déclencheur When-New-Record et a entraîné son échec. Aucun enregistrement nouveau n'a été créé.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-40913
FRM-40913 : Limite maximale de la LOV dépassée. Certaines valeurs ne seront pas affichées.

Cause :	Erreur de conception de l'application. Impossible de retourner tous les enregistrements dans la liste de valeurs courante, car leur nombre dépasse la limite maximum.

Action :	N'indiquez pas plus de 32 767 enregistrements à retourner dans une liste de valeurs.

Niveau :	>25

Type :	Erreur


FRM-40914
FRM-40914 : Erreur d'affectation de mémoire ; impossible de mener à bien la transaction.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-40915
FRM-40915 : Erreur d'affectation de mémoire ; impossible d'exécuter le déclencheur %s.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-40916
FRM-40916 : Erreur d'affectation de mémoire ; impossible d'exécuter l'interrogation.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-40917
FRM-40917 : Erreur d'affectation de mémoire ; impossible de verrouiller l'enregistrement.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-40918
FRM-40918 : Erreur interne -- initialisation de la boîte à outils impossible.

Cause :	Un élément de votre environnement ou de votre application a empêché Form Builder d'initialiser Oracle Toolkit.

Action :	Assurez-vous que Form Builder a été installé correctement, que votre environnement dispose de tous les fichiers de ressources nécessaires et que toutes les règles propres au système ont été respectées.

Niveau :	>25

Type :	Erreur


FRM-40919
FRM-40919 : Erreur d'exécution de l'instruction interne SQL : %d.

Cause :	Erreur dans l'instruction SQL que Form Builder a tenté d'exécuter.

Action :	Vérifiez la dernière instruction SQL.

Niveau :	25

Type :	Erreur


FRM-40920
FRM-40920 : Création de vue impossible : les ressources système sont insuffisantes.

Cause :	Un élément de votre environnement ou de votre application a empêché la création de la vue.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-40921
FRM-40921 : Création impossible de l'élément : %s.

Cause :	Un élément de votre environnement ou de votre application a empêché la création de l'élément.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-40922
FRM-40922 : Erreur OLE : 0x%x.

Cause :	Une procédure interne a appelé une fonction OLE ou liée à OLE qui a échoué.

Action :	Pour plus d'informations, recherchez le numéro de l'erreur dans un manuel consacré à OLE.

Niveau :	99

Type :	Erreur


FRM-40923
FRM-40923 : OLE n'est pas pris en charge sur cette plate-forme.

Cause :	Une procédure interne nécessitant le recours à OLE a été appelée, mais votre plate-forme ne prend pas en charge OLE.

Action :	N'appelez pas de fonctions internes liées à OLE sur des plates-formes qui ne prennent pas en charge OLE.

Niveau :	99

Type :	Erreur


FRM-40924
FRM-40924 : Index d'argument indiqué non valide.

Cause :	Vous avez tenté d'extraire de la pile des arguments OLE une valeur dont l'index est hors limites pour la taille de la pile courante.

Action :	Les index d'arguments sont compris entre 1 et le nombre indiqué dans le dernier appel de FORMS_OLE.InitArgs().

Niveau :	99

Type :	Erreur


FRM-40925
FRM-40925 : Aucun espace initialisé dans OleArg pour l'argument.

Cause :	Vous avez tenté de stocker trop d'arguments dans la pile des arguments OLE initialisée.

Action :	Vérifiez que vous disposez de suffisamment d'espace dans votre appel de FORMS_OLE.InitArgs().

Niveau :	99

Type :	Erreur


FRM-40926
FRM-40926 : L'objet OLE est NULL.

Cause :	Vous ne pouvez pas effectuer d'opérations sur un objet OLE de type NULL.

Action :	Ne tentez pas d'appeler des procédures internes FORMS_OLE avec des objets OLE de type NULL.

Niveau :	99

Type :	Erreur


FRM-40927
FRM-40927 : La variante n'est pas un tableau.

Cause :	Vous avez tenté d'accéder à une variante comme si elle contenait un tableau, mais ce n'est pas le cas.

Action :	Vous pouvez appeler FORMS_OLE.Get_Dims() pour vérifier si la variante contient un tableau. Pour les tableaux, la valeur de retour de la fonction est supérieur ou égale à 1.

Niveau :	99

Type :	Erreur


FRM-40928
FRM-40928 : Trop d'indices de tableau indiqués.

Cause :	Vous avez tenté d'accéder à une variante qui contient un tableau, mais vous avez indiqué trop d'index de tableau.

Action :	Vous devez utiliser le nombre correct d'index de tableau, c'est-à-dire le nombre retourné par FORMS_OLE.GET_Dims().

Niveau :	99

Type :	Erreur


FRM-40929
FRM-40929 : Trop peu d'indices de tableau indiqués.

Cause :	Vous avez tenté d'accéder à une variante qui contient un tableau, mais vous n'avez pas indiqué suffisamment d'index de tableau.

Action :	Vous devez utiliser le nombre correct d'index de tableau, c'est-à-dire le nombre retourné par FORMS_OLE.GET_Dims().

Niveau :	99

Type :	Erreur


FRM-40930
FRM-40930 : Index de tableau non numérique.

Cause :	Vous avez tenté d'accéder à une variante qui contient un tableau, mais les index de tableau fournis ne sont pas numériques et sont différents de ROW ou COLUMN.

Action :	Les seuls index de tableau valides sont des nombres, séparés par des deux-points. Si vous effectuez une extraction dans une table à partir d'une variante, vous pouvez utiliser ROW et COLUMN pour remplacer les itérateurs de ligne et de colonne lors de la construction de la table.

Niveau :	99

Type :	Erreur


FRM-40931
FRM-40931 : Impossible de remplir la table : type de données non pris en charge.

Cause :	Une tentative de remplissage d'une table a échoué car une des ses colonnes utilise un type de données non pris en charge.

Action :	Limitez vos types de colonne à des entiers, des nombres, des chaînes et des dates.

Niveau :	99

Type :	Erreur


FRM-40932
FRM-40932 : Impossible de remplir la variante : type de données de la table non pris en charge.

Cause :	Une tentative de remplissage d'une variante a échoué car une des colonnes de la table source utilise un type de données non pris en charge.

Action :	Limitez vos types de colonne à des entiers, des nombres, des chaînes et des dates.

Niveau :	99

Type :	Erreur


FRM-40933
FRM-40933 : Impossible de remplir la table : type de données incorrect.

Cause :	Une tentative de remplissage d'une table a échoué car le type de données du bloc ne correspond pas à celui de la table.

Action :	Le type de données de la table doit correspondre au type de données des colonnes du bloc qui sont extraites.

Niveau :	99

Type :	Erreur


FRM-40934
FRM-40934 : Impossible de remplir la table : enregistrements hors limites.

Cause :	Une tentative de remplissage d'une table a échoué car un enregistrement de début ou de fin non autorisé a été indiqué.

Action :	Les paramètres start_rec et end_rec doivent être compris entre 1 et le nombre d'enregistrements à extraire. Le paramètre end_rec peut également être égal à ALL_RECORDS.

Niveau :	99

Type :	Erreur


FRM-40935
FRM-40935 : Objet inexistant localement.

Cause :	Une tentative de libération d'un objet a échoué car le paramètre kill_persistent a pour valeur FALSE et qu'il n'existe aucun objet local à libérer.

Action :	Ne libérez jamais les objets dont vous n'êtes pas le propriétaire.

Niveau :	10

Type :	Erreur


FRM-41000
FRM-41000 : Cette fonction n'est pas disponible actuellement.

Cause :	Vous avez appuyé sur une touche de fonction non définie.

Action :	Appuyez sur [Afficher touches] pour savoir sur quelle touche de fonction vous auriez dû appuyer.

Niveau :	5

Type :	Erreur


FRM-41001
FRM-41001 : Fonction non autorisée sur ce type d'unité.

Cause :	Vous avez tenté d'exécuter la fonction Insérer/Remplacer.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Erreur


FRM-41002
FRM-41002 : Veuillez entrer une sélection valide.

Cause :	Vous avez entré un numéro de sélection non valide dans le menu de bloc ; ce bloc n'existe pas dans cette application Forms.

Action :	Sélectionnez un bloc existant.

Niveau :	10

Type :	Erreur


FRM-41003
FRM-41003 : Exécution de cette fonction impossible ici.

Cause :	Vous avez tenté d'exécuter une fonction qui fait référence à une table, mais le bloc courant ne correspond à aucune table.

Action :	Aucune action nécessaire. Vous ne pouvez pas exécuter la fonction demandée sur ce bloc.

Niveau :	10

Type :	Erreur


FRM-41004
FRM-41004 : Fonction non autorisée dans ce mode.

Cause :	Vous avez appuyé sur une touche de fonction qui est sans effet dans ce mode.

Action :	Aucune action nécessaire.

Niveau :	10

Type :	Erreur


FRM-41005
FRM-41005 : Erreur interne -- touche de fonction non activée.

Cause :	Vous avez appuyé sur une touche de fonction qui n'est pas activée.

Action :	Aucune action nécessaire. Vous ne pouvez pas utiliser cette touche de fonction dans le contexte courant, à moins d'une modification de la définition de l'application Forms.

Niveau :	>25

Type :	Erreur


FRM-41006
FRM-41006 : Commande Forms Runtime impossible à retrouver.

Cause :	Vous avez appuyé sur une touche de fonction qui n'a pas été définie pour votre clavier.

Niveau :	>25

Type :	Erreur


FRM-41007
FRM-41007 : Curseur dans un champ non valide ; touche de fonction non prise en compte.

Cause :	Vous n'étiez pas dans un élément valide lorsque vous avez appuyé sur cette touche de fonction.

Action :	Positionnez le curseur à l'intérieur de l'élément et appuyez à nouveau sur la touche de fonction.

Niveau :	10

Type :	Erreur


FRM-41008
FRM-41008 : Touche de fonction non définie. Faire %s pour obtenir la liste des touches valides.

Cause :	Vous avez appuyé sur une touche de fonction non définie.

Action :	Appuyez sur [Afficher touches] pour savoir sur quelle touche de fonction vous auriez dû appuyer.

Niveau :	>25

Type :	Erreur


FRM-41009
FRM-41009 : Touche de fonction non autorisée. Faire %s pour obtenir la liste des touches valides.

Cause :	Vous avez appuyé sur une touche de fonction qui n'est pas autorisée dans cet environnement.

Action :	Appuyez sur [Afficher touches] pour savoir sur quelle touche de fonction vous auriez dû appuyer.

Niveau :	>25

Type :	Erreur


FRM-41010
FRM-41010 : Définition d'attribut impossible dans ce champ.

Cause :	Erreur de conception de l'application. Une instruction SET_ITEM a tenté de désactiver la propriété Saisie autorisée de l'élément courant.

Action :	Eliminez l'instruction ou récrivez le déclencheur.

Niveau :	>25

Type :	Erreur


FRM-41011
FRM-41011 : Attribut non défini.

Cause :	Erreur de conception de l'application. Une instruction DISPLAY_ITEM ou DISPLAY_PAGE a tenté de définir un attribut non défini ou une instruction SET_ITEM_PROPERTY a tenté de définir une propriété non définie.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-41012
FRM-41012 : Elément ou référence à une variable non défini.

Cause :	Erreur de conception de l'application. Une instruction NAME_IN a tenté de faire référence à un élément ou à une variable qui n'existe pas.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-41013
FRM-41013 :  Un attribut non défini a été indiqué pour l'élément %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM indique un paramètre non défini.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-41014
FRM-41014 : Impossible de prendre en compte l'attribut de l'élément %s.%s (Canvas Null).

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté de modifier une propriété d'un élément canevas NULL.

Action :	Déplacez l'élément vers une page différente de 0.

Niveau :	>25

Type :	Erreur


FRM-41015
FRM-41015 : Attribut ENTERABLE irrecevable pour l'élément courant %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté de modifier la propriété Saisie autorisée de l'élément courant.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-41016
FRM-41016 : Attribut DISPLAYED irrecevable pour l'élément courant %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté de modifier la propriété Affiché de l'élément courant.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-41017
FRM-41017 : Attribut UPDATE ALLOWED irrecevable pour l'élément non activé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté d'activer la propriété Mise à jour autorisée d'un élément non modifiable.

Action :	Pour activer la propriété Mise à jour autorisée d'un élément, vous devez également activer sa propriété Saisie autorisée.

Niveau :	>25

Type :	Erreur


FRM-41018
FRM-41018 : Attribut UPDATE_NULL irrecevable pour l'élément non activé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté d'activer la propriété Mise à jour si NULL d'un élément non modifiable.

Action :	Pour activer la propriété Mise à jour NULL d'un élément, vous devez également activer sa propriété Saisie autorisée.

Niveau :	>25

Type :	Erreur


FRM-41019
FRM-41019 : Attribut REQUIRED irrecevable pour l'élément non activé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté d'activer la propriété Obligatoire d'un élément non modifiable.

Action :	Pour activer la propriété Obligatoire d'un élément, vous devez également activer sa propriété Saisie autorisée.

Niveau :	>25

Type :	Erreur


FRM-41020
FRM-41020 : Attribut ENTERABLE irrecevable pour champ non affiché %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté d'activer la propriété Saisie autorisée d'un élément non affiché.

Action :	Pour activer la propriété Saisie autorisée d'un élément, vous devez également activer sa propriété Affiché.

Niveau :	>25

Type :	Erreur


FRM-41021
FRM-41021 : Attribut QUERYABLE irrecevable pour champ non affiché %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté d'activer la propriété Interrogation autorisée d'un élément non affiché.

Action :	Pour activer la propriété Interrogation autorisée d'un élément, vous devez également activer sa propriété Affiché.

Niveau :	>25

Type :	Erreur


FRM-41022
FRM-41022 : Attribut REQUIRED irrecevable pour champ non modifiable %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté d'activer la propriété Obligatoire d'un élément non modifiable.

Action :	Pour activer la propriété Obligatoire d'un élément, vous devez également activer sa propriété Mise à jour autorisée ou Mise à jour si NULL.

Niveau :	>25

Type :	Erreur


FRM-41023
FRM-41023 : Attribut UPDATE ALLOWED irrecevable pour champ protégé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté de modifier la propriété Mise à jour autorisée d'un élément de base de données que l'utilisateur n'a pas l'autorisation de mettre à jour.

Action :	Corrigez l'instruction SET_ITEM ou accordez à l'utilisateur l'autorisation de mise à jour de la colonne.

Niveau :	>25

Type :	Erreur


FRM-41024
FRM-41024 : Attribut UPDATE_NULL irrecevable pour champ protégé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure en package SET_ITEM a tenté de modifier la propriété Mise à jour si NULL d'un élément de base de données que l'utilisateur n'a pas l'autorisation de mettre à jour.

Action :	Corrigez l'instruction SET_ITEM ou accordez à l'utilisateur l'autorisation de mise à jour de la colonne.

Niveau :	>25

Type :	Erreur


FRM-41025
FRM-41025 : Le numéro de page %d n'existe pas.

Cause :	Erreur de conception de l'application. Tentative d'opération sur une page qui n'existe pas.

Action :	Vérifiez les arguments relatifs aux procédures internes concernant la page.

Niveau :	>25

Type :	Erreur


FRM-41026
FRM-41026 : Opération non reconnue par ce champ.

Cause :	Vous avez tenté d'effectuer une opération qui n'est pas valide pour le type d'élément donné.

Action :	N'essayez pas d'effectuer cette opération sur un élément qui ne l'accepte pas.


FRM-41027
FRM-41027 : Une clé primaire doit être définie pour ce bloc.

Cause :	Il n'y a aucun élément de clé primaire dans le bloc et l'une des situations s'est produite :

1. Vous avez tenté d'activer Key_Mode de l'option de clé primaire pour le bloc.

2. Key_Mode est défini à Automatique et la source de données à laquelle vous êtes connecté ne prend pas en charge le mode clé UNIQUE.

Action :	Indiquez un ou plusieurs éléments de clé primaire pour le bloc.

Niveau :	>25

Type :	Erreur


FRM-41028
FRM-41028 : Propriété non valide.

Cause :	Vous avez transmis une constante de propriété non valide à une procédure interne de propriété Rechercher ou Définir.

Action :	Vérifiez les arguments.

Niveau :	>25

Type :	Erreur


FRM-41029
FRM-41029 : Paramètre non valide.

Cause :	Vous avez tenté d'attribuer une valeur non valide à une propriété d'application Forms, de bloc de données, d'élément ou d'enregistrement.

Action :	Vérifiez les arguments de SET_FORM_PROPERTY, SET_BLOCK_PROPERTY, SET_ITEM_PROPERTY ou SET_RECORD_PROPERTY.

Niveau :	>25

Type :	Erreur


FRM-41030
FRM-41030 : Redéfinition impossible de la longueur (ITEM_LENGTH) de l'élément %s.%s.

Cause :	Erreur de conception de l'application. Vous avez tenté de modifier la longueur d'un élément de longueur fixe.

Action :	Déclarez de façon statique l'élément comme étant de la longueur maximum nécessaire ou modifier le type de l'élément.

Niveau :	>25

Type :	Erreur


FRM-41031
FRM-41031 : Impossible de redéfinir la longueur de l'élément (ITEM_LENGTH) à une longueur supérieure au tampon alloué.

Cause :	Erreur de conception de l'application. Vous avez tenté de redéfinir ITEM_LENGTH à une valeur supérieure au tampon attribué.

Action :	Augmentez la longueur de l'élément dans la définition de l'application Forms.

Niveau :	>25

Type :	Erreur


FRM-41032
FRM-41032 : Attribut ACTIVE (ENABLED) irrecevable pour l'élément courant %s.%s.

Cause :	Un appel à SET_ITEM_PROPERTY a tenté de définir l'attribut Activé de l'élément courant.

Action :	Corrigez l'appel à SET_ITEM_PROPERTY ou accédez à un autre élément avant de définir l'attribut Activé.

Niveau :	>25

Type :	Erreur


FRM-41033
FRM-41033 : Attribut ACTIVE (ENABLED) irrecevable pour l'élément non affiché %s.%s.

Cause :	Un appel à SET_ITEM_PROPERTY a tenté de définir l'attribut Activé d'un élément non affiché.

Action :	Accédez d'abord à l'élément, puis définissez l'attribut Activé à l'aide d'un appel à SET_ITEM_PROPERTY.

Niveau :	>25

Type :	Erreur


FRM-41034
FRM-41034 : Attribut NAVIGATION AUTORISEE (NAVIGABLE) irrecevable pour l'élément non affiché %s.%s.

Cause :	Un appel à SET_ITEM_PROPERTY a tenté de définir l'attribut Navigation autorisée d'un élément non affiché.

Action :	Accédez d'abord à l'élément, puis définissez l'attribut Navigation autorisée à l'aide d'un appel à SET_ITEM_PROPERTY.

Niveau :	>25

Type :	Erreur


FRM-41035
FRM-41035 : Attribut NAVIGATION AUTORISEE (NAVIGABLE) irrecevable pour l'élément non activé %s.%s.

Cause :	Un appel à SET_ITEM_PROPERTY a tenté de définir l'attribut Navigation autorisée d'un élément non activé.

Action :	Définissez d'abord l'attribut Activé de l'élément à l'aide d'un appel à SET_ITEM_PROPERTY, puis définissez la propriété Navigation autorisée à l'aide d'un autre appel à SET_ITEM_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41036
FRM-41036 : Impossible de modifier une case à cocher qui n'accepte pas les interrogations.

Cause :	Vous avez tenté de modifier une case à cocher qui n'accepte pas les interrogations.

Action :	Attribuez d'abord la valeur Vrai à la propriété Interrogation autorisée, et l'utilisateur final pourra cocher ou décocher la case pour activer ou désactiver l'élément.

Niveau :	99

Type :	Erreur


FRM-41037
FRM-41037 : Impossible de modifier un groupe de boutons d'option qui n'accepte pas les interrogations.

Cause :	Vous avez tenté de modifier un groupe de boutons d'option qui n'accepte pas les interrogations.

Action :	Attribuez d'abord la valeur Vrai à la propriété Activé à l'aide d'un appel à SET_RADIO_BUTTON_PROPERTY.

Niveau :	>25

Type :	Erreur


FRM-41038
FRM-41038 : L'élément %s n'est pas une case à cocher.

Cause :	Un appel à CHECKBOX_CHECKED a été lancé pour un élément qui n'est pas une case à cocher.

Action :	Corrigez l'appel à CHECKBOX_CHECKED.

Niveau :	>25

Type :	Erreur


FRM-41039
FRM-41039 : ID d'alerte %d non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_ALERT sera effectué.

Niveau :	>25

Type :	Erreur


FRM-41040
FRM-41040 : Bouton d'option %s introuvable.

Cause :	Un ID ou un nom non valide a été transmis à un sous-programme interne.

Action :	Vérifiez le nom ou l'ID que vous avez entré, puis réessayez.

Niveau :	>25

Type :	Erreur


FRM-41041
FRM-41041 : Module d'application Forms introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_FORM sera effectué.

Niveau :	>25

Type :	Erreur


FRM-41042
FRM-41042 : Définition de propriété d'élément non valide.

Cause :	Vous avez tenté de définir une propriété d'élément non valide.

Action :	Vérifiez la façon de définir les propriétés d'élément dans la documentation, puis réessayez.

Niveau :	>25

Type :	Erreur


FRM-41043
FRM-41043 : Horloge introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_TIMER sera effectué.

Niveau :	>25

Type :	Erreur


FRM-41044
FRM-41044 : Erreur lors de la suppression de l'horloge %s

Cause :	Une erreur s'est produite lors de l'exécution d'une procédure interne DELETE_TIMER.

Action :	Vérifiez que votre horloge a été créée correctement.

Niveau :	>25

Type :	Erreur


FRM-41045
FRM-41045 : Elément introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_ALERT sera effectué.

Niveau :	>25

Type :	Erreur


FRM-41046
FRM-41046 : Paramètre utilisé non valide lors de la définition de propriété de l'élément.

Cause :	Un paramètre non valide a été transmis à SET_ITEM_PROPERTY.

Action :	Vérifiez les paramètres valides pour SET_ITEM_PROPERTY, puis réessayez.

Niveau :	>25

Type :	Erreur


FRM-41047
FRM-41047 : Sortie du bloc courant impossible en mode Saisie interrogation.

Cause :	Tentative non autorisée de sortie du bloc courant en mode Saisie interrogation.

Action :	Effectuez l'opération avant de passer en mode Saisie interrogation.

Niveau :	>25

Type :	Erreur


FRM-41048
FRM-41048 : Procédure %s non valide dans un déclencheur %s.

Cause :	La procédure indiquée n'est pas valide lorsqu'elle est appelée à partir de ce déclencheur. Il peut s'agir d'une procédure restreinte, qui ne peut pas être appelée à partir d'un déclencheur activé pendant la navigation.

Action :	Corrigez le déclencheur non valide.

Niveau :	20

Type :	Erreur


FRM-41049
FRM-41049 : Suppression de l'enregistrement impossible.

Cause :	Vous avez tenté de supprimer un enregistrement dans un bloc qui n'autorise pas les suppressions.

Action :	Ne tentez pas de supprimer des enregistrements dans ce bloc, à moins d'attribuer la valeur Vrai à sa propriété Suppression autorisée.

Niveau :	>20

Type :	Erreur


FRM-41050
FRM-41050 : Mise à jour de cet enregistrement impossible.

Cause :	Vous avez tenté de mettre à jour un enregistrement dans un bloc qui n'autorise pas les mises à jour.

Action :	Ne tentez pas de mettre à jour des enregistrements dans ce bloc, à moins d'attribuer la valeur Vrai à sa propriété Mise à jour autorisée.

Niveau :	20

Type :	Erreur


FRM-41051
FRM-41051 : Création d'enregistrement impossible ici.

Cause :	Vous avez tenté de créer des enregistrements dans un bloc qui n'autorise pas les insertions.

Action :	Ne tentez pas de créer et d'insérer des enregistrements dans ce bloc, à moins d'attribuer la valeur Vrai à sa propriété Insertion autorisée.

Niveau :	20

Type :	Erreur


FRM-41052
FRM-41052 : Fenêtre introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_WINDOW sera effectué.

Niveau :	20

Type :	Erreur


FRM-41053
FRM-41053 : Canevas introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_CANVAS sera effectué.

Niveau :	20

Type :	Erreur


FRM-41054
FRM-41054 : Propriété d'enregistrement inexistant

Cause :	Vous avez tenté d'obtenir une propriété d'enregistrement inexistante.

Action :	Vérifiez les propriétés valides pour GET_RECORD_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41055
FRM-41055 : Définition de propriété d'un enregistrement inexistant

Cause :	Vous avez tenté de définir une propriété d'enregistrement inexistante.

Action :	Vérifiez les propriétés valides pour SET_RECORD_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41056
FRM-41056 : Bloc introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_BLOCK sera effectué.

Niveau :	>25

Type :	Erreur


FRM-41057
FRM-41057 : Définition de propriété d'une vue inexistante

Cause :	Vous avez tenté de définir une propriété de vue inexistante.

Action :	Vérifiez les propriétés valides pour SET_VIEW_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41058
FRM-41058 : Propriété d'élément inexistant

Cause :	Vous avez tenté d'obtenir une propriété d'élément inexistante.

Action :	Vérifiez les propriétés valides pour GET_ITEM_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41059
FRM-41059 : Définition de propriété d'un canevas inexistant

Cause :	Vous avez tenté de définir une propriété de canevas inexistante.

Action :	Vérifiez les propriétés valides pour SET_CANVAS_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41060
FRM-41060 : Impossible de désactiver la propriété de clé primaire du seul élément Clé.

Cause :	Vous avez tenté de désactiver la propriété Clé primaire du dernier élément clé primaire d'un bloc :

1. Soit à l'aide de la propriété Clé primaire.

2. Soit à l'aide du mode clé de la clé primaire.

3. Soit que la base de données à laquelle vous êtes connecté ne prend pas en charge le mode clé UNIQUE.

Action :	Désactivez d'abord les propriétés du bloc.

Niveau :	20

Type :	Erreur


FRM-41061
FRM-41061 : Propriété de fenêtre inexistante

Cause :	Vous avez tenté d'obtenir une propriété de fenêtre inexistante.

Action :	Vérifiez les propriétés valides pour GET_WINDOW_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41062
FRM-41062 : Editeur introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_EDITOR sera effectué.

Niveau :	20

Type :	Erreur


FRM-41063
FRM-41063 : Création d'éditeur impossible.

Cause :	Mémoire insuffisante pour Forms Runtime.

Action :	Essayez d'appeler à nouveau SHOW_EDITOR après avoir fermé certaines de vos fenêtres.

Niveau :	20

Type :	Erreur


FRM-41064
FRM-41064 : Création de l'horloge '%s' impossible : identifiant interdit.

Cause :	Nom d'identifiant non autorisé.

Action :	Vérifiez la syntaxe autorisée pour l'appellation des horloges.

Niveau :	99

Type :	Erreur


FRM-41065
FRM-41065 : Menu introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_MENU sera effectué.

Niveau :	20

Type :	Erreur


FRM-41066
FRM-41066 : Propriété d'application Forms inexistante

Cause :	Vous avez tenté d'obtenir une propriété d'application Forms inexistante.

Action :	Vérifiez les propriétés valides pour GET_FORM_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41067
FRM-41067 : Elément Menu introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_MENU_ITEM sera effectué.

Niveau :	20

Type :	Erreur


FRM-41068
FRM-41068 : Erreur de définition de propriété d'élément Menu.

Cause :	Appel non valide à SET_MENU_ITEM_PROPERTY.

Action :	Vérifiez que les paramètres sont valides et essayez à nouveau.

Niveau :	20

Type :	Erreur


FRM-41069
FRM-41069 : Erreur lors de l'appel de la propriété d'élément Menu.

Cause :	Appel non valide à GET_MENU_ITEM_PROPERTY.

Action :	Vérifiez que les paramètres sont valides et essayez à nouveau.

Niveau :	20

Type :	Erreur


FRM-41070
FRM-41070 : Définition de propriété d'élément Menu inexistante

Cause :	Vous avez tenté de définir une propriété d'élément Menu inexistante.

Action :	Vérifiez les propriétés valides pour SET_MENU_ITEM_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41071
FRM-41071 : Propriété d'élément Menu inexistante

Cause :	Vous avez tenté d'obtenir une propriété d'élément Menu inexistante.

Action :	Vérifiez les propriétés valides pour GET_MENU_ITEM_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41072
FRM-41072 : Création du groupe %s impossible

Cause :	Causes possibles

1.  Noms de colonne identiques dans une instruction SQL.

2.  Nom de groupe d'enregistrements non valide.

3.  Interrogation non valide.

Action :	Vérifiez le nom du groupe et/ou corrigez l'instruction SQL.

Niveau :	20

Type :	Erreur


FRM-41073
FRM-41073 : Groupe introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_GROUP sera effectué.

Niveau :	20

Type :	Erreur


FRM-41074
FRM-41074 : Groupe ou colonne introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_GROUP ou FIND_COLUMN sera effectué.

Niveau :	20

Type :	Erreur


FRM-41075
FRM-41075 : Erreur lors de la suppression du groupe.

Cause :	Le nom ou l'ID de groupe d'enregistrements indiqué dans l'appel à DELETE_GROUP n'est pas valide, ou le groupe d'enregistrements n'a pas été créé dynamiquement.

Action :	Vérifiez le nom ou l'ID du groupe d'enregistrements indiqué et assurez-vous que celui-ci a été créé dynamiquement.

Niveau :	20

Type :	Erreur


FRM-41076
FRM-41076 : Erreur de remplissage du groupe.

Cause :	L'interrogation a échoué parce qu'un nom de table ou de colonne n'est pas valide ou que la structure de colonnes de l'interrogation et du groupe ne correspondent pas.

Action :	Vérifiez l'instruction SQL SELECT dans votre appel à POPULATE_GROUP_WITH_QUERY.

Niveau :	20

Type :	Erreur


FRM-41077
FRM-41077 : Erreur lors de la suppression des lignes du groupe.

Cause :	Vous ne pouvez pas utiliser DELETE_GROUP_ROW pour supprimer des enregistrements d'un groupe d'enregistrements statique, ou vous avez indiqué un numéro de ligne non valide.

Action :	Corrigez l'appel à DELETE_GROUP_ROW.

Niveau :	20

Type :	Erreur


FRM-41078
FRM-41078 : Erreur de redéfinition de sélection de groupe.

Cause :	Le nom ou l'ID de groupe d'enregistrements indiqué n'est pas valide.

Action :	Vérifiez le nom ou l'ID du groupe d'enregistrements et essayez à nouveau.

Niveau :	20

Type :	Erreur


FRM-41079
FRM-41079 : Erreur lors de l'ajout de colonne dans le groupe.

Cause :	Causes possibles :

1.  Vous ne pouvez pas ajouter de colonnes à un groupe qui contient déjà des lignes.

2.  La largeur des colonnes de type CHAR_COLUMN ne peut pas être inférieure à la largeur de la colonne correspondante dans la base de données.

3.  Vous avez entré le nom d'un groupe d'enregistrements inexistant ou non valide.

4.  Vous avez entré le nom d'une colonne inexistante ou non valide.

5.  Vous avez entré un type de colonne autre que CHAR, NUMBER ou DATE.

Action :	Vous ne pouvez ajouter des colonnes à un groupe qu'après sa création par un appel à CREATE_GROUP. Si le groupe contient déjà des lignes, supprimez-les à l'aide de DELETE_GROUP_ROW, puis ajoutez vos colonnes.

Niveau :	20

Type :	Erreur


FRM-41080
FRM-41080 : Erreur lors de l'ajout de ligne dans le groupe.

Cause :	Causes possibles :

1.  Vous avez tenté d'ajouter des lignes à un groupe qui n'existe pas ou qui ne contient aucune colonne.

2.  Vous avez entré le nom d'un groupe d'enregistrements qui n'existe pas.

3.  Vous avez indiqué un numéro de ligne hors plage ou non valide.

Action :	Créez le groupe et ajoutez des colonnes. Vérifiez l'appel à ADD_GROUP_ROW pour vous assurer que le nom du groupe d'enregistrements et le numéro de ligne sont valides.

Niveau :	20

Type :	Erreur


FRM-41081
FRM-41081 : Déplacement de l'élément impossible : position non valide.

Cause :	Vous avez tenté de déplacer un élément vers une position non valide du canevas.

Action :	Vérifiez que les coordonnées que vous avez choisies dans votre appel à SET_ITEM_PROPERTY sont valides.

Niveau :	99

Type :	Erreur


FRM-41082
FRM-41082 : Redimensionnement impossible de l'élément : la position indiquée le place hors canevas.

Cause :	La hauteur et/ou la largeur que vous avez indiquées dans votre appel à SET_ITEM_PROPERTY ne sont pas valides ou entraînent une extension de l'élément en-dehors du canevas.

Action :	Corrigez l'appel à SET_ITEM_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41083
FRM-41083 : Définition de propriété inexistante

Cause :	Vous avez tenté de définir une propriété d'application Forms inexistante.

Action :	Vérifiez les propriétés valides pour SET_FORM_PROPERTY.

Niveau :	20

Type :	Erreur


FRM-41084
FRM-41084 : Erreur d'obtention de cellule de groupe.

Cause :	Appel non valide à GET_GROUP_CHAR_CELL, GET_GROUP_DATE_CELL ou GET_GROUP_NUMBER_CELL.

Action :	Vérifiez que le type de colonne est respectivement CHAR, DATE ou NUMBER, et que le numéro de ligne et le nom de colonne indiqués sont valides.

Niveau :	20

Type :	Erreur


FRM-41085
FRM-41085 : Erreur d'obtention du décompte des lignes du groupe.

Cause :	Appel non valide à GET_GROUP_ROW_COUNT.

Action :	Vérifiez le nom du groupe d'enregistrements, puis réessayez.

Niveau :	20

Type :	Erreur


FRM-41086
FRM-41086 : Erreur d'obtention du décompte de sélection de groupe.

Cause :	Vous avez indiqué un nom de groupe d'enregistrements non valide. Appel non valide à GET_GROUP_SELECTION_COUNT.

Action :	Corrigez l'appel à GET_GROUP_SELECTION.

Niveau :	20

Type :	Erreur


FRM-41087
FRM-41087 : Erreur d'obtention de la sélection de groupe.

Cause :	Vous avez indiqué un nom de groupe d'enregistrements ou un numéro de sélection non valides. Appel non valide à GET_GROUP_SELECTION.

Action :	Corrigez l'appel à GET_GROUP_SELECTION.

Niveau :	20

Type :	Erreur


FRM-41088
FRM-41088 : Définition de sélection de groupe impossible.

Cause :	Vous avez indiqué un nom, un ID ou un numéro de ligne de groupe d'enregistrements non valide.

Action :	Corrigez l'appel à SET_GROUP_SELECTION.

Niveau :	20

Type :	Erreur


FRM-41089
FRM-41089 : Déplacement de vue impossible : position non valide.

Cause :	La paire x,y indiquée dans l'appel à SET_VIEW_PROPERTY n'est pas valide.

Action :	Corrigez l'appel à SET_VIEW_PROPERTY en vous assurant que la position indiquée par vos coordonnées se trouve sur le canevas.

Niveau :	99

Type :	Erreur


FRM-41090
FRM-41090 : Type d'élément non valide pour GO_ITEM %s.

Cause :	Vous ne pouvez pas accéder à cet élément.

Action :	Vérifiez que la navigation est autorisée pour cet élément.

Niveau :	20

Type :	Erreur


FRM-41091
FRM-41091 : LOV introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_LOV sera effectué.

Niveau :	20

Type :	Erreur


FRM-41092
FRM-41092 : Aucun enregistrement dans le bloc %s.

Cause :	Vous avez tenté de placer une valeur dans un élément d'un bloc qui ne contient aucun enregistrement.

Action :	Ajoutez d'abord des enregistrements dans le bloc.

Niveau :	20

Type :	Erreur


FRM-41093
FRM-41093 : Erreur lors de la définition d'attribut d'élément %s.

Cause :	Vous avez indiqué Verrouillage d'enregistrement et l'élément n'est pas un élément texte, ou vous avez indiqué Interrogation sans distinction maj/min et le type de données n'est ni ALPHA ni CHAR.

Action :	Dans le cas de Verrouillage d'enregistrement, vérifiez que l'élément est un élément texte. Lorsque vous indiquez  Interrogation sans distinction maj/min, vérifiez que le type de données est ALPHA ou CHAR.

Niveau :	20

Type :	Erreur


FRM-41094
FRM-41094 : Propriété de vue inexistante

Cause :	Vous avez tenté d'obtenir une propriété de vue inexistante.

Action :	Vérifiez les propriétés valides pour GET_VIEW_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41095
FRM-41095 : Propriété de canevas inexistant

Cause :	Vous avez tenté d'obtenir une propriété de canevas inexistante.

Action :	Vérifiez les propriétés valides pour GET_CANVAS_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41096
FRM-41096 : Redimensionnement de la vue impossible : taille non valide.

Cause :	Les coordonnées x,y placent la vue en-dehors du canevas.

Action :	Choisissez une autre paire x,y.

Niveau :	99

Type :	Erreur


FRM-41097
FRM-41097 : Redimensionnement du canevas impossible : taille non valide.

Cause :	Les coordonnées x,y placent la vue en-dehors de la fenêtre.

Action :	Choisissez une autre paire x,y.

Niveau :	99

Type :	Erreur


FRM-41098
FRM-41098 : Modification impossible de la position d'affichage d'une vue intégrale.

Cause :	La propriété de position d'affichage ne s'applique qu'à une vue-canevas empilée.

Action :	Corrigez l'appel à SET_VIEW_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41099
FRM-41099 : Modification impossible de la taille d'une vue intégrale.

Cause :	La taille d'une vue intégrale dépend de celle de la fenêtre. SET_VIEW_PROPERTY ne vous permet de modifier que la taille des vues empilées.

Action :	Corrigez l'appel à SET_VIEW_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41100
FRM-41100 : Relation %s introuvable.

Cause :	Vous avez tenté une opération d'obtention, de définition ou de recherche à l'aide d'une relation non valide.

Action :	Vérifiez si les arguments de l'appel à la procédure interne sont valides.

Niveau :	>25

Type :	Erreur


FRM-41101
FRM-41101 : Propriété de relation inexistante

Cause :	Vous avez tenté d'obtenir une propriété de relation inexistante.

Action :	Vérifiez les propriétés valides pour GET_RELATION_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41102
FRM-41102 : Définition de propriété de relation inexistante

Cause :	Vous avez tenté de définir une propriété de relation inexistante.

Action :	Vérifiez les propriétés valides pour SET_RELATION_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41103
FRM-41103 : Valeur non valide de propriété de relation

Cause :	Erreur de conception de l'application. Une valeur de propriété de relation non valide a été transmise à la procédure interne SET_RELATION_PROPERTY.

Action :	Corrigez l'appel à la procédure interne SET_RELATION_PROPERTY, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-41104
FRM-41104 : Relation introuvable : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_RELATION sera effectué.

Niveau :	20

Type :	Erreur


FRM-41105
FRM-41105 : Interrogation des enregistrements impossible en l'absence d'enregistrement parent.

Cause :	Vous avez tenté d'interroger des enregistrements détails sans avoir créé d'enregistrement maître au préalable.

Action :	Créez un enregistrement maître, puis interrogez les enregistrements détails.


FRM-41106
FRM-41106 : Création impossible d'enregistrements en l'absence d'enregistrement parent.

Cause :	Vous avez tenté de créer à nouveaux enregistrements détails sans avoir créé d'enregistrement maître au préalable.

Action :	Créez un enregistrement maître, puis ajoutez les enregistrements détails.


FRM-41107
FRM-41107 : Option de suppression principale non valide pour la relation.

Cause :	Un type de source de données d'interrogation ou un type de cible de données DML non valide a été indiqué pour le bloc détail.

Action :	Vérifiez que la source de données d'interrogation et les cibles de données DML du bloc détail sont de type table.

Niveau :	20

Type :	Erreur


FRM-41200
FRM-41200 : Erreur d'intégration : produit non valide.

Cause :	Un nom de produit non valide a été indiqué dans RUN_PRODUCT.

Action :	Vérifiez les paramètres de RUN_PRODUCT, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-41201
FRM-41201 : Erreur d'intégration : mode de communication valide : SYNCHRONE ou ASYNCHRONE.

Cause :	Un mode de communication non valide a été indiqué dans RUN_PRODUCT.

Action :	Vérifiez les paramètres de RUN_PRODUCT, puis réessayez.

Niveau :	20

Type :	Erreur


FRM-41202
FRM-41202 : Erreur d'intégration : la liste de paramètres %s est vide.

Cause :	Absence de paramètres dans la liste de paramètres.

Action :	Vérifiez les paramètres de la liste indiquée.

Niveau :	20

Type :	Erreur


FRM-41203
FRM-41203 : Erreur d'intégration : ID de liste de paramètres non valide.

Cause :	Un ID de liste de paramètres non valide a été transmis.

Action :	Vérifiez l'ID de la liste de paramètres, puis réessayez.

Niveau :	20

Type :	Erreur


FRM-41204
FRM-41204 : Erreur d'intégration : erreur d'affectation de mémoire.

Cause :	Une erreur interne s'est produite.

Action :	Contactez l'assistance clients.

Niveau :	20

Type :	Erreur


FRM-41205
FRM-41205 : Erreur d'intégration : %s n'est pas un élément graphique

Cause :	Le type de variable indiqué pour l'affichage n'est pas Elément graphique.

Action :	Indiquez un élément graphique comme paramètre d'affichage.

Niveau :	20

Type :	Erreur


FRM-41206
FRM-41206 : Erreur d'intégration : élément %s ambigu.

Cause :	Nom d'élément non valide, peut-être en double.

Action :	Indiquez le nom d'élément selon le format nom_de_bloc.nom_d'élément.

Niveau :	20

Type :	Erreur


FRM-41207
FRM-41207 : Erreur d'intégration : élément %s introuvable.

Cause :	Le nom d'élément indiqué n'existe pas.

Action :	Vérifiez l'exactitude du nom, puis réessayez selon le format nom_de_bloc.nom_d'élément.

Niveau :	20

Type :	Erreur


FRM-41208
FRM-41208 : Erreur d'intégration : mode d'exécution valide : BATCH ou RUNTIME.

Cause :	Mode d'exécution non valide indiqué dans RUN_PRODUCT.

Action :	Indiquez BATCH ou RUNTIME comme paramètre de mode d'exécution.

Niveau :	20

Type :	Erreur


FRM-41209
FRM-41209 : Erreur d'intégration : emplacement du document valide : FILESYSTEM ou DB.

Cause :	Emplacement de document non valide indiqué dans RUN_PRODUCT.

Action :	Indiquez FILESYSTEM ou DB comme paramètre d'emplacement.

Niveau :	20

Type :	Erreur


FRM-41210
FRM-41210 : Erreur d'intégration : élément graphique non renseigné

Cause :	Valeur Null indiquée pour l'affichage de l'élément graphique.

Action :	Vérifiez l'élément d'affichage de la procédure interne RUN_PRODUCT et confirmez qu'il n'est pas nul.

Niveau :	20

Type :	Erreur


FRM-41211
FRM-41211 : Erreur d'intégration : échec SSL pendant l'exécution d'un autre produit.

Cause :	Un problème a été détecté lors du lancement d'un autre produit.

Action :	Vérifiez la procédure interne RUN_PRODUCT.

Niveau :	99

Type :	Erreur


FRM-41212
FRM-41212 : Erreur d'intégration : mode de communication non valide pour échange de données

Cause :	Un utilisateur a indiqué un mode de communication RUN_PRODUCT asynchrone.

Action :	Changez le mode de communication RUN_PRODUCT en synchrone.

Niveau :	20

Type :	Erreur


FRM-41213
FRM-41213 : Connexion au serveur Report %s impossible.

Cause :	Problème de connexion au serveur Report indiqué.

Action :	Vérifiez le que le serveur Report est activé et en fonction.

Niveau :	20

Type :	Erreur


FRM-41214
FRM-41214 : Exécution de l'état impossible.

Cause :	Le serveur Report n'est pas parvenu à exécuter l'état indiqué.

Action :	Vérifiez le que le serveur Report est activé et en fonction.

Niveau :	20

Type :	Erreur


FRM-41215
FRM-41215 : Nom de serveur ou ID de travail non valide.

Cause :	Problème de décodage de la valeur de retour de la procédure interne run_report.

Action :	La valeur de retour de la procédure interne run_report ne doit pas être modifiée avant d'être transmise à une autre procédure interne d'état.

Niveau :	20

Type :	Erreur


FRM-41216
FRM-41216 : Annulation du travail impossible.

Cause :	Problème lors de l'annulation du travail d'état.

Action :	Vérifiez le serveur Report et assurez-vous que le travail indiqué existe.

Niveau :	20

Type :	Erreur


FRM-41217
FRM-41217 : Impossible d'obtenir l'état du travail de l'état.

Cause :	Problème pour obtenir l'état du travail d'état indiqué.

Action :	Vérifiez le serveur Report et assurez-vous que le travail indiqué existe.

Niveau :	20

Type :	Erreur


FRM-41218
FRM-41218 : Copie de la sortie d'état impossible.

Cause :	Problème pour copier la sortie d'état du travail d'état indiqué.

Action :	Vérifiez le serveur Report et assurez-vous que le fichier de sortie indiqué existe.

Niveau :	20

Type :	Erreur


FRM-41219
FRM-41219 : Impossible de retrouver l'état : ID non valide.

Cause :	L'utilisateur a indiqué un nom d'objet état non valide.

Action :	Vérifiez l'application Forms et assurez-vous que l'objet état existe.

Niveau :	20

Type :	Erreur


FRM-41300
FRM-41300 : Le paramètre utilisé lors de la définition de propriété de bouton d'option n'est pas valide.

Cause :	Vous avez indiqué un paramètre qui n'existe pas.

Action :	Vérifiez la liste des paramètres autorisés.

Niveau :	99

Type :	Erreur


FRM-41301
FRM-41301 : Le paramètre utilisé lors de la définition de propriété de vue n'est pas valide.".

Cause :	Vous avez indiqué un paramètre qui n'existe pas.

Action :	Vérifiez la liste des paramètres autorisés.

Niveau :	99

Type :	Erreur


FRM-41302
FRM-41302 : Le paramètre utilisé lors de la définition de propriété de canevas n'est pas valide.

Cause :	Vous avez indiqué un paramètre qui n'existe pas.

Action :	Vérifiez la liste des paramètres autorisés.

Niveau :	99

Type :	Erreur


FRM-41303
FRM-41303 : Définition de propriété de fenêtre inexistante

Cause :	Vous avez indiqué une propriété qui n'existe pas.

Action :	Vérifiez la liste des propriétés autorisées.

Niveau :	99

Type :	Erreur


FRM-41304
FRM-41304 : Définition de propriété de bloc inexistante

Cause :	Vous avez indiqué une propriété qui n'existe pas.

Action :	Vérifiez la liste des propriétés autorisées.

Niveau :	99

Type :	Erreur


FRM-41305
FRM-41305 : Propriété de bloc inexistante

Cause :	Vous avez indiqué une propriété qui n'existe pas.

Action :	Vérifiez la liste des propriétés autorisées.

Niveau :	99

Type :	Erreur


FRM-41306
FRM-41306 : Le paramètre utilisé lors de la définition de propriété de fenêtre n'est pas valide

Cause :	Vous avez indiqué un paramètre non valide.

Action :	Vérifiez la liste des paramètres valides.

Niveau :	99

Type :	Erreur


FRM-41307
FRM-41307 : Le paramètre utilisé lors de la définition de propriété de bloc n'est pas valide.

Cause :	Vous avez indiqué un paramètre non valide.

Action :	Vérifiez la liste des paramètres valides.

Niveau :	99

Type :	Erreur


FRM-41308
FRM-41308 : Erreur de réinitialisation de la sélection de groupe.

Cause :	Vous avez tenté de désélectionner un enregistrement ou un sous-ensemble d'enregistrements qui n'était pas sélectionné ou qui ne se trouve pas dans ce groupe d'enregistrements.

Action :	Vérifiez les enregistrements qui doivent se trouver dans le groupe.

Niveau :	20

Type :	Erreur


FRM-41309
FRM-41309 : Propriété de bouton d'option inexistante

Cause :	Vous avez indiqué une propriété non valide.

Action :	Vérifiez la liste des propriétés valides.

Niveau :	99

Type :	Erreur


FRM-41310
FRM-41310 : Définition de propriété de bouton d'option inexistante

Cause :	Vous avez indiqué une propriété non valide.

Action :	Vérifiez la liste des propriétés valides.

Niveau :	99

Type :	Erreur


FRM-41311
FRM-41311 : Argument ou classement d'argument non valide pour %s.

Cause :	Vous avez indiqué une liste d'arguments non valide.

Action :	Vérifiez la liste des arguments valides.

Niveau :	99

Type :	Erreur


FRM-41312
FRM-41312 : Un élément du bloc au moins doit être inscriptible.

Cause :	Un bloc dont la propriété INSERT_ALLOWED ou UPDATE_ALLOWED a pour valeur Vrai doit contenir au moins un élément inscriptible. Vous avez tenté de faire du seul élément restant de la table de base du bloc un élément non inscriptible en attribuant la valeur Vrai à la propriété DERIVED_COLUMN ou QUERY_ONLY.

Action :	Attribuez la valeur Faux à INSERT_ALLOWED ou à UPDATE_ALLOWED pour le bloc, plutôt qu'à DERIVED_COLUMN ou à QUERY_ALLOWED pour chacun des éléments.

Niveau :	10

Type :	Information


FRM-41313
FRM-41313 : Définition de propriété d'alerte inexistante

Cause :	Une propriété non valide a été indiquée pour SET_ALERT_PROPERTY.

Action :	Entrez une propriété d'alerte valide.

Niveau :	99

Type :	Erreur


FRM-41314
FRM-41314 : Définition impossible de la propriété Insertion autorisée pour l'élément %s.%s

Cause :	Vous avez tenté de définir la propriété Insertion autorisée d'un élément non affiché.

Action :	La propriété Insertion autorisée n'est valide que pour les éléments affichés. Vérifiez que c'est le cas de celui-ci.

Niveau :	99

Type :	Erreur


FRM-41315
FRM-41315 : Définition impossible de la propriété Insertion autorisée pour l'élément non affiché %s.%s

Cause :	Vous avez tenté de définir la propriété Insertion autorisée d'un élément non affiché.

Action :	La propriété Insertion autorisée n'est valide que pour les éléments affichés. Vérifiez que c'est le cas de celui-ci.

Niveau :	99

Type :	Erreur


FRM-41316
FRM-41316 : Définition impossible de la propriété Insertion autorisée pour l'élément désactivé %s.%s

Cause :	Vous avez tenté de définir la propriété Insertion autorisée d'un élément désactivé.

Action :	La propriété Insertion autorisée n'est valide que pour les éléments activés. Vérifiez que c'est le cas de celui-ci.

Niveau :	99

Type :	Erreur


FRM-41317
FRM-41317 : L'élément n'est pas un bouton d'option %s

Cause :	Vous avez tenté d'utiliser une procédure interne de bouton d'option avec un élément qui n'est pas un bouton d'option.

Action :	Vérifiez que l'élément est un bouton d'option.

Niveau :	99

Type :	Erreur


FRM-41318
FRM-41318 : L'élément %s n'est pas un élément VBX.

Cause :	Vous avez tenté d'utiliser une procédure interne VBX avec un élément qui n'est pas un élément VBX.

Action :	Vérifiez que l'élément est un élément VBX.

Niveau :	5

Type :	Information


FRM-41319
FRM-41319 : La propriété %s indiquée n'est pas valide pour l'élément VBX %s.

Cause :	Vous avez tenté d'obtenir ou de définir une propriété non valide pour l'élément VBX indiqué.

Action :	Vérifiez que la propriété est valide pour l'élément VBX indiqué.

Niveau :	99

Type :	Erreur


FRM-41320
FRM-41320 : Impossible d'obtenir la propriété %s pour  l'élément VBX %s.

Cause :	Impossible d'obtenir la propriété indiquée pour l'élément VBX.

Action :	Vérifiez la liste des propriétés autorisées.

Niveau :	99

Type :	Erreur


FRM-41321
FRM-41321 : Définition impossible de la propriété %s pour l'élément VBX %s.

Cause :	Impossible de définir la propriété indiquée pour l'élément VBX.

Action :	Vérifiez la liste des propriétés autorisées.

Niveau :	99

Type :	Erreur


FRM-41322
FRM-41322 : Evénement %s non valide pour l'élément VBX %s.

Cause :	Vous avez tenté d'obtenir ou de définir un événement non valide pour l'élément VBX indiqué.

Action :	Vérifiez que l'événement est valide pour l'élément VBX indiqué.

Niveau :	99

Type :	Erreur


FRM-41323
FRM-41323 : Trop de paramètres pour l'événement %s de l'élément VBX %s.

Cause :	Vous avez indiqué trop de paramètres pour l'événement de l'élément VBX.

Action :	Vérifiez que l'événement contient un nombre valide de paramètres.

Niveau :	99

Type :	Erreur


FRM-41324
FRM-41324 : Paramètres insuffisants pour l'événement %s de l'élément VBX %s.

Cause :	Vous n'avez pas indiqué assez de paramètres pour l'événement de l'élément VBX.

Action :	Vérifiez que l'événement contient un nombre valide de paramètres.

Niveau :	99

Type :	Erreur


FRM-41325
FRM-41325 : Le paramètre d'événement VBX doit être une chaîne.

Cause :	Le paramètre d'événement VBX n'est pas une chaîne.

Action :	Vérifiez que le paramètre d'événement VBX est une chaîne.

Niveau :	99

Type :	Erreur


FRM-41326
FRM-41326 : Echec de transmission de l'événement %s à l'élément VBX %s.

Cause :	L'événement VBX a échoué.

Action :	Vérifiez que l'événement est valide pour l'élément VBX indiqué.

Niveau :	99

Type :	Erreur


FRM-41327
FRM-41327 : Impossible de récupérer la propriété par défaut de l'élément VBX %s.

Cause :	La procédure interne VBX.GET_VALUE_PROPERTY a échoué.

Action :	Vérifiez qu'une valeur initiale est attribuée à la propriété Valeur de contrôle VBX.

Niveau :	99

Type :	Erreur


FRM-41328
FRM-41328 : Définition impossible de la propriété par défaut de l'élément VBX %s.

Cause :	La procédure interne VBX.SET_VALUE_PROPERTY a échoué.

Action :	Vérifiez que vous définissez une propriété de valeur valide.

Niveau :	99

Type :	Erreur


FRM-41329
FRM-41329 : L'élément %s n'est pas un élément Liste.

Cause :	Vous avez tenté d'ajouter un élément Liste à un élément qui n'est pas une liste.

Action :	Vérifiez que l'élément est un élément Liste.

Niveau :	99

Type :	Erreur


FRM-41330
FRM-41330 : Insertion de l'élément Liste impossible dans %s.

Cause :	Vous avez tenté d'insérer un autre élément de valeurs alors que le bloc contenait des enregistrements interrogés ou modifiés.

Action :	Pour plus d'informations sur les restrictions concernant ADD_LIST_ELEMENT, reportez-vous à l'aide.

Niveau :	99

Type :	Erreur


FRM-41331
FRM-41331 : Suppression de l'élément de %s impossible.

Cause :	Causes possibles :

Vous avez essayé de supprimer l'autre élément de valeurs alors que le bloc contenait des enregistrements interrogés ou modifiés.

Vous avez essayé de supprimer un élément d'une liste qui ne contient pas d'autre élément de valeurs alors que le bloc contenait des enregistrements interrogés ou modifiés.

Action :	Pour plus d'informations sur les restrictions concernant CLEAR_LIST et DELETE_LIST_ELEMENT , reportez-vous à l'aide.

Niveau :	99

Type :	Erreur


FRM-41332
FRM-41332 : Index de l'élément Liste hors de portée.

Cause :	Mémoire insuffisante.

Action :	Contactez votre administrateur de bases de données.

Niveau :	99

Type :	Erreur


FRM-41333
FRM-41333 : Conversion de la valeur de l'élément Liste impossible.

Cause :	Impossible de convertir la valeur de l'élément de liste en une chaîne.

Action :	Vérifiez que l'élément de liste est une chaîne.

Niveau :	99

Type :	Erreur


FRM-41334
FRM-41334 : Chargement de liste impossible pour cause de groupe d'enregistrements non valide.

Cause :	Vous avez tenté de remplir une liste à partir d'un groupe d'enregistrements qui n'existe pas.

Action :	Vérifiez que le groupe d'enregistrements existe.

Niveau :	99

Type :	Erreur


FRM-41335
FRM-41335 : Populate_List : type de colonne non valide pour la colonne 1.

Cause :	Vous avez tenté de remplir une liste à partir d'un groupe d'enregistrements qui n'existe pas.

Action :	Vérifiez que le groupe d'enregistrements existe.

Niveau :	99

Type :	Erreur


FRM-41336
FRM-41336 : Populate_List : type de colonne non valide pour la colonne 2.

Cause :	Le groupe d'enregistrements ne contient pas de colonne de même type.

Action :	Vérifiez que le groupe d'enregistrements contient une colonne de même type.

Niveau :	99

Type :	Erreur


FRM-41337
FRM-41337 : Chargement de liste impossible à partir du groupe d'enregistrements.

Cause :	Le groupe d'enregistrements n'est pas valide ou l'élément Liste ne satisfait pas aux règles de suppression et d'ajout d'éléments.

Action :	Vérifiez que le groupe d'enregistrements est valide. Pour plus d'informations sur la suppression et l'ajout d'éléments Liste et sur les restrictions concernant DELETE_LIST_ELEMENT et ADD_LIST_ELEMENT, reportez-vous à l'aide.

Niveau :	99

Type :	Erreur


FRM-41338
FRM-41338 : Extraction de la liste dans le groupe d'enregistrements impossible.

Cause :	Le groupe d'enregistrements n'est pas valide.

Action :	Vérifiez que le groupe d'enregistrements est valide.

Niveau :	99

Type :	Erreur


FRM-41339
FRM-41339 : Effacement de la liste impossible.

Cause :	Mémoire insuffisante.

Action :	Contactez votre administrateur de bases de données.

Niveau :	99

Type :	Erreur


FRM-41340
FRM-41340 : Set_Application_Property : propriété ou valeur inexistante

Cause :	Vous avez indiqué une propriété et/ou une valeur non valide pour une propriété.

Action :	Indiquez une propriété valide et/ou une valeur valide.

Niveau :	99

Type :	Erreur


FRM-41341
FRM-41341 : Le type de curseur indiqué %s n'est pas valide.

Cause :	Il existe un ensemble prédéfini de types de curseurs et vous avez indiqué un type de curseur non valide.

Action :	Indiquez un type de curseur valide.

Niveau :	99

Type :	Erreur


FRM-41342
FRM-41342 : Le paramètre %s associé à l'événement VBX %s n'est pas valide.

Cause :	Vous avez indiqué un paramètre non valide pour un événement VBX.

Action :	Vérifiez le type du paramètre.

Niveau :	99

Type :	Erreur


FRM-41343
FRM-41343 : L'élément %s n'est pas un objet OLE.

Cause :	Un élément non valide a été transmis à une procédure interne OLE.

Action :	Indiquez un élément OLE valide.

Niveau :	99

Type :	Erreur


FRM-41344
FRM-41344 : Objet OLE non défini pour %s dans l'enregistrement courant.

Cause :	Vous avez défini un conteneur OLE non valide.

Action :	Définissez un objet OLE destiné à résider dans le conteneur OLE.

Niveau :	20

Type :	Erreur


FRM-41345
FRM-41345 : Verbe %s introuvable pour ce serveur.

Cause :	Vous avez indiqué un verbe OLE non valide.

Action :	Indiquez un verbe OLE valide.

Niveau :	99

Type :	Erreur


FRM-41346
FRM-41346 : Objet OLE %s : nombre de verbes impossible à déterminer.

Cause :	Communication impossible avec le serveur OLE.

Action :	Réinstallez le serveur OLE.

Niveau :	99

Type :	Erreur


FRM-41347
FRM-41347 : Objet OLE %s : index de verbe non valide.

Cause :	Vous avez indiqué un index supérieur au nombre de verbes.

Action :	Vérifiez la valeur de l'index.

Niveau :	99

Type :	Erreur


FRM-41348
FRM-41348 : Erreur du serveur OLE : %s.

Cause :	Le serveur OLE a détecté une erreur.

Action :	Essayez de résoudre l'erreur en vous basant sur le message du serveur OLE.

Niveau :	99

Type :	Erreur


FRM-41349
FRM-41349 : L'objet OLE %s ne peut pas exécuter le verbe : ID verbe %d

Cause :	L'objet OLE ne reconnaît pas le verbe.

Action :	Essayez d'exécuter un autre verbe.

Niveau :	99

Type :	Erreur


FRM-41350
FRM-41350 : Objet OLE actuellement non affiché.

Cause :	Vous avez tenté de fermer un serveur qui n'est pas actif.

Action :	Demandez si le serveur est actif dans un enregistrement qui n'est pas actuellement actif.

Niveau :	99

Type :	Erreur


FRM-41351
FRM-41351 : Impossible de sortir de l'application Forms courante.

Cause :	Vous ne pouvez pas accéder à une application Forms inactive.

Action :	Vérifiez que l'application Forms à laquelle vous accédez est active.

Niveau :	99

Type :	Erreur


FRM-41352
FRM-41352 : Echec de création d'une nouvelle session.

Cause :	Vous avez tenté d'ouvrir une nouvelle application Forms dans une nouvelle session.

Action :	Vérifiez le serveur de bases de données.

Niveau :	99

Type :	Erreur


FRM-41353
FRM-41353 : Impossible de procéder à un autre appel d'application Forms.

Cause :	Vous avez accédé à une application Forms de même niveau et vous avez appelé une application Forms.

Action :	Vérifiez que vous n'êtes pas dans une application Forms de même niveau lorsque vous appelez une application Forms.

Niveau :	99

Type :	Erreur


FRM-41354
FRM-41354 : Fermeture impossible de l'application Forms %s.

Cause :	Tentative avortée de fermeture d'une application Forms.

Action :	Vérifiez que l'application Forms est ouverte.

Niveau :	99

Type :	Erreur


FRM-41355
FRM-41355 : Navigation impossible vers l'application Forms %s.

Cause :	Vous ne pouvez pas accéder à une application Forms inactive.

Action :	Vérifiez que vous accédez à une application Forms active.

Niveau :	99

Type :	Erreur


FRM-41356
FRM-41356 : Elément VBX %s : méthode %s non valide.

Cause :	Vous avez indiqué un nom de méthode non valide pour l'élément VBX.

Action :	Indiquez un nom de méthode valide pour l'élément VBX.

Niveau :	99

Type :	Erreur


FRM-41357
FRM-41357 : Elément VBX %s : le nombre d'arguments appliqué à la méthode %s est incorrect.

Cause :	Vous avez indiqué un nombre d'arguments non valide pour la méthode de l'élément VBX.

Action :	Vérifiez que le nombre d'arguments est celui attendu par l'élément VBX.

Niveau :	99

Type :	Erreur


FRM-41358
FRM-41358 : Elément VBX %s : échec de la méthode %s.

Cause :	Vous avez indiqué un nom de méthode non valide pour l'élément VBX.

Action :	Indiquez un nom de méthode valide pour l'élément VBX.

Niveau :	5

Type :	Information


FRM-41359
FRM-41359 : Option de session Open_Form non activée; création de nouvelle session impossible.

Cause :	La fonction de sessions multiples n'est pas activée pour la base de données.

Action :	L'option de session Open_Form ne peut être utilisée que sur une base de données pour laquelle la fonction de sessions multiples est activée.

Niveau :	99

Type :	Erreur


FRM-41360
FRM-41360 : Fenêtre %s : la valeur indiquée dans Set_Window_Property n'est pas valide.

Cause :	Vous utilisez une valeur non valide pour définir une propriété de fenêtre.

Action :	Indiquez une valeur de propriété de fenêtre valide.

Niveau :	99

Type :	Erreur


FRM-41361
FRM-41361 : Navigation hors de l'appli Forms courante impossible en mode Saisie interrogation.

Cause :	Vous êtes en mode Saisie interrogation et vous essayez d'accéder à une autre application Forms en utilisant Open Form.

Action :	Quittez le mode Saisie interrogation, puis réessayez.

Niveau :	10

Type :	Erreur


FRM-41362
FRM-41362 : Set_Alert_Button_Property : propriété non valide

Cause :	Vous avez indiqué une propriété non valide pour Set_Alert_Button_Property.

Action :	Indiquez une propriété valide pour Set_Alert_Button_Property.

Niveau :	99

Type :	Erreur


FRM-41363
FRM-41363 : Set_LOV_Column_Property : propriété non valide

Cause :	Vous avez indiqué une propriété non valide pour Set_LOV_Column_Property.

Action :	Indiquez une propriété valide pour Set_LOV_Column_Property.

Niveau :	99

Type :	Erreur


FRM-41364
FRM-41364 : LOV %s : le numéro de colonne indiqué n'est pas valide.

Cause :	Vous avez indiqué un numéro de colonne non valide pour la LOV.

Action :	Indiquez un numéro de colonne valide pour la LOV.

Niveau :	99

Type :	Erreur


FRM-41365
FRM-41365 : Set_TabPage_Property : propriété inexistante

Cause :	Vous avez indiqué une propriété non valide pour Set_TabPage_Property.

Action :	Indiquez une propriété valide pour Set_TabPage_Property.

Niveau :	99

Type :	Erreur


FRM-41366
FRM-41366 : Get_TabPage_Property : propriété inexistante

Cause :	Vous avez indiqué un paramètre de propriété non valide.

Action :	Vérifiez la liste des propriétés valides.

Niveau :	99

Type :	Erreur


FRM-41367
FRM-41367 : Impossible de retrouver TabPage : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez qu'un appel correct à FIND_TABPAGE sera effectué.

Niveau :	99

Type :	Erreur


FRM-41368
FRM-41368 : Set_TabPage_Property : paramètre non valide.

Cause :	Vous avez indiqué un paramètre non valide.

Action :	Vérifiez la liste des paramètres valides.

Niveau :	99

Type :	Erreur


FRM-41369
FRM-41369 : Insertion impossible d'un second enregistrement dans un bloc mono-enregistrement.

Cause :	Vous-même ou l'application avez tenté d'insérer un deuxième enregistrement dans un bloc dont la propriété SINGLE_RECORD a pour valeur TRUE.

Action :	Ne tentez pas d'insérer d'enregistrement dans un tel bloc.

Niveau :	99

Type :	Erreur


FRM-41370
FRM-41370 : Modification impossible de l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. L'application a tenté d'attribuer une valeur à un élément calculé.

Action :	Si l'élément calculé est un élément formule, alors cette formule détermine sa valeur en permanence. Il peut s'avérer utile de modifier la formule ou de changer l'élément calculé en élément de contrôle non calculé dont la valeur est définie dans différents déclencheurs.

Niveau :	99

Type :	Erreur


FRM-41371
FRM-41371 : Définition impossible de la propriété INSERT_ALLOWED pour l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_PROPERTY ou SET_ITEM_INSTANCE_PROPERTY a tenté d'attribuer la valeur TRUE à la propriété INSERT_ALLOWED d'un élément calculé.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41372
FRM-41372 : Définition impossible de la propriété ITEM_IS_VALID pour l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_PROPERTY a tenté d'attribuer la valeur FALSE à la propriété ITEM_IS_VALID d'un élément calculé.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41373
FRM-41373 : Définition impossible de la propriété LOCK_RECORD pour l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_PROPERTY a tenté d'attribuer la valeur TRUE à la propriété LOCK_RECORD d'un élément calculé.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41374
FRM-41374 : Définition impossible de la propriété PRIMARY_KEY pour l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_PROPERTY a tenté d'attribuer la valeur TRUE à la propriété PRIMARY_KEY d'un élément calculé.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41375
FRM-41375 : Définition impossible de la propriété QUERYABLE pour l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_PROPERTY a tenté d'attribuer la valeur TRUE à la propriété QUERYABLE d'un élément calculé.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41376
FRM-41376 : Définition impossible de la propriété REQUIRED pour l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_PROPERTY ou SET_ITEM_INSTANCE_PROPERTY a tenté d'attribuer la valeur TRUE à la propriété REQUIRED d'un élément calculé.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41377
FRM-41377 : Définition impossible de la propriété UPDATEABLE pour l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_PROPERTY ou SET_ITEM_INSTANCE_PROPERTY a tenté d'attribuer la valeur TRUE à la propriété UPDATEABLE d'un élément calculé.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41378
FRM-41378 : Définition impossible de la propriété UPDATE_NULL pour l'élément calculé %s.%s.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_PROPERTY a tenté d'attribuer la valeur TRUE à la propriété UPDATE_NULL d'un élément calculé.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41379
FRM-41379 : Recalcul impossible de l'élément %s.%s qui n'est pas une formule.

Cause :	Erreur de conception de l'application. Une procédure interne RECALCULATE a indiqué un élément qui n'est pas un élément formule.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41380
FRM-41380 : Définition impossible de la source de données d'interrogation de blocs.

Cause :	La tentative de l'utilisateur pour modifier dynamiquement la source de données du bloc a échoué.

Action :	Vérifiez l'application Forms et assurez-vous que le bloc indiqué n'est pas un bloc de contrôle et que son état est nouveau.

Niveau :	20

Type :	Erreur


FRM-41381
FRM-41381 : Définition impossible de la source cible de données DML de blocs.

Cause :	La tentative de l'utilisateur pour modifier dynamiquement la cible de données DML du bloc a échoué.

Action :	Vérifiez l'application Forms et assurez-vous que le bloc indiqué n'est pas un bloc de contrôle et que son état est nouveau.

Niveau :	20

Type :	Erreur


FRM-41382
FRM-41382 : Get_Item_Instance_Property : propriété inexistante

Cause :	Erreur de conception de l'application. Une procédure interne GET_ITEM_INSTANCE_PROPERTY a indiqué une propriété non valide.

Action :	Changez cette propriété en BORDER_BEVEL, INSERT_ALLOWED, NAVIGABLE, REQUIRED, UPDATEABLE ou VISUAL_ATTRIBUTE, ou supprimez l'appel à la procédure interne.

Niveau :	99

Type :	Erreur


FRM-41383
FRM-41383 : Set_Item_Instance_Property : propriété inexistante

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_INSTANCE_PROPERTY  a indiqué une propriété non valide.

Action :	Changez cette propriété en BORDER_BEVEL, INSERT_ALLOWED, NAVIGABLE, REQUIRED, UPDATEABLE ou VISUAL_ATTRIBUTE, ou supprimez l'appel à la procédure interne.

Niveau :	99

Type :	Erreur


FRM-41384
FRM-41384 : Set_Item_Instance_Property : paramètre non valide.

Cause :	Erreur de conception de l'application. Une procédure interne SET_ITEM_INSTANCE_PROPERTY a indiqué une propriété non valide.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-41385
FRM-41385 : Nombre maximal d'enregistrements interrogés dépassé.

Cause :	Le nombre maximum d'enregistrements indiqué par l'utilisateur pour un bloc est atteint.

Action :	Vérifiez les propriétés de bloc d'application Forms et de niveau application Forms.

Niveau :	99

Type :	Information


FRM-41386
FRM-41386 : Définition impossible de l'attribut VISIBLE pour la page onglet contenant l'élément courant.

Cause :	Vous avez tenté de définir la propriété Visible pour la page onglet contenant l'élément courant.

Action :	La propriété Visible n'est valide que pour les pages onglets qui ne contiennent pas l'élément courant.

Accédez d'abord à un élément sur une autre page onglet ou un autre canevas.

Niveau :	99

Type :	Erreur


FRM-41387
FRM-41387 : Définition impossible de l'attribut VISIBLE pour la dernière page onglet saisissable.

Cause :	Vous avez tenté de définir la propriété Visible pour la seule page onglet modifiable du canevas.

Action :	Vérifiez qu'il reste au moins une autre page onglet modifiable sur le canevas avant de définir la propriété Visible.

Niveau :	99

Type :	Erreur


FRM-41388
FRM-41388 : Définition impossible de l'attribut ENABLED pour la page onglet contenant l'élément courant.

Cause :	Vous avez tenté de définir la propriété Activé pour la page onglet contenant l'élément courant.

Action :	Cette propriété n'est valide que pour les pages onglets qui ne contiennent pas l'élément courant.

Accédez d'abord à un élément sur une autre page onglet ou un autre canevas.

Niveau :	99

Type :	Erreur


FRM-41389
FRM-41389 : Définition impossible de l'attribut ENABLED pour la dernière page onglet saisissable.

Cause :	Vous avez tenté de définir la propriété Activé pour la seule page onglet modifiable du canevas.

Action :	Vérifiez qu'il reste au moins une autre page onglet modifiable sur le canevas avant de définir la propriété Activé .

Niveau :	99

Type :	Erreur


FRM-41390
FRM-41390:  Définition impossible de la propriété REQUIRED de l'élément miroir subordonné %s.%s.

Cause :	Erreur de conception de l'application. La procédure interne A SET_ITEM_PROPERTY ou SET_ITEM_INSTANCE_PROPERTY a tenté de définir la propriété Obligatoire d'un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, la propriété Obligatoire est obtenue à partir d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Définissez la propriété Obligatoire de l'élément miroir maître.

Niveau :	25

Type :	Erreur


FRM-41391
FRM-41391 : Impossible de trouver l'attribut visuel : ID non valide.

Cause :	Un ID non valide a été transmis à un sous-programme intégré.

Action :	Vérifiez que l'appel de FIND_VA est correctement effectué.

Niveau :	99

Type :	Erreur


FRM-41392
FRM-41392 : Propriété d'attribut visuel inexistante.

Cause :	Vous avez tenté d'obtenir une propriété d'attribut visuel inexistante.

Action :	Vérifiez les propriétés valides pour GET_VA_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41393
FRM-41393 : Définition de propriété d'attribut visuel inexistante.

Cause :	Vous avez tenté de définir une propriété d'attribut visuel non valide.

Action :	Vérifiez la façon de définir les propriétés d'un attribut visuel dans la documentation, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-41394
FRM-41394 : La valeur de paramètre utilisée lors de la définition de propriété d'attribut visuel n'est pas valide.

Cause :	Vous avez tenté de définir une propriété d'attribut visuel sur une valeur non valide.

Action :	Vérifiez la façon de définir les propriétés d'un attribut visuel dans la documentation, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-41395
FRM-41395 : Le paramètre utilisé lors de la définition de propriété d'objet état n'est pas valide.

Cause :	Vous avez indiqué un paramètre qui n'existe pas.

Action :	Vérifiez la liste des paramètres autorisés.

Niveau :	99

Type :	Erreur


FRM-41396
FRM-41396 : Propriété inexistante pour Get/Set_Report_Object_Property.

Cause :	Vous avez indiqué une propriété qui n'existe pas.

Action :	Vérifiez la liste des propriétés autorisées.

Niveau :	99

Type :	Erreur


FRM-41397
FRM-41397 : La valeur de paramètre utilisée lors de la définition de propriété de graphique n'est pas valide.

Cause :	Vous avez tenté de définir une propriété de graphique sur une valeur non valide.

Action :	Vérifiez la façon de définir les propriétés d'un graphique dans la documentation, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-41398
FRM-41398 : Impossible de définir le texte d'un objet lors de la définition de propriété de graphique.

Cause :	Erreur lors de la tentative de définition du texte d'un objet graphique.

Action :	Vérifiez si la mémoire n'est pas saturée.

Action :	Si la mémoire n'est pas la cause du problème, il se peut que l'application Forms soit endommagée.

Niveau :	99

Type :	Erreur


FRM-41399
FRM-41399 : Impossible de définir le texte d'un objet graphique d'un type autre que texte ou cadre.

Cause :	Vous avez tenté de définir le texte d'un objet graphique ne contenant aucun texte.

Action :	Assurez-vous d'avoir défini le bon objet graphique et essayez à nouveau.

Niveau :	99

Type :	Erreur


FRM-41400
FRM-41400 : Définition de propriété de graphique inexistante.

Cause :	Vous avez tenté de définir une propriété de graphique non valide.

Action :	Vérifiez la façon de définir les propriétés d'un graphique dans la documentation, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-41401
FRM-41401 : Propriété de graphique inexistante.

Cause :	Vous avez tenté d'obtenir une propriété de graphique inexistante.

Action :	Vérifiez les propriétés valides pour GET_GRAPHICS_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-41402
FRM-41402 : Type d'attribut visuel non valide transmis à Set_<objet>_Property.

Cause :	Vous avez tenté de définir l'attribut visuel d'un objet à un attribut de type incorrect.

Action:	Vérifiez les types d'attribut visuel dans Form Builder et indiquez un attribut valide pour cet objet.

Niveau :	99

Type :	Erreur


FRM-41800
FRM-41800 : Liste de valeurs non disponible dans ce champ.

Cause :	Vous avez appuyé sur [Liste], mais l'application Forms ne propose aucune liste de valeurs pour ce champ.

Action :	Aucune action nécessaire.

Niveau :	10

Type :	Information


FRM-41801
FRM-41801 : Dernière valeur extraite.

Cause :	Vous avez appuyé sur [Liste] puis sur [Elément suivant] après l'affichage de la dernière valeur de la liste.

Action :	Entrez une valeur d'élément ou appuyez à nouveau sur [Liste] pour afficher la liste des valeurs possibles.

Niveau :	10

Type :	Information


FRM-41802
FRM-41802 : Fonction Dupliquer enregistrement uniquement autorisée sur les nouveaux enregistrements.

Cause :	Vous avez appuyé sur [Dupliquer enregistrement], mais l'enregistrement en cours est celui qui a été extrait de la base de données.

Action :	Aucune action nécessaire. Vous ne pouvez utiliser [Dupliquer enregistrement] que lors de la création d'un nouvel enregistrement.

Niveau :	10

Type :	Erreur


FRM-41803
FRM-41803 : Pas d'enregistrement précédent à partir duquel copier la valeur.

Cause :	Vous avez appuyé sur [Dupliquer élément] ou sur [Dupliquer enregistrement], mais l'enregistrement en cours est le premier enregistrement du bloc.

Action :	Aucune action nécessaire. [Dupliquer élément] et [Dupliquer enregistrement] n'ont aucun effet dans ce contexte.

Niveau :	10

Type :	Erreur


FRM-41804
FRM-41804 : Variable non saisie : %.30s.

Cause :	Votre réponse au message d'alerte contenait une variable utilisée dans aucun des éléments de l'interrogation.

Action :	Corrigez la variable dans votre réponse, ou définissez-la dans un des éléments de l'interrogation et exécutez à nouveau l'interrogation.

Niveau :	>25

Type :	Erreur


FRM-41805
FRM-41805 : Nom d'élément ambigu : %s.

Cause :	Erreur de conception de l'application. Nom d'élément ambigu.

Action :

Niveau :	>25

Type :	Erreur


FRM-41806
FRM-41806 : Trop de variables utilisées.

Cause :	Vous avez utilisé plus de 25 variables de substitution dans votre interrogation.

Action :	Diminuez le nombre des variables de substitution, puis relancez l'interrogation.

Niveau :	>25

Type :	Erreur


FRM-41809
FRM-41809 : Erreur d'initialisation de Menu.

Cause :	Vous avez tenté d'utiliser le composant Menu à partir de Form Builder, et une erreur interne s'est produite.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-41810
FRM-41810 : Erreur de création de menu.

Cause :	Vous avez tenté d'utiliser le composant Menu à partir de Form Builder, et une erreur interne s'est produite.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-41811
FRM-41811 : Erreur de suppression de menu.

Cause :	Vous avez tenté d'utiliser le composant Menu à partir de Form Builder, et une erreur interne Menu s'est produite.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-41812
FRM-41812 : Erreur de réinitialisation de Menu.

Cause :	Vous avez tenté d'utiliser le composant Menu à partir de Form Builder, et une erreur interne s'est produite.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-41813
FRM-41813 : Sortie de l'application Forms en mode débogage.

Cause :	Vous avez tenté de quitter Oracle Forms Runtime en mode débogage.

Action :	Aucune action nécessaire.

Niveau :	>25

Type :	En fonction


FRM-41814
FRM-41814 : Position de page non valide.

Cause :	Erreur de conception de l'application. Un déclencheur a tenté de déplacer ou de redimensionner une vue vers une page qui entraînerait l'affichage de cette vue en-dehors de l'écran.

Action :	Corrigez l'instruction.

Niveau :	>25

Type :	Erreur


FRM-41815
FRM-41815 : Propriété de LOV inexistante

Cause :	Vous avez tenté d'obtenir une propriété de LOV inexistante.

Action :	Vérifiez les propriétés de LOV valides, puis réessayez.

Niveau :	>25

Type :	Erreur


FRM-41816
FRM-41816 : Tentative de création d'horloge déjà existante : %s.

Cause :	Vous avez tenté de créer une horloge qui existe déjà.

Action :	Supprimez ou modifiez l'horloge existante avant d'en recréer une nouvelle.

Niveau :	>25

Type :	Erreur


FRM-41817
FRM-41817 : Aucune horloge de ce type : %s.

Cause :	Vous avez tenté de modifier ou de supprimer une horloge qui n'existe pas.

Action :	Vérifiez les arguments de la procédure interne.

Niveau :	>25

Type :	Erreur


FRM-41818
FRM-41818 : Echec de création de l'horloge %s par la boîte à outils : possibilité de mémoire insuffisante.

Cause :	Une erreur interne s'est produite lors de la tentative de création d'une horloge, probablement suite à des restrictions de mémoire.

Action :	Vérifiez et adaptez les allocations de mémoire en conséquence.

Niveau :	>25

Type :	Erreur


FRM-41819
FRM-41819 : Horloges non acceptées sur cette plate-forme.

Cause :	Tentative non autorisée de création d'une horloge sur une plate-forme où les horloges ne sont pas prises en charge.

Action :	Aucune. L'option d'horloge n'est pas autorisée sur votre plate-forme.

Niveau :	>25

Type :	Erreur


FRM-41820
FRM-41820 : Echec de suppression de l'horloge %s par la boîte à outils.

Cause :	Erreur interne causée par un échec de l'horloge.

Action :	Contactez l'assistance clients.

Niveau :	>25

Type :	Erreur


FRM-41821
FRM-41821 : Nom d'horloge trop long : %s...

Cause :	Vous avez tenté de créer une horloge portant un nom de plus de 30 octets.

Action :	Essayez à nouveau avec un nom plus court.

Niveau :	>25

Type :	Erreur


FRM-41822
FRM-41822 : Le champ Nom d'horloge doit être renseigné.

Cause :	Vous avez tenté de créer une horloge portant un nom nul.

Action :	Essayez à nouveau avec un nom non nul.

Niveau :	>25

Type :	Erreur


FRM-41823
FRM-41823 : Rythmeur d'horloge non autorisé dans le cas de l'horloge %s

Cause :	Vous avez tenté de créer une horloge avec un rythmeur inférieur à 1 milliseconde.

Action :	Créez à nouveau votre horloge avec un rythmeur d'au moins 1 milliseconde.

Niveau :	>25

Type :	Erreur


FRM-41824
FRM-41824 : Echec d'une opération sur date/heure pour %s.

Cause :	Une erreur interne s'est produite lors de la tentative de résolution d'une valeur initiale date/heure pour un élément.

Action :	Contactez l'assistance clients.

Niveau :	10

Type :	Erreur


FRM-41825
FRM-41825 : Propriété de LOV inexistante

Cause :	Vous avez tenté d'obtenir une propriété de LOV inexistante.

Action :	Vérifiez les propriétés de LOV valides, puis réessayez.

Niveau :	>25

Type :	Erreur


FRM-41826
FRM-41826 : Remplacement du groupe impossible; les colonnes ne correspondent pas à la LOV.

Cause :	Impossible de remplacer le groupe d'enregistrements courant de la liste de valeurs par un groupe d'enregistrements incompatible avec la structure de colonnes de la LOV.

Action :	Ne tentez pas d'affecter ce groupe d'enregistrements à cette LOV.

Niveau :	>25

Type :	Erreur


FRM-41827
FRM-41827 : Ce groupe n'existe pas.

Cause :	Le nom ou l'ID de groupe indiqué n'est pas valide.

Action :	Vérifiez le nom ou l'ID entré, puis réessayez.

Niveau :	>25

Type :	Erreur


FRM-41828
FRM-41828 : Cette LOV n'existe pas.

Cause :	Le nom ou l'ID de LOV indiqué n'est pas valide.

Action :	Vérifiez le nom ou l'ID entré, puis réessayez.

Niveau :	>25

Type :	Erreur


FRM-41829
FRM-41829 : Enregistrement non créé.

Cause :	Erreur de conception de l'application. L'enregistrement n'a pas pu obtenir sa valeur initiale.

Action :	Contactez le concepteur de l'application.

Niveau :	>25

Type :	Erreur


FRM-41830
FRM-41830 : La liste de valeurs ne contient aucune valeur.

Cause :	Le groupe d'enregistrements sous-jacent à la LOV ne contient aucun enregistrement.

Action :	Vérifiez qu'aucun critère utilisé pour réduire une liste importante de listes de valeurs n'a éliminé toutes les correspondances.

Niveau :	>5

Type :	Erreur


FRM-41832
FRM-41832 : Erreur : l'unité de programme %s de la bibliothèque %s n'est pas compilée.

Cause :	Vous avez appelé une unité de programme non compilée à partir d'une bibliothèque.

Action :	Suivez les instructions de l'erreur programme PL/SQL.

Niveau :	99

Type :	Erreur


FRM-41833
FRM-41833 : Attention ! L'unité de programme %s de la bibliothèque %s n'est pas compilée.

Cause :	Vous avez appelé une unité de programme non compilée dans une bibliothèque alors que le mode débogage était indiqué.

Action :	Il s'agit seulement d'un message d'avertissement. Forms Runtime essaiera de compiler et d'exécuter l'unité de programme.

Niveau :	99

Type :	Information


FRM-41834
FRM-41834 : Erreur : création impossible de la classe PECS %s.

Cause :	Impossible de créer le fichier de données PECS.

Action :	Vérifiez dans l'annexe PECS l'emplacement des fichiers de données PECS. Assurez-vous que vous disposez des droits nécessaires sur ce fichier et que la variable d'environnement de chemin indique un chemin valide.

Niveau :	99

Type :	Information


FRM-41835
FRM-41835 : Le canevas %s n'est pas un canevas onglet.

Cause :	Vous avez tenté d'effectuer une opération spécifique aux canevas onglets sur un canevas qui n'est pas un canevas onglet.

Action :	Vérifiez que le canevas indiqué est un canevas onglet.

Niveau :	99

Type :	Erreur


FRM-41836
FRM-41836 : La page onglet %s n'est pas dans le canevas %s.

Cause :	Vous avez tenté d'effectuer une opération sur une page onglet qui n'existe pas dans le canevas indiqué.

Action :	Vérifiez que vous avez indiqué une page onglet qui existe dans le canevas onglet indiqué.

Niveau :	99

Type :	Erreur


FRM-41837
FRM-41837 : Erreur dans la page onglet %s.

Cause :	Impossible d'amener la page onglet indiquée au premier plan (c'est-à-dire comme page en cours du canevas onglet).

Action :	Vérifiez que la page indiquée est activée et n'est pas masquée.

Niveau :	99

Type :	Erreur


FRM-41838
FRM-41838 : Ouverture impossible du fichier tampon d'enregistrements temporaire %s.

Cause :	Impossible d'ouvrir le fichier utilisé comme tampon d'enregistrements temporaire.

Action :	Vérifiez que le système de fichiers ou le répertoire dans lequel se trouve le fichier existe et que vous avez sur celui-ci le droit de lecture et d'écriture.

Niveau :	99

Type :	Erreur


FRM-41839
FRM-41839 : Erreur E/S dans fichier tampon d'enregistrement temporaire %s

Cause :	Une erreur d'E/S s'est produite lors de la tentative de lecture ou d'écriture d'un enregistrement dans le fichier tampon d'enregistrements temporaire.

Action :	Vérifiez que le système de fichiers ou le répertoire dans lequel se trouve le fichier existe, que vous avez sur celui-ci le droit de lecture et d'écriture, et qu'il contient suffisamment d'espace disque.

Niveau :	99

Type :	Erreur


FRM-41840
FRM-41840 : Tampons d'enregistrement : mémoire principale insuffisante

Cause :	Impossible d'allouer de la mémoire pour un enregistrement en cours de création dans un bloc.

Action :	Essayez de relancer l'application lorsque moins de programmes s'exécuteront simultanément ou sur une machine disposant d'une mémoire plus conséquente. Il peut s'avérer nécessaire de modifier la conception de l'application afin de réduire la valeur de la propriété Enregistrements en tampon d'un ou plusieurs blocs.

Niveau :	99

Type :	Erreur


FRM-41841
FRM-41841 : Utilisez l'exécutable avec débogueur si DEBUG=YES.

Cause :	Vous avez tenté d'utiliser le débogueur à partir d'un exécutable qui ne le contient pas.

Action :	Lancez l'autre exécutable (dont le nom varie selon les systèmes d'exploitation), qui contient le débogueur.

Niveau :	99

Type :	Erreur


FRM-41900
FRM-41900 : Exécution interrompue suite à une erreur fatale.

Cause :	Une erreur fatale a entraîné l'interruption de l'application Forms.

Action :	Contactez votre administrateur de bases de données.

Niveau :	20

Type :	Erreur


FRM-41901
FRM-41901 : Erreur : %d curseurs non fermés.

Cause :	Erreur interne.

Action :	Contactez votre administrateur de bases de données.

Niveau :	>25

Type :	Erreur


FRM-41902
FRM-41902 : Nombre total de curseurs utilisés : %d.

Cause :	Ce message apparaît lorsque vous exécutez une application Forms avec la préférence Statistiques ayant la valeur Vrai.

Action :	Aucune action nécessaire.

Niveau :	>25

Type :	Information


FRM-41903
FRM-41903 : Exécution interrompue par la fin du fichier d'entrée.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.

Niveau :	>25

Type :	Erreur


FRM-42015
FRM-42015 : Vous devez préciser un nom de fichier de séq. de touches lorsque en mode non interactif.

Cause :	Vous avez tenté d'exécuter l'application Forms en mode non interactif sans indiquer le nom d'un fichier de séquence de touches au démarrage.

Action :	Indiquez le nom du fichier de séquences de touches.

Niveau :	>25

Type :	Erreur


FRM-42016
FRM-42016 : Les fichiers de lecture et d'écriture ne doivent pas avoir le même nom.

Cause :	Vous avez tenté de donner le même nom aux fichiers de lecture et d'écriture.

Action :	Indiquez des noms différents pour les deux fichiers.

Niveau :	>25

Type :	Erreur


FRM-42017
FRM-42017 : Vous devez indiquer un nom de module.

Cause :	Vous n'avez pas indiqué de nom de module.

Action :	Indiquez un nom de module.

Niveau :	>25

Type :	Erreur


FRM-42100
FRM-42100 : Pas d'erreur récente.

Cause :	Vous avez appuyé sur [Afficher erreur], mais aucune erreur ne s'est produite récemment.

Action :	Aucune action nécessaire.

Niveau :	5

Type :	Information


FRM-42400
FRM-42400 : Déclencheur événementiel %s en cours d'exécution.

Cause :	Ce message s'affiche lors d'un déclencheur alors que le mode débogage est activé.

Action :	Aucune action nécessaire.

Niveau :	>25

Type :	Information


FRM-42401
FRM-42401 : Déclencheur de programme %s en cours d'exécution.

Cause :	Ce message s'affiche lors d'un déclencheur alors que le mode débogage est activé.

Action :	Aucune action nécessaire.

Niveau :	>25

Type :	Information


FRM-42423
FRM-42423 : Exécution impossible du déclencheur %s : aucun état compilé

Cause :	Ce message s'affiche lors de l'exécution d'une application Forms en mode débogage si l'état compilé d'un déclencheur a été détruit. Cela peut se produire si vous apportez une modification au texte du déclencheur et que celle-ci entraîne des erreurs de compilation.

Action :	Vous pouvez recompiler le déclencheur dans le débogueur ou quitter l'application Forms, puis la relancer.

Niveau :	99

Type :	Erreur


FRM-47000
FRM-47000 : Création impossible de la liste de paramètres %s : erreur interne.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47001
FRM-47001 : Création impossible de la liste de paramètres %s : une liste de même nom existe déjà.

Cause :	Le nom que vous avez indiqué pour la liste de paramètres est déjà utilisé.

Action :	Indiquez un autre nom pour la liste de paramètres.

Niveau :	99

Type :	Erreur


FRM-47002
FRM-47002 : Création de liste de paramètres impossible -- le champ Nom de liste doit être renseigné.

Cause :	Le nom de la liste de paramètres ne peut pas être nul.

Action :	Indiquez un nom pour la liste de paramètres.


FRM-47003
FRM-47003 : Suppression de liste de paramètres impossible : erreur interne.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47004
FRM-47004 : Suppression de liste de paramètres impossible : ID non valide.

Cause :	Vous avez tenté de transmettre un ID de liste de paramètres non valide.

Action :	Vérifiez l'ID de la liste de paramètres, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47005
FRM-47005 : Validation du paramètre %s impossible : erreur interne.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47006
FRM-47006 : Création de la liste de paramètres '%s' impossible : identifiant non autorisé.

Cause :	Nom d'identifiant non autorisé.

Action :	Vérifiez la syntaxe valide pour l'identifiant.

Niveau :	99

Type :	Erreur


FRM-47007
FRM-47007 : Extraction des attributs du paramètre %s impossible à partir de la liste de paramètres : ID liste non valide.

Cause :	Vous avez indiqué un ID de liste de paramètres non valide.

Action :	Vérifiez l'ID de la liste de paramètres, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47008
FRM-47008 : Ajout impossible du paramètre %s à la liste des paramètres %s : erreur interne.

Cause :	Une erreur interne s'est produite.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47009
FRM-47009 : Ajout impossible du paramètre %s à la liste des paramètres : ID de liste non valide.

Cause :	Vous avez indiqué un ID de liste de paramètres non valide.

Action :	Vérifiez l'ID de la liste de paramètres, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47010
FRM-47010 : Ajout de paramètre à la liste de paramètres %s impossible : clé non renseignée.

Cause :	Aucun nom d'est indiqué pour le paramètre.

Action :	Indiquez une <clé> de nom de paramètre dans votre appel à ADD_PARAMETER.

Niveau :	99

Type :	Erreur


FRM-47011
FRM-47011 : Ajout impossible du paramètre %s à la liste des paramètres %s : le type indiqué est incorrect.

Cause :	Vous avez indiqué un type de paramètre non valide.

Action :	Indiquez TEXT_PARAMETER ou DATA_PARAMETER.

Niveau :	99

Type :	Erreur


FRM-47012
FRM-47012 : Ajout impossible du paramètre %s à la liste des paramètres %s : le groupe %s n'existe pas.

Cause :	Le nom du groupe d'enregistrements n'existe pas.

Action :	Vérifiez le nom du groupe d'enregistrements, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47013
FRM-47013 : Ajout impossible du paramètre %s à la liste des paramètres %s : un paramètre de même nom existe déjà.

Cause :	Un paramètre de ce nom existe déjà.

Action :	Indiquez un autre nom pour le paramètre.

Niveau :	99

Type :	Erreur


FRM-47014
FRM-47014 : Suppression impossible du paramètre %s de la liste des paramètres %s : erreur interne.

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47015
FRM-47015 : Suppression impossible du paramètre %s de la liste de paramètres : ID de liste non valide.

Cause :	Vous avez indiqué un ID de liste de paramètres non valide.

Action :	Vérifiez l'ID de la liste de paramètres, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47016
FRM-47016 : Suppression de paramètre de la liste de paramètres %s impossible : clé non renseignée.

Cause :	Vous n'avez indiqué aucun nom pour le paramètre.

Action :	Corrigez l'appel à DELETE_PARAMETER en indiquant un nom de paramètre.

Niveau :	99

Type :	Erreur


FRM-47017
FRM-47017 : Suppression impossible du paramètre %s de la liste des paramètres %s : aucun paramètre de ce nom existe.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un nom de paramètre qui n'existe pas.

Action :	Vérifiez le nom du paramètre, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47018
FRM-47018 : Définition impossible des attributs du paramètre %s dans la liste de paramètres %s : erreur interne.

Cause :	Erreur interne : vous avez indiqué un ID de liste de paramètres non valide.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47019
FRM-47019 : Définition impossible des attributs du paramètre %s dans la liste de paramètres : ID de liste non valide.

Cause :	Vous avez indiqué un ID de liste de paramètres non valide.

Action :	Vérifiez l'ID de la liste de paramètres, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47020
FRM-47020 : Définition impossible des attributs du paramètre %s dans la liste de paramètres %s : paramètre inexistant.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un nom de paramètre qui n'existe pas.

Action :	Vérifiez le nom du paramètre, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47021
FRM-47021 : Le paramètre %s n'existe pas sous ce nom dans la liste de paramètres %s.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un nom de paramètre qui n'existe pas.

Action :	Vérifiez le nom, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47022
FRM-47022 : Création impossible de la liste de paramètres %s : ce nom est un mot réservé.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un nom qui est un mot réservé.

Action :	Indiquez un autre nom pour la liste de paramètres.

Niveau :	99

Type :	Erreur


FRM-47023
FRM-47023 : Le paramètre %s n'existe pas sous ce nom dans l'application Forms %s.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un nom de paramètre qui n'existe pas.

Action :	Vérifiez le nom, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47024
FRM-47024 : Le type du paramètre %s ne correspond pas à la définition de l'application Forms %s.

Cause :	Vous avez indiqué un type de paramètre qui ne correspond pas à la définition figurant dans l'application Forms.

Action :	Indiquez un type de paramètre qui correspond à la définition de l'application Forms.

Niveau :	99

Type :	Erreur


FRM-47025
FRM-47025 : Extraction des attributs du paramètre %s impossible à partir de la liste de paramètres %s : erreur interne.

Cause :	Erreur interne : vous avez indiqué un ID de liste de paramètres non valide.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47026
FRM-47026 : Extraction des attributs du paramètre %s impossible à partir de la liste de paramètres %s : param. inexistant.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un nom de paramètre qui n'existe pas.

Action :	Vérifiez le nom, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47027
FRM-47027 : Ajout impossible du paramètre %s à la liste de paramètres %s : clé indiquée non valide.

Cause :	Vous avez indiqué un ID de liste de paramètres non valide.

Action :	Vérifiez le nom, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47028
FRM-47028 : Définition impossible des attributs du paramètre %s dans la liste de paramètres %s : groupe %s inexistant.

Cause :	Vous avez indiqué un ID de liste de paramètres non valide.

Action :	Vérifiez le nom, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47029
FRM-47029 : ID de liste de paramètres non valide dans l'application Forms %s.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un nom de paramètre qui n'existe pas.

Action :	Vérifiez l'ID, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47030
FRM-47030 : Valeur du paramètre %s trop longue pour définition dans l'appli. Forms %s.

Cause :	Vous avez indiqué un paramètre trop long.

Action :	Indiquez un paramètre valide.

Niveau :	99

Type :	Erreur


FRM-47031
FRM-47031 : Définition impossible de la valeur du paramètre %s dans la liste de paramètres par défaut : valeur indiquée non valide.

Cause :	Erreur de conception de l'application. Une procédure interne (telle que SET_PARAMETER_ATTR) a tenté de définir la valeur d'un paramètre défini lors de la conception de l'application Forms, mais la valeur indiquée n'est pas autorisée pour le type de données du paramètre.

Action :	L'appel à la procédure interne doit être modifié ou supprimé.

Niveau :	99

Type :	Erreur


FRM-47032
FRM-47032 : Définition impossible de la valeur du paramètre %s dans la liste de paramètres par défaut : erreur interne.

Cause :	Une erreur interne s'est produite lors d'une tentative de définition de la valeur d'un paramètre.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47033
FRM-47033 : Définition impossible de la valeur de la variable de lien de lecture seule %s.

Cause :	Erreur de conception de l'application. L'application a tenté d'attribuer une valeur à une variable de lien qui ne peut pas être modifiée par programme.

Action :	L'attribution doit être supprimée.

Niveau :	25

Type :	Erreur


FRM-47100
FRM-47100 : Lecture impossible du fichier image %s.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Form Builder n'est pas parvenu à trouver ou à ouvrir le fichier.

3. Les données du fichier ne sont pas dans le format indiqué.

Action :	Vérifiez le nom du fichier et son format, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47101
FRM-47101 : Ecriture impossible sur fichier image %s.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Form Builder n'est pas parvenu à trouver ou à ouvrir le fichier.

3. Les données du fichier ne sont pas dans le format indiqué.

Action :	Vérifiez le nom du fichier et assurez-vous que vous disposez du droit d'écriture.

Niveau :	99

Type :	Erreur


FRM-47102
FRM-47102 : Opération %s impossible sur les images %s et %s.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Cette opération ne peut pas être effectuée sur des images en couleurs.

Action :	Vérifiez que les deux images sont en noir et blanc.

Niveau :	99

Type :	Erreur


FRM-47103
FRM-47103 : Impossible de faire un zoom sur l'image %s.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Erreur multimédia interne due à une tentative de zoom sur des données d'images nulles ou non valides.

Action :	Vérifiez le nom de l'image sur laquelle vous voulez effectuer un zoom, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47104
FRM-47104 : Type d'image %s non valide.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Les données du fichier indiqué ne correspondent pas au type de données indiqué.

Action :	Vérifiez le nom du fichier, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47105
FRM-47105 : Aucun nom d'image indiqué.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous n'avez pas indiqué de nom pour l'appel à la procédure interne.

Action :	Pour la syntaxe appropriée concernant la procédure interne en question, reportez-vous à la documentation.

Niveau :	99

Type :	Erreur


FRM-47106
FRM-47106 : Aucun type d'image indiqué.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous n'avez pas indiqué de type d'image en appelant READ_IMAGE_FILE ou WRITE_IMAGE_FILE.

Action :	Indiquez un type d'image comme argument dans votre appel à READ_IMAGE_FILE ou à WRITE_IMAGE_FILE.

Niveau :	99

Type :	Erreur


FRM-47107
FRM-47107 : Facteur d'échelle %d non valide pour Image_Zoom.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un facteur d'échelle non valide.

Action :	Corrigez l'appel à IMAGE_ZOOM.

Niveau :	20

Type :	Erreur


FRM-47108
FRM-47108 : L'élément %s n'est pas un élément Image.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez tenté d'effectuer une opération d'image sur un élément qui n'est pas un élément image.

Action :	Vérifiez le nom de l'élément, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47109
FRM-47109 : Localisation impossible du fichier image %s.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez indiqué un fichier introuvable ou inexistant.

Action :	Vérifiez que le fichier existe et que le chemin d'accès est exact.

Niveau :	20

Type :	Erreur


FRM-47110
FRM-47110 : Aucune région sélectionnée pour Image_Zoom : %s

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez tenté d'effectuer un zoom sur une image sans sélectionner aucune zone (région) de l'image.

Action :	Sélectionnez une zone de l'image.

Niveau :	20

Type :	Erreur


FRM-47111
FRM-47111 : Copie de la valeur impossible dans l'élément %s

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez tenté d'utiliser la procédure interne COPY sur un élément image.

Action :	Vous ne pouvez pas utiliser la procédure interne COPY sur un élément image.

Niveau :	20

Type :	Erreur


FRM-47200
FRM-47200 : L'élément %s n'est pas un élément Son.

Cause :	Causes possibles :

1. Vous avez indiqué un ID de liste de paramètres non valide.

2. Vous avez tenté d'effectuer une opération de son sur un élément qui n'est pas un élément son.

Action :	Vérifiez le nom de l'élément, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47201
FRM-47201 : Lecture impossible du son %s.

Cause :	Impossible d'exécuter le son de l'élément son indiqué. Le périphérique son est probablement occupé.

Action :	Interrompez les autres programmes émettant vers le périphérique son, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47202
FRM-47202 : Aucun nom de fichier son indiqué.

Cause :	Vous n'avez pas indiqué de nom de fichier pour l'appel à la procédure interne.

Action :	Pour la syntaxe appropriée concernant la procédure interne en question, reportez-vous à la documentation.

Niveau :	99

Type :	Erreur


FRM-47203
FRM-47203 : Localisation impossible du fichier son %s.

Cause :	Form Builder n'est pas parvenu à trouver le fichier indiqué dans READ_SOUND_FILE.

Action :	Vérifiez le nom du fichier, puis réessayez.

Niveau :	99

Type :	Erreur


FRM-47204
FRM-47204 : Lecture impossible du fichier son %s.

Cause :	Form Builder n'est pas parvenu à lire le fichier son, probablement parce que le type de fichier indiqué ne correspond pas à son contenu.

Action :	Vérifiez le contenu du fichier son.

Niveau :	99

Type :	Erreur


FRM-47205
FRM-47205 : Aucun type de son indiqué.

Cause :	Vous n'avez indiqué aucun type de son en appelant WRITE_SOUND_FILE.

Action :	Indiquez un type de son comme argument dans votre appel à WRITE_SOUND_FILE.

Niveau :	99

Type :	Erreur


FRM-47206
FRM-47206 : Ecriture impossible sur fichier son %s.

Cause :	Form Builder n'est pas parvenu à créer le fichier son. Les données sonores sont probablement corrompues.

Action :	Contactez le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47207
FRM-47207 : Dans la présente édition, Play_Sound ne peut être exécuté qu'avec l'élément courant.

Cause :	PLAY_SOUND a été appelé sur un élément autre que l'élément courant.

Action :	Placez le point d'insertion d'entrée dans l'élément son avant d'appeler PLAY_SOUND.

Niveau :	99

Type :	Erreur


FRM-47208
FRM-47208 : Création impossible d'un fichier son vide (%s)

Cause :	WRITE_SOUND_FILE a été appelé sur un élément son qui ne contient pas de données sonores.

Action :	Chargez des données sonores dans l'élément son avant d'appeler WRITE_SOUND_FILE.

Niveau :	99

Type :	Erreur


FRM-47300
FRM-47300 : L'élément n'est pas une arborescence %s

Cause :	Une procédure interne d'arborescence a été appelée sur un élément autre qu'une arborescence.

Action :	Vérifiez le type et le nom de l'élément.

Niveau :	99

Type :	Erreur


FRM-47301
FRM-47301 : Ajout impossible de données à la racine de l'arborescence en tant que noeuds de même père.

Cause :	ADD_TREE_DATA ou ADD_TREE_NODE a tenté d'ajouter des données à la racine de l'arborescence en tant que noeud de même père.

Action :	Ajoutez les données à un niveau inférieur de l'arborescence.

Niveau :	99

Type :	Erreur


FRM-47302
FRM-47302 : Des données ne peuvent être ajoutées à l'arborescence qu'en en tant que fils ou noeuds de même père.

Cause :	ADD_TREE_DATA ou ADD_TREE_NODE a tenté d'utiliser une valeur offset_type inconnue.

Action :	Seuls PARENT_OFFSET et SIBLING_OFFSET sont autorisés comme paramètres offset_type.

Niveau :	99

Type :	Erreur


FRM-47303
FRM-47303 : ADD_TREE_DATA n'accepte que des données d'un groupe ou d'une interrogation.

Cause :	ADD_TREE_DATA a tenté d'utiliser une valeur de source de données inconnue.

Action :	Seuls RECORD_GROUP et QUERY_TEXT sont autorisés comme paramètres de source de données.

Niveau :	99

Type :	Erreur


FRM-47304
FRM-47304 : Suppression impossible du noeud racine d'une arborescence.

Cause :	DELETE_TREE_NODE a tenté de supprimer le noeud racine.

Action :	Vérifiez si un noeud est la racine (utilisez ID_NULL) avant de tenter de le supprimer.

Niveau :	99

Type :	Erreur


FRM-47305
FRM-47305 : Vous ne pouvez rechercher que des libellés ou des valeurs dans une arborescence

Cause :	FIND_TREE_NODE a tenté d'utiliser une valeur inconnue de paramètre search_by.

Action :	Définissez le paramètre search_by à NODE_LABEL ou NODE_VALUE.

Niveau :	99

Type :	Erreur


FRM-47306
FRM-47306 : Le type de recherche doit être FIND_NEXT ou FIND_NEXT_CHILD.

Cause :	FIND_TREE_NODE a tenté d'utiliser une valeur non valide du paramètre search_by.

Action :	Définissez le paramètre search_type à FIND_NEXT ou FIND_NEXT_CHILD.

Niveau :	99

Type :	Erreur


FRM-47307
FRM-47307 : Accès impossible aux propriétés du noeud racine de l'arborescence.

Cause :	GET_TREE_NODE_PARENT ou GET_TREE_NODE_PROPERTY a tenté d'obtenir des informations à partir du noeud racine.

Action :	N'appelez les procédures internes que sur des noeuds valides.

Niveau :	99

Type :	Erreur


FRM-47308
FRM-47308 : Propriété non valide pour GET ou SET_TREE_NODE_PROPERTY.

Cause :	Vous avez transmis une constante de propriété non valide à GET ou SET_TREE_NODE_PROPERTY.

Action :	Vérifiez les arguments.

Niveau :	99

Type :	Erreur


FRM-47309
FRM-47309 : Propriété non valide pour GET ou SET_TREE_PROPERTY.

Cause :	Vous avez transmis une constante de propriété non valide à GET ou SET_TREE_PROPERTY.

Action :	Vérifiez les arguments.

Niveau :	99

Type :	Erreur


FRM-47310
FRM-47310 : Index de sélection incorrect pour GET_TREE_SELECTION.

Cause :	L'index de sélection doit être dans la plage de 1 .. nombre de noeuds sélectionnés.

Action :	Vérifiez que la sélection est comprise dans la plage requise.

Niveau :	99

Type :	Erreur


FRM-47311
FRM-47311 : Erreur lors du remplissage du groupe d'enregistrements.

Cause :	Indication d'un groupe d'enregistrements non valide pour POPULATE_GROUP_FROM_TREE.

Action :	Vérifiez l'existence du groupe d'enregistrements et vérifiez que le groupe d’enregistrements n'est pas statiquement défini.

Niveau :	99

Type :	Erreur


FRM-47312
FRM-47312 : Erreur interne lors du remplissage du groupe d'enregistrements.

Cause :	Erreur interne lors de POPULATE_GROUP_FROM_TREE. Notez que certaines lignes ont peut-être déjà été ajoutées.

Action :	Impossible d'ajouter une ligne au groupe d'enregistrements.

Niveau :	99

Type :	Erreur


FRM-47313
FRM-47313 : Interrogation non valide pour l'arborescence..

Cause :	Impossible de créer des données d'arborescence valides à partir du texte d'interrogation indiqué.

Action :	Indiquez un nombre de colonnes et des types de données valides dans le texte de l'interrogation.

Niveau :	99

Type :	Erreur


FRM-47314
FRM-47314 : Définition impossible des propriétés du noeud racine de l'arborescence.

Cause :	SET_TREE_NODE_PROPERTY a tenté de définir une propriété du noeud racine.

Action :	N'appelez la procédure interne que sur des noeuds valides.

Niveau :	99

Type :	Erreur


FRM-47315
FRM-47315 : Valeur de paramètre non valide pour SET_TREE_NODE_PROPERTY.

Cause :	Recherchez la propriété de noeud racine à définir dans les valeurs de paramètres.

Action :	Corrigez la valeur de paramètre transmise à SET_TREE_NODE_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-47316
FRM-47316 : Les noeuds de branche sans enfants ne sont pas autorisés.

Cause :	Tentative de modification d'un noeud feuille en une branche. Cette arborescence ne permet pas les noeuds de branche vides.

Action :	Modifiez l'arborescence pour permettre des noeuds de branche vides ou ajoutez des enfants au noeud.

Niveau :	99

Type :	Erreur


FRM-47317
FRM-47317 : Les noeuds de feuille ne peuvent pas avoir d'enfants.

Cause :	Tentative de modification d’un noeud branche (noeud avec des enfants) en une feuille.

Action :	Supprimez les enfants du noeud avant de modifier son état.

Niveau :	99

Type :	Erreur


FRM-47318
FRM-47318 : Valeur de paramètre non valide pour SET_TREE_PROPERTY.

Cause :	Recherchez la propriété d'arborescence à définir dans les valeurs de paramètres.

Action :	Corrigez la valeur de paramètre transmise à SET_TREE_PROPERTY.

Niveau :	99

Type :	Erreur


FRM-47319
FRM-47319 : Sélection impossible du noeud racine de l'arborescence.

Cause :	SET_TREE_SELECTION a tenté de sélectionner le noeud racine.

Action :	N'appelez la procédure interne que sur des noeuds valides.

Niveau :	99

Type :	Erreur


FRM-47320
FRM-47320 : Type de sélection incorrect pour SET_TREE_SELECTION.

Cause :	SET_TREE_SELECTION a tenté d'utiliser une valeur non valide du paramètre selection_type.

Action :	Définissez le paramètre selection_type à SELECT_ON, SELECT_OFF ou SELECT_TOGGLE.

Niveau :	99

Type :	Erreur


FRM-47321
FRM-47321 : Données non valides utilisées pour remplir l'arborescence.

Cause :	ADD_TREE_DATA a tenté d'utiliser des données de format incorrect.

Action :	Vérifiez le nombre et le type des colonnes dans le groupe ou dans l'interrogation.

Niveau :	99

Type :	Erreur


FRM-47322
FRM-47322 : La source de données d'arborescence indiquée n'est pas un groupe d'enregistrements.

Cause :	La source de données de l'arborescence a été déclarée en tant que groupe d'enregistrements, mais ce n’en est pas un.

Action :	Vérifiez que l'ID ou le nom indiqué est celui d'un groupe d'enregistrements existant.

Niveau :	99

Type :	Erreur


FRM-47323
FRM-47323 : Aucun noeud sélectionné dans l'arborescence.

Cause :	Tentative d'obtenir un noeud sélectionné alors qu'aucun n'est sélectionné.

Action :	Vérifiez le nombre de noeuds sélectionnés avant de tenter d'en extraire un.

Niveau :	99

Type :	Erreur


FRM-47324
FRM-47324 : Affectation de mémoire impossible pour les arborescences.

Cause :	Impossible d'allouer de la mémoire aux structures d'arborescence internes. Arborescence détruite.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47325
FRM-47325 : Affectation de mémoire impossible pour un noeud d'arborescence.

Cause :	Impossible d'allouer de la mémoire à un noeud d'arborescence.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47333
FRM-47333 : Définition impossible de l'état demandé pour un noeud d'arborescence.

Cause :	Impossible de modifier l'état d'un noeud d'arborescence.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47334
FRM-47334 : Affectation de mémoire impossible pour le nom d'une icône de noeud d'arborescence.

Cause :	Impossible d'allouer de la mémoire à un nom d'icône de noeud d'arborescence.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47335
FRM-47335 : Localisation impossible d'une icône de noeud d'arborescence. (%s)

Cause :	Icône recherchée introuvable dans les emplacements standard.

Action :	Vérifiez que vos icônes de noeud d'arborescence se trouvent dans les bons répertoires.

Niveau :	99

Type :	Erreur


FRM-47336
FRM-47336 : Définition impossible de l'icône de noeud d'arborescence demandée.

Cause :	Impossible de définir l'icône de noeud d'arborescence demandée.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47337
FRM-47337 : La valeur d'un libellé de noeud d'arborescence ne peut pas être nulle.

Cause :	Tentative de définir un libellé de noeud d'arborescence à la valeur NULL.

Action :	Définissez le libellé à un valeur autre que NULL.

Niveau :	99

Type :	Erreur


FRM-47338
FRM-47338 : Affectation de mémoire impossible pour un libellé de noeud d'arborescence.

Cause :	Impossible d'allouer de la mémoire à un libellé de noeud d'arborescence.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47339
FRM-47339 : Définition impossible du libellé de noeud d'arborescence demandé.

Cause :	Impossible de définir le libellé de noeud d'arborescence demandé.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47340
FRM-47340 : Affectation de mémoire impossible pour une valeur de noeud d'arborescence.

Cause :	Impossible d'allouer de la mémoire à une valeur de noeud d'arborescence.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-47341
FRM-47341 : L'arborescence contient un trop grand nombre de noeuds.

Cause :	Seuls les noeuds MAX-SIGNED-4-BYTE, actuels et supprimés, sont autorisés dans une arborescence.

Action :	Diminuez le nombre de noeuds placés dans l'arborescence. Si vous ajoutez et retirez constamment des noeuds, vous devez effacer l'arborescence et la remplir à nouveau.

Niveau :	99

Type :	Erreur


FRM-47342
FRM-47342 : Affectation de mémoire impossible pour le texte d'interrogation d'arborescence.

Cause :	Impossible d'allouer de la mémoire à un texte d'interrogation d'arborescence.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.

Niveau :	99

Type :	Erreur


FRM-99999
FRM-99999 : Erreur %d. Reportez-vous au fichier relnotes pour plus d'informations sur cette erreur.

Cause :	Une erreur s'est produite.

Action :	Reportez-vous au fichier relnotes.


FRM-30004
FRM-30004 : Vous devez indiquer un nom de module.

Cause :	Vous n'avez indiqué aucun nom de module, ou celui indiqué ne peut être utilisé.

Action :	Entrez un nom de module valide.


FRM-30009
FRM-30009 : Aucun bloc entré.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30012
FRM-30012 : Un bloc doit contenir au minimum un élément.

Cause :	Vous n'avez entré aucun élément dans le bloc.

Action :	Entrez des éléments dans le bloc ou recréez-le.


FRM-30013
FRM-30013 : L'élément %s n'existe pas dans le bloc %s.

Cause :	Vous avez référencé un élément qui n'existe pas dans le bloc courant.

Action :	Vérifiez le nom de l'élément, puis effectuez l'une des actions suivantes :

1. Supprimez la référence à l'élément.

2. Corrigez le nom de l'élément.


FRM-30014
FRM-30014 : Le bloc %s n'existe pas.

Cause :	Vous avez référencé un bloc qui n'existe pas dans l'application Forms courante.

Action :	Vérifiez le nom du bloc, puis effectuez l'une des actions suivantes :

1. Supprimez la référence au bloc.

2. Corrigez le nom du bloc.


FRM-30015
FRM-30015 : Nom d'élément %s ambigu.

Cause :	Vous avez entré un nom d'élément qui se trouve dans plusieurs blocs.

Action :	Pour que le nom de l'élément soit unique, indiquez le nom du bloc selon le format nom_bloc.nom_élément (par exemple, EMP.SALAIRE).


FRM-30016
FRM-30016 : L'élément %s n'existe pas.

Cause :	Vous avez référencé un élément qui n'existe pas dans l'application Forms courante.

Action :	Vérifiez le nom de l'élément, puis effectuez l'une des actions suivantes :

1. Supprimez la référence à l'élément.

2. Corrigez le nom de l'élément.


FRM-30018
FRM-30018 : Erreur interne : affectation de mémoire impossible.

Cause :	La mémoire est probablement saturée ou corrompue.

Action :	Contactez votre administrateur de bases de données.


FRM-30020
FRM-30020 : Erreur interne : affectation de contexte VGS impossible.

Cause :	Une erreur s'est produite lors de la tentative d'affectation de contexte VGS pour l'éditeur de présentation.

Action :	Contactez le Support technique Oracle.


FRM-30021
FRM-30021 : Erreur interne : génération impossible des informations standard VGS.

Cause :	Erreur interne causée par des données standard corrompues.

Action :	Contactez le Support technique Oracle.


FRM-30028
FRM-30028 : Clause WHERE trop longue.

Cause :	L'instruction SQL que vous avez entrée dans un déclencheur V2 est trop longue.

Action :	Réduisez la longueur de l'instruction (longueur maximum : 4096 caractères).


FRM-30029
FRM-30029 : Fenêtre %s introuvable.

Cause :	La fenêtre est attribuée à une fenêtre père non valide.

Action :	Attribuez la fenêtre à une fenêtre père valide.


FRM-30032
FRM-30032 : Le nombre d'enregistrements affiché doit être compris entre 1 et 255.

Cause :	Le nombre d'enregistrements affichés n'appartient pas à la plage valide. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30033
FRM-30033 : Les enregistrements mis en tampon doivent être supérieurs aux enregistrements affichés.

Cause :	Le nombre d'enregistrements mis en tampon n'est pas supérieur au nombre d'enregistrements affichés. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30040
FRM-30040 : Type d'élément non valide.

Cause :	Vous avez entré un type d'élément non valide. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30041
FRM-30041 : De par sa position, l'élément se trouve hors du canevas.

Cause :	Vous avez indiqué des coordonnées Y non valides pour l'élément.

Action :	Indiquez des coordonnées qui se trouvent à l'intérieur d'un canevas.


FRM-30042
FRM-30042 : La longueur de l'élément doit être comprise entre 1 et 133.

Cause :	La longueur d'élément que vous avez entrée n'appartient pas à la plage valide. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30043
FRM-30043 : La longueur de l'élément doit être comprise entre 1 et 255.

Cause :	La longueur d'élément que vous avez entrée n'appartient pas à la plage valide. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30044
FRM-30044 : La longueur d'affichage doit être comprise entre 1 et 133, sans dépasser la longueur.

Cause :	La longueur d'élément que vous avez entrée n'appartient pas à la plage valide. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30045
FRM-30045 : La longueur d'interrogation doit être 0 (valeur par défaut) ou supérieure à la longueur réelle.

Cause :	Vous avez entré une longueur d'interrogation non valide. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30046
FRM-30046 : Erreur interne : impossible de moduler le pointeur.

Cause :	Une erreur interne de compilation s'est produite.

Action :	Contactez le Support technique Oracle.


FRM-30047
FRM-30047 : Traduction impossible de la référence de l'élément %s.

Cause :	L'élément référencé n'existe pas.

Action :	Modifiez la référence ou créez l'élément.


FRM-30048
FRM-30048 : Groupe d'enregistrements %s introuvable.

Cause :	Le groupe d'enregistrements indiqué dans l'objet LOV ou arborescence n'est pas valide.

Action :	Vérifiez le nom ou l'ID de groupe d'enregistrements indiqué.


FRM-30049
FRM-30049 : Impossible de générer le mappage des colonnes.

Cause :	La référence aux colonnes de groupe d'enregistrements à l'intérieur de l'objet LOV est introuvable.

Action :	Vérifiez les noms de colonnes indiqués dans l'objet LOV.


FRM-30051
FRM-30051 : Erreur interne : impossible de préparer des tas en vue de la sortie.

Cause :	Une erreur interne de compilation s'est produite.

Action :	Contactez le Support technique Oracle.


FRM-30052
FRM-30052 : L'attribut visuel nommé %s n'existe pas.

Cause :	Vous avez affecté à un objet un nom d'attribut visuel non défini.

Action :	Vérifiez le nom de l'attribut visuel, puis essayez à nouveau.


FRM-30053
FRM-30053 : Impossible de créer un attribut visuel sans nom.

Cause :	Erreur interne ou erreur d'affectation de mémoire.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30054
FRM-30054 : Canevas %s introuvable.

Cause :	Vous avez indiqué un nom ou un ID de canevas non valide.

Action :	Vérifiez le nom ou l'ID de canevas, puis essayez à nouveau.


FRM-30056
FRM-30056 : Attention! L'invite associée à l'élément %s.%s a été tronquée.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30057
FRM-30057 : Longueur maximum pour groupe d'enregistrements dépassée.

Cause :	Vous avez indiqué trop de colonnes.

Action :	N'ajoutez pas de colonne supplémentaire à ce groupe d'enregistrements.


FRM-30058
FRM-30058 : Le nom de la colonne %s du groupe d'enregistrements n'est pas valide.

Cause :	Vous avez indiqué un nom de colonne non valide.

Action :	Vérifiez le nom de colonne, puis essayez à nouveau.


FRM-30059
FRM-30059 : Le nom de colonne %s existe déjà.

Cause :	Vous avez indiqué un nom de colonne qui existe déjà.

Action :	Indiquez un nom de colonne unique.


FRM-30060
FRM-30060 : Impossible de créer le descripteur de colonne %s.

Cause :	Erreur interne ou erreur d'affectation de mémoire.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30061
FRM-30061 : Impossible de supprimer la clause INTO de l'instruction %s.

Cause :	Erreur de substitution de variable de lien : une instruction SELECT n'est pas autorisée dans une LOV ou un groupe d'enregistrements.

Action :	Vérifiez la syntaxe de l'instruction SELECT et ajoutez la clause INTO.


FRM-30062
FRM-30062 : Impossible d'effectuer une substitution de variable de lien pour l'instruction %s.

Cause :	La variable de lien référencée n'existe pas.

Action :	Créez la variable ou corrigez la référence.


FRM-30063
FRM-30063 : Impossible d'ouvrir le curseur pour analyse de l'interrogation du groupe d'enreg. %s.

Cause :	Vous avez probablement perdu la connexion avec la base de données.

Action :	Vérifiez la connexion avec la base de données ou contactez votre administrateur de bases de données.


FRM-30064
FRM-30064 : Impossible d'analyser l'instruction %s.

Cause :	Erreur de syntaxe dans l'instruction SELECT à l'intérieur d'un LOV ou d'un groupe d'enregistrements.

Action :	Vérifiez l'instruction et ajoutez la clause FROM.


FRM-30065
FRM-30065 : Le type de colonne %d n'est pas pris en charge.

Cause :	Le type de colonne indiqué n'était ni CHAR, ni NUMBER, ni DATE.

Action :	Indiquez un type de colonne pris en charge par Form Builder.


FRM-30069
FRM-30069 : Nom de déclencheur non valide.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30081
FRM-30081 : Instruction SQL trop longue.

Cause :	Vous avez entré une instruction SQL (dans un déclencheur V2) qui dépasse la longueur autorisée.

Action :	Réduisez la longueur de l'instruction à un maximum de 4096 caractères.


FRM-30082
FRM-30082 : Seules les instructions SELECT sont autorisées dans les déclencheurs de non-validation.

Cause :	Le déclencheur contient une instruction SQL autre qu'une instruction SELECT.

Action :	Déplacez cette instruction dans un déclencheur où les instructions SQL autres que SELECT sont valides.


FRM-30083
FRM-30083 : Editeur %s introuvable.

Cause :	Le nom d'éditeur référencé n'existe pas.

Action :	Créez l'éditeur ou supprimez la référence.


FRM-30084
FRM-30084 : LOV %s introuvable.

Cause :	Le nom de LOV référencé n'existe pas.

Action :	Indiquez un autre nom de LOV ou supprimez la référence.


FRM-30085
FRM-30085 : Impossible de moduler l'application Forms en vue de sa sortie.

Cause :	Erreur interne ou erreur d'affectation de mémoire.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30087
FRM-30087 : Impossible de créer le fichier d'application Forms %s.

Cause :	Vous ne possédez pas les droits nécessaires sur le répertoire indiqué, ou l'espace disque disponible est insuffisant.

Action :	Contactez votre administrateur de bases de données pour vérifier que vous disposez des droits d'accès nécessaires.


FRM-30089
FRM-30089 : Pages trop nombreuses.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30090
FRM-30090 : Trop d'éléments standard.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30091
FRM-30091 : Trop d'étapes de déclencheur.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30092
FRM-30092 : Trop de plages.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30093
FRM-30093 : Trop de déclencheurs.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30094
FRM-30094 : Trop de pointeurs d'élément.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30096
FRM-30096 : Impossible de créer le fichier de sortie de l'application Forms %s.

Cause :	Une erreur du système d'exploitation a empêché Form Builder de créer un fichier de sortie.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30100
FRM-30100 : Le bloc doit comprendre un élément Clé primaire au minimum.

Cause :	Un élément au moins doit être marqué comme faisant partie de la clé primaire si l'une des conditions suivantes est vraie :

1. Le mode clé pour le bloc est soit UPDATEABLE_PRIMARY_KEY soit NON_UPDATEABLE_PRIMARY_KEY.

2. Le mode clé pour le bloc est AUTOMATIQUE, mais la source de données à laquelle vous êtes connecté ne prend pas en charge le mode clé UNIQUE.

Action :	Marquez un des éléments comme faisant partie de la clé primaire et relancez la compilation.


FRM-30101
FRM-30101 : Trop de chaînes.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30102
FRM-30102 : Impossible d'écrire le fichier de sortie dans sa totalité.

Cause :	Une erreur du système d'exploitation a empêché Form Builder de créer un fichier de sortie.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30109
FRM-30109 : L'élément %s.%s est à la fois justifié à droite et déroulant.

Cause :	Un élément peut être déroulant ou justifié à droite, mais pas les deux.

Action :	Définissez l'élément comme étant déroulant ou justifié à droite.


FRM-30110
FRM-30110 : Entrer Y, *Y, **Y, N, *N, ou **N.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30112
FRM-30112 : Attention ! %s se traduit en un élément dans un PARAMETRE de bloc.

Cause :	Vous avez pointé sur un champ et non sur un paramètre.

Action :	Vérifiez que c'est bien votre intention.


FRM-30113
FRM-30113 : Le bloc doit comprendre un élément de base de données qui n'est pas en mode Interrogation seulement.

Cause :	Un bloc autorisant la mise à jour et l'insertion doit comprendre au moins un élément dérivé de la base de données.

Action :	Créez un élément dérivé dans le bloc.


FRM-30118
FRM-30118 : Impossible de créer le fichier de messages d'avertissement %s.

Cause :	Une erreur du système d'exploitation a empêché Form Builder de créer le fichier de messages d'avertissement.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30119
FRM-30119 : Messages d'erreur et d'avertissement écrits dans le fichier %s.

Cause :	Erreur de compilation.

Action :	Consultez les messages d'erreur et d'avertissement consignés dans le fichier indiqué.


FRM-30120
FRM-30120 : Les macros Version 1 %s ne sont plus supportées.

Cause :	Vous avez utilisé une macro Forms version 1.0 (#MACRO, #MACROIF ou #KEY) qui n'est plus prise en charge par les versions récentes de Form Builder.

Action :	Remplacez la macro par son équivalent dans la version récente.


FRM-30121
FRM-30121 : Erreur dans la clause INTO ou absence de clause FROM.

Cause :	Un déclencheur style V2 contient une instruction SQL non valide.

Action :	Corrigez l'instruction SQL.


FRM-30122
FRM-30122 : Numéro de ligne non valide.

Cause :	Une coordonnée Y non valide a été indiquée pour un élément. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30123
FRM-30123 : Numéro de colonne non valide.

Cause :	Une coordonnée X non valide a été indiquée pour un élément. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30124
FRM-30124 : Trop de procédures.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30125
FRM-30125 : Mémoire d'unité de bibliothèque trop importante.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30129
FRM-30129 : Erreur de compilation de la procédure %s : définition de procédure incorrecte.

Cause :	Vous avez tenté de compiler une procédure contenant une définition non valide.

Action :	Corrigez la définition de procédure.


FRM-30130
FRM-30130 : Le code indiqué pour le déclencheur %s n'est pas un bloc anonyme.

Cause :	Vous avez entré un texte de déclencheur qui n'est pas un bloc anonyme.

Action :	Récrivez le déclencheur pour en faire un bloc anonyme.


FRM-30131
FRM-30131 : Référence de paramètre non valide dans le déclencheur %s.

Cause :	Vous avez entré un texte de déclencheur qui fait référence à des paramètres.

Action :	Supprimez les références de paramètres dans le déclencheur. Conseil : pour utiliser des paramètres, écrivez une procédure de niveau application Forms.


FRM-30132
FRM-30132 : Le code indiqué pour le déclencheur %s n'est pas exécutable.

Cause :	Vous avez entré un texte de déclencheur qui n'est pas exécutable.

Action :	Récrivez le déclencheur.


FRM-30133
FRM-30133 : Erreur de compilation du déclencheur %s.

Cause :	Vous avez entré un texte de déclencheur non valide.

Action :	Affichez les erreurs de compilation à l'écran.


FRM-30134
FRM-30134 : Procédure %s : noms de procédure et d'unité non concordants.

Cause :	Le nom de la procédure ne correspond pas à celui défini dans le texte de la procédure.

Action :	Faites en sorte que les deux noms correspondent.


FRM-30135
FRM-30135 : Le code indiqué pour la procédure %s ne correspond pas à une unité nommée.

Cause :	Vous avez entré un bloc anonyme au lieu d'une procédure de niveau application Forms.

Action :	Récrivez la procédure de niveau application Forms.


FRM-30136
FRM-30136 : Le code indiqué pour la procédure %s n'est pas exécutable.

Cause :	Vous avez entré du code non exécutable pour la procédure de niveau application Forms indiquée.

Action :	Récrivez la procédure de niveau application Forms.


FRM-30137
FRM-30137 : Erreur de compilation de la procédure %s.

Cause :	Vous avez entré une procédure de niveau application Forms non valide.

Action :	Reportez-vous à l'écran des erreurs de compilation.


FRM-30145
FRM-30145 : Trop de variables de lien.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30148
FRM-30148 : Mémoire tampon trop importante.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30149
FRM-30149 : LOV trop nombreuses.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30150
FRM-30150 : Elément %s.%s : erreur dans le texte de la LOV.

Cause :	Vous avez indiqué une instruction SQL non valide dans la LOV.

Action :	Récrivez l'instruction SQL.


FRM-30152
FRM-30152 : Connexion impossible à la base de données.

Cause :	Erreur système interne.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30156
FRM-30156 : Fermeture impossible du fichier de sortie %s.

Cause :	Une erreur du système d'exploitation a empêché Form Builder de fermer un fichier de sortie.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30157
FRM-30157 : La longueur de l'élément LONG doit être compris entre 1 et 65534.

Cause :	La longueur de l'élément LONG n'appartient pas à la plage valide. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30158
FRM-30158 : La longueur d'affichage doit être comprise entre 0 et 133.

Cause :	La longueur d'affichage n'appartient pas à la plage valide. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30159
FRM-30159 : L'instruction de déclencheur ne contient pas de texte.

Cause :	Une étape vide de déclencheur a été détectée. Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-30161
FRM-30161 : Relation incohérente entre la fenêtre %s et son canevas primaire %s.

Cause :	La fenêtre ne correspond pas à la propriété de fenêtre de son canevas primaire.

Action :	Vérifiez la propriété de canevas primaire de la fenêtre ou la propriété de fenêtre du canevas.


FRM-30162
FRM-30162 : Relation incohérente entre la fenêtre %s et sa barre d'outils horizontale %s.

Cause :	La fenêtre ne correspond pas à la propriété de fenêtre de sa barre d'outils horizontale.

Action :	Vérifiez la propriété de barre d'outils horizontale de la fenêtre ou la propriété de fenêtre de la barre d'outils.


FRM-30163
FRM-30163 : Relation incohérente entre la fenêtre %s et sa barre d'outils verticale %s.

Cause :	La fenêtre ne correspond pas à la propriété de fenêtre de sa barre d'outils verticale.

Action :	Vérifiez la propriété de barre d'outils verticale de la fenêtre ou la propriété de fenêtre de la barre d'outils.


FRM-30169
FRM-30169 : Vous devez indiquer un nom utilisateur et mot de passe.

Cause :	Vous n'avez pas indiqué votre nom utilisateur et votre mot de passe pour vous connecter à la base de données.

Action :	Indiquez votre nom utilisateur et votre mot de passe.


FRM-30170
FRM-30170 : Ce message d'alerte doit contenir au moins un bouton - %s.

Cause :	L'alerte ne contient aucun bouton.

Action :	Créez au moins un bouton pour l'alerte.


FRM-30172
FRM-30172 : Aucun élément de ce type.

Cause :	Vous avez indiqué un élément qui n'existe pas dans le groupe d'enregistrements référencé.

Action :	Corrigez la référence.


FRM-30173
FRM-30173 : Le module ne contient aucun canevas.

Cause :	Vous avez tenté de compiler un module Application Forms qui ne contient pas de canevas.

Action :	Définissez au moins un canevas pour le module Application Forms.


FRM-30174
FRM-30174 : Les valeurs Coché et Non coché des cases à cocher doivent être distinctes.

Cause :	Les valeurs des états Coché et Non coché de la case à cocher sont identiques.

Action :	Vérifiez les valeurs, puis essayez à nouveau.


FRM-30179
FRM-30179 : Bloc %s introuvable

Cause :	Le nom de bloc que vous avez indiqué n'existe pas.

Action :	Vérifiez le nom du bloc, puis essayez à nouveau.


FRM-30180
FRM-30180 : Le groupe de boutons d'option ne contient aucun bouton.

Cause :	Vous avez défini un groupe de boutons d'option sans aucun bouton.

Action :	Définissez au moins un bouton pour le groupe de boutons d'option.


FRM-30182
FRM-30182 : La longueur de l'élément Image doit être d'au moins 1024.

Cause :	La longueur maximum de l'image doit être supérieure à 1024.

Action :	Augmentez la taille de votre image jusqu'à la taille maximum.


FRM-30184
FRM-30184 : Autre valeur introuvable.

Cause :	L'autre valeur définie ne correspond à aucun des valeurs valides pour les chaînes d'étiquette.

Action :	Définissez une autre valeur valide.


FRM-30185
FRM-30185 : Le groupe d'enregistrements %s contient plus d'une colonne de type LONG.

Cause :	Un groupe d'enregistrements ne peut contenir qu'une seule colonne de type LONG.

Action :	Effectuez l'une des actions suivantes :

1. Supprimez toutes les colonnes de type LONG du groupe d'enregistrements, sauf une.

2. Changez le type de toutes les colonnes de type LONG du groupe d'enregistrements, sauf une.


FRM-30186
FRM-30186 : Le groupe d'enregistrements statique %s contient une colonne de type LONG.

Cause :	Les groupes d'enregistrements statiques ne peuvent pas contenir de colonnes de type LONG.

Action :	Effectuez l'une des actions suivantes :

1. Transformez le groupe en groupe d'enregistrements d'interrogation.

2. Changez le type de la colonne de type LONG.


FRM-30187
FRM-30187 : La taille de la colonne CHAR dans le groupe d'enregistrements doit être comprise entre 1 et 2000.

Cause :	La taille de la colonne caractère du groupe d'enregistrements a été indiquée de façon non valide.

Action :	Vérifiez que la taille des colonnes caractère du groupe d'enregistrements est comprise entre 1 et 2000


FRM-30188
FRM-30188 : Aucune valeur initiale n'a été donnée et d'autres valeurs ne sont pas autorisées (élément %s.%s).

Cause :	Aucune valeur initiale n'a été donnée pour l'élément.

Action :	Fournissez une valeur initiale pour l'élément.


FRM-30089
FRM-30089 : Classe de propriété %s introuvable.

Cause :	Erreur interne ORACLE.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30190
FRM-30190 : Aucun élément Liste n'a été défini pour la liste de sélection à créer.

Cause :	La liste de sélection que vous avez définie est vide.

Action :	Définissez des éléments dans la liste de sélection.


FRM-30191
FRM-30191 : Aucun élément Liste n'a été défini pour la liste instantanée obligatoire.

Cause :	La liste instantanée que vous avez définie est vide.

Action :	Définissez des éléments dans la liste instantanée.


FRM-30193
FRM-30193 : Elément JDATE %s.%s : masque de format non autorisé.

Cause :	Les masques de format ne sont valides que pour les éléments NUMBER, DATE, TIME et DATETIME.

Action :	Supprimez le masque de format de l'élément JDATE.


FRM-30195
FRM-30195 : Elément EDATE %s.%s : format de masque non autorisé.

Cause :	Les masques de format ne sont valides que pour les éléments NUMBER, DATE, TIME et DATETIME.

Action :	Supprimez le masque de format de l'élément EDATE.


FRM-30196
FRM-30196 : Trop de déclencheurs nommés par l'utilisateur.

Cause :	Vous avez défini trop de déclencheurs nommés par l'utilisateur ; l'application Forms ne dispose pas de suffisamment de mémoire à leur affecter.

Action :	Définissez moins de déclencheurs nommés par l'utilisateur.


FRM-30197
FRM-30197 : Ajout de ligne impossible au groupe d'enregistrements.

Cause :	Vous devez créer le groupe d'enregistrements et ajouter des colonnes avant de tenter d'ajouter des lignes.

Action :	Vérifiez que le groupe d'enregistrements que vous indiquez existe.


FRM-30199
FRM-30199 : Aucun déclencheur transactionnel n'a été défini pour ce bloc

Cause :	Vous avez référencé un déclencheur transactionnel, mais il n'en existe aucun pour ce module.

Action :	Créez le déclencheur ou supprimez la référence.


FRM-30201
FRM-30201 : Une erreur s'est produite au cours de l'évolution de l'application Forms.

Cause :	Une erreur s'est produite lors d'une conversion SQL*Forms 3.0 à Forms 4.5.

Action :	Consultez, le cas échéant, les messages accompagnant l'erreur, ou contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-30203
FRM-30203 : Absence d'élément dans le bloc %s.

Cause :	Vous avez tenté de compiler un module Application Forms contenant un bloc sans aucun élément.

Action :	Définissez des éléments pour le bloc.


FRM-30204
FRM-30204 : La longueur totale des données des éléments de ce bloc est trop grande.

Cause :	La longueur de champ de l'élément dépasse la limite autorisée.

Action :	Réduisez la longueur de champ de l'élément.


FRM-30205
FRM-30205 : Traduction impossible de la référence de paramètre %s.

Cause :	Le paramètre référencé est introuvable.

Action :	Déclarez le paramètre ou supprimez la référence.


FRM-30207
FRM-30207 : Elément Zone de liste déroulante %s.%s : la navigation à la souris doit être positionnée sur Oui.

Cause :	Dans une zone de liste déroulante, la propriété Navigation à la souris doit avoir pour valeur Oui.

Action :	Attribuez la valeur Oui à la propriété.


FRM-30209
FRM-30209 : Le module ne contient aucune fenêtre.

Cause :	Une fenêtre au moins doit être définie pour un module Application Forms.

Action :	Définissez une fenêtre pour le module Application Forms.


FRM-30305
FRM-30305 : Ouverture impossible du fichier de bibliothèque %s.

Cause :	Les propriétés du contrôle VBX ont été modifiées.

Action :	Redéfinissez les propriétés VBX.


FRM-30306
FRM-30306 : Enregistrement impossible de la bibliothèque %s.

Cause :	Les propriétés du contrôle VBX ont été modifiées.

Action :	Redéfinissez les propriétés VBX.


FRM-30307
FRM-30307 : Chargement impossible des procédures à partir de la bibliothèque.

Cause :	Les propriétés du contrôle VBX ont été modifiées.

Action :	Redéfinissez les propriétés VBX.


FRM-30308
FRM-30308 : Affectation de mémoire impossible.

Cause :	Les propriétés du contrôle VBX ont été modifiées.

Action :	Redéfinissez les propriétés VBX.


FRM-30309
FRM-30309 : Aucun code PL/SQL dans la bibliothèque.

Cause :	Les propriétés du contrôle VBX ont été modifiées.

Action :	Redéfinissez les propriétés VBX.


FRM-30311
FRM-30311 : Rattachement des bibliothèques impossible.

Cause :	Les propriétés du contrôle VBX ont été modifiées.

Action :	Redéfinissez les propriétés VBX.


FRM-30312
FRM-30312 : Echec de compilation de la bibliothèque.

Cause :	Les propriétés du contrôle VBX ont été modifiées.

Action :	Redéfinissez les propriétés VBX.


FRM-30213
FRM-30213 : La valeur de plage max. doit être supérieure à la valeur de plage min.

Cause :	La valeur de plage maximum des éléments texte doit être supérieure à la valeur de plage minimum.

Action :	Définissez une valeur de plage maximum supérieure à la valeur de plage minimum.


FRM-30351
FRM-30351 : Aucun élément de liste n'a été défini pour cet élément Liste.

Cause :	Une zone de liste déroulante doit contenir des éléments de liste.

Action :	Définissez des éléments pour la zone de liste déroulante.


FRM-30352
FRM-30352 : Nom d'élément miroir %s non valide pour l'élément %s.%s.

Cause :	Un nom d'élément miroir non valide a été défini pour l'élément.

Action :	Utilisez un nom d'élément miroir valide.


FRM-30353
FRM-30353 : Elément VBX : absence de fichier de contrôle VBX.

Cause :	Aucun nom de fichier de contrôle VBX indiqué.

Action :	Indiquez un nom de fichier de contrôle VBX dans Form Builder.


FRM-30354
FRM-30354 : Elément VBX : absence de nom de contrôle VBX.

Cause :	Aucun nom de contrôle VBX indiqué.

Action :	Indiquez un nom de contrôle VBX dans Form Builder.


FRM-30355
FRM-30355 : Elément %s : trop d'éléments miroir indiqués.

Cause :	Le nombre d'éléments miroir indiqué est supérieur à 100.

Action :	Vérifiez que vous ne dépassez pas le nombre maximum d'éléments miroir.


FRM-30356
FRM-30356 : Trop d'enregistrements affichés pour cet élément.

Cause :	Le nombre d'enregistrements affichés pour l'élément est supérieur au nombre d'enregistrements affichés pour le bloc.

Action :	Diminuez le nombre d'enregistrements affichés pour l'élément.


FRM-30357
FRM-30357 : Elément défini comme son propre élément miroir.

Cause :	Vous avez défini la propriété Elément miroir d'un élément sur l'élément lui-même.

Action :	Indiquez un autre élément valide pour la propriété Elément miroir.


FRM-30358
FRM-30358 : Elément miroir %s de l'élément indique déjà un élément miroir.

Cause :	Vous avez donné à la propriété Elément miroir d'un élément la valeur d'un élément qui indique également un élément miroir.

Action :	Indiquez un élément qui ne soit pas un élément miroir.


FRM-30359
FRM-30359 : L'élément indique un canevas  %s qui n'existe pas.

Cause :	Vous avez indiqué un canevas qui n'existe pas.

Action :	Indiquez un canevas valide.


FRM-30360
FRM-30360 : L'alerte ne comprend pas le bouton par défaut indiqué.

Cause :	Vous avez indiqué un bouton par défaut qui ne fait pas partie de la définition de l'alerte.

Action :	Indiquez une étiquette pour le bouton par défaut ou un bouton par défaut valide.


FRM-30361
FRM-30361 : Valeur initiale non valide pour la case à cocher.

Cause :	La valeur initiale que vous avez indiquée pour un élément case à cocher ne correspond pas aux valeurs des états Coché et Non coché.

Action :	Indiquez une valeur initiale valide.


FRM-30362
FRM-30362 : La valeur initiale ne correspond à aucune valeur de liste d'éléments disponible.

Cause :	La valeur que vous avez indiquée ne correspond à aucune valeur de liste d'éléments disponible.

Action :	Indiquez une valeur valide.


FRM-30363
FRM-30363 : La valeur initiale ne correspond à aucun des boutons d'option.

Cause :	La valeur que vous avez indiquée n'est associée à aucun bouton d'un groupe de boutons d'option.

Action :	Indiquez une valeur associée à un bouton du groupe de boutons d'option.


FRM-30364
FRM-30364 : Le champ Autres valeurs ne correspond à aucun des boutons d'option.

Cause :	La valeur que vous avez indiquée n'est ni un nom de bouton d'option, ni une valeur associée à un bouton d'un groupe de boutons d'option.

Action :	Indiquez le nom d'un bouton du groupe de boutons d'option ou une valeur associée à un bouton du groupe de boutons d'option.


FRM-30367
FRM-30367 : Un élément OLE ne peut pas faire référence à un élément miroir.

Cause :	Vous avez utilisé un élément OLE pour indiquer un élément miroir.

Action :	Les éléments OLE ne peuvent pas renvoyer à un élément miroir. Utilisez un autre élément pour ce faire.


FRM-30368
FRM-30368 : L'élément indique une page onglet %s qui n'existe pas.

Cause :	Vous avez indiqué un nom de page onglet non valide.

Action :	Vérifiez que le nom de page onglet existe dans le canevas onglet de cet élément.


FRM-30369
FRM-30369 : L'élément Menu instantané indique un sous-menu %s qui n'existe pas.

Cause :	Vous avez indiqué un nom de sous-menu non valide.

Action :	Vérifiez le nom du sous-menu, puis essayez à nouveau.


FRM-30370
FRM-30370 : Le menu instantané doit comprendre un élément au minimum.

Cause :	Le menu instantané ne contient aucun élément.

Action :	Ajoutez au moins un élément Menu au menu instantané.


FRM-30373
FRM-30373 : Type de commande non valide indiqué pour l'élément Menu instantané.

Cause :	Vous avez sélectionné un type de commande qui n'est pas valide pour les éléments Menu instantané.

Action :	Sélectionnez un type de commande valide pour les éléments Menu instantané.


FRM-30374
FRM-30374 : Type d'élément non valide indiqué pour l'élément Menu instantané.

Cause :	Vous avez sélectionné un type d'élément qui n'est pas valide pour les éléments Menu instantané.

Action :	Sélectionnez un type d'élément valide.


FRM-30375
FRM-30375 : Le type de données pour l'élément de récapitulation non Min/Max doit être numérique (Number).

Cause :	Un élément de récapitulation avec une fonction de récapitulation Count, Sum, Avg, Variance ou Stdev possède un type de données autre que numérique (Number).

Action :	Supprimez l'élément de récapitulation ou changez son type de données en Number.


FRM-30376
FRM-30376 : Le type de données pour l'élément de récapitulation Min/Max doit correspondre à celui de l'élément récapitulatif.

Cause :	Un élément de récapitulation avec une fonction de récapitulation Min ou Max possède un type de données qui ne correspond pas à celui de l'élément récapitulatif.

Action :	Supprimez l'élément de récapitulation ou changez son type de données afin qu'il corresponde à celui de l'élément récapitulatif.


FRM-30377
FRM-30377 : L'élément de récapitulation doit résider dans un bloc mono-enregistrement ou dans le même bloc que l'élément récapitulatif.

Cause :	Un élément de récapitulation réside dans un bloc différent de celui de l'élément récapitulatif, et la propriété Enregistrement unique du bloc de l'élément récapitulatif n'a pas pour valeur Oui.

Action :	Déplacez l'élément de récapitulation dans le bloc contenant l'élément récapitulatif ou dans un bloc dont la propriété Enregistrement unique a pour valeur Oui.


FRM-30378
FRM-30378 : L'élément récapitulatif ne doit pas être l'élément de récapitulation et ne doit pas résider dans un bloc mono-enregistrement.

Cause :	Un élément de récapitulation indique comme élément récapitulatif un des suivants :

1. Un autre élément de récapitulation.

2. Un élément dans un bloc dont la propriété Enregistrement unique a pour valeur Oui.

Action :	Supprimez l'élément de récapitulation ou faites en sorte qu'il récapitule un élément non récapitulatif dans un bloc dont la propriété Enregistrement unique a pour valeur Non.


FRM-30379
FRM-30379 : Le texte du message d'aide ne peut pas dépasser 255 caractères.

Cause :	Le texte du message d'aide de cet élément contient plus de 255 caractères.

Action :	Réduisez le nombre de caractères de ce texte.


FRM-30380
FRM-30380 : Il existe une chaîne circulaire d'éléments calculés dépendants :

Cause :	Il existe une chaîne circulaire d'éléments calculés qui fait que la valeur de chacun des éléments de la chaîne dépend de la valeur de l'élément suivant.

Les éléments de la chaîne sont répertoriés en dessous du message d'erreur.

Action :	Supprimez un élément de la chaîne ou modifiez un de ses éléments afin qu'il ne dépende d'aucun autre élément de la chaîne.

Dans le cas d'un élément formule, vous devez vous assurer que ni la formule ni une fonction ou procédure qu'elle appelle ne fait référence à aucun élément de la chaîne.

S'il s'agit d'un élément de récapitulation, vérifiez que l'élément qu'il récapitule n'appartient pas à la chaîne.


FRM-30390
FRM-30390 : Attention : Propriété Message d'aide non prise en compte dans l'élément calculé %s.%s.

Cause :	La propriété Message d'aide a été indiquée pour un élément calculé. Elle sera ignorée.

Action :	Aucune action requise.


FRM-30391
FRM-30391 : Attention : Propriété Copier valeur de l'élément non prise en compte dans l'élément calculé %s.%s.

Cause :	La propriété Copier valeur de l'élément a été indiquée pour un élément calculé. Elle sera ignorée.

Action :	Aucune action requise.


FRM-30392
FRM-30392 : Attention : Valeur initiale non prise en compte dans l'élément calculé %s.%s.

Cause :	La propriété Valeur initiale a été indiquée pour un élément calculé. Elle sera ignorée.

Action :	Aucune action requise.


FRM-30393
FRM-30393 : Attention : Valeur maximum autorisée non prise en compte dans l'élément calculé %s.%s.

Cause :	La propriété Valeur maximum autorisée a été indiquée pour un élément calculé. Elle sera ignorée.

Action :	Aucune action requise.


FRM-30394
FRM-30394 : Attention : Valeur minimum autorisée non prise en compte dans l'élément calculé %s.%s.

Cause :	La propriété Valeur minimum autorisée a été indiquée pour un élément calculé. Elle sera ignorée.

Action :	Aucune action requise.


FRM-30395
FRM-30395 : Autres valeurs obligatoire pour l'élément calculé.

Cause :	La propriété Correspondance d'autres valeurs n'a pas été indiquée pour un élément calculé tel que case à cocher, élément de liste ou groupe de boutons d'option.

Action :	Définissez la propriété Correspondance d'autres valeurs de l'élément.


FRM-30396
FRM-30396 : Fonction de récapitulation obligatoire pour l'élément de récapitulation.

Cause :	La propriété Fonction de récapitulation a été indiquée avec la valeur Aucun pour un élément de récapitulation.

Action :	Attribuez à la propriété Fonction de récapitulation une valeur autre que Aucun.


FRM-30397
FRM-30397 : Attention : Fonction de récapitulation non prise en compte dans l'élément de non récapitulation %s.%s.

Cause :	La propriété Fonction de récapitulation a été indiquée pour un élément qui n'est pas un élément de récapitulation. Elle sera ignorée.

Action :	Aucune action nécessaire. Pour empêcher la réapparition de ce message d'avertissement, attribuez à la propriété Fonction de récapitulation la valeur Aucun.


FRM-30398
FRM-30398 : Les propriétés Nom de bloc récapitulatif et Nom élément récapitulatif sont obligatoires pour les éléments récapitulatifs.

Cause :	Les propriétés Nom de bloc récapitulatif et Nom élément récapitulatif n'ont pas été définies pour un élément récapitulatif.

Action :	Indiquez les valeurs des propriétés.


FRM-30399
FRM-30399 : Attention : Nom d'élément récapitulatif non pris en compte pour l'élément non récapitulatif %s.%s.

Cause :	La propriété Nom de bloc récapitulatif ou Nom élément récapitulatif a été indiquée pour un élément qui n'est pas un élément récapitulatif. Elle sera ignorée.

Action :	Aucune action requise.


FRM-30400
FRM-30400 : Formule obligatoire pour l'élément de formule.

Cause :	La propriété Formule n'a pas été indiquée pour un élément formule.

Action :	Indiquez la propriété Formule.


FRM-30401
FRM-30401 : Attention ! Formule non prise en compte pour l'élément %s.%s qui n'est pas une formule.

Cause :	La propriété Formule a été indiquée pour un élément qui n'est pas un élément formule. Elle sera ignorée.

Action :	Aucune action nécessaire. Pour empêcher la réapparition de ce message d'avertissement, effacez la propriété Formule.


FRM-30402
FRM-30402 : L'élément calculé ne peut pas être un élément récepteur LOV.

Cause :	Un élément calculé est indiqué comme élément récepteur dans la correspondance des colonnes d'une LOV.

Action :	Supprimez l'élément récepteur ou indiquez un élément qui ne soit pas un élément calculé.


FRM-30403
FRM-30403 : L'élément calculé ne peut pas indiquer un élément miroir ou être indiqué comme un élément miroir.

Cause :	Un élément calculé indique un élément miroir ou est indiqué comme élément miroir par un autre élément du bloc.

Action :	Supprimez la propriété Elément miroir. Pour que deux éléments calculés soient effectivement le miroir l'un de l'autre, l'un des deux doit être un élément formule dont la formule est simplement ':', suivi du nom de l'autre élément calculé.


FRM-30404
FRM-30404 : Le type d'élément de l'élément récapitulatif ne doit pas être Bouton, Graphique, Image, Son ou Conteneur OLE.

Cause :	Un élément de récapitulation indique un élément récapitulatif de type Bouton, Graphique, Image, Son ou Conteneur OLE. De tels éléments ne possèdent aucune valeur associée et ne peuvent donc être récapitulés.

Action :	Supprimez l'élément de récapitulation ou faites en sorte que son élément récapitulatif soit un élément qui possèdent des valeurs associées.


FRM-30405
FRM-30405 : Le type de données pour l'élément récapitulatif Sum/Avg/Variance/Stddev doit être numérique (Number).

Cause :	Un élément de récapitulation dont la fonction de récapitulation est Sum, Avg, Variance ou Stdev indique un élément récapitulatif dont le type de données est autre que numérique (Number).

Action :	Supprimez l'élément de récapitulation ou donnez à son élément récapitulatif un type de données numérique.


FRM-30406
FRM-30406 : Le bloc avec tableau DML doit comporter des éléments Clé primaire obligatoires.

Cause :	La propriété Taille de tableau DML du bloc a une valeur supérieure à 1, mais aucun élément du bloc n'a sa propriété Clé primaire définie à Oui et l'une des conditions suivantes est vraie :

1. Le mode clé pour le bloc est soit UPDATEABLE_PRIMARY_KEY soit NON_UPDATEABLE_PRIMARY_KEY.

2. La source de données à laquelle vous êtes connecté ne prend pas en charge le mode clé UNIQUE

Action :	Effectuez l'une des actions suivantes :

1. Indiquez une clé primaire pour le bloc de données en attribuant la valeur Oui à la propriété Clé primaire d'un ou plusieurs éléments.

2. Attribuez la valeur 1 à la propriété Taille de tableau DML du bloc de données.


FRM-30407
FRM-30407 : Le bloc doit comporter un élément Base de données au minimum.

Cause :	Le module Application Forms contient un bloc de données sans éléments de base de données.

Action :	Définissez au moins un élément de base de données pour le bloc de données.


FRM-30408
FRM-30408 : Valeur non valide.

Cause :	La valeur entrée pour le type de données indiqué n'est pas valide.

Action :	Corrigez un ou plusieurs des points suivants :

1. Le type de données de l'argument correspondant à la valeur donnée dans la liste des arguments de la procédure indiquée.

2. La valeur de l'argument dans la liste des arguments de la procédure indiquée.


FRM-30409
FRM-30409 : La suppression du comportement d'enregistrement pour la relation n'est pas valide.

Cause :	La suppression du comportement d'enregistrement pour la relation est incompatible avec son bloc de données détail.

Action :	Modifiez un des points suivants :

1. La suppression du comportement d'enregistrement pour la relation.

2. Type de cible de données DML/Type de source de données d'interrogation du bloc de données détail (Si la suppression du comportement d'enregistrement pour la relation est en cascade, alors le Type de cible de données DML du bloc de données détail doit être Table. Si la suppression du comportement d'enregistrement pour la relation est isolée, le Type de source de données d'interrogation du bloc de données détail doit être Table.).


FRM-30410
FRM-30410 : Attention : Propriété Enregistrement unique non prise en compte dans le bloc de non contrôle %s.

Cause :	Un bloc indique la propriété Enregistrement unique avec la valeur Oui, mais indique également un Type de source de données d'interrogation ou un Type de cible de données DML..

Action :	Aucune action nécessaire. Pour empêcher la réapparition de ce message d'avertissement, attribuez la valeur Non à la propriété Enregistrement unique.


FRM-30411
FRM-30411 : Erreur d'affectation de mémoire. Recompilez l'application Forms en précisant compile_all=yes.

Cause :	Une affectation de mémoire a échoué lors du calcul des informations de dépendance d'un élément calculé.

Action :	Compilez le module Application Forms de l'une des façons suivantes :

1. En " autonome " (et non à partir de Form Builder), en indiquant que tout le code PL/SQL doit être compilé.

2. Sur une machine disposant d'une mémoire plus importante.

3. Sur une machine exécutant moins de tâches simultanées.


FRM-30413
FRM-30413 : La relation ne comporte pas de bloc détail.

Cause :	Une relation maître-détail n'indique aucun bloc détail.

Action :	Indiquez un bloc détail.


FRM-30414
FRM-30414 : Le bloc détail de la relation n'existe pas.

Cause :	Une relation maître-détail indique un bloc détail qui n'existe pas.

Action :	Indiquez un bloc détail existant.


FRM-30415
FRM-30415 : Le bloc détail de la relation est un bloc de contrôle.

Cause :	Une relation maître-détail indique un bloc détail qui est un bloc de contrôle.

Action :	Indiquez un bloc détail qui soit un bloc de base de données.


FRM-30416
FRM-30416 : Le bloc maître de la relation est un bloc de contrôle.

Cause :	Une relation maître-détail indique un bloc maître qui est un bloc de contrôle.

Action :	Indiquez un bloc maître qui soit un bloc de base de données.


FRM-30417
FRM-30417 : Le bloc détail et le bloc maître de la relation sont identiques.

Cause :	Une relation maître-détail indique un bloc détail identique au bloc maître.

Action :	Indiquez des blocs maître et détail différents.


FRM-30418
FRM-30418 : Le bloc contient trop d'éléments (plus de %d) pour la plate-forme actuelle.

Cause :	Le nombre d'éléments dans ce bloc dépasse le nombre maximum autorisé.

Action :	Utilisez moins d'éléments dans le bloc ou répartissez les éléments entre deux blocs ou davantage.


FRM-30419
FRM-30419 : La barre de défilement du bloc indique une page onglet %s qui n'existe pas.

Cause :	Une barre de défilement est affectée à une page onglet qui n'existe pas dans l'application Forms.

Action :	Vérifiez le nom de la page onglet et assurez-vous qu'elle existe dans le canevas propriétaire correspondant à cette barre de défilement.


FRM-30420
FRM-30420 : Compilation impossible du déclencheur QUERY-PROCEDURE.

Cause :	Les colonnes et/ou les arguments du déclencheur QUERY-PROCEDURE ne sont pas déclarés correctement.

Action :	Corrigez les définitions de colonne et/ou d'argument du déclencheur QUERY-PROCEDURE.


FRM-30421
FRM-30421 : Compilation impossible du déclencheur INSERT-PROCEDURE.

Cause :	Les colonnes et/ou les arguments du déclencheur INSERT-PROCEDURE ne sont pas déclarés correctement.

Action :	Corrigez les définitions de colonne et/ou d'argument du déclencheur INSERT-PROCEDURE.


FRM-30422
FRM-30422 : Compilation impossible du déclencheur UPDATE-PROCEDURE.

Cause :	Les colonnes et/ou les arguments du déclencheur UPDATE-PROCEDURE ne sont pas déclarés correctement.

Action :	Corrigez les définitions de colonne et/ou d'argument du déclencheur UPDATE-PROCEDURE.


FRM-30423
FRM-30423 : Compilation impossible du déclencheur DELETE-PROCEDURE.

Cause :	Les colonnes et/ou les arguments du déclencheur DELETE-PROCEDURE ne sont pas déclarés correctement.

Action :	Corrigez les définitions de colonne et/ou d'argument du déclencheur DELETE-PROCEDURE.


FRM-30424
FRM-30424 : Compilation impossible du déclencheur LOCK-PROCEDURE.

Cause :	Les colonnes et/ou les arguments du déclencheur LOCK-PROCEDURE ne sont pas déclarés correctement.

Action :	Corrigez les définitions de colonne et/ou d'argument du déclencheur LOCK-PROCEDURE.


FRM-30425
FRM-30425 : Un élément de base de données récapitulatif doit résider dans un bloc dont les propriétés Interroger tous les enregistrements ou Précalculer les récapitulatifs sont positionnées sur Oui.

Cause :	Un élément de récapitulation indique un élément récapitulatif qui est un élément de base de données appartenant à un bloc de base de données dont les propriétés Interroger tous les enregistrements et Précalculer les récapitulatifs ont toutes deux pour valeur Non.

Action :	Supprimez l'élément de récapitulation ou attribuez la valeur Oui aux propriétés Interroger tous les enregistrements et Précalculer les récapitulatifs du bloc de l'élément récapitulatif.


FRM-30426
FRM-30426 : Un élément de contrôle récapitulatif doit résider dans un bloc de contrôle ou dans un bloc avec Interroger tous les enregistrements positionné sur Oui.

Cause :	Un élément de récapitulation indique un élément récapitulatif qui est un élément de contrôle appartenant à un bloc de base de données dont la propriété Interroger tous les enregistrements a pour valeur Non.

Action :	Supprimez l'élément de récapitulation ou attribuez la valeur Non à la propriété Précalculer les récapitulatifs et la valeur Oui à la propriété Interroger tous les enregistrements du bloc de l'élément récapitulatif.


FRM-30427
FRM-30427 : Un élément de contrôle récapitulatif ne peut pas résider dans un bloc dont la propriété Précalculer les récapitulatifs est positionné sur Oui.

Cause :	Un élément de récapitulation indique un élément de contrôle récapitulatif appartenant à un bloc dont la propriété Précalculer les récapitulatifs a pour valeur Oui.

Action :	Supprimez l'élément de récapitulation ou attribuez la valeur Non à la propriété Précalculer les récapitulatifs et la valeur Oui à la propriété Interroger tous les enregistrements du bloc de l'élément récapitulatif.


FRM-30428
FRM-30428 : L'élément récapitulatif Min/Max ne peut pas résider dans un bloc dont la propriété Précalculer les récapitulatifs est positionnée sur Oui.

Cause :	Un élément de récapitulation avec une fonction de récapitulation Min ou Max indique un élément récapitulatif dans un bloc dont la propriété Précalculer les récapitulatifs a pour valeur Oui.

Action :	Supprimez l'élément de récapitulation ou attribuez la valeur Non à la propriété Précalculer les récapitulatifs et la valeur Oui à la propriété Interroger tous les enregistrements du bloc de l'élément récapitulatif.


FRM-30429
FRM-30429 : Un bloc avec Précalculer les récapitulatifs doit indiquer Table ou Clause From sous Type de source de données d'interrogation.

Cause :	La propriété Précalculer les récapitulatifs d'un bloc a pour valeur Oui, mais sa propriété Type de source de données d'interrogation a pour valeur Procédure ou Déclencheurs transactionnels.

Action :	Attribuez la valeur Non à la propriété Précalculer les récapitulatifs. Si le bloc contient des éléments récapitulatifs, attribuez la valeur Oui à la propriété Interroger tous les enregistrements.


FRM-30430
FRM-30430 : Attention : Le bloc %s indique Précalculer les récapitulatifs, mais le Mode isolation de l'application Forms n'est pas sérialisable.

Cause :	La propriété Précalculer les récapitulatifs d'un bloc a pour valeur Oui, mais le Mode isolation de l'application Forms n'est pas sérialisable.

Action :	Aucune action nécessaire. Cependant, l'homogénéité de lecture n'est pas garantie. Il est possible que les actions d'autres utilisateurs interviennent entre le moment où les récapitulatifs sont précalculés et celui où l'interrogation est lancée pour remplir le bloc. De telles actions peuvent empêcher la concordance entre la valeurs des éléments de récapitulation et le contenu du bloc.


FRM-30431
FRM-30431 : Attention : Le nom de la colonne %s existe déjà dans le bloc %s.

Cause :	Causes possibles :

Il existe plusieurs éléments portant le même nom de colonne de base de données.

Le nom de colonne d'un élément correspond au nom d'un élément dépourvu de nom de colonne.

Action :	Vérifiez que les noms de colonne de base de données des éléments sont uniques.


FRM-30432
FRM-30432 : Définition de procédure non complète.

Cause :	Les colonnes ou les arguments de la procédure ne sont pas indiqués.

Action :	Entrez les colonnes et les arguments dans la définition de la procédure.


FRM-30433
FRM-30433 : Une procédure d'interrogation ne doit comporter qu'un seul argument de type REFCURSOR/TABLE, et son mode doit être IN OUT.

Cause :	La définition de procédure d'interrogation présente l'une des caractéristiques suivantes :

1. Aucun argument de type TABLE/REFCURSOR.

2. Plusieurs arguments de type TABLE/REFCURSOR.

3. Un argument de type TABLE/REFCURSOR dont le mode n'est pas IN OUT.

Action :	Définissez les arguments comme suit :

1. Définissez un argument et un seul de type TABLE ou REFCURSOR.

2. Déclarez le mode IN OUT pour l'argument TABLE/REFCURSOR.


FRM-30434
FRM-30434 : L'argument de table dans la définition de procédure doit comporter un nom de type.

Cause :	Le nom de type de l'argument TABLE de la procédure indiquée n'a pas été entré.

Action :	Entrez le nom de type de l'argument TABLE de la procédure indiquée.


FRM-30435
FRM-30435 : Une procédure DML ne doit comporter qu'un seul argument de type TABLE, et son mode doit être IN ou IN OUT.

Cause :	La définition de procédure DML (Insert, Update, Delete, Lock) présente l'une des caractéristiques suivantes :

1. Aucun argument de type TABLE.

2. Plusieurs arguments de type TABLE.

3. Un argument de type TABLE dont le mode est OUT.

Action :	Définissez les arguments comme suit :

1. Définissez un argument et un seul de type TABLE.

2. Déclarez le mode IN ou IN OUT pour l'argument TABLE.


FRM-30436
FRM-30436 : Fenêtre parent non indiquée pour le canevas.

Cause :	Aucune fenêtre n'est indiquée pour contenir le canevas. Les résultats par défaut sont les suivants :

1. Dans Forms 4.0, le canevas est rattaché à la fenêtre principale.

2. Dans une application Forms 4.5, il se peut qu'il n'existe pas de fenêtre principale, et le canevas est automatiquement rattaché à la première fenêtre dans la hiérarchie du Navigateur objet.

3. Dans la version 5.0, il est possible de référencer les applications Forms et de contourner des propriétés telles Nom de fenêtre. C'est pourquoi vous devez toujours définir la propriété Nom de fenêtre du canevas.

Action :	Définissez la propriété Nom de fenêtre du canevas.


FRM-30437
FRM-30437 : Attention : Déclencheur POST-CHANGE non pris en charge pour l'élément miroir subordonné %s.%s.

Cause :	Un déclencheur POST-CHANGE a été indiqué pour un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, ce déclencheur est obtenu d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Indiquez le déclencheur POST-CHANGE pour l'élément miroir maître.


FRM-30438
FRM-30438 : Attention : Déclencheur WHEN-VALIDATE-ITEM non pris en charge pour l'élément miroir subordonné %s.%s.

Cause :	Un déclencheur WHEN-VALIDATE-ITEM a été indiqué pour un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, ce déclencheur est obtenu d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Indiquez le déclencheur WHEN-VALIDATE-ITEM pour l'élément miroir maître.


FRM-30439
FRM-30439 : Attention : Déclencheur ON-SEQUENCE-NUMBER non pris en charge pour l'élément miroir subordonné %s.%s.

Cause :	Un déclencheur ON-SEQUENCE-NUMBER a été indiqué pour un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, ce déclencheur est obtenu d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Indiquez le déclencheur ON-SEQUENCE-NUMBER pour l'élément miroir maître.


FRM-30440
FRM-30440 : Attention : Copier valeur depuis élément non pris en charge pour l'élément miroir subordonné %s.%s.

Cause :	La propriété Copier valeur depuis élément a été indiquée pour un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, cette propriété est obtenue d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Indiquez la propriété Copier valeur depuis pour l'élément miroir maître.


FRM-30441
FRM-30441 : Attention : Valeur initiale non prise en charge pour l'élément miroir subordonné %s.%s.

Cause :	La propriété Valeur initiale a été indiquée pour un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, cette propriété est obtenue d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Indiquez la propriété Valeur initiale pour l'élément miroir maître.


FRM-30442
FRM-30442 : Attention : Propriété Obligatoire non prise en charge pour l'élément miroir subordonné %s.%s.

Cause :	La propriété Obligatoire a été indiquée pour un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, cette propriété est obtenue d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Indiquez la propriété Obligatoire pour l'élément miroir maître.


FRM-30443
FRM-30443 : Attention : Valeur maximum autorisée non prise en charge pour l'élément miroir subordonné %s.%s.

Cause :	La propriété Valeur maximum autorisée a été indiquée pour un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, cette propriété est obtenue d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Indiquez la propriété Valeur maximum autorisée pour l'élément miroir maître.


FRM-30444
FRM-30444 : Attention : Valeur minimum autorisée non prise en charge pour l'élément miroir subordonné %s.%s.

Cause :	La propriété Valeur minimum autorisée a été indiquée pour un élément miroir subordonné. Le mode de compatibilité Runtime de l'application Forms étant 5.0, cette propriété est obtenue d'un élément miroir maître (l'élément indiqué par la propriété Synchroniser avec élément).

Action :	Indiquez la propriété Valeur minimum autorisée pour l'élément miroir maître.


FRM-30445
FRM-30445 : Lorsque vous utilisez la propriété Inclure l'élément REF, vous devez référencer la propriété Alias.

Cause :	La propriété Inclure l'élément REF est définie sur TRUE pour ce bloc, ce qui entraîne la création d'un nouvel élément masqué REF contenant l'ID objet du bloc. Le nom de la colonne de ce nouvel élément est 'REF(a)', où 'a' correspond à la valeur de la propriété Alias du bloc. La propriété Alias ne doit pas être NULL.

Action :	Indiquez une valeur autre que NULL pour la propriété Alias du bloc.


FRM-30446
FRM-30446 : Nom d'élément '%s' non valide.

Cause :	Le nom d'élément saisi n'est pas valide.

Action :	Supprimez les espaces dans le nom d'élément.


FRM-30453
FRM-30453 : La limite du nombre d'attributs visuels (255) est dépassée.

Cause :	L'application Forms contient plus de 255 attributs visuels nommés.

Action :	Diminuez le nombre d'attributs visuels nommés.


FRM-31601
FRM-31601 : Les options -e, -g, -m, -p, et -r s'excluent mutuellement.

Cause :	Vous avez indiqué plusieurs de ces options.

Action :	Ces options sont mutuellement exclusives ; vous ne pouvez pas les combiner.


FRM-31602
FRM-31602 : Aucun nom de module indiqué.

Cause :	Vous n'avez pas indiqué de nom de module.

Action :	Indiquez un nom de module.


FRM-31603
FRM-31603 : Aucun nom utilisateur à autoriser/révoquer.

Cause :	Vous avez tenté d'accorder ou de révoquer un accès à Form Builder, mais vous n'avez indiqué aucun utilisateur.

Action :	Exécutez à nouveau la commande en indiquant un nom d'utilisateur.


FRM-31605
FRM-31605 : Module %s inconnu.

Cause :	Vous avez tenté d'accéder à un module qui n'existe pas dans la base de données.

Action :	Vérifiez le nom du module et essayez à nouveau.


FRM-31606
FRM-31606 : Ouverture impossible du fichier %s.

Cause :	Les droits sont définis de façon incorrecte ou la bibliothèque que vous avez tenté d'ouvrir n'est pas valide.

Action :	Recompilez le module et essayez à nouveau.


FRM-31616
FRM-31616 : Attention ! Aucun élément n'est défini pour le menu %s.

Cause :	Vous générez un module dont un menu ne contient aucun élément.

Action :	Aucune action requise.


FRM-31626
FRM-31626 : Référence de menu partagé détectée dans le module Menu.

Cause :	Le module Menu que vous avez tenté de compiler contient des références de menu partagé (plus d'un élément de menu partageant le même sous-menu).

Action :	Définissez et utilisez des sous-menus séparés pour chaque élément de menu.


FRM-31627
FRM-31627 : Référence circulaire détectée dans le module Menu.

Cause :	Le module Menu que vous tentez de compiler contient des références circulaires (un élément Menu appelle un menu qui se trouve au-dessus de lui dans la hiérarchie).

Action :	Repérez et résolvez la ou les référence(s) circulaire(s).


FRM-31628
FRM-31628 : L'élément référence un menu non défini.

Cause :	L'élément fait référence à un sous-menu qui ne fait pas partie du module.

Action :	Définissez un sous-menu qui fait partie du module ou faites en sorte que l'élément fasse référence à un sous-menu appartenant au module.


FRM-31629
FRM-31629 : Erreurs de génération écrites dans le fichier %s.

Cause :	Erreur de compilation.

Action :	Consultez les messages d'erreurs et d'avertissement contenus dans le fichier indiqué.


FRM-31631
FRM-31631 : Fermeture du fichier %s impossible.

Cause :	Une erreur du système d'exploitation a empêché Form Builder de fermer un fichier de sortie.

Action :	Contactez votre administrateur de bases de données ou le Support technique Oracle.


FRM-31633
FRM-31633 : Menu principal %s introuvable dans le module.

Cause :	Le nom de menu indiqué n'existe pas dans ce module.

Action :	Vérifiez qu'il existe un menu de ce nom.


FRM-31634
FRM-31634 : Erreur lors de l'écriture du fichier %s.

Cause :	Vous ne possédez pas les droits nécessaires sur le répertoire indiqué, ou l'espace disque disponible est insuffisant.

Action :	Contactez votre administrateur de bases de données pour vérifier que vous disposez des droits d'accès nécessaires.


FRM-31635
FRM-31635 : Aucun menu dans le fichier indiqué.

Cause :	Le fichier a été chargé, mais il ne contient aucun module Menu.

Action :	Vérifiez qu'il s'agit d'un fichier MMB.


FRM-31637
FRM-31637 : Erreur lors l'opération d'évolution ; abandon de l'évolution.

Cause :	Erreur SQL détectée lors de l'opération d'évolution du menu.

Action :	Vérifiez que vous êtes en mode SYSTEM et que Oracle Forms 4.5 et les tables de menu sont correctement installés.


FRM-31639
FRM-31639 : Aucun module à mettre à jour.

Cause :	Aucun module n'a été indiqué qui n'existe pas déjà dans les tables de Oracle Forms 4.5.

Action :	Vérifiez qu'il n'existe pas déjà un module Menu de ce nom dans Oracle Forms 4.5.


FRM-31640
FRM-31640 : Nom du menu secondaire non indiqué.

Cause :	Un élément Menu de type menu n'a aucun sous-menu indiqué.

Action :	Indiquez un sous-menu pour l'élément Menu.


FRM-31641
FRM-31641 : Aux éléments Groupe de boutons d'option vous devez associer un nom de groupe de boutons.

Cause :	Un élément Menu a été défini comme bouton d'option, mais aucun groupe de boutons d'option n'a été indiqué.

Action :	Indiquez un nom de groupe de boutons d'option.


FRM-31643
FRM-31643 : Le menu %s n'existe pas.

Cause :	L'élément Menu a été défini de type menu, mais le menu auquel il réfère n'existe pas.

Action :	Créez un menu de ce nom.


FRM-31644
FRM-31644 : Le menu %s ne comprend aucun élément.

Cause :	Vous n'avez pas indiqué de choix pour un menu.

Action :	Editez votre application Forms pour ajouter des éléments au menu.


FRM-31645
FRM-31645 : Une seule instance de chaque type de menu magique est permise par module.

Cause :	Vous avez utilisé plus d'une instance d'un type de menu magique spécifique.

Action :	Ne gardez qu'une seule instance de chaque type de menu magique.


FRM-31646
FRM-31646 : Au menu magique %s est associé un type de commande non valide.

Cause :	Vous avez sélectionné un type de commande qui n'est pas valide pour ce type de menu magique.

Action :	Sélectionnez un type de commande compatible avec l'élément menu magique courant.


FRM-31649
FRM-31649 : Le libellé de l'élément Menu %s est trop long.

Cause :	Vous avez indiqué un libellé d'élément menu qui dépasse le nombre maximum de caractères autorisé.

Action :	Réduisez la longueur du libellé d'élément Menu.


FRM-31650
FRM-31650 : Le nom de l'élément Menu %s est trop long.

Cause :	Vous avez indiqué un nom d'élément Menu qui dépasse le nombre maximum de caractères autorisé.

Action :	Réduisez la longueur du nom d'élément Menu.


FRM-31651
FRM-31651 : Aucun code de source PL/SQL dans l'élément de menu %s.

Cause :	Vous avez indiqué un nom d'élément de menu dont le type de commande est PL/SQL, mais sans texte de commande.

Action :	Modifiez le type de commande pour Null ou indiquez un texte de commande.


FRM-32009
FRM-32009 : Fin de fichier prématurée à la ligne %05d.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-32010
FRM-32010 : Erreur de séquence dans le fichier d'entrée, à la ligne %05d.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-32011
FRM-32011 : Ce fichier ne contient pas de données source Runform valide.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-32035
FRM-32035 : Type de champ (%s) interdit dans %s.%s.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-32036
FRM-32036 : Attention ! Invite au-dessus de la ligne 1 pour %s.%s.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-32037
FRM-32037 : Attention ! L'invite ne tient pas en regard du champ %s.%s.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-32041
FRM-32041 : Attendu : %s Obtenu  :   %s

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-32042
FRM-32042 : Erreur (ligne %05d): réponse attendue Oui/Non, reçue %s.

Cause :	Vous avez entré une autre réponse que Oui ou Non.

Action :	Répondez Oui ou Non.


FRM-32051
FRM-32051 : Commande interdite dans le texte de l'application Forms, à la ligne %05d.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.

Cause :	Cette erreur survient généralement lorsque le fichier .INP est modifié.

Action :	Si le fichier .INP n'a pas été modifié, contactez votre administrateur de bases de données.


FRM-32079
FRM-32079 : Valeur initiale non valide pour ce type de données.

Cause :	Vous avez indiqué une valeur initiale non valide pour ce type de données.

Action :	Indiquez une valeur initiale valide pour ce type de données.


FRM-32080
FRM-32080 : Valeur de plage non valide pour ce type de données.

Cause :	Vous avez indiqué une plage de valeurs non valide pour ce type de données.

Action :	Indiquez une plage de valeurs valide pour ce type de données.


FRM-32081
FRM-32081 : Valeur de paramètre par défaut non valide pour ce type de données.

Cause :	Vous avez indiqué une valeur de paramètre par défaut non valide pour ce type de données.

Action :	Indiquez une valeur de paramètre par défaut valide pour ce type de données.


FRM-32082
FRM-32082 : Autre valeur non valide pour le type d'élément donné.

Cause :	Vous avez tenté d'indiquer pour la propriété de valeur initiale ou pour la propriété d'autres valeurs une valeur qui dépasse la propriété de longueur maximum.

Action :	Indiquez une valeur qui ne dépasse pas la propriété de longueur maximum.


FRM-32083
FRM-32083 : La longueur de la valeur dépasse la longueur maximum du champ.

Cause :	Vous avez indiqué une longueur de valeur supérieure à la longueur maximum de l'élément.

Action :	Indiquez une valeur plus courte.


FRM-32084
FRM-32084 : Type d'élément non compatible avec élément miroir %s.

Cause :	Vous avez indiqué un élément incompatible avec la propriété d'élément miroir.

Action :	Indiquez une propriété d'élément miroir valide.


FRM-32085
FRM-32085 : Strip_Source : nom de fichier de sortie obligatoire.

Cause :	Vous n'avez pas indiqué de nom de fichier de sortie lors de la génération d'une bibliothèque à partir de la ligne de commande.

Action :	Indiquez un nom de fichier de sortie.


FRM-32086
FRM-32086 : Variable de lien : échec de l'analyse de %s à <%s>.

Cause :	La variable de lien n'a pas pu être analysée du fait d'un format non valide.

Action :	Indiquez un format valide.


FRM-32087
FRM-32087 : Variable de lien :%s lié à plusieurs objets.

Cause :	La variable de lien est ambiguë car elle établit un lien avec plusieurs objets.

Action :	Vérifiez que la variable de lien n'établit de lien que vers un seul objet.


FRM-32088
FRM-32088 : Définir à la fois groupe enreg. et texte interro pour une vue hiérarchique n'est pas autorisé.

Cause :	Le groupe d'enregistrements et le texte d'interrogation d'une vue d'arborescence hiérarchique ont tous deux des valeurs.

Action :	Supprimez l'une des valeurs, soit celle du groupe d'enregistrements soit celle du texte d'interrogation, dans la vue hiérarchique.


FRM-32089
FRM-32089 : Les arborescences doivent figurer dans des blocs mono-lignes ou mono-éléments.

Cause :	La vue hiérarchique a été placée dans un bloc contenant un autre élément ou dans un bloc multi-ligne.

Action :	Placez l'arborescence dans son propre bloc nono-ligne.


FRM-99999
FRM-99999 : Erreur %d. Reportez-vous au fichier relnotes pour plus d'informations sur cette erreur.

Cause :	Une erreur s'est produite.

Action :	Reportez-vous au fichier relnotes.


FRM-10200
FRM-10200 : Fonction interdite dans ce contexte.

Cause :	Vous avez appuyé sur une touche qui n'est pas valide dans ce contexte.

Action :	Appuyez sur [Afficher touches] pour obtenir une liste des touches de fonction valides.


FRM-10201
FRM-10201 : Aucun paramètre requis.

Cause :	Vous avez appuyé sur [Entrer paramètres d'application] ou sur [Entrer paramètres de menu], mais aucun paramètre n'est requis dans ce contexte.

Action :	Aucune action requise.


FRM-10202
FRM-10202 : Menus excessivement imbriqués.

Cause :	Vous avez tenté de sélectionner un élément qui entraînerait l'imbrication de plus de 10 niveaux de menus.

Action :	Appuyez sur [Menu principal] pour revenir au menu principal, puis naviguez jusqu'au menu de votre choix.


FRM-10203
FRM-10203 : L'option sélectionnée ne figure pas dans ce menu.

Cause :	Dans un menu plein écran, vous avez entré un nombre supérieur au nombre maximum d'éléments Menu.

Action :	Choisissez un élément qui se trouve sur ce menu.


FRM-10204
FRM-10204 : Aucune commande n'est définie pour l'option d'arrière-plan choisie.

Cause :	Vous avez appuyé sur [Menu d'arrière-plan n], où n est supérieur au nombre maximum sur le menu d'arrière-plan.

Action :	Aucune action requise. Appuyez sur [Afficher menu d'arrière-plan] pour connaître les éléments de menu d'arrière-plan valides.


FRM-10205
FRM-10205 : Le menu %s est introuvable.

Cause :	Dans le champ de choix d'un menu plein écran, vous avez entré un nom de menu qui n'existe pas dans cette application ou qui est introuvable dans la bibliothèque.

Action :	Aucune action n'est requise si le menu n'existe pas dans l'application. S'il existe, recompilez la bibliothèque.


FRM-10206
FRM-10206 : Saturation de la mémoire dynamique.

Cause :	Form Builder est à court de mémoire.

Action :	Contactez votre administrateur de bases de données.


FRM-10207
FRM-10207 : Absence de menu d'arrière-plan.

Cause :	Vous avez appuyé sur [Afficher menu d'arrière-plan], mais il n'existe aucun menu d'arrière-plan.

Action :	Aucune action requise.


FRM-10208
FRM-10208 : Le paramètre %s est introuvable.

Cause :	Un élément Menu a référencé un paramètre indéfini.

Action :	Contactez votre administrateur de bases de données.


FRM-10209
FRM-10209 : Aucun menu suivant en arrière-plan dans ce contexte.

Cause :	L'application a tenté de naviguer vers un menu nommé à partir du menu d'arrière-plan.

Action :	Aucune action requise.


FRM-10210
FRM-10210 : Réponse requise.

Cause :	Vous n'avez pas entré un paramètre obligatoire ou vous avez laissé vierge le champ de choix d'un menu plein écran.

Action :	Entrez quelque chose.


FRM-10211
FRM-10211 : Vous devez remplir le champ entièrement.

Cause :	Vous avez entré partiellement un paramètre qui doit être entré complètement.

Action :	Entrez suffisamment de données pour remplir entièrement le champ.


FRM-10212
FRM-10212 : Echec de connexion pour ce nom utilisateur et ce mot de passe.

Cause :	Vous avez indiqué un nom utilisateur et un mot de passe non valides.

Action :	Vérifiez le nom utilisateur et le mot de passe, puis essayez à nouveau.


FRM-10213
FRM-10213 : Fin de la procédure de connexion.

Cause :	Votre connexion à ORACLE a échoué trois fois de suite.

Action :	Aucune action requise. Si vous êtes un utilisateur autorisé, vérifiez votre nom utilisateur et votre mot de passe.


FRM-10214
FRM-10214 : Vous n'êtes autorisé à exécuter aucune application.

Cause :	Vous n'êtes autorisé à utiliser aucun module de Form Builder.

Action :	Aucune action requise. Si vous pensez que vous devriez être un utilisateur autorisé, demandez à votre administrateur de bases de données de vous accorder l'accès au module que vous désirez exécuter.


FRM-10215
FRM-10215 : Aucune aide n'est disponible.

Cause :	Vous avez appuyé sur [Aide], mais aucune aide n'est disponible pour cet élément.

Action :	Aucune action requise.


FRM-10216
FRM-10216 : Echec de génération dynamique d'une commande par le système d'exploitation.

Cause :	Le système d'exploitation n'est pas parvenu à générer un sous-processus.

Action :	Reportez-vous au message d'erreur émis par le système d'exploitation.


FRM-10217
FRM-10217 : Vous n'êtes autorisé à accéder à aucun des éléments du menu choisi.

Cause :	Vous avez tenté d'accéder à un menu qui ne contient aucun élément auquel vous puissiez accéder.

Action :	Vérifiez le nom de menu que vous avez entré, puis essayez à nouveau.


FRM-10218
FRM-10218 : Erreur au niveau du menu %s.

Cause :	Form Builder n'est pas parvenu à lire les informations de bibliothèque concernant ce menu, ou vous avez indiqué un nom de menu non valide.

Action :	Recompilez la bibliothèque ou corrigez le nom de menu.


FRM-10219
FRM-10219 : Numéro d'option non valide.

Cause :	Dans un menu plein écran, vous avez entré un nombre non valide dans le champ de choix.

Action :	Vérifiez le numéro de l'élément et entrez-le à nouveau.


FRM-10220
FRM-10220 : Aucune aide n'est disponible pour cette option.

Cause :	Vous avez appuyé sur [Aide], mais aucune aide n'est disponible pour cet élément Menu.

Action :	Aucune action requise.


FRM-10221
FRM-10221 : Lecture du fichier %s impossible.

Cause :	Les droits sur ce fichier sont définis de façon incorrecte ou la bibliothèque que vous avez tenté d'ouvrir n'est pas valide.

Action :	Recompilez la bibliothèque de l'application et essayez à nouveau.


FRM-10222
FRM-10222 : Menu %s créé avec une ancienne version de Forms Compiler.

Cause :	Vous utilisez une version de Form Builder plus récente que celle qui a créé ce module Menu.

Action :	Recompilez le module Menu, puis exécutez à nouveau la commande.


FRM-10223
FRM-10223 : Le module Paramètres d'application n'existe pas.

Cause :	Impossible de trouver les informations de paramètre dans la bibliothèque. Cela peut être dû à un fichier bibliothèque non valide ou qui contient une application différente.

Action :	Recompilez la bibliothèque de l'application et essayez à nouveau. Si le problème persiste, contactez votre administrateur de bases de données.


FRM-10224
FRM-10224 : Le module Variable de lien d'application n'existe pas.

Cause :	Impossible de trouver les informations de variable de lien dans la bibliothèque. Cela peut être dû à un fichier bibliothèque non valide.

Action :	Recompilez la bibliothèque de l'application et essayez à nouveau. Si le problème persiste, contactez votre administrateur de bases de données.


FRM-10225
FRM-10225 : Lecture impossible des données associées au paramètre.

Cause :	La bibliothèque de l'application n'est pas valide.

Action :	Recompilez la bibliothèque de l'application et essayez à nouveau. Si le problème persiste, contactez votre administrateur de bases de données.


FRM-10226
FRM-10226 : Lecture impossible des données associées à la variable de lien.

Cause :	La bibliothèque de l'application n'est pas valide.

Action :	Recompilez la bibliothèque de l'application et essayez à nouveau. Si le problème persiste, contactez votre administrateur de bases de données.


FRM-10227
FRM-10227 : Trop de paramètres de menu.

Cause :	L'application contient davantage de paramètres de menu que ne peut en accepter votre système d'exploitation.

Action :	Rectifiez et recompilez l'application ou contactez votre administrateur de bases de données.


FRM-10228
FRM-10228 : Lecture du texte d'aide impossible.

Cause :	La bibliothèque de l'application n'est pas valide.

Action :	Recompilez la bibliothèque de l'application et essayez à nouveau. Si le problème persiste, contactez votre administrateur de bases de données.


FRM-10229
FRM-10229 : Fermeture du fichier %s impossible.

Cause :	Erreur du système d'exploitation ou erreur interne.

Action :	Contactez votre administrateur de bases de données.


FRM-10230
FRM-10230 : Le module de procédure d'application n'existe pas.

Cause :	Impossible de trouver les informations de procédure dans la bibliothèque. Cela peut être dû à un fichier de bibliothèque non valide.

Action :	Recompilez la bibliothèque de l'application et essayez à nouveau. Si le problème persiste, contactez votre administrateur de bases de données.


FRM-10231
FRM-10231 : Lecture impossible des données associées à la procédure.

Cause :	La bibliothèque de l'application n'est pas valide.

Action :	Recompilez la bibliothèque de l'application et essayez à nouveau. Si le problème persiste, contactez votre administrateur de bases de données.


FRM-10233
FRM-10233 : Macros/procédures de navigation non valides avec ce type de menu.

Cause :	Vous avez tenté d'utiliser des procédures de navigation plein écran ou des macros en affichage menu déroulant ou barre de menus.

Action :	Avertissez votre administrateur de bases de données.


FRM-10234
FRM-10234 : Il manque un point-virgule dans l'instruction macro.

Cause :	La ligne de commande indiquée pour cet élément présente une erreur de syntaxe.

Action :	Avertissez votre administrateur de bases de données.


FRM-10235
FRM-10235 : Macro %s introuvable.

Cause :	Le concepteur du menu a indiqué l'exécution d'une macro indéfinie.

Action :	Avertissez votre administrateur de bases de données.


FRM-10236
FRM-10236 : Aucune procédure/macro n'a été indiquée.

Cause :	Le concepteur du menu a indiqué une commande vierge.

Action :	Avertissez votre administrateur de bases de données.


FRM-10237
FRM-10237 : Argument(s) interdit(s) pour ce type de procédure/macro.

Cause :	Le concepteur du menu a indiqué un argument pour une commande qui n'accepte pas d'arguments.

Action :	Avertissez votre administrateur de bases de données.


FRM-10238
FRM-10238 : Erreur d'exécution de %s.  Vérifier le(s) argument(s).

Cause :	Le concepteur du menu a indiqué un argument pour une commande qui n'accepte pas d'arguments.

Action :	Avertissez votre administrateur de bases de données.


FRM-10239
FRM-10239 : Lecture de l'application Forms impossible sous ce nom.

Cause :	Form Builder a essayé de lire une application Forms qui n'existe pas dans le répertoire courant.

Action :	Avertissez votre administrateur de bases de données.


FRM-10240
FRM-10240 : Nom d'application Forms non indiqué.

Cause :	La commande Forms Runtime n'a pas indiqué le nom de l'application Forms à exécuter.

Action :	Avertissez votre administrateur de bases de données.


FRM-10241
FRM-10241 : Opération interdite quand Form Builder est actif.

Cause :	Le concepteur du menu a indiqué une procédure interne ou une macro qui ne peut pas être utilisée lorsque Form Builder appelle Forms Runtime.

Action :	Avertissez votre administrateur de bases de données.


FRM-10242
FRM-10242 : Impossible d'appeler des applications liées à Forms dans Form Builder.

Cause :	Le concepteur du menu a indiqué un appel à des applications liées à Forms à partir de Form Builder.

Action :	Avertissez votre administrateur de bases de données.


FRM-10243
FRM-10243 : Erreur survenue en cours d'appel de Form Builder.

Cause :	Un appel à Forms Runtime a échoué.

Action :	Avertissez votre administrateur de bases de données.


FRM-10244
FRM-10244 : L'application %s n'existe pas.

Cause :	Le nom d'application que vous avez indiqué n'existe pas dans la base de données, ou vous ne disposez pas des droits d'accès nécessaires.

Action :	Vérifiez le nom de l'application et essayez à nouveau, ou contactez votre administrateur de bases de données.


FRM-10245
FRM-10245 : Vous êtes déjà sur le premier élément.

Cause :	Vous avez appuyé sur [Elément précédent] à partir du premier élément de l'application Forms.

Action :	Aucune action requise. Vous ne pouvez pas accéder à un élément antérieur au premier élément de l'application Forms.


FRM-10246
FRM-10246 : Erreur d'exécution d'une procédure interne ; application Forms inactive.

Cause :	Le concepteur du menu a indiqué une procédure interne qui ne peut pas être exécutée dans le contexte courant.

Action :	Avertissez votre administrateur de bases de données.


FRM-10247
FRM-10247 : Aucune option active dans le menu principal de l'application.

Cause :	Vous avez tenté d'ouvrir une application dont le menu principal ne contient aucun élément auquel vous puissiez accéder. Le menu principal est le menu principal de l'application ou un autre menu indiqué lorsque Form Builder a appelé Forms Designer.

Action :	Avertissez votre administrateur de bases de données.


FRM-10248
FRM-10248 : Sélection directe de menu impossible dans un menu principal.

Cause :	Le menu principal n'est pas le menu principal du menu, car Form Builder a indiqué un autre menu principal lors de l'appel à Forms Designer.

Action :	Aucune action requise. Vous ne pouvez utiliser la sélection directe de menu que lorsque le menu principal du module est le module principal.


FRM-10249
FRM-10249 : Vous n'êtes pas autorisé à exécuter l'application %s.

Cause :	Vous n'êtes pas un utilisateur autorisé de l'application que vous avez tenté d'exécuter.

Action :	Aucune action requise. Si vous pensez que vous devriez être un utilisateur autorisé, demandez à votre administrateur de bases de données de vous accorder l'accès à l'application.


FRM-10250
FRM-10250 : Erreur d'initialisation de l'application Forms Runtime.

Cause :	Vous n'avez pas nommé le module de façon valide.

Action :	Vérifiez le nom du module, puis entrez-le à nouveau correctement.


FRM-10251
FRM-10251 : L'argument de commande (type 4) utilisé n'est pas valide (-e,-i,-r,-w).

Cause :	Cette option de menu a tenté d'exécuter une application Forms mais elle a indiqué pour Forms Runtime un argument de ligne de commande qui n'est pas valide lors de l'exécution d'une application Forms à partir d'un menu.

Action :	Avertissez votre administrateur de bases de données.


FRM-10252
FRM-10252 : Vous avez utilisé un argument de commande (type 4) non reconnu.

Cause :	Cette option de menu a tenté d'exécuter une application Forms mais elle a indiqué pour Forms Runtime un argument de ligne de commande inconnu.

Action :	Avertissez votre administrateur de bases de données.


FRM-10253
FRM-10253 : Vous devez taper le nom du fichier.

Cause :	Vous n'avez pas entré (ou vous avez supprimé) le nom du fichier.

Action :	Vous devez entrer un nom de fichier.


FRM-10254
FRM-10254 : Ouverture impossible du fichier réservé à la copie d'écran.

Cause :	Le système d'exploitation n'est pas parvenu à ouvrir un fichier (par exemple, problème d'autorisation ou espace disque insuffisant).

Action :	Résolvez le problème du système d'exploitation à l'origine de l'erreur.


FRM-10255
FRM-10255 : Une erreur s'est produite lors de l'impression de la copie d'écran.

Cause :	Le système d'exploitation a rencontré des problèmes avec un fichier.

Action :	Résolvez le problème du système d'exploitation à l'origine de l'erreur.


FRM-10256
FRM-10256 : Utilisateur non autorisé à exécuter Form Builder Menu.

Cause :	Vous n'êtes pas enregistré dans Form Builder. Vous ne disposez pas de l'autorisation SELECT sur les tables de base de Form Builder.

Action :	Avertissez votre administrateur de bases de données.


FRM-10257
FRM-10257 : Utilisateur n'ayant aucun droit d'accès à cette option.

Cause :	Vous avez tenté de sélectionner un élément Menu auquel vous n'avez pas accès.

Action :	Choisissez un autre élément ou avertissez votre administrateur de bases de données.


FRM-10258
FRM-10258 : Le menu indiqué est déjà actif.

Cause :	Vous avez tenté de naviguer vers le menu courant.

Action :	Aucune action requise.


FRM-10259
FRM-10259 : Argument NULL non valide dans cette fonction ou procédure interne.

Cause :	Vous n'avez pas indiqué d'argument pour une procédure interne, ou l'argument indiqué n'est pas valide.

Action :	Reportez-vous à l'aide en ligne pour la syntaxe appropriée de la procédure interne.


FRM-10260
FRM-10260 : Aucun élément actif dans le menu sélectionné.

Cause :	Vous n'avez de droits d'accès sur aucun des éléments de ce menu.

Action :	Contactez votre administrateur de bases de données pour obtenir les droits d'accès si vous estimez que vous devriez avoir accès aux éléments de ce menu.


FRM-10261
FRM-10261 : Menu %s créé avec une nouvelle version de Forms Compiler.

Cause :	Vous utilisez une ancienne version de Forms Runtime avec une nouvelle version de Forms Compiler.

Action :	Passez à la nouvelle version de Forms Runtime.


FRM-10262
FRM-10262 : Positionnement impossible de boutons d'option, cases à cocher ou séparateurs dans la barre de menus.

Cause :	Vous avez tenté de placer des boutons d'option, des cases à cocher ou des séparateurs dans la barre de menus.

Action :	Placez ces éléments dans un sous-menu.


FRM-10263
FRM-10263 : Le fichier d'icônes associé à l'icône de menu est introuvable.

Cause :	Aucun nom de répertoire pour cette icône.

Action :	Contactez la personne qui a créé l'application de menu.


FRM-10264
FRM-10264 : L'élément de menu indiqué n'existe pas.

Cause :	Vous avez indiqué un élément Menu qui n'existe pas dans l'application Forms.

Action :	Essayez d'entrer à nouveau l'élément Menu ou d'en choisir un autre.


FRM-10265
FRM-10265 : Bibliothèque créée avec une ancienne version de Forms Compiler.

Cause :	Form Builder ne peut pas utiliser la bibliothèque.

Action :	Recompilez la bibliothèque avec la version courante de Forms Compiler.


FRM-10266
FRM-10266 : Bibliothèque créée avec une nouvelle version de Forms Compiler.

Cause :	Form Builder ne peut pas utiliser la bibliothèque.

Action :	Recompilez la bibliothèque avec la version courante de Forms Compiler.


FRM-10267
FRM-10267 : L'élément de menu magique Aide doit être placé dans le menu de niveau supérieur.

Cause :	Vous avez placé un élément de menu magique Aide dans un sous menu.

Action :	Déplacez l'élément de menu magique Aide dans le menu de premier niveau (menu principal).


FRM-10268
FRM-10268 : Erreur : l'unité de programme %s de la bibliothèque %s n'est pas compilée.

Cause :	Vous avez appelé une unité de programme non compilée à partir d'une bibliothèque.

Action :	Suivez les instructions de l'erreur programme PL/SQL.


FRM-10269
FRM-10269 : Attention ! L'unité de programme %s de la bibliothèque %s n'est pas compilée.

Cause :	En débogage Forms Runtime, vous avez appelé une unité de programme non compilée dans une bibliothèque.

Action :	Il s'agit seulement d'un message d'avertissement. Forms Runtime essaiera de compiler et d'exécuter l'unité de programme.


FRM-10270
FRM-10270 : Rattachement impossible de la bibliothèque %s pendant l'ouverture du menu %s.

Cause :	Le fichier bibliothèque indiqué est rattaché à ce menu, mais il est introuvable dans le chemin de recherche des bibliothèques PL/SQL.

Action :	Vérifiez que le fichier bibliothèque est trouvable avant de tenter de l'exécuter à nouveau avec le menu indiqué. Placez-le par exemple dans le répertoire de travail.


FRM-10401
FRM-10401 : Ouverture impossible du fichier %s pour sortie.

Cause :	Le système d'exploitation a rencontré des difficultés pour ouvrir un fichier (par exemple, problème d'autorisation ou espace disque insuffisant).

Action :	Résolvez le problème du système d'exploitation à l'origine de l'erreur.


FRM-10402
FRM-10402 : Application inexistante.

Cause :	L'application demandée est introuvable et ne peut être documentée.

Action :	Vérifiez que vous avez indiqué un nom d'application valide.


FRM-10409
FRM-10409 : Fermeture de fichier impossible.

Cause :	Erreur du système d'exploitation ou erreur interne.

Action :	Contactez votre administrateur de bases de données.


FRM-99999
FRM-99999 : Erreur %d. Pour plus d'informations sur cette erreur, reportez-vous au fichier relnotes.

Cause :	Une erreur s'est produite.

Action :	Reportez-vous au fichier relnotes.


FRM-21011
FRM-21011 : Exception PL/SQL %s non prise en compte.


Préférences

Préférences - onglet Général

Enregistrer avant de générer

Générer avant d'exécuter

Supprimer les messages d'aide

Utiliser l'éditeur système

Palette de couleurs

Mode couleur

Imprimante

Exécuter les modules en asynchrone

Préférences - onglet Accès

Accès

Chemin de sous-classement

Préférences - onglet Assistants

Boîte de dialogue de bienvenue

Assistants - pages de bienvenue

Préférences - onglet Runtime

Mettre enregistrement tampon dans fichier

Messages de débogage

Traitement par tableau

Optimiser traitement SQL

Optimiser traitement transactionnel

Statistiques

Afficher menu Bloc

Mode interrogation seulement

Mode silencieux

Nom de fichier HTML


Boîte de dialogue Options

Options - onglet Designer

Mode couleur

Palette de couleurs

Générer avant d'exécuter

Accès objet

Imprimante

Exécuter les modules en asynchrone

Enregistrer

Supprimer les messages d'aide

Enregistrer avant de générer

Supprimer les messages d'aide

Utiliser l'éditeur système

Options - onglet Runtime

Traitement par tableau

Mettre enregistrement tampon dans fichier

Mode débogage

Afficher menu Bloc

Optimiser traitement SQL

Optimiser traitement transactionnel

Mode interrogation seulement

Mode silencieux

Statistiques


Glossaire

A

    action
    action de débogage
    action définie par l'utilisateur
    action prédéfinie
    ActiveX
    activé
    ADA
    adresse IP (Internet Protocol)
    affichage
    alias
    alignement
    ancêtre
    ancrage
    antécédent
    aperçu
    applet
    application
    arborescence de dépendances
    arborescence de groupe
    architecture client/serveur
    argument
    argument exécutable
    ASCII
    assistant Projet
    attribut
    attribut visuel
    autoriser
    axe continu
    axe de catégorie
    axe de date
    axe de valeurs
    axe discret

 B

    barre de fractionnement
    barre de titre
    barre d'outils
    basculer
    base de données
    base de données distante
    base de données locale
    base de registres
    base de registres globale
    base de registres locale
    base de registres projet
    base de registres utilisateur
    Batch
    bibliothèque
    bibliothèque attachée
    bibliothèque PL/SQL externe
    bloc
    bloc anonyme
    boîte de dialogue
    boîte englobante externe
    boîte englobante interne
    bord
    bordure
    boucle
    bouton
    bouton (...)
    bouton d'option

C

    cache (mémoire cache)
    cadre
    canevas
    caractère générique
    cartouche
    cartourche Web
    case à cocher
    catégorie
    cellule
    cellule de matrice
    CGI
    CGM
    chaîne de connexion
    champ
    champ multiligne
    chiffrement
    cible
    classe de propriétés
    classification
    clause
    clé étrangère
    clé primaire
    client
    CMDFILE
    code de contrôle d'imprimante
    cohérence en lecture
    coller
    colonne
    colonne de formule
    colonne de ventilation
    colonne d'objets
    colonne récapitulative
    colonne REF
    colonne sans cache
    colonnes d'attributs
    commentaire
    compiler
    compiler par lot
    composant
    condition
    connecter (se)
    conteneur OLE
    contrainte
    contrôle VBX
    coordonnées (x, y)
    copier
    corps
    corps de package
    coupe-feu
    couper
    curseur

D

    DATE
    déboguer
    Débogueur
    débordement
    déclencheur
    déclencheur de base de données
    déclencheur de débogage
    déclencheur de format
    déclencheur de ventilation
    désactivé
    descendant
    descendant-ascendant
    descripteur
    Designer
    Designer/2000
    DIANA
    dictionnaire de données
    dimension
    dimension de qualification
    données dépendantes
    données indépendantes
    dupliquer

E

    EBCDIC
    éditeur
    élément
    élément
    élément affiché
    élément d'arrière-plan
    élément de graphique
    élément de premier plan
    élément de projet
    élément d'entrée
    élément graphique
    élément impliqué
    élément liste
    élément texte
    éléments Built-in
    encadrement itératif
    endommager
    enfant
    enregistrement
    environnement
    état de ventilation
    état matriciel
    étendue
    exception
    exécuter
    exporter
    expression

F

    faire glisser
    famille
    fenêtre
    fenêtre modale
    fenêtre sans mode
    fenêtre/vue active
    feuille de style
    feuille de style en cascade
    fichier de liaison
    fichier de projet
    fichier d'exécution
    fichier d'export
    fichier pld
    fichier pll
    fichier pls
    fichier plx
    fichier prt
    fichier rdf
    fichier rep
    fichier rex
    fichier sql
    filtre
    filtre de groupe
    fonction
    fonction de filtre d'interrogation
    fonction en package
    formule
    frère

G

    Generate
    générateur
    générer
    graphique à axes
    graphique de ventilation
    Grille de paramètres d'exécution
    groupe
    groupe ancêtre
    groupe de boutons d'option
    groupe de ventilation
    groupe d'enregistrements
    groupe d'objets
    groupe inter-produit

H

    hériter
    hiérarchie
    hiérarchie des dimensions
    hiérarchiser
    HTML
    HTTP
    hyperlien
    hypertexte

I

    ICD
    icône
    icône de bord/remplissage/texte
    image
    importer
    index
    inscrire
    instruction
    instruction SELECT
    instruction SQL
    interface graphique
    interface Oracle Call Interface
    Internet
    interrogation
    interrogation détail
    interrogation enfant
    interrogation externe
    Intranet

J

    JAR
    Java
    jointure
    justification

K

L

    lancer
    Lanceur
    liaison
    liaison de données
    liaison Web
    libellé
    ligne
    ligne de commande
    ligne de référence
    liste de paramètres
    liste de valeurs
    liste instantanée
    livrer

M

    macro
    macro définie par l'utilisateur
    macro intégrée
    marge
    masque d'attribut
    masque de format
    masqué
    matrice
    matrice imbriquée
    méga-octet (Mo)
    menu détachable
    message d'alerte
    mesure
    mesure personnalisée
    méthode
    mettre à jour
    mode de confinement
    mode flexible
    mode insertion
    mode remplacement
    modèle de champ
    modèle de données
    modèle de graphique
    module
    mot-clé
    motif

N

    Navigateur de projet
    Navigateur d'objet
    navigateur Web
    niveau
    NOCACHE
    noeud
    noeud cible
    noeud de structure de données
    noeud élément
    noeud en-tête
    noeud fichier
    noeud organisation
    noeud projet
    noeud racine
    noeud sous-projet
    nom utilisateur de réserve

O

    objet
    objet aplani
    objet colonne
    objet déstructuré
    objet englobant
    objet ligne
    objet standard
    objets de niveau état
    ODBC
    OLE
    opérateur relationnel
    opérateurs de comparaison
    opérateurs logiques
    opérateurs numériques
    Oracle Designer
    ORACLE_HOME
    origine
    outil
    outil Attribut
    outil Correspondance
    outil Exception
    outil Famille
    outil Haut/Bas
    outil Liste
    outil Niveau
    outil Période
    outil Sélecteur
    outil Sélection enregistrée
    outil Tout
    outil Tri

P

    package
    page
    page de fin
    page de garde
    page logique
    page physique
    page titre
    palette
    palette de couleurs
    palette d'outils
    panneau
    paramètre
    parent
    Pcode
    PDF
    pile
    pile d'appels
    PL/SQL
    plan de coordonnées
    point d'ancrage
    point de contrôle
    point d'insertion
    point d'interruption
    pointeur d'objet
    port
    préférence
    présentation
    présentation de type étiquette de publipostage
    présentation de type formulaire
    présentation de type formulaire-lettre
    présentation de type matrice
    présentation maître-détails
    Presse-papiers
    primitif
    procédure
    procédure bouton
    processus d'arrière-plan
    projet
    propriété
    protocole

Q

    quadrillages
    quitter

R

    racine
    RC4
    RDBMS
    rectangle de délimitation
    référence de lien
    référence lexicale
    régénérer
    regroupement/agrégation
    répertoire virtuel
    Report Server (RWMTS60)
    Reports Background Engine (RWRBE60)
    Reports Queue Manager (RWRQM60)
    Reports Web Cartridge (RWCGI60)
    Reports Web CGI (RWCGI60)
    RTF
    Runtime
    RVB

S

    saut de page
    schéma
    script
    script de l'interpréteur
    script de sélection
    script SQL
    section
    Sélecteur
    sélection
    sélection dynamique enregistrée
    sélection enregistrée
    sélection statique enregistrée
    serveur OLE
    serveur Web
    session
    simultanéité d'accès
    socket
    sortie utilisateur
    source
    source de données
    sous-interrogation associée
    sous-programme
    sous-programme stocké
    sous-projet
    spécification
    spécification de package
    SQL
    structure de code PL/SQL
    structure de code PL/SQL avec valeur
    SYLK
    syntaxe
    système de coordonnées
    système de fichiers virtuel

T

    table
    table d'objets
    tabulaire
    tampon
    TCP
    total de contrôle
    transaction
    type
    type de collecte
    type de données
    type de données Built-in
    type de données CHAR
    type de données Oracle
    type de table
    type de tableau variable
    type de tracé
    type défini par l'utilisateur
    type d'élément
    type d'objet
    type prédéfini

U

    unité de présentation
    unité de programme
    unité de programme stockée
    URL

V

    valeur d'attribut
    valeur de dimension
    valeur ligne de base
    valeur NA
    valeur NULL
    valeur par défaut
    valider (COMMIT)
    variable
    variable de lien
    variable globale
    variable locale
    variable système
    VBX
    Visualiseur
    volet
    vue
    vue de dépendances
    vue de projet
    vue-canevas

W

 Web
    WKS
    WRB
    WWW

X

    XML
    XML au format correct
    XML valide

Y

Z

    zone contextuelle
    zone de liste
    zone de message
    zone de remplissage
    zoom


Dans Project Builder, chaîne de commande fournie par Project Builder ou par l'utilisateur, et s'appliquant à des fichiers d'un type donné. Une action n'est pas restreinte à un seul type de fichier ; par exemple, si l'action Compiler est définie à la fois pour les fichiers d'application Forms et les fichiers source C, la sélection de Compiler le projet compile tous les fichiers fmb et .c à l'aide des outils appropriés. Voir aussi : action prédéfinie, action définie par l'utilisateur.


Langage de programmation de haut niveau élaboré par le Département de la défense américaine pour les systèmes informatiques intégrés.


Fenêtre ou vue dans laquelle l'utilisateur peut entrer des données.


(Oracle Express) Regroupement (ou agrégation) de données de plusieurs valeurs de dimension en une seule valeur, comme le total des unités vendues dans toutes les villes, ou en un ensemble de valeurs plus restreint, comme la moyenne des unités vendues dans les villes de chaque région. Les données sont souvent collectées au niveau de détails le plus bas, puis regroupées en totaux de niveaux supérieurs pour l'analyse.


Fenêtre modale qui vous signale une condition survenue à la suite de votre dernière action. Vous devez répondre à un message d'alerte.


Façon dont des données sont positionnées dans un champ : alignement ou justification à gauche, à droite et au centre d'un champ d'une largeur déterminée.


Nom secondaire utilisé dans une instruction SQL pour référencer une table, une vue ou une colonne.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant de sélectionner toutes les valeurs d'une dimension ou toutes les valeurs d'une dimension correspondant à une hiérarchie donnée.


(Oracle Express) Valeur de dimension située au-dessus d'une valeur donnée dans la hiérarchie. La valeur ancêtre correspond à la somme globale des valeurs de ses descendants. L'exemple suivant désigne la valeur de dimension Europe comme l'ancêtre de France, de Lyon et de Paris dans la dimension GEOGRAPHY.


Groupe possédant un autre groupe, directement ou indirectement.


Objet de présentation servant à fixer un point d'un objet sur un point d'un autre objet, ce qui permet de positionner le premier objet par rapport au second.


(Oracle Express) Valeur de dimension particulière utilisée lors de la sélection de valeurs de dimension en fonction de leur relation familiale ou lors de l'exploration d'une hiérarchie.


Unité de programme PL/SQL sans nom ne nécessitant pas la présence explicite des mots-clés BEGIN et END pour délimiter les instructions exécutables. N'ayant pas de nom, les blocs anonymes ne peuvent être référencés par d'autres unités de programme.


Objet apparaissant n'importe où au-dessus d'un autre objet dans l'arborescence de groupe de cet objet. Tout objet est l'antécédent de ses descendants.


Terme Java qui désigne de petits programmes pouvant, au besoin, être importés de manière dynamique dans des pages Web ou des applications.


Un ou plusieurs modules de programme servant à atteindre un résultat donné. Les applications peuvent être imbriquées les unes dans les autres. Par exemple, une application de gestion des stocks d'une entreprise peut comprendre diverses applications Form Builder pour la saisie des données et diverses applications Graphic Builder pour l'affichage des données.


1. Expression facultative transmise à une unité de programme pour que celle-ci la traite.
2. Clauses contenant des mots-clés et leurs valeurs.


Acronyme d'American National Standard Code for Information Interchange.


Ensemble de sous-programmes PL/SQL en lecture seule, généralement intégré à une application pour fournir les sources PL/SQL nécessaires. Les unités de programme figurant dans une bibliothèque attachée sont implicitement chargées lors de leur premier appel par une autre unité de programme au moment de la compilation ou de l'exécution. Elles restent chargées, ce qui permet leur utilisation rapide et réduit les exigences en mémoire lors de l'exécution, tout en améliorant les performances de l'application. Voir aussi : bibliothèque.


1. Voir propriété.
2. Partie ou composant d'une définition de type d'objet Oracle8. Chaque attribut dispose d'un nom et d'un type de données Oracle8. Lorsque vous créez une table d'objets sur la base d'un type d'objet, les colonnes de la table correspondent aux attributs de la définition du type d'objet. Lorsque vous créez un objet colonne d'après le type d'objet dans une table relationnelle, cet objet contient des éléments qui équivalent à des sous-colonnes, chacune d'entre elles correspondant à un attribut de la définition du type d'objet. Dans Oracle Developer, chaque attribut d'objet Oracle8 appartenant à une table est considéré comme un élément de données distinct, comme s'il s'agissait d'une colonne distincte. Cela s'applique aux objets de table et de colonne des tables relationnelles.
3. (Oracle Express) Caractéristique descriptive partagée par les valeurs d'une dimension. Les attributs correspondent à des regroupements logiques qui permettent aux utilisateurs de sélectionner des données de caractéristiques similaires. Par exemple, dans une base de données sur les chaussures, vous pouvez utiliser un attribut de couleur de chaussure pour sélectionner toutes les bottes, tennis ou pantoufles de couleur identique.


Colonnes qui composent un objet colonne (Oracle8).


Dans Graphic Builder, premier élément d'un descripteur d'attribut. Il s'agit d'un masque de 32 bits qui informe la boîte à outils des attributs qui seront définis ou extraits par un appel de fonction ultérieur. Seuls les éléments pour lesquels les bits correspondants sont définis dans le masque d'attribut seront définis ou extraits.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant de sélectionner des valeurs de dimension en fonction d'attributs et de valeurs d'attributs. Par exemple, dans une base de données sur les boissons non alcoolisées, vous pouvez sélectionner tous les produits d'un litre. Dans cet exemple, la taille est un attribut et 1 litre est une valeur d'attribut.


(Oracle Express) Valeurs d'un attribut dans une base de données. Par exemple, dans une base de données sur les glaces, les valeurs d'attributs suivantes peuvent appartenir à l'attribut parfum de la dimension Product : vanille, chocolat et fraise. Des valeurs de dimension de différents niveaux dans la dimension Product (marque, forme et taille, par exemple) peuvent avoir une valeur de parfum identique.


Graphique dans lequel les données sont tracées selon leur position sur les bords du graphique, appelés axes. Un graphique à axes peut contenir deux ou trois axes, chacun appartenant à l'un des types suivants : discret, continu ou date.


Partie blanche d'un motif. L'application d'une couleur à l'élément d'arrière-plan se fait à l'aide la palette de couleurs de remplissage.


Processus non interactif fonctionnant dans un environnement de système d'exploitation et effectuant un service ou des actions. Certains produits Oracle utilisent des processus d'arrière-plan, notamment pour effectuer et coordonner des tâches pour les utilisateurs de la base de données, pour traiter et acheminer les messages électroniques, et pour gérer les services d'impression.


Valeur utilisée comme point de départ pour tracer des champs sur l'axe continu d'un graphique.


Exécutable permettant d'exécuter une application en mode de traitement par lots sans utiliser de fenêtres.


Traduire en une fois plusieurs unités de programme PL/SQL afin de pouvoir les exécuter.


Référence à un paramètre utilisée pour remplacer une valeur littérale unique (chaîne de caractères, nombre ou date, par exemple) qui apparaît n'importe où dans un élément PL/SQL ou dans une instruction SQL SELECT. Pour définir une référence de lien, vous devez faire précéder le nom du paramètre par le signe deux-points (:).


Variable globale pouvant être créée et utilisée à l'extérieur d'un package PL/SQL.


1. Dans PL/SQL, unité de programme de base définie par les mots-clés DECLARE, BEGIN, EXCEPTION et END.
2. Dans Form Builder, conteneur logique se rapportant à une table ou à une vue de base de données.


1. Contient les mêmes informations que la spécification d'unité de programme et comprend également la mise en oeuvre effective du sous-programme (c'est-à-dire sa séquence d'actions). Dans la plupart des cas, seul un corps doit être défini pour un programme.
2. Dans Report Builder, partie contenant la présentation de l'état (texte, graphiques, données et calculs). Le corps de l'état figure entre la page de garde et la page de fin.


Texte et/ou graphiques apparaissant dans un état à chaque exécution. Egalement appelé dans certains produits « texte constant » ou « graphiques constants ».


Contour d'un objet de présentation défini par l'utilisateur et servant généralement à mettre celui-ci en évidence. Les bordures sont dessinées de sorte que la moitié de la largeur de la bordure soit à l'extérieur du bord de l'objet et l'autre moitié à l'intérieur.


Voir boîte englobante interne, boîte englobante externe.


Graphique à axes affichant deux catégories de données le long d'un même axe.


Colonne d'interrogation attribuée à un groupe de ventilation.


Groupe servant à ventiler des données d'état ou à les classer par catégories. Toutes les données des colonnes d'interrogation attribuées à un groupe de ventilation apparaissent au-dessus des données des colonnes appartenant à d'autres groupes. Chacun des enregistrements extraits pour un groupe de ventilation n'apparaît qu'une seule fois, tandis que plusieurs enregistrements associés dans d'autres groupes peuvent être affichés.


Etat contenant des catégories qui ventilent les données de l'état.


Bloc PL/SQL qui est exécuté chaque fois qu'un point d'interruption est atteint. Voir aussi : point d'interruption.


Action de débogage pouvant être insérée sur toute ligne source exécutable au sein d'un sous-programme PL/SQL, qui interrompt l'exécution de l'unité de programme pour donner le contrôle à l'Interpréteur PL/SQL. Les points d'interruption permettent d'exécuter un sous-programme en mode pas à pas et de rechercher les erreurs d'exécution. Voir aussi : déclencheur de ventilation.


Composant d'Oracle Developer servant à créer un type particulier de document ; par exemple, Form Builder sert à créer des applications Forms et Report Builder, des états.


Type de données défini et pris en charge par Oracle Server.


Ensemble d'extensions du langage PL/SQL, conçu pour être utilisé avec Oracle Developer. Les éléments Built-in (procédures internes) comprennent les types de données, les procédures, les fonctions, les exceptions et les constantes.


Dans Project Builder, macro livrée avec le produit. Voir aussi : macro.


Zone de mémoire temporaire servant au transfert de données entre l'ordinateur et un périphérique, ou entre des parties d'un ordinateur. Un tampon évite que des informations ne se perdent à cause de vitesses et de synchronisations de transfert différentes, et accélère certaines fonctions.


1. Elément d'interface servant à sélectionner une action, à afficher une boîte de dialogue ou à accuser réception de la condition en cours.
2. Objet d'une application auquel est associée une procédure PL/SQL. La procédure est généralement exécutée lorsque l'utilisateur clique à l'aide de la souris.


Procédure PL/SQL associée à un objet application et s'exécutant lorsqu'un événement de souris particulier se produit sur un élément à l'exécution (clic sur un bouton, par exemple). La procédure se déclenche en établissant une hiérarchie des données extraites contenant un groupe de ventilation.


Zone de mémoire temporaire pour les données d'une base auxquelles les utilisateurs accèdent ou qu'ils modifient, ou pour les données dont Oracle Server a besoin pour prendre en charge les utilisateurs. Les termes « cache » et « mémoire cache » sont utilisés indifféremment.


Interface permettant d'appeler les exécutables d'Oracle Developer à partir d'autres produits Oracle ou d'un programme en langage de troisième génération.


Chaîne d'appels de sous-programme, du point d'entrée initial jusqu'au sous-programme en cours d'exécution. Chaque appel de sous-programme est représenté par un cadre sur la pile d'appels descendante-ascendante dans laquelle les sous-programmes nouvellement entrés sont ajoutés en bas.


  Voir éditeur.


Dans Form Builder, objet d'arrière-plan sur lequel vous placez les objets d'interface dont les utilisateurs vont se servir dans l'application à l'exécution. Une vue-canevas est généralement associée à une fenêtre.


Objets manipulables connectés au client, au serveur d'application ou à la base de données via une API ouverte.


Voir feuille de style.


Libellé servant à différencier des informations par une représentation non hiérarchique ou par subdivisions, plutôt que par des niveaux de sensibilité. La classification permet de restreindre l'accès aux informations.


Voir axe discret.


Instance de données dans un tableur (par exemple, Microsoft Excel).


Acronyme de Common Gateway Interface. Standard de l'industrie servant à exécuter des applications sur un serveur Web. Alors que les documents HTML standard extraits d'un serveur Web sont statiques (le même texte est extrait chaque fois), CGI permet à un programme fonctionnant sur le serveur Web de communiquer avec un autre ordinateur pour générer des documents HTML « dynamiques » en réponse à des informations saisies par l'utilisateur.


Acronyme de Computer Graphics Metafile. Format de fichier reconnu internationalement, servant à stocker et à transférer des graphiques orientés objet d'un système ou d'un programme à un autre.


Type de données Oracle assurant la compatibilité ANSI/ISO. Une colonne de type CHAR a une longueur fixe et peut contenir tout caractère imprimable, comme A, 3, & ou des espaces. Elle peut comprendre de 1 à 255 caractères, ou avoir la valeur Null.


Barre, ligne, symbole ou autre objet graphique représentant une valeur unique pour un champ.


Rectangle de n'importe quelle taille et servant à intégrer les graphiques de Graphic Builder dans une application Forms ou dans un état.


Ensemble d'attributs et de propriétés définissant le format d'un graphique.


Elément d'interface apparaissant sous forme de petit carré, et pouvant être activé ou désactivé.


Algorithme de contrôle d'erreurs.


1. Objet membre d'un groupe, situé immédiatement au-dessous de l'objet groupe dans son arborescence de groupe. Les objets qui composent un groupe sont les enfants de ce groupe. Tout objet est l'enfant de son parent.
2. (Oracle Express) Valeur de dimension, de niveau immédiatement inférieur à celui d'une valeur donnée dans une hiérarchie. Les valeurs enfant servent à calculer la somme globale à l'origine de la valeur parent. Une valeur de dimension peut être enfant de plusieurs parents si la dimension dispose de plusieurs hiérarchies. L'exemple suivant désigne les valeurs de dimension Lyon et Paris comme enfants de France dans la dimension GEOGRAPHY.


Voir interrogation détail.


Niveau hiérarchique indiquant la sensibilité des informations libellées. La classification sert à restreindre l'accès aux informations.


Partie d'une instruction SQL, qui ne constitue pas l'intégralité de l'instruction ; une « clause WHERE », par exemple.


Utilisateur, application logicielle ou ordinateur demandant des services, des données ou l'exécution d'un programme à une autre application ou à un autre ordinateur (le serveur). Dans un environnement client-serveur, le client est le processus utilisateur. Dans un environnement réseau, le client est le processus utilisateur local, et le serveur peut être local ou distant.


Séparation du traitement entre deux unités centrales. La première agit en tant que serveur : elle fournit des services, et le client (l'autre unité centrale) demande et reçoit ces services. Toutes les opérations de gestion de données partagées peuvent être traitées par l'ordinateur qui exécute le système de gestion de bases de données, tandis que les postes de travail sur lesquels fonctionne l'application de base de données interprètent et affichent les données.


Mémoire tampon. Un objet reste dans le Presse-papiers jusqu'à ce que l'utilisateur coupe ou copie un autre objet, ou quitte l'application.


Type de données défini par l'utilisateur, décrivant une unité de données constituée d'un nombre indéterminé d'éléments dont le type de données est identique. Les types de tableau variable et les types de table sont des types de collecte. (Oracle8)


Argument permettant d'indiquer un fichier qui contient un ensemble d'arguments de ligne de commande pour les exécutables Oracle Developer.


Contient toutes les couleurs disponibles pour le système de fenêtres, pour la surface de dessin, ou pour une fenêtre et ses vues.


1. Espace vertical dans une table de base de données, représentant un domaine de données particulier. Une colonne possède un nom (ENAME, par exemple) et un type de données propre (CHAR, par exemple). Dans une table d'informations sur le personnel, par exemple, les noms des employés peuvent constituer une colonne. Une colonne de groupe d'enregistrements représente une colonne de base de données.
2. Dans Report Builder, objet modèle de données créé automatiquement pour chaque expression de colonne dans la liste SELECT d'une interrogation, ou créé manuellement pour exécuter des récapitulatifs et des formules, ou tenir lieu de marque de réservation.


Dans une table relationnelle ou une table d'objets Oracle8, colonne dont la définition dépend d'un type d'objet. La colonne est une colonne composite et ses différentes parties correspondent aux attributs du type d'objet.


Ligne de commande du système d'exploitation. La plupart des produits Oracle peuvent être appelés à partir d'une ligne de commande à l'aide d'un certain nombre d'arguments exécutables.


Elément de langage permettant d'insérer un ensemble d'explications dans un programme sans affecter l'exécution de ce programme.


Modifier de façon permanente les données de la base de données. Avant que les modifications ne soient stockées, les anciennes données et les nouvelles cohabitent, ce qui vous permet de stocker les modifications ou de restaurer les données antérieures.


(Oracle Express)

>	Supérieur à

<	Inférieur à

=	Egal à

<=	Inférieur ou égal à

>=	Supérieur ou égal à

<>	Différent de

Pour les nombres, les opérandes sont arrondis au type le moins courant (Integer est prioritaire sur Long, lui-même prioritaire sur Single, qui est prioritaire sur Double). Pour les chaînes, la comparaison distingue les majuscules des minuscules et dépend de la séquence lexicographique utilisée dans la langue indiquée dans le Panneau de configuration de Windows. Le résultat est 0 pour FALSE et -1 pour TRUE.


Traduire un programme source vers un format binaire exécutable. Les unités de programme PL/SQL doivent être compilées avant de pouvoir être exécutées.


Objet cible particulier faisant partie d'une application plus vaste : un formulaire dans un système de saisie de commandes ou une bibliothèque partagée entre de nombreux autres éléments, par exemple. Voir aussi : cible.


Accès simultané aux mêmes données par plusieurs utilisateurs exécutant des applications de base de données différentes ou identiques. Dans un logiciel de base de données, la simultanéité d'accès nécessite une logique supplémentaire pour que les utilisateurs puissent se servir de données homogènes et que toutes les modifications soient effectuées dans le bon ordre.


Expression pouvant prendre deux valeurs, vrai ou faux, comme X> 100. Vous pouvez, par exemple, définir une condition dans une interrogation pour que l'interrogation n'affiche que les lignes dont la valeur est Vrai dans votre expression.


Mode de l'Editeur de présentation empêchant les objets enfants d'être déplacés ou redimensionnés à l'intérieur ou à l'extérieur de leurs objets parents.


Accéder à une base de données. Vous devez vous connecter pour créer ou modifier des interrogations, ou pour accéder à une application stockée dans une base de données.


Ensemble de paramètres, notamment un protocole, utilisés par SQL*Net pour établir la connexion à une instance Oracle particulière sur le réseau.


Règle ou restriction concernant une donnée (telle que la restriction NOT NULL sur une colonne) appliquée au niveau de la base de données, au lieu du niveau de l'objet ou de l'application.


Structure de code PL/SQL. Il existe deux types de structure : la structure sans valeur qui ne renvoie pas de valeur et la structure avec valeur qui en renvoie une.


Zone de travail dans laquelle Oracle Server stocke l'instruction SQL en cours et, s'il s'agit d'une interrogation, les en-têtes de colonne de résultat et une ligne du résultat. Egalement appelé curseur.


Axe matérialisant des valeurs de début et de fin. Ces valeurs sont ainsi mathématiquement liées. Les données dépendantes sont généralement tracées le long de cet axe, également appelé axe de valeurs.


Chacun des quatre angles du rectangle virtuel constituant la forme idéale d'un objet. Lorsque vous sélectionnez un objet dans la présentation, ses points de contrôle s'affichent. Vous pouvez, selon l'objet sélectionné, modifier ce dernier en faisant glisser l'un de ses points de contrôle.


Grille bidimensionnelle sur laquelle l'utilisateur dessine.


Système de référence (abscisse et ordonnée) servant à déterminer la position et la taille des objets dans l'Editeur de présentation. Deux systèmes de coordonnées sont disponibles : 1) le système de type caractère, qui utilise la taille de cellule de caractère natif de la plate-forme et 2) le système de type réel, pouvant être exprimé en pixels, en centimètres, en pouces ou en points.


Valeurs définissant la position des objets dans une présentation. Les coordonnées x et y déterminent la position horizontale (x) et verticale (y) des objets.


Reproduire dans le Presse-papiers un objet sélectionné afin de le coller éventuellement à un autre emplacement d'un éditeur.


Sous-interrogation basée sur les mêmes tables que l'interrogation parent (c'est-à-dire faisant référence aux colonnes des tables comprises dans son interrogation parent).


Groupe propriétaire d'au moins deux autres groupes, qui calcule la corrélation entre les produits.


Voir cellule de matrice.


1. Petite icône matérialisant la position de la souris. La forme du curseur varie en fonction de l'outil sélectionné.
2. Pointeur interne vers les données extraites par une interrogation. Un curseur pointe vers une seule ligne de données à la fois ; vous pouvez toutefois utiliser des sous-programmes intégrés pour placer le curseur sur n'importe quelle ligne de l'ensemble de données.


(Oracle Express) Formule créée par un utilisateur, permettant d'affiner l'analyse des données. Vous pouvez créer des mesures personnalisées à l'aide des mesures standard de la base de données. Par exemple, si la base de données contient la mesure Volume Share, vous pouvez l'utiliser pour créer une mesure personnalisée appelée Volume Share Year Ago. Cette mesure vous permet de visualiser la part absolue d'un produit pour l'année précédente.


Supprimer un ou plusieurs objets et les stocker dans le Presse-papiers afin de les coller éventuellement à un autre emplacement d'un éditeur.


Une vue est endommagée lorsqu'elle est totalement ou partiellement masquée par une autre.


Ensemble de tables et de vues appartenant à l'administrateur de bases de données. Le dictionnaire de données est une source d'informations centrale pour Oracle Server et d'autres bases de données relationnelles.


Objet modèle de données servant à définir une relation maître-détail (parent-enfant) entre un groupe et une interrogation.


Modèle relationnel définissant les données à extraire de la base de données, les valeurs à calculer et le mode de classement de données à utiliser dans un état. Les interrogations, les groupes, les colonnes, les paramètres et les liens sont les objets de Report Builder qui définissent le modèle de données.


Source pour les données renvoyées par une interrogation, y compris les objets de base de données tels que les tables, les vues, les synonymes, les clichés et les interrogations stockées sous forme de vues.


Dans Project Builder, noeud du Navigateur de projet indiquant un élément de projet qui gère la structure d'un projet ouvert. Le noeud Base de registres globale, par exemple, indique la base de registres globale, qui contient la liste des registres locaux et la liste des définitions de type global.


Ensemble de tables dictionnaire et de tables utilisateur traité comme une unité.


Bloc PL/SQL stocké, implicitement exécuté lorsqu'une instruction déclencheur INSERT, UPDATE ou DELETE est émise sur la table associée dans la base de données. Voir aussi : déclencheur de débogage.


Type standard de données. Les types de données Oracle sont CHAR, VARCHAR2, DATE, NUMBER, LONG, RAW et LONG RAW.


Type de données Oracle Server. Une colonne date peut contenir une date et une heure, comprises entre le 1er janvier 4712 avant Jésus-Christ et le 31 décembre 4712 après Jésus-Christ.


Axe matérialisant des valeurs de date de début et de fin.


Détecter, diagnostiquer et éliminer les erreurs d'exécution dans les programmes.


Dans un sous-programme PL/SQL, événement défini par l'utilisateur et servant à éliminer les erreurs d'exécution.


Action de débogage conditionnelle pouvant être placée dans n'importe quelle ligne source exécutable d'un sous-programme PL/SQL. Si la condition indiquée est remplie, l'action associée est déclenchée avant la reprise de l'exécution du sous-programme. Voir aussi : déclencheur de base de données.


Fonctionnalité Procedure Builder intégrée à Oracle Developer, et utilisée à des fins de test et de débogage.


Dans Oracle8, les types d'objet et les objets sont composés ; ils contiennent des parties ou attributs. Oracle Developer traite chaque partie/attribut comme un élément de données indépendant pouvant être sélectionné de manière individuelle. Ce traitement produit un objet déstructuré (parfois appelé objet aplani). L'objet n'est pas une entité homogène dans l'environnement Oracle Developer.


Données dont la valeur dépend de celles d'autres données. L'ancienneté d'un employé, par exemple, peut avoir la valeur 10, qui dépend de la valeur du nom de l'employé. Egalement appelé données de type valeur.


Valeur fournie par le système si l'utilisateur n'indique pas de valeur pour un paramètre ou un attribut de commande obligatoire.


Préparer une application afin d'obtenir une application terminée, prête à être distribuée et déployée.


Mécanisme utilisé par Project Builder pour déterminer la façon de compiler les fichiers qui sont référencés dans les projets. Les éléments situés dans la partie supérieure gauche de l'arborescence dépendent des éléments situés dans la partie inférieure droite ; ainsi, par exemple, si un fichier d'en-tête est obsolète ou si sa date est postérieure à celle du fichier exécutable que ce fichier d'en-tête sert à générer, Project Builder régénère le fichier exécutable selon une commande Build. Les dépendances s'appliquent également aux sous-projets. Si, par exemple, un sous-projet de fonctions de bibliothèque a été régénéré, Project Builder « sait » que le projet dépendant devra être régénéré pour que les fonctions de bibliothèque mises à jour puissent être utilisées. Voir aussi : vue de dépendances.


Dans Project Builder, affiche des fichiers dans le Navigateur de projet, dans leur ordre de dépendance respectif avec des noeuds de projet au sommet de la hiérarchie, suivis par des noeuds cible, eux-mêmes suivis par des composants pouvant être générés à partir de ces cibles. Par exemple, un formulaire exécutable sera suivi du fichier .fmb qui en dépend, lui-même suivi de la bibliothèque utilisée pour une procédure USEREXIT, etc. Voir aussi : affichage de projet, cible.


1. Objet qui, dans l'arborescence de groupe d'un autre objet, apparaît au-dessous de cet objet. Tout objet est le descendant de ses antécédents.
2. (Oracle Express) Valeur de dimension de niveau inférieur à celui d'une valeur donnée dans une hiérarchie. Les valeurs des descendants servent à calculer la somme globale d'un ancêtre. L'exemple suivant désigne les valeurs de dimension France, Lyon et Paris comme les descendants d'Europe dans la dimension GEOGRAPHY.


Interface utilisée pour concevoir les différents composants d'une application Oracle Developer.


Voir Oracle Designer


Ensemble d'outils de modélisation, de conception et de génération d'applications. Oracle Designer vous permet de générer des applications Forms et des menus depuis des définitions de module enregistrées dans le référentiel Oracle.


Au cours de la définition d'un état maître-détail, l'interrogation détail extrait tous les enregistrements associés pour chacun des enregistrements extrait par l'interrogation maîtresse ou parent.


Fenêtre ou écran partiel dans lequel vous devez entrer des informations pour compléter une opération.


Représentation intermédiaire d'une unité de programme générée par le compilateur. La représentation DIANA comprend toutes les informations syntaxiques et sémantiques d'une unité de programme compilée. Afin de compiler une référence à une unité de programme, le compilateur doit pouvoir accéder à la représentation DIANA de l'unité de programme référencée. Si, par exemple, l'unité de programme A appelle l'unité de programme B, la représentation DIANA pour B doit être disponible avant que A ne puisse être compilée.


(Oracle Express) Type d'objet de base de données qui répertorie les valeurs correspondant à des catégories de données. Une dimension joue le rôle d'index dans l'identification des valeurs d'une variable. Par exemple, si vous possédez des données de vente avec une valeur différente par mois, ce type de données a une dimension MONTH : les données sont organisées par mois. Une dimension peut être assimilée à la clé d'une base de données relationnelle.

Tout élément de données d'une variable multidimensionnelle peut être sélectionné dans sa totalité de manière individuelle par indication d'un membre de chacune des dimensions de la variable. Par exemple, si une variable ventes comporte les dimensions MONTH, PRODUCT et MARKET, et que vous indiquiez Janvier pour la dimension MONTH, Stéréos pour la dimension PRODUCT et Est pour la dimension MARKET, vous désignez une cellule unique de la variable. Ainsi, les dimensions permettent d'organiser des données, et de les sélectionner rapidement et intuitivement afin de les extraire, de les mettre à jour et d'effectuer des calculs.

Une dimension peut être simple (valeurs de texte simple ou valeurs entières) ou associée (valeurs correspondant à des combinaisons de valeurs d'autres dimensions). Un composite n'est pas une dimension, mais un objet interne de type associé, considéré comme une dimension par Express pour la gestion des données rares.


(Oracle Express) Elément de la liste constituant une dimension. Par exemple, une société d'informatique peut disposer des valeurs de dimension LAPPC et DESKPC dans la dimension PRODUCT. Les valeurs de la dimension GEOGRAPHY peuvent comprendre Boston et Paris. Les valeurs de la dimension TIME peuvent inclure MAI96 et JAN97.


Etat d'un élément d'interface (option de menu ou bouton, par exemple) indiquant que ce dernier ne peut pas être utilisé dans le contexte actuel ; il ne réagit pas aux sollicitations du clavier ou de la souris.


Axe matérialisant des valeurs distinctes à intervalles fixes. Ces valeurs ne sont pas mathématiquement liées. Les données indépendantes sont généralement tracées le long de cet axe, également appelé axe de catégorie.


Document Graphic Builder contenant indifféremment des graphiques, des images, des objets texte et des formes.


Dans Form Builder, élément stockant ou affichant des informations qui doivent être extraites ou attribuées par programme avec PL/SQL.


Dans une pile d'appels, principe selon lequel les nouveaux sous-programmes entrés sont ajoutés au bas de la pile. Le premier cadre, correspondant au point d'entrée du programme initial, se trouve en haut de la pile, alors que le dernier cadre, associé à l'appel de sous-programme le plus profondément imbriqué, se trouve au bas de la pile.


Appuyer sur un bouton de la souris et le maintenir enfoncé tout en faisant glisser le curseur jusqu'à un endroit particulier d'une fenêtre.


(Oracle Express) Parcourir les différents niveaux de regroupement d'une dimension hiérarchisée. Lorsque vous sélectionnez des valeurs de dimension ou que vous visualisez des données, vous pouvez développer ou réduire la hiérarchie d'une dimension en la hiérarchisant vers le bas ou vers le haut. La hiérarchisation vers le bas développe la vue en incluant les valeurs enfants associées aux valeurs parents dans la hiérarchie de la dimension. La hiérarchisation vers le haut réduit la liste des valeurs descendantes associées à une valeur parent dans la hiérarchie de la dimension.

Vous pouvez cliquer sur l'icône représentant le signe plus ( [image]) pour effectuer une hiérarchisation vers le bas (développement) ou sur l'icône représentant le signe moins ( [image]) pour effectuer une hiérarchisation vers le haut (réduction).

Dans le Sélecteur, vous pouvez cliquer sur l'icône de hiérarchisation ( [image]) pour afficher la boîte de dialogue de hiérarchisation vers le bas afin de sélectionner un niveau de détails pour toute la dimension.


Option permettant de copier des objets directement dans la présentation, sans modifier le contenu du Presse-papiers.


(Oracle Express) Sélection enregistrée qui peut prendre différentes valeurs de dimension à chaque évaluation. Les valeurs de dimension sélectionnées peuvent varier d'une utilisation à l'autre. A l'inverse, une sélection statique enregistrée est une liste invariable de valeurs de dimension. Un script de sélection dynamique enregistrée peut comprendre « Sélectionnez les trois derniers mois », alors que le script d'une sélection statique enregistrée peut contenir « Sélectionnez février 1996, mars 1996 et avril 1996 ».


Acronyme d'Extended Binary-Coded Decimal Interchange Code.


Limite d'un objet.


Icône de la palette d'outils de l'Editeur de présentation, indiquant les paramètres en cours pour les motifs et les couleurs de bord, de remplissage et de texte.


Zone de travail dans laquelle vous effectuez un certain nombre de tâches, comme créer une unité de programme ou concevoir une application.


Notion pour laquelle vous pouvez avoir à enregistrer des informations. Les éléments sont décrits à l'aide d'attributs et d'associations à d'autres éléments.


Tout élément contenu dans le dictionnaire est classé selon le type auquel il appartient. Exemples de type d'élément : entité, attribut, module de programme, table, diagramme, texte, zone, etc. Leurs occurrences ou leurs instances sont appelées éléments.


(Oracle Express) Affiche une boîte de dialogue en rapport avec la tâche en cours, en général pour permettre la sélection d'une ou de plusieurs valeurs requises.


Etat d'un élément d'interface (option de menu ou bouton, par exemple) indiquant que ce dernier peut être utilisé dans le contexte actuel, et réagit aux sollicitations du clavier ou de la souris.


Objet qui en contient un autre. Un objet est considéré comme inclus dans un autre seulement si toutes les conditions suivantes sont respectées : les deux objets appartiennent à la même zone (corps, marge, page de garde ou page de fin), l'objet situé le plus à l'extérieur est un cadre ou un encadrement itératif, l'objet le plus à l'extérieur est situé derrière l'autre objet et l'objet le plus à l'intérieur tient entièrement dans les limites de l'autre objet.


Action de rendre indéchiffrables (non décodables) des données de telle sorte que seul le destinataire voulu puisse les déchiffrer (décoder) et les lire.


Système informatisé de l'utilisateur, y compris les outils généralement utilisés et leur configuration. Pour Project Builder, désigne le sous-ensemble d'outils utilisés pour réaliser diverses tâches relatives au développement d'applications Oracle Developer.


Condition d'avertissement ou d'erreur générée par un sous-programme PL/SQL.


(Oracle Express) Outil de la boîte de dialogue Sélecteur qui permet à l'utilisateur de sélectionner les valeurs de dimension associées aux données répondant aux limites qu'il indique. Par exemple, l'utilisateur peut sélectionner tous les produits dont les ventes en dollars dépassent $ 10 000 dans la semaine finissant le 23 décembre 1995, sur le marché de Boston.


Argument pouvant être communiqué à l'exécutable d'un produit, comme 'OPENFILE=mon_périph' et 'PRINT=YES'. Ces arguments sont généralement indiqués lorsque l'exécutable est appelé à partir d'une ligne de commande.


Voir lancer.


Stocker un exemplaire d'un objet, d'un module, ou du texte ou de l'image sélectionné, dans un fichier ou dans une base de données. Dans Project Builder, processus d'écriture d'un fichier contenant des définitions de projet, de type, d'action et/ou de macro dans un format portable à distribuer à d'autres utilisateurs susceptibles de travailler sur des plates-formes hétérogènes. Voir aussi : fichier d'export, importer.


Dans Project Builder, fichier partageable et portable créé par l'exportation d'un projet.


1. Elément PL/SQL regroupant des variables, des constantes, des valeurs litéralles et des opérations sur leurs valeurs.
2. (Oracle Express) Une ou plusieurs valeurs de données indiquées dans un programme en langage Express. Par exemple, vous pouvez désigner des expressions comme arguments de programmes ou comme fonctions. Une expression peut être l'un des éléments suivants :

•	une valeur littérale unique (par exemple, 10) ;

•	une variable ou une formule comportant une ou plusieurs valeurs ;

•	une fonction renvoyant une ou plusieurs valeurs ;

•	un calcul associant des valeurs (variables, formules ou fonctions) à des opérateurs arithmétiques ou booléens.


Voir bibliothèque.


Instruction SQL SELECT au format ANSI standard pouvant être référencée par d'autres produits Oracle.


(Oracle Express) Groupe de valeurs de dimension connexes qui correspondent aux niveaux de hiérarchie d'une dimension. Les valeurs de dimension d'une famille peuvent être apparentées comme ancêtre, parent, enfant et descendant. L'exemple suivant désigne les relations familiales de la valeur de dimension France dans la dimension GEOGRAPHY.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner une famille de valeurs de dimension pour une hiérarchie donnée. Une famille comprend une valeur parent et toutes les valeurs de dimension descendantes. Par exemple, l'utilisateur peut sélectionner tous les membres de la famille situés en dessous du niveau de marché de Chicago dans la dimension Geography.


1. Elément d'interface dans lequel des données peuvent être saisies, modifiées ou supprimées. 2. Dans Graphic Builder ou Report Builder, objet définissant le mode de présentation des données d'une colonne d'interrogation.


Dans Graphic Builder, ensemble d'attributs et de propriétés déterminant le mode de représentation des données dépendantes (valeurs) sous forme de champs de graphique tels que des barres ou des lignes.


Dans Project Builder, noeud du Navigateur de projet indiquant un fichier stocké dans le système de fichiers. Par exemple, les noeuds de base de registres globale et de base de registres locale correspondent aux fichiers des bases de registres globale et locale.


Zone d'un objet à laquelle un remplissage (couleur ou motif) doit être appliqué.


Fonction PL/SQL ou fonction anonyme limitant les données affichées par un groupe.


Ordinateur réglant depuis l'extérieur l'accès aux ordinateurs d'un réseau local et gérant l'accès aux ordinateurs extérieurs depuis le réseau local.


Voir objet déstructuré.


Mode de l'Editeur de présentation redimensionnant ou réduisant automatiquement les objets parents lorsque les objets enfants sont déplacés ou redimensionnés, et ajustant l'emplacement des autres objets de présentation qui, sinon, pourraient être affectés par ce déplacement ou ce redimensionnement.


Etat d'une entité pouvant répondre aux entrées de l'utilisateur ou du client. Si une entité est la cible des entrées (point d'insertion), elle peut recevoir des événements lorsque l'utilisateur appuie sur une touche. Si un affichage de dessin est la cible des entrées (point d'insertion), il peut répondre aux routines client affectant le dessin.


Partie noire d'un motif. L'application d'une couleur à l'élément de premier plan se fait à l'aide la palette de couleurs de bord.


Valeur ou colonne d'une table faisant référence à une clé primaire d'une autre table.


Dans Report Builder, type de présentation par défaut dans lequel les libellés sont affichés à gauche des champs ; chaque enregistrement est imprimé sur une page logique distincte.


Dans Report Builder, type de présentation par défaut mélangeant les objets standard et les champs, insérant un retour à la ligne au changement de mot.


(Propriétés de champ) Paramètre définissant l'aspect de la valeur d'un champ. Par exemple, un masque de format peut être utilisé pour indiquer l'affichage de montants en devise et de dates.


Fonction PL/SQL permettant de modifier dynamiquement les attributs de formatage d'un objet.


(Oracle Express) Type d'objet de base de données représentant une expression, une procédure ou un calcul stockés à l'origine d'une valeur. Une formule permet de définir et d'enregistrer les relations complexes ou fréquemment utilisées dans les données sans enregistrer de nouveau les données. Chaque fois que vous utilisez une formule, Express lance la procédure ou effectue le calcul requis pour créer la valeur.


Colonne créée par l'utilisateur extrayant ses données à l'aide d'une fonction ou d'une expression PL/SQL, d'une sortie utilisateur, d'une instruction SQL ou de toute combinaison de ces éléments.


1. Dans Graphic Builder, partie d'un modèle de graphique définissant la structure de base d'un graphique, mais pas le mode de tracé des données.
2. Dans Report Builder, objet de présentation servant à englober d'autres objets de présentation et à contrôler le formatage, la fréquence et le positionnement de plusieurs objets simultanément.


Sous-programme PL/SQL qui exécute la suite d'actions indiquée, puis renvoie une valeur. Peut résider et être exécuté sur le client et sur le serveur de base de données.


Enregistrer une application au format binaire dans une base de données ou un fichier pouvant être exécuté par des exécutables Runtime et Batch.


Exécutable Form Builder servant à enregistrer une application dans un fichier ou dans une base de données au format binaire.


Base de registres de Project Builder stockant des informations applicables à l'intégralité d'une installation Oracle Developer. Ces informations sont limitées aux définitions de type et à leurs actions, ainsi qu'aux propriétés prédéfinies ou définies par l'utilisateur. L'utilisation de cette base de registres est facultative ; ses fonctions peuvent être exécutées à l'aide de chaque base de registres utilisateur. Voir aussi : base de registres, base de registres utilisateur.


Conteneur logique existant dans une application. Lorsqu'une application utilise une variable globale, elle conserve la variable jusqu'à sa sortie ou jusqu'à ce qu'un autre objet la supprime explicitement.


Accorder à un utilisateur l'accès à un module. Seul le créateur d'un module peut en autoriser l'accès aux autres utilisateurs.


Dans Graphic Builder, ensemble de lignes divisant une surface en carrés dans l'Editeur de présentation.


1. Objet composé de plusieurs autres objets.
2. Dans Report Builder, objet modèle de données créé automatiquement (pour contenir toutes les colonnes sélectionnées par une interrogation) ou créé par l'utilisateur (pour modifier la hiérarchie des données figurant dans un état) ; il sert principalement à créer des points d'interruption dans un état, ainsi qu'à réinitialiser des calculs.
3. Dans Project Builder, ensemble d'éléments apparentés accessibles à partir des sous-menus du Lanceur. Les groupes permettent à l'utilisateur de configurer le Lanceur de façon semblable au menu Démarrer de Windows 95, composé de groupes arbitraires contenant d'autres éléments ou groupes. Par exemple, un utilisateur peut définir un groupe appelé Doc projet, contenant l'échéancier d'un projet, la liste des activités, les spécifications de composant, etc. ; certains fichiers peuvent être de type .TXT, d'autres de type .DOC.


Fonction PL/SQL limitant les données affichées par un groupe.


Modèle hiérarchique, semblable à un arbre généalogique, décrivant les relations entre les objets groupe et les objets qui les composent.


Interface utilisateur faisant appel à des représentations graphiques, et non uniquement à des mots, pour dialoguer avec un programme. Les programmes à interface graphique fonctionnent avec un système de fenêtres (comme X Windows, Microsoft Windows, Apple Macintosh, etc.). Ces programmes affichent notamment des icônes et des boutons. Les utilisateurs contrôlent ce type de programme principalement à l'aide d'un pointeur à l'écran, (commandé par une souris). Egalement appelée interface bitmap.


Pointeur interne vers un objet application. Pour référencer un objet dans une unité de programme PL/SQL, vous devez transmettre son pointeur comme argument au sous-programme approprié.


Zone d'état facultative pouvant contenir des éléments d'introduction d'état, y compris du texte, des graphiques, des données et des calculs. La page de garde apparaît en premier, avant le corps et la page de fin.


Noeud du Navigateur d'objet indiquant un type d'objet pouvant être contenu dans un état ou y être associé. La sélection d'un noeud en-tête ne sélectionne pas un objet dans l'état.


(Propriétés de champ) Propriété indiquant si Report Builder supprimera le champ indiqué à son emplacement dans la présentation. Si la valeur Masqué est indiquée, la valeur du champ ne figurera qu'à l'endroit référencé dans les objets texte (à l'aide de &fieldname).


(Oracle Express) Méthode d'organisation et de structuration des données. Une hiérarchie existe lorsque les valeurs d'une dimension sont organisées en niveaux, chaque niveau correspondant à la somme globale des données du niveau inférieur. Certaines dimensions peuvent appartenir à plusieurs hiérarchies.

L'exemple suivant présente une hiérarchie de la dimension GEOGRAPHY, dans laquelle les valeurs de dimension sont organisées sur cinq niveaux. Les données du niveau Customers sont classées par groupe dans le niveau Cities, lui-même réparti entre les niveaux Countries/Areas, Continents/Regions et Global.


Acronyme de Hypertext Markup Language. Langage ASCII fondé sur des balises, et servant à indiquer le contenu et les liens à d'autres documents sur des serveurs Web Internet. Les utilisateurs disposant de navigateurs Web affichent les documents HTLM et suivent les liens pour afficher les autres documents.


Acronyme de Hypertext Transfer Protocol. Protocole utilisé pour acheminer le trafic WWW entre un ordinateur doté d'un navigateur WWW et le serveur WWW auquel cet ordinateur accède.


Référence (lien) entre un point donné d'un document et un autre document, ou un autre endroit du même document. Un navigateur Web affiche généralement un hyperlien de façon distincte (dans une couleur, une police ou un style différent). Lorsque les utilisateurs activent des hyperliens (en cliquant dessus avec la souris), le navigateur affiche la cible du lien.


Ensemble de documents contenant des références croisées qui permettent aux utilisateurs de se déplacer facilement d'un document à un autre à l'aide d'un navigateur Web.


Références croisées, qui permettent aux utilisateurs de se déplacer facilement d'un document à un autre à l'aide d'un navigateur Web.


Acronyme d'Interface C Definition. Interface de programmation d'applications PL/SQL à fonctionnalité mise en oeuvre en langage C.


Représentation graphique d'une fenêtre ou d'un outil.


Objet bitmap pouvant être stocké et chargé dans une application. Le client ne peut pas modifier une image importée.


Dans Project Builder, élément de projet, résultant généralement d'une génération automatique, que Project Builder reconnaît et pour lequel il crée automatiquement des entrées dans le Navigateur de projet. Par exemple, Project Builder peut reconnaître des fichiers .obj, générés à une étape intermédiaire de la compilation des fichiers source C, et créer des entrées pour ces fichiers dans le Navigateur d'objet. Bien que la réinitialisation des propriétés d'un élément impliqué soit d'usage restreint (la compilation suivante détruira les modifications), les éléments impliqués peuvent être utiles, car ils peuvent être contrôlés à l'aide des fonctions d'édition, d'affichage et d'impression. Voir aussi : élément, action.


1. Lire un module depuis le système de fichiers ou la base de données, puis l'intégrer dans une application.
2. Lire un fichier contenant des informations sur un projet.


Données dont la valeur ne dépend pas de celle d'autres données. Le nom d'un employé peut avoir, par exemple, la valeur Dupont, qui est indépendante des valeurs des noms des autres employés ou des données associées. Egalement appelées données de catégorie.


Structure facultative associée à une table utilisée par Oracle Server pour localiser rapidement des lignes de la table et (facultatif) pour s'assurer que chacune des lignes est unique.


Dans Project Builder, obtenir des informations d'un noeud ancêtre d'une arborescence de dépendances afin de définir une action, un type, une macro ou une propriété. Si des attributs apparentés existent dans le noeud ancêtre, ils peuvent être hérités. Ainsi, des éléments de système de fichiers tels que des formulaires ou des documents peuvent hériter de définitions d'action de sous-projets, de projets, de la base de registres utilisateur ou de la base de registres globale ; les projets peuvent hériter les définitions de type des bases de registres locale ou globale, et ainsi de suite.


Rectangle virtuel constituant la forme idéale d'un objet et reliant ses quatre points de contrôle, indépendamment de l'épaisseur de bord et des autres paramètres d'attribut.


Fichier servant à générer une cible : par exemple, un fichier .FMB est l'élément d'entrée d'un fichier .FMX. Egalement appelé source.


Mode selon lequel chaque caractère entré est inséré à l'emplacement du curseur, déplaçant vers la droite les caractères suivants. Contraire de mode remplacement.


Réseau mondial d'ordinateurs fondé sur TCP/IP.


Fichier contenant tout ensemble de sources PL/SQL, de commandes Procedure Builder et d'instructions SQL.


Réseau TCP/IP interne dont l'accès est restreint (via un coupe-feu) au personnel d'une entreprise ou d'une organisation. Un réseau Intranet offre à une organisation des services semblables à ceux fournis par Internet, sans que les utilisateurs soient nécessairement connectés à Internet. L'exemple classique d'un réseau Intranet consiste en une société qui configure des serveurs Web sur un réseau interne pour diffuser des informations ou des applications au sein de la société.


Numéro constitué de quatre groupes contenant au maximum trois chiffres, identifiant un ordinateur sur Internet.


Dans Project Builder, objet dans le système de fichiers associé au projet, tel qu'une application Forms ou un document, pointé sur un noeud du Navigateur de projet ou représentant ce noeud.


Dans Project Builder, entrée de la fenêtre Navigateur d'objet représentée par une icône et un titre descriptif. Ces noeuds pointent sur des éléments réels dans le système de fichiers, tels que des fichiers et des documents Form Builder. Voir aussi : noeud, élément.


Acronyme de Java ARchive. Fichier servant à réunir un grand nombre de fichiers (fichiers de classe Java, images, etc.) dans un seul fichier.


Langage informatique prenant en charge la programmation pour Internet sous forme d'« applets » indépendantes de la plate-forme.


Combinaison des données de plusieurs tables dans une instruction SELECT unique.


  Voir alignement.


1. Partie de la syntaxe d'une ligne de commande devant être fournie avec un argument correspondant.  2. Partie obligatoire d'un élément PL/SQL.


Texte identifiant les valeurs ou la signification des objets visuels d'une application.


(Oracle Express) Position dans une hiérarchie de dimension. Chaque niveau situé au-dessus du niveau de base correspond à la somme globale des données du niveau inférieur. Par exemple, la dimension TIME peut comporter des niveaux croissants comme Months, Quarter et Year. A l'intérieur d'une hiérarchie de dimension, la valeur d'un niveau de dimension dispose d'une relation familiale avec les valeurs de dimension des niveaux immédiatement supérieur et inférieur.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner des valeurs de dimension en fonction de leur niveau dans une hiérarchie donnée. Par exemple, l'utilisateur peut sélectionner toutes les valeurs de dimension du niveau Key Account de la dimension Geography.


Zone d'un éditeur dans laquelle vous pouvez créer, modifier, positionner ou supprimer des objets.


Unité de mesure permettant d'assurer une uniformité de présentation entre les différents dispositifs d'affichage. Sert à indiquer un emplacement dans la présentation ou les dimensions d'un objet.


Référence à un paramètre, utilisée pour représenter une chaîne de texte dans une instruction SQL SELECT. Pour créer une référence lexicale, vous devez faire précéder le nom du paramètre d'une esperluète (&).


Ensemble constitué d'unités de programme PL/SQL stockées dans le système de fichiers client ou dans une base de données. Les unités de programme figurant dans une bibliothèque peuvent être référencées par plusieurs applications à la fois. A la différence des unités de programme stockées, qui résident et sont exécutées dans la base de données, les unités de programmes figurant dans une bibliothèque sont toujours chargées et exécutées au sein du moteur PL/SQL du côté client. Pour faire référence à des unités de programme figurant dans une bibliothèque, vous devez au préalable attacher la bibliothèque. Voir aussi : bibliothèque attachée.


Objet modèle de données servant à définir une relation maître-détail (parent-enfant) entre un groupe et une interrogation.


Nom d'un fichier auquel est associé un objet texte standard. A l'exécution, Report Builder importe le contenu du fichier dans la présentation de votre état.


Liste d'éléments dans une boîte de dialogue. Vous pouvez normalement la faire défiler et y effectuer une sélection.


Dans Form Builder, élément affichant une liste de choix.


Egalement appelée LOV. Fenêtre instantanée, que l'utilisateur peut faire défiler, affichant une liste de sélection monocolonne ou multicolonne.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant de sélectionner des valeurs dans la liste des valeurs actuellement sélectionnées dans la dimension.


1. Base de données de l'ordinateur exécutant l'application. 2. Base de données à laquelle une application est connectée. Cette base de données analyse et exécute toutes les instructions SQL générées par l'application.


Voir base de registres utilisateur.


Variable PL/SQL déclarée uniquement pour l'unité de programme en cours.


(Oracle Express)

Not	Non unaire - Opérande de type Integer ou Long. L'opération est effectuée au niveau du bit (complément à 1).

And	Et - Opérande de type Integer ou Long. L'opération est effectuée au niveau du bit.

Or	Ou inclusif - Opérandes de type Integer ou Long. L'opération est effectuée au niveau du bit.

Xor	Ou exclusif - Opérandes de type Integer ou Long. L'opération est effectuée au niveau du bit.

Eqv	Equivalence - Opérandes de type Integer ou Long. L'opération est effectuée au niveau du bit. (A Eqv B) est identique à (Not (A Xor B)).

Imp	Implication - Opérandes de type Integer ou Long. L'opération est effectuée au niveau du bit. (A Imp B) est identique à ((Not A) OR B).


Une page de votre état proprement dit (peut être affichée sur une ou plusieurs pages physiques).


Dans un sous-programme PL/SQL, instruction conditionnelle qui est répétée jusqu'à ce que la condition ne soit plus remplie.


Dans Project Builder, variable de type spécifique pouvant être utilisée pour personnaliser et développer des actions. Une macro peut être une constante ou une expression simple (qui à son tour peut contenir d'autres constantes et/ou d'autres expressions). Le recours aux macros offre une grande souplesse pour l'émission d'options de commande et permet à l'utilisateur de modifier des ensembles de commandes en modifiant la définition d'une propriété.


Présentation par défaut affichant les enregistrements sur une ou plusieurs colonnes dans une page. Les champs apparaissent directement les uns en dessous des autres dans un encadrement itératif unique.


Zone d'état facultative apparaissant en haut et en bas de chacune des pages logiques dans la zone du corps. Une marge peut comporter tout objet de présentation, mais contient en général un texte standard et des champs (pour les numéros de page, les totaux de page, les totaux globaux, ainsi que la date et l'heure).


Présentation par défaut dans laquelle les enregistrements détail apparaissent en dessous des enregistrements maître. Les enregistrements maître ont une présentation de type formulaire, et les enregistrements détail, une présentation de type tabulaire.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner des valeurs de dimension en faisant correspondre les caractères des noms des valeurs de dimension et ceux qu'il indique. Par exemple, l'utilisateur peut sélectionner toutes les valeurs de dimension du niveau Brand de la dimension Product qui contiennent les caractères « nouveau ».


Orientation itérative affichant chacun des enregistrements d'un encadrement itératif sous la forme d'une cellule de matrice.


Présentation par défaut, semblable à une grille, formatant les quatre ensembles de données nécessaires à un état matriciel ; un premier ensemble de données s'affiche sous la forme d'une ligne de libellés, un deuxième sous la forme d'une colonne de libellés, un troisième crée la grille et un quatrième remplit les cellules de la grille.


Matrice de quatre ensembles de données : un ensemble de données s'affiche de gauche à droite de la page ; un deuxième ensemble s'affiche de haut en bas de la page ; un troisième contient une référence inter-produit déterminant tous les emplacements possibles dans lesquels les données verticales et horizontales sont liées, et plaçant une cellule à ces emplacements ; et un quatrième s'affiche sous forme de « filtre » de cellules.


(Oracle Express) Données pouvant être examinées et analysées, comme les données de vente ou de coût. Vous pouvez sélectionner et afficher les données d'une mesure. Les mesures peuvent être stockées comme variables ou relations, ou calculées à l'aide de formules.


Unité de mémoire égale à 1 048 576 octets (1 024 x 1 024). Souvent arrondie à un million d'octets.


Fenêtre modale qui vous signale une condition survenue à la suite de votre dernière action. Vous devez répondre à une zone de message.


Code exécutable attaché à un objet Oracle8 via sa définition de type d'objet.


Fenêtre exigeant une réponse de l'utilisateur pour que l'application poursuive son traitement.


Fenêtre non restreinte pouvant avoir autant de fonctions que le gestionnaire de fenêtres Runtime peut en prendre en charge.


1. Objet pouvant être partagé par plusieurs applications. Les interrogations externes et les bibliothèques PL/SQL constituent des modules.  2. Dans Form Builder, composant principal d'une application (un module Menu, par exemple).


Champ d'une fenêtre ou d'une boîte de dialogue comprenant plusieurs lignes, dans lequel l'utilisateur peut faire défiler verticalement les informations.


(Oracle Express) Valeur de données spéciale indiquant que les données sont non disponibles (Not Available - NA). NA est utilisée pour toute cellule à laquelle aucune valeur de données précise n'a été affectée ou pour laquelle les données n'ont pas été calculées.


Etat matriciel dans lequel les dimensions verticale et/ou horizontale contiennent une ou plusieurs relations maître-détail. Le nombre d'imbrications autorisées est illimité.


Type de données indiquant que les données seront extraites lorsque la page sur laquelle elles figurent sera formatée (au lieu d'être extraites et mises en mémoire cache avant d'être formatées).


1. Emplacement spécifique dans la hiérarchie d'objets du Navigateur d'objet. Les noeuds peuvent être développés pour présenter des informations sur un objet, telles que des références croisées à d'autres objets.  2. Dans Project Builder, entrée du Navigateur de projet. Voir aussi : élément, noeud élément, noeud organisation.


Colonne d'état référençant une colonne de base de données de type NOCACHE.


Indique l'absence de valeur.


(Oracle Express)

^	Exposant.

-,+	Moins et plus unaires.

*, /	Multiplication ou division numérique. Pour la division, le résultat est un double.

\	Division entière. Les opérandes peuvent être de type Integer ou Long.

Mod	Modulo ou reste. Les opérandes peuvent être de type Integer ou Long.

-, +	Addition et soustraction numériques. L'opérateur + peut également être utilisé pour concaténer des chaînes.


1. Elément pouvant être placé dans la présentation. Les éléments suivants sont des objets : rectangle, trait, ellipse, arc, polygone, ligne polygonale, rectangle arrondi, forme libre, graphique, texte, symbole et champ texte. 2. Dans Oracle8, instance d'un type d'objet. Un objet peut être une ligne d'une table d'objets ou une partie de ligne d'un objet colonne d'une table relationnelle.


Voir objet colonne.


Conteneur d'un groupe d'objets, servant à autoriser la copie ou la référence des objets apparentés.


Voir descripteur.


Fenêtre contenant la liste hiérarchique des objets de la session en cours. Elle apparaît sous la forme d'un plan qui permet à l'utilisateur d'effectuer diverses tâches : création, édition, changement de nom et suppression d'objets, par exemple.


Dans Oracle8, table dont la définition est fondée sur un type d'objet. Chaque attribut du type d'objet devient une colonne de la table d'objets. Chaque ligne de la table correspond à un objet Oracle8 distinct.


Dans Oracle8, définition ou modèle fourni par l'utilisateur permettant de construire des objets. Un type d'objet est une entité composite constituée d'attributs. Chaque attribut dispose d'un nom et d'un type de données, et le type d'objet en tant qu'entité possède un nom. Un type d'objet peut également inclure une ou plusieurs méthodes.


Acronyme d'Open Database Connectivity. Norme d'accès à divers systèmes de base de données. Une application peut soumettre des instructions à ODBC à l'aide de SQL ODBC. ODBC traduit ensuite ces instructions dans un format utilisable par la base de données. Oracle Open Client Adapter (OCA) permet à une application d'accéder à divers systèmes de gestion de base de données en utilisant toujours la même méthode. Un développeur d'applications peut ainsi développer, compiler et livrer une application sans cibler un système de gestion de base de données particulier.


Acronyme d'Object Linking and Embedding.


Application permettant de stocker et d'afficher des objets OLE.


Application permettant de créer des objets OLE.


Voir type de données intégré.


Variable d'environnement indiquant le répertoire principal des produits Oracle.


Entrée du Navigateur d'objet, telle que Types, Projets, Fichiers d'application Forms, etc., permettant de structurer le Navigateur et indiquant les types de fichier des éléments enfants. Le noeud organisation peut également désigner une structure de données pour certains types d'objet de système de fichiers.


Position déterminée par des coordonnées x et y. L'origine d'une vue indique l'emplacement de la vue sur son canevas parent. L'origine d'un canevas indique l'emplacement du dessin sur une vue dessinée.


Le plus petit rectangle virtuel entourant complètement un objet.


Action se produisant lorsque le contenu d'un objet ne tient pas dans la page logique en cours. En cas de débordement, une partie du contenu passe à la page logique suivante.


Fonction PL/SQL, fournie avec Oracle Developer, pouvant être référencée en tout endroit d'une unité de programme.


Méthode d'encapsulage et de stockage de procédures, de fonctions, de variables et d'autres éléments de package apparentés sous la forme d'une unité unique dans la base de données. Les packages offrent des avantages structurels aux administrateurs de base de données ou aux développeurs d'applications, et augmentent les fonctionnalités et les performances de la base de données.


Le corps de package comprend la mise en oeuvre réelle du package, qui peut comporter des sous-programmes privés et des types de données. Il est facultatif si le package ne se compose que de déclarations.


La spécification de package déclare l'interface publique au package, c'est-à-dire les types de données et les sous-programmes pouvant être référencés par d'autres unités de programme.


(Oracle Express) 1. Tranche de données incluse dans un état. Les pages supplémentaires affichent des tranches de données supplémentaires.

La figure suivante montre trois pages de données.

2. Dans Express, une page peut également désigner une unité de stockage dans une base de données Express.


(Oracle Express) Aperçu des données sélectionnées pour une interrogation, telles qu'elles apparaîtront dans votre tableur. La présentation de la page comporte trois directions : De gauche à droite, De haut en bas et Page. Elles indiquent la manière dont le cube de données multidimensionnel défini par l'interrogation sera représenté dans le tableur en deux dimensions. Les mosaïques de dimension indiquent le nom et la position des dimensions. Une mosaïque de dimension de type De gauche à droite indique que cette dimension est affichée sous forme de colonne. Une mosaïque de dimension de type De haut en bas indique que cette dimension apparaît sous forme de ligne. Une dimension de type Page indique que cette dimension est affichée dans une zone de page, au-dessus des résultats.


Paramètre qui définit si l'objet en cours et ses enfants doivent être déplacés vers la page logique suivante. Vous pouvez demander que les sauts de page se produisent avant ou après l'objet en cours dans la sortie d'état.


Elément d'interface affichant les outils, les couleurs ou les motifs disponibles dans un éditeur.


Partie distincte d'un éditeur, généralement redimensionnable, où les opérations sont exécutées.


Nombre de pages physiques nécessaires pour imprimer une page logique.


1. Elément PL/SQL utilisé pour transmettre des informations à un sous-programme. Par exemple, dans le sous-programme appelé MYPROC (x), x est un paramètre.  2. Dans Oracle Developer, les paramètres permettent de transmettre des informations d'un composant à un autre (entre Form Builder et Graphic Builder, par exemple).  3. Variable pouvant être modifiée à l'exécution.


Groupe comprenant des noms de paramètre et les valeurs associées, utilisé pour transmettre des informations entre les composants d'Oracle Developer.


1. Objet situé immédiatement au-dessus d'un autre dans son arborescence de groupe. Un objet groupe est le parent de chacun des objets qui le composent. Chaque objet est le parent de ses enfants.
2. (Oracle Express) Valeur de dimension de niveau immédiatement supérieur à celui d'une valeur donnée dans une hiérarchie. La valeur parent correspond à la somme globale des valeurs de ses enfants. L'exemple suivant désigne la valeur de dimension France comme parent de Lyon et de Paris dans la dimension GEOGRAPHY.


Placer le contenu du Presse-papiers (objet coupé ou copié) à l'emplacement du curseur.


Propriété graphique pouvant être appliquée au bord ou au remplissage de la plupart des objets.


Code machine ou liste d'instructions pour une unité de programme compilée.


Acronyme de Portable Document Format. Format de fichier (natif pour Adobe Acrobat) servant à représenter des documents de façon indépendante de l'application, du matériel et du système d'exploitation utilisés pour créer les documents. Un fichier PDF peut décrire des documents contenant indifféremment du texte, des graphiques et des images, dans un format indépendant de l'unité et de la résolution.


Taille de la page à l'impression.


Type d'élément utilisé pour matérialiser un champ dans un graphique, tel qu'une barre, une ligne ou un symbole.


Extension (propriété d'Oracle) du langage SQL. Elle ajoute des éléments de procédure et d'autres éléments SQL permettant de concevoir des applications.


Fichier de script de l'interpréteur Procedure Builder.


Fichier de bibliothèque PL/SQL contenant un code source et un code compilé. Vous pouvez ouvrir ce fichier dans Procedure Builder pour le modifier.


Fichier texte contenant le code source PL/SQL d'une seule unité de programme.


Fichier de bibliothèque Runtime PL/SQL contenant uniquement du code exécutable. Vous ne pouvez ni l'ouvrir ni le modifier dans Procedure Builder.


Liste qui apparaît lorsque l'utilisateur effectue une opération particulière.


Numéro utilisé par TCP pour aiguiller des données envoyées ou reçues par un programme donné.


Action livrée avec Project Builder, automatiquement mise à la disposition de l'utilisateur via une option de menu ou un bouton de barre d'outils. Les actions prédéfinies comprennent Build, Deliver, et plusieurs options de gestion des archives et des rapports. Si une action prédéfinie est créée pour un type de fichier pris en charge, elle est appelée pour tout élément de ce type sélectionné, lorsque l'utilisateur appelle l'action à partir de Project Builder. Voir aussi : action, action définie par l'utilisateur.


Voir type de données intégré.


Paramètre affectant le comportement de l'interface de l'application.


(Oracle Express) Affiche le script qui serait généré si vous acceptiez les critères en cours. Dans la boîte de dialogue des outils du Sélecteur, vous pouvez prévisualiser votre sélection en cliquant sur le bouton Aperçu.


Interface vous permettant de visualiser et de parcourir en ligne la sortie d'état.


Colonne d'une table de base de données dont les membres se composent de valeurs uniques pouvant être utilisées pour identifier une ligne dans une table.


Voir type de données intégré.


Dans un fichier de définition d'imprimante, séquence d'échappement à laquelle vous attribuez un code d'imprimante pouvant être référencé dans un état.


Fichier contenant une définition d'imprimante au format texte (ASCII ou EBCDIC, par exemple).


Sous-programme PL/SQL qui exécute la suite d'actions indiquée. Peut résider et être exécuté sur le client et sur le serveur de base de données.


Structure de code PL/SQL pouvant être reconnue de manière indépendante et traitée par le programme de compilation PL/SQL. Les blocs anonymes, les spécifications et corps de sous-programme (procédures et fonctions), et les spécifications et corps de package sont des types d'unité de programme. Les unités de programme peuvent résider et être exécutées sur le client et sur le serveur de base de données. Voir aussi : unité de programme stockée.


Structure de données de base créée par Project Builder. Les projets sont des ensembles de pointeurs désignant tous les fichiers que vous considérez comme faisant partie de votre application ou que vous voulez regrouper de manière conceptuelle. Vous pouvez définir les éditeurs, les compilateurs et les autres outils que vous utilisez pour travailler avec les éléments d'un projet. Toutes les informations relatives au projet sont stockées dans une base de registres projet. Voir aussi : élément de projet, fichier de projet, exporter.


Dans Project Builder, les fichiers de projet sont tous les fichiers associés à une application. Ils peuvent être de tout type (formulaires, états, affichages, modules 3GL, documentation et scripts de test). Voir aussi : projet, élément de projet.


Dans Project Builder, tout élément pour lequel des propriétés peuvent être définies, y compris les entités stockées dans le noeud Projets, les types, les actions et les macros. Voir aussi : projet, fichier de projet.


Fenêtre contenant la liste hiérarchique des éléments de projet pour la session en cours. Cette liste apparaît sous forme de plan, qui permet à l'utilisateur d'effectuer diverses tâches : création, édition, changement de nom et suppression d'objets, par exemple. Bien que l'utilisateur ne puisse en afficher qu'un à la fois, il peut choisir entre deux schémas d'organisation des objets.


Noeud de niveau supérieur d'un projet. Il représente le fichier de projet ou pointe vers ce fichier. Voir aussi : projet, fichier de projet.


Dans Project Builder, fichier stockant toutes les informations relatives à un projet : les fichiers qui en font partie, les types, les actions et les macros définis pour ce projet, etc.


Vue de projets affichant les objets par type et par relation projet/sous-projet. Les projets sont classés dans l'ordre alphabétique par fichier de projet, puis par catégorie. Voir aussi : vue de dépendances, projet, fichier de projet, vue.


Boîte de dialogue permettant à l'utilisateur de créer plus facilement un nouveau projet ou sous-projet.


Caractéristique d'un objet déterminant le comportement ou l'aspect de cet objet.


Objet nommé contenant une liste de propriétés et leurs définitions, qui sert à contrôler de manière globale l'aspect et le fonctionnement des objets fondés sur cette classe.


Chaîne pouvant être saisie lors de la connexion à un serveur ou à une base de données, qui permet de vous connecter à un serveur ou à une base de données distante.


(Oracle Express) Lorsque vous sélectionnez des valeurs pour l'une des dimensions d'une mesure, les autres dimensions de cette mesure sont appelées dimensions qualificatives.

Supposez que la mesure Sales comporte les dimensions Product, Month et Geography. Si vous sélectionnez les dix premières villes en fonction des ventes, vous devez également indiquer le produit et le mois qui sont pris en compte dans votre comparaison des valeurs de vente. Dans ce cas, Product et Month sont les dimensions qualificatives.


Instruction SQL SELECT indiquant les données à extraire d'une ou de plusieurs tables ou vues d'une base de données.


Fonction PL/SQL qui, lors de son exécution, filtre les données extraites par une interrogation. Seules les données répondant aux conditions indiquées dans la fonction sont tracées.


Option mettant fin à la session en cours et ramenant l'utilisateur au système d'exploitation. Sur certains systèmes, Quitter correspond à « Exit ».


Contrôle (semblable à une case à cocher) apparaissant par groupes de deux ou plus, dont un seul peut être « actif » à un moment donné.


Groupe de deux boutons d'option ou plus, dont un seul peut être actif à un moment donné.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner des périodes consécutives comme valeurs de dimension. Ces périodes peuvent être basées sur l'un des éléments suivants :

•	un nombre précis des périodes les plus récentes ;

•	une période de départ et une période plus récente ;

•	des périodes de début et de fin.

Par exemple, l'utilisateur peut sélectionner des valeurs de dimension pour la période allant de la semaine qui se termine le 25 novembre 1996 à celle qui se termine le 30 décembre 1996.


Chiffre désigné par RSA Data Security, Inc. et qui peut accepter des clés d'une longueur arbitraire. Il s'agit essentiellement d'un générateur de nombres pseudo-aléatoires, la sortie du générateur étant traitée par l'opération Ou exclusif (Xor) avec le flux de données afin de produire les données codées. Une même clé RC4 ne doit donc jamais être utilisée pour coder deux flux de données différents.


Acronyme de Relational Database Management System (système de gestion de base de données relationnelle - SGBDR). Système de base de données permettant de définir des structures de données, des opérations de stockage et d'extraction, ainsi que des contraintes d'intégrité. Les données et leurs relations sont structurées sous forme de tables.


Fichier contenant une seule définition d'état au format binaire. Les fichiers .RDF servent à exécuter et à éditer des états.


Fichier contenant une seule définition d'état au format binaire. Les fichiers .REP servent uniquement à exécuter des états. Vous ne pouvez pas les modifier.


Possibilité d'interroger les données d'une base de données depuis un point unique dans le temps.


Une seule ligne, extraite par une instruction SQL SELECT.


Objet de structure de données interne représenté sous forme de colonnes et de lignes, appartenant au module Application Forms dans lequel elles sont définies.


Type de colonne pointant vers les données d'autres objets colonne ou d'autres tables d'objets (Oracle8).


Ligne apparaissant à la valeur indiquée dans un graphique.


(Oracle Express) Rechercher les données les plus récentes d'une base de données Express après l'affichage des résultats de l'interrogation dans votre état. Lorsque vous ouvrez une interrogation Express enregistrée, les résultats sont automatiquement régénérés.


Ajouter la définition d'un type ou d'un nouveau projet à la base de registres globale ou locale. Une fois le nouveau type inscrit aux registres, vous pouvez lui associer des actions, et vous pouvez référencer les fichiers d'un nouveau projet en tant que types spécifiques pour y exécuter des actions. Voir aussi : base de registres.


Fichier de configuration global et/ou propre à un utilisateur, permettant de stocker des définitions de projet et des informations sur l'environnement. Voir aussi : base de registres globale, base de registres utilisateur.


Symbole utilisé dans des critères de recherche pour comparer deux valeurs, comme le signe égal dans « WHERE DEPTNO = 10 ». Les lignes dans lesquelles le résultat de la comparaison est Vrai sont renvoyées dans le résultat (extraites), alors que celles dans lesquelles la comparaison renvoie la valeur Faux sont exclues des résultats.


Base de données résidant sur un autre ordinateur que la base de données locale. En général, il s'agit d'un ordinateur du même réseau, mais sur un noeud différent (c'est-à-dire une base de données que vous utilisez via une liaison de base de données).


Objet de présentation permettant d'afficher des lignes de données extraites pour un groupe.


Mode dans lequel chacun des caractères que vous tapez remplace le caractère existant situé à l'emplacement du curseur. Contraire de mode insertion.


Objets servant à définir le modèle et la présentation des données d'un état. Les objets de niveau état sont attribués à un seul état, et ne peuvent pas être partagés par d'autres états ou d'autres produits Oracle. Ces objets comprennent les états, les interrogations, les interrogations externes, les bibliothèques PL/SQL externes, les groupes, les colonnes, les paramètres, les liaisons, les encadrements, les encadrements itératifs, les champs, les textes standard et les points d'ancrage.


Disponible sous Windows NT et Windows 95 uniquement. Attend une ligne de commande pour exécuter un état, puis place cet état dans sa file d'attente pour l'exécuter à l'arrière-plan sur le serveur local. En général, les lignes de commande sont reçues depuis Form Builder ou Graphics Builder via RUN_PRODUCT, ou reçues d'un autre état via SRW.RUN_REPORT. Vous pouvez également utiliser RWISV60 pour soumettre un état au moteur d'état d'arrière-plan (Reports Background Engine).


Permet de mettre à jour l'horodatage et les informations des états gérés par Report Server.


Disponible sous Windows NT, Windows 95 et UNIX. Permet d'exécuter des états sur un serveur distant. Met les demandes de travaux dans la file d'attente et vous permet de planifier l'exécution des états. Utilisez RWCLI60 pour envoyer un état à Report Server.


Fournit une interface entre votre serveur Web et Reports Runtime pour vous permettre d'exécuter des états de manière dynamique à partir de votre navigateur Web.


Fournit une connexion entre un serveur Web et Reports Server.


Fichier contenant une définition d'état stockée au format texte (ASCII ou EBCDIC, par exemple). Les fichiers .REX permettent de porter des états d'une plate-forme à une autre. Les fichiers .REX sont désormais inutiles. Ils sont disponibles dans un but de compatibilité avec les versions précédentes.


Acronyme de « rouge, vert, bleu », désignant l'intensité de rouge, de vert et de bleu d'une couleur.


Objet groupe auquel tous les autres objets de l'application appartiennent.


Noeud de niveau supérieur d'un projet, représentant l'environnement de l'utilisateur. Peut correspondre à la base de registres utilisateur ou à la base de registres globale, selon la base choisie pour définir les valeurs par défaut.


1. Ensemble de valeurs de champ d'une table ; par exemple, les champs représentant un employé dans la table EMP.  2. Générer une version Runtime d'une application.


Objet d'une table d'objets Oracle8. Chaque ligne de la table correspond à un objet. Toutefois, dans Oracle Developer, une table d'objets est décomposée en différentes colonnes, si bien que l'objet ligne n'existe plus en tant qu'entité unique (mais seulement sous la forme de ses différents attributs).


Exécuter une version Runtime d'une application ou d'une unité de programme.


Acronyme de Rich Text Format. Format de fichier indépendant de la plate-forme, fondé sur des mots de contrôle, permettant de représenter des textes et des images non formatés sous divers systèmes d'exploitation et dans diverses applications. Le format RTF utilise le jeu de caractères ANSI, PC-8, Macintosh ou IBM PC pour contrôler la représentation et le formatage d'un document à l'écran et à l'impression.


Voir fichier rep.


Interface permettant à l'utilisateur d'afficher une application Runtime et de l'utiliser.


Ecran ou fenêtre pouvant apparaître lors de l'exécution, dans laquelle l'utilisateur peut modifier des options et des paramètres d'impression avant l'exécution d'un état.


(Oracle Express) Ensemble de valeurs de dimension enregistrées en tant que liste de valeurs ou en tant que script. Vous pouvez enregistrer les sélections que vous créez ou l'administrateur de la base de données peut créer des sélections enregistrées que vous pourrez ensuite utiliser.

Les sélections enregistrées permettent de gagner du temps : pour réutiliser une sélection, il suffit d'extraire une sélection enregistrée, sans la créer de nouveau.


(Oracle Express) Outil du Sélecteur permettant d'extraire une sélection de valeurs de dimension enregistrée.


Ensemble d'objets de base de données apparentés, généralement regroupés par ID d'utilisateur de la base de données. Les objets de schéma comprennent les tables, les vues, les séquences, les unités de programme stockées, les synonymes, les index, les groupes et les liaisons de base de données.


Niveau (plage) auquel fonctionne un objet. Dans Project Builder :  1. Décrit la plage de fichiers affectés par les commandes Compiler et Compiler tout, appelées pour des éléments de projet compilables.  2. Décrit la plage de fichiers concernés par les définitions héritables.


Voir scripts SQL, scripts de l'interpréteur.


Dans Report Builder, une ou plusieurs présentations d'un même état dont le public, le format de sortie, la présentation de page, la taille ou l'orientation diffèrent. Par exemple, un seul état peut contenir, dans une section, un récapitulatif destiné aux cadres supérieurs et, dans une autre, un rapport détaillé destiné à chaque directeur.


Instruction SQL indiquant les lignes et les colonnes à extraire d'une ou de plusieurs tables ou vues.


(Oracle Express) Ensemble des valeurs de dimension sélectionnées dans une dimension, ou script contenant les conditions ou les critères permettant d'indiquer ces valeurs.


(Oracle Express) Description des choix effectués par l'utilisateur lors de la sélection des valeurs de dimension, affichée dans la plupart des boîtes de dialogue du Sélecteur. Il s'agit d'une traduction, en langage clair, du script en langage Express.


(Oracle Express) Ensemble d'outils servant à sélectionner les valeurs de dimension à inclure (par exemple, dans un état, une table, un graphique ou une liste de dimensions). Par exemple, vous pouvez utiliser le Sélecteur pour choisir les 10 premières villes en fonction des ventes ou pour choisir les villes dont les ventes ont dépassé le quota de 15 %. Le Sélecteur permet également de trier les valeurs de dimension, et de créer et d'extraire des sélections enregistrées.


(Oracle Express) Boîte de dialogue ou groupe de boîtes de dialogue qui permet de sélectionner ou de trier les valeurs de dimension d'une manière particulière. Chaque outil Sélecteur fait partie du Sélecteur. Vous pouvez utiliser ces outils pour sélectionner des valeurs de dimension selon leur niveau hiérarchique, leurs attributs, les caractères figurant dans le nom de la valeur, etc. Vous pouvez également les utiliser pour trier les valeurs de dimension.


Période s'écoulant entre l'appel d'un exécutable et sa fermeture.


Objet ayant le même objet parent que d'autres dans son arborescence de groupe. Tous les objets appartenant à un même objet groupe sont des objets frères.


Combinaison d'une adresse IP et d'un numéro de port.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant de modifier l'ordre des valeurs de dimension dans la sélection affichée. Vous pouvez trier une sélection dans l'ordre croissant ou décroissant, en fonction de l'un des éléments suivants :

•	ordre alphabétique

•	ordre d'apparition dans la base de données

•	valeurs de données

•	ordre ou niveau de hiérarchie

•	période

Vous pouvez également trier une sélection manuellement, en faisant glisser les valeurs de dimension.


Instructions PL/SQL fournies dans un sous-programme ou un package. Vous devez disposer du code source d'une unité de programme pour pouvoir la compiler sous une forme exécutable. Dans Project Builder : types d'entrée nécessaires à la création des types cible.


Définit uniquement les noms, les paramètres et le type de valeur renvoyée (pour les fonctions uniquement) du sous-programme.


Petit rectangle situé au bas de la barre de défilement verticale et à gauche de la barre de défilement horizontale dans un éditeur. Il permet de créer un nouveau panneau à l'aide de la souris et crée une barre de défilement distincte pour chaque panneau.


Interface standard de stockage et d'extraction d'informations dans une base de données relationnelles. SQL est l'acronyme de Structured Query Language.


Fichier contenant une interrogation au format texte (ASCII ou EBCDIC, par exemple).


Fichier contenant des instructions SQL qui permettent d'exécuter rapidement et facilement des fonctions de gestion des bases de données. Les produits Oracle sont livrés avec plusieurs scripts SQL.


Instruction SQL pour Oracle. Une instruction SELECT est un type d'instruction SQL.


Voir pile d'appels.


Elément PL/SQL servant au contrôle conditionnel, itératif et séquentiel, ainsi qu'à la gestion des erreurs. Chaque instruction PL/SQL doit se terminer par un point-virgule (;).


(Oracle Express) Sélection enregistrée contenant les mêmes valeurs de dimension à chaque évaluation. Les sélections statiques enregistrées répertorient les valeurs de dimension à sélectionner, plutôt que les critères de sélection. Par exemple, un script de sélection statique enregistrée peut contenir « Sélectionnez février 1996, mars 1996 et avril 1996 », alors que le script d'une sélection dynamique enregistrée peut indiquer « Sélectionnez les trois derniers mois ».


Procédure, fonction ou package résidant et s'exécutant sur le serveur de base de données Oracle.


Procédure ou fonction résidant et s'exécutant sur le serveur de base de données Oracle.


Extensions HTML fournissant une souplesse de formatage dans les documents HTML. Pour afficher un document HTML avec tous les avantages des feuilles de style, affichez-le dans un navigateur prenant en charge les feuilles de style.


Procédure ou fonction PL/SQL.


Dans Project Builder, projet contenu dans un autre fichier de projet, au lieu d'être stocké dans son propre fichier. Voir aussi : projet.


Dans Project Builder, noeud indiquant un sous-projet. Voir aussi : projet, noeud projet, noeud sous-projet.


Colonne de type récapitulatif calculant des totaux partiels, des totaux globaux, des totaux cumulés et d'autres récapitulatifs des données d'un état, à l'aide des fonctions récapitulatives fournies par Report Builder.


Format de fichier utilisé par le programme Microsoft Excel.


Système ordonné permettant de combiner des commandes, des qualificateurs et des paramètres pour former des chaînes de commande valides.


L'une des variables fournies par Oracle Developer (&Logical Page ou DESTYPE, par exemple).


Ensemble nommé d'informations apparentées, stockées dans une base de données relationnelles ou sur un serveur, dans une grille à deux dimensions composée de lignes et de colonnes.


Type de collecte définissant une unité de données composée d'un ensemble non trié d'éléments dont le type de données est identique. L'unité de données correspondante est une table imbriquée à une seule colonne, dont le type est un type de procédure interne ou un type d'objet. (Oracle8)


Présentation par défaut affichant des libellés en haut de la page et des lignes de données en dessous des libellés.


Dans Project Builder, élément figurant au milieu de l'arborescence des dépendances ; par exemple, un exécutable est une cible (de compilation) pour une bibliothèque, une bibliothèque est une cible pour un groupe d'objets et un objet est une cible pour un fichier source.


Noeud indiquant une cible. Voir aussi : cible.


Acronyme de Transmission Control Protocol. Protocole de communication sous-jacent pour l'échange de demandes HTTP entre clients et serveurs Web.


Sous-menu que l'utilisateur peut sortir de son emplacement d'origine, à l'aide de la souris ou de tout autre périphérique de pointage, puis placer à un autre endroit de l'écran.


Dans Form Builder, élément affichant une valeur de chaîne de caractères.


Zone horizontale située dans la partie supérieure d'une fenêtre, affichant le nom de l'application ou de l'élément d'interface de cette fenêtre.


Voir page de garde.


Activer ou désactiver un paramètre. Vous pouvez, par exemple, afficher ou masquer le Navigateur d'objet.


Bouton portant une icône, servant à créer et à manipuler des objets dans une application.


Ensemble de boutons à icône, permettant d'exécuter des commandes. Ces boutons sont généralement alignés horizontalement dans la partie supérieure de la fenêtre ou verticalement sur le côté de la fenêtre.


Ensemble d'outils.


(Oracle Express) Outil de la boîte de dialogue Sélecteur permettant à l'utilisateur de sélectionner des valeurs de dimension en fonction des premières valeurs de données d'abscisse, des dernières valeurs de données d'ordonnées ou d'une combinaison de ces valeurs. Par exemple, l'utilisateur peut créer une sélection de dimension contenant les produits dont l'élément Volume Sales fait partie des 10 % de produits les plus vendus dans tous les Etats-Unis au cours de la période de quatre semaines se terminant le 30 décembre 1995.


Zone d'état facultative pouvant contenir des informations de clôture de l'état, notamment du texte, des graphiques, des données et des calculs. La page de fin d'état figure en dernier, après la page de garde et le corps.


Séquence d'instructions SQL traitée comme une unité.


Procédure PL/SQL exécutée ou « déclenchée » lors d'un événement particulier.


Description d'un type de fichier (une application Forms, un document, etc.) contenant des informations telles qu'un nom de type et une description. Chaque description ne s'applique qu'à un type de fichier. Il existe en outre quatre métatypes : « updtext » qui s'applique à tous les fichiers texte, « updproj » qui s'applique à tous les fichiers projet, « updlink » qui s'applique à tous les liens de projet et « tous » qui s'applique à tout type de fichier. Les types permettent de définir des actions et des macros.


Modifier des valeurs de données de table, en particulier en modifiant les valeurs de données à l'aide de la commande SQL UPDATE, mais également en supprimant des valeurs à l'aide de la commande SQL DELETE ou en insérant des valeurs à l'aide de la commande INSERT.


Acronyme de Uniform Resource Locator. Adresse utilisée pour indiquer un serveur WWW. Par exemple :
http://www.acme.com/
Cette chaîne indique que l'adresse de l'hôte est www.acme.com. Cette adresse est le plus souvent un nom de fichier, parfois doté d'un long chemin d'accès et généralement accompagné du suffixe de fichier .HTML ou .HTM (pour les noms de fichier DOS).


(user exit) Méthode consistant à passer le contrôle (et parfois des arguments) d'Oracle Developer à un autre produit Oracle ou à un langage de troisième génération, puis à rendre le contrôle (et, éventuellement, renvoyer des arguments) à Oracle Developer.


Action personnalisée définie par un utilisateur de Project Builder. Une action peut s'appliquer à un type de fichier unique ou à tous les types. Voir aussi : action, action prédéfinie.


Voir type d'objet.


Macro personnalisée définie par un utilisateur de Project Builder. Une macro peut permettre de modifier des actions intégrées et des actions définies par l'utilisateur. Voir aussi : macro, macro intégrée, action, action prédéfinie.


Fichier de projet contenant des informations de configuration relatives à un utilisateur. Il permet aux utilisateurs de personnaliser leur environnement de développement. La base de registres utilisateur hérite des informations de type de la base de registres globale et permet de définir de nouveaux types, ainsi que d'ignorer certains aspects des définitions de type stockées dans la base de registres globale. Elle permet également de stocker des informations sur l'environnement et les préférences, comme la chaîne de connexion préférée de l'utilisateur, les paramètres d'interface utilisateur (par exemple, l'option Afficher barre d'outils et certaines informations générales de projet, comme le nom de l'auteur). Voir aussi : base de registres, base de registres globale.


Voir axe continu.


Structure de code PL/SQL renvoyant une valeur. Ces structures comprennent des fonctions et des expressions.


Objet nommé auquel vous pouvez attribuer une valeur, qui sera variable dans le temps.


Type de collecte définissant une unité de données constituée d'un ensemble trié d'éléments dont le type de données est identique. L'unité de données correspondante est un tableau variable ou VARRAY. Le nombre d'éléments d'un VARRAY (taille) est variable. Toutefois, vous devez indiquer une taille maximale lorsque vous déclarez un type de tableau variable.


Extension de fichier Visual Basic utilisée pour les bibliothèques de liens dynamiques réparties sur des fichiers contenant des contrôles VBX prédéfinis.


Widget créé en langage Microsoft Visual Basic et permettant de perfectionner l'interface utilisateur, d'obtenir des entrées utilisateur et d'afficher des sorties (règles, quadrillages et boutons de contrôle, par exemple).


Table virtuelle dont les lignes n'existent pas en réalité dans la base de données, mais qui est fondée sur une table physiquement stockée dans cette base.


Mnémonique de répertoire (principalement un raccourci ou un synonyme) utilisé par le système de fichiers virtuel pour établir la correspondance des fichiers stockés dans le système de fichiers de l'ordinateur hôte.


Mise en correspondance associant les chemins d'accès utilisés dans une URL au système de fichiers mis à jour par le système d'exploitation de l'ordinateur hôte.


Propriétés de police, de couleur et de motif que vous définissez pour les objets affichés dans votre interface d'application.


Voir WWW.


Programme permettant aux utilisateurs de lire des documents HTML et des programmes stockés sur un ordinateur (desservi par un serveur Web).


Programme exécuté sur un serveur Web via Web Request Broker.


Processus serveur (démon HTTP) exécuté sur un site Web, qui renvoie des pages Web en réponse à des demandes HTTP issues de navigateurs Web.


Caractère servant à remplacer « tout caractère » ou « un ensemble de caractères contigus » dans un mot ou une expression.


1. Zone rectangulaire du bureau contenant une application. Chaque fenêtre comporte une zone dans laquelle vous pouvez dialoguer avec l'application. Les fenêtres peuvent être ouvertes, redimensionnées, déplacées, mises en icône ou agrandies pour remplir le bureau.  2. Dans Form Builder, type d'objet pouvant être associé à une vue-canevas.


Format de fichier utilisé par certains tableurs, comme les programmes SQL*Calc ou Lotus 1-2-3.


Acronyme de Web Request Broker Oracle. Offre un environnement d'exécution réparti puissant permettant de développer et de déployer des applications pour le Web. La plate-forme d'exécution WRB permet aux développeurs d'écrire des applications indépendantes des serveurs Web, mais pouvant fonctionner avec un certain nombre de ces serveurs.


Acronyme de World Wide Web. Réseau de serveurs sur Internet, dont chacun possède une ou plusieurs pages d'accueil. Ces pages fournissent des informations et des liens à d'autres documents sur le même serveur et (généralement) sur d'autres.


Développer un objet afin d'agrandir l'espace pour éditer le contenu du champ.


Barre d'outils secondaire, située par défaut le long de la partie supérieure de l'écran du Navigateur de projet, offrant des fonctions simples d'organisation et de lancement d'applications.


 Version la plus récente des contrôles OLE (OCX).


Sortie XML conforme aux principes XML généraux, c'est-à-dire dotée des balises, des imbrications et des inclusions correctes propres à une déclaration XML. Exemple : <?xml version="1.0" encoding="UTF-8"?>.


Un nom utilisateur de réserve permet à l'utilisateur de se connecter à la base de données en utilisant son nom utilisateur personnel au lieu d'utiliser le nom utilisateur correspondant à la base de données Oracle (par exemple, $nom_utilisateur@base_données) lors de l'exécution d'états depuis un navigateur Web.


Acronyme d'Extensible Markup Language. Métalangage qui utilise du code SGML pour définir et structurer les données. Report Builder prend en charge les sorties XML pour permettre la publication sur le Web et l'échange de données électroniques avec des applications tierces. Vous pouvez également utiliser le format XML pour créer des définitions d'état pouvant être exécutées séparément ou fusionnées avec d'autres définitions d'état lors de l'exécution.


Sortie XML dotée d'une structure et d'éléments conformes à une définition de type de document (DTD). Le code XML valide comporte aussi un format correct.


Utilisation de l'aide en ligne

Les instructions suivantes vous aident à utiliser le système d'aide en ligne de manière efficace :

•	Familiarisez-vous avec l'onglet Sommaire pour vous faire une idée de l'étendue des rubriques couvertes par l'aide en ligne.

•	Cliquez sur le bouton Rubriques connexes situé immédiatement en-dessous des titres de rubriques pour obtenir une liste des rubriques apparentées à la rubrique en cours.

•	Cliquez sur le bouton Options en tête de chaque rubrique pour définir l'option Aide en avant-plan, afin que les rubriques d'aide restent à l'écran lorsque vous développez les applications.

•	Cliquez sur le bouton Glossaire en tête de chaque rubrique pour obtenir une définition des termes que vous ne comprenez pas.


A propos de la documentation

Pour débuter et vous familiariser avec la génération d'applications

1	Consultez l'Aperçu produit qui présente brièvement chaque composant :

•	Choisissez Aide [image] Aperçu produit.

2	Faites défiler les Assistants pour apprendre à exécuter les opérations les plus courantes :

•	Choisissez Aide [image] Assistants.

3	Affichez les manuels en ligne (également disponibles sous forme papier) :

•	Choisissez Aide [image] Manuels.

4	Accédez au système d'aide en ligne :

•	Choisissez Aide [image] Rubriques d'aide.

•	Pour afficher une aide contextuelle, appuyez sur [Aide] (touche F1 sur la plupart des plates-formes).


Accueil


A propos des types d'image

Dans une application Form Builder, vous pouvez intégrer deux types d'image :

• Objets graphiques  Un objet graphique est une image statique (de type vectoriel ou bitmap) que vous importez du système de fichiers ou de la base de données et que vous utilisez comme élément graphique statique dans votre application. Les objets graphiques sont souvent utilisés comme images d'arrière-plan. Lorsque vous enregistrez et compilez un module Application Forms, les objets graphiques sont intégrés aux fichiers .FMB et .FMX. Vous pouvez, dans l'Editeur de présentation, manipuler les objets graphiques comme vous le feriez avec d'autres objets.

• Eléments image  Un élément image est un élément d'interface qui stocke et/ou affiche des images de type soit vectoriel, soit bitmap.  Comme les autres objets qui stockent des valeurs, un élément image peut être un élément de bloc de données (lié directement à une colonne de base de données) ou un élément de contrôle. Lorsque vous enregistrez ou compilez un 'module' Application Forms, les éléments image sont intégrés aux fichiers .FMB et .FMX, mais aucun fichier image n'est associé à un élément image tant que l'élément n'est pas rempli, lors de l'exécution.

Lors de l'exécution, les utilisateurs peuvent naviguer entre les différents éléments image et en sélectionner, mais ne peuvent ni naviguer entre des objets graphiques, ni en sélectionner.


A propos des formats d'image

Form Builder prend en charge de nombreux formats de fichier graphique. Le tableau ci-dessous indique le type de format (image bitmap ou vectorielle) et la possibilité éventuelle de l'utiliser pour des objets graphiques ou des éléments image.

Format	Texte et objets graphiques	Eléments image	Caractéristiques	Compression
BMP	O	Lecture/Ecriture	Monochrome, LUT 4 et 8 bits, RVB 24 bits	aucun
JFIF	O	Lecture/Ecriture	RVB 24 bits	JPEG
PCX	O	Lecture seule	Monochrome; LUT 2, 4 et 8 bits; RVB 1, 2 et 8 bits	RLE
PICT 1 & 2	O	Lecture/Ecriture	Monochrome; LUT 2, 4 et 8 bits; RVB 16 et 24 bits, graphiques objets/vectoriels	Packbits
GIF	O	Lecture/Ecriture	LUT 8 bits	LZW
CALS	O	Lecture/Ecriture	Monochrome	CCITT G4 (FAX)
PCD	O	Lecture seule	Monochrome, LUT 4 et 8 bits, RVB 24 bits	(Kodak)
RAS	O	Lecture/Ecriture	Monochrome, LUT 4 et 8 bits, RVB 24 bits	RLW
TIFF 4, 5 & 6	O	Lecture/Ecriture	Monochrome, gris 8 bits, LUT 4 et 8 bits, RVB 24 bits, données planaires, données mosaïques, ordre octets Intel, ordre octets Motorola, interprétation photométrique, MSB/LSB	Packbits, CCITT G3 (FAX), CCITT G4 (FAX), LZW, LZW avec différence horizontale, JPEG


A propos d'éléments image et d'allocation de mémoire

  Rubriques connexes

Lors de la création d'éléments image dans un bloc de données, Form Builder alloue la mémoire nécessaire aux enregistrements extraits de la base de données, que cet enregistrement soit ou non affiché.

Pour conserver la mémoire client lors de l'affichage d'éléments image de grande taille, réduisez le nombre d'enregistrements mis en mémoire tampon pour le bloc (c'est-à-dire le nombre d'enregistrements que Form Builder peut tenter d'extraire simultanément). Pour cela, vous pouvez définir la propriété de bloc Nombre d'enregistrements en tampon. La valeur minimum est la valeur de la propriété de bloc Nombre d'enregistrements affiché +2.

Remarque:  Les images et les dessins sont toujours stockés dans la base de données dans leur propre format, à moins que vous ne définissiez la propriété Format d'image pour l'élément image. Cela étant, si vous définissez la propriété Format d'image à GIF pour un élément image, puis exécutez READ_IMAGE_FILE pour remplir l'élément avec un fichier TIFF et lancez une opération commit, Form Builder insère l'image dans la colonne LONG RAW correspondante, en format GIF (si possible).

Notez également que PCX et PCD peuvent être lus dans le système de fichiers, mais ne peuvent pas être écrits à l'aide de WRITE_IMAGE_FILE.


Importation d'un objet graphique

Pour importer un objet graphique:

1	Dans l'Editeur de présentation, choisissez Fichier [image] Importer [image] Image pour afficher la boîte de dialogue d'importation d'images.

2	Cliquez sur un bouton d'option (Base de données ou Fichier) pour indiquer la provenance de l'image que vous importez, puis entrez le nom de l'image.

3	Pour indiquer le format graphique de l'image, sélectionnez une valeur dans Format (valide uniquement pour les images stockées dans le système de fichiers).

4	Sélectionnez une valeur dans la liste instantanée Qualité pour indiquer la qualité graphique de l'image.

Remarque: Pour optimiser la qualité de l'image et l'espace mémoire, définissez la qualité et la trame d'image de manière à obtenir un équilibre entre les deux. Pour définir ces options, sélectionnez l'image dans l'Editeur de présentation, puis choisissez Format [image] Options de dessin [image] Image.

5	Cliquez sur OK pour importer l'image.

Form Builder place l'objet graphique importé au centre de la zone de dessin (lorsque vous importez un objet graphique dans votre application Forms, vous le placez dans un canevas spécifique).

Conseil : N'oubliez pas que vous pouvez placer des éléments d'interface sur des objets graphiques. Par exemple, vous pouvez placer des boutons sur une carte pour permettre à l'utilisateur d'obtenir des informations sur des régions spécifiques.


Création d'un élément image

Pour créer un élément image :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du noeud bloc souhaité.

Form Builder développe le noeud Blocs et affiche ses sous-noeuds.

2	Cliquez sur le noeud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le noeud Eléments.

4	Cliquez deux fois sur l'icône située à côté de cet élément pour afficher la Palette de propriétés.

5	Sous le noeud Général, paramétrez la propriété Type d'élément de l'élément sur Image.

6	Utilisez la Palette de propriétés ou l'Editeur de présentation pour définir la présentation de l'élément image.

Lorsque vous utilisez des éléments image, rappelez-vous ce qui suit :

• Le type de données d'un élément image est prédéfini à LONG RAW (la propriété Type de données n'apparaît pas dans la Palette de propriétés pour un élément image).

• Définissez la propriété Qualité de compression pour indiquer à Form Builder le degré auquel vous voulez que l'image soit comprimée lorsqu'elle est entrée dans l'application Forms. Cette compression est toujours effectuée, que le fichier image ait été ou non comprimé dans le système de fichiers.

• Définissez la propriété Type d'ajustement pour indiquer à Form Builder comment afficher les images trop grandes pour le cadre de l'élément image. Choisissez Découper pour que Form Builder affiche l'image en taille réelle, même si une partie de celle-ci dépasse le cadre de l'élément image. Choisissez Ajuster si vous voulez que Form Builder mette l'image à l'échelle pour qu'elle tienne entièrement dans le cadre de l'élément image.


Remplissage d'un élément image

  Rubriques connexes

Rappelez-vous que, bien que la définition d'un élément image soit stockée dans les fichiers .FMB et .FMX du module Application Forms, aucun fichier image n'est associé à un élément image tant que l'élément n'est pas rempli lors de l'exécution.

Les élément image peuvent être remplis de la façon suivante :

• Par l'extraction d'une colonne de base de données de type LONG RAW.

Un élément image d'un bloc de données est automatiquement rempli lorsque l'utilisateur ou l'application exécute une interrogation sur le bloc. Lorsqu'une image extraite est modifiée ou remplacée, Form Builder associe à cet enregistrement une marque indiquant qu'il a été modifié et la prochaine opération commit enregistre la nouvelle image dans la colonne de type LONG RAW correspondante dans la base de données.

Remarque : Vous ne pouvez pas écrire d'instruction SELECT pour sélectionner une valeur de type LONG RAW dans un élément image.

• Par l'exécution de la procédure interne READ_IMAGE_FILE pour lire une image dans le système de fichiers.

(Pour écrire dynamiquement, dans un fichier, une image provenant d'un élément image, utilisez la procédure interne WRITE_IMAGE_FILE.)

• Par collage d'une image du presse-papiers dans un élément image vide.

A l'exécution, il suffit de couper ou de copier une image dans le presse-papiers, de cliquer dans un élément image vide, puis de choisir Edition [image] Coller. L'image collée adopte l'échelle de l'élément image dans lequel vous l'avez collée. Ajustez en conséquence la propriété Type d'ajustement de l'élément image - Découper ou Ajuster.


Manipulation d'éléments image à l'exécution

  Rubriques connexes

A l'exécution, les éléments image peuvent être manipulés soit par l'utilisateur (à l'aide de la palette d'images si elle est affichée) ou par programme.

Utilisation de la palette d'images. Si vous activez la propriété Afficher palette d'un élément image, Form Builder affiche, lors de l'exécution, une palette de manipulation d'image à côté de l'élément. L'utilisateur peut alors faire appel aux trois outils de palette pour manipuler l'image.

Ces trois outils sont les suivants :

•  Bouton Zoom : cliquez sur l'outil, puis cliquez plusieurs fois de suite sur l'image pour réduire par incrément l'image source affichée dans le cadre de l'élément image.

•  [image]  Panoramique : cliquez sur l'outil et utilisez la poignée pour effectuer un panoramique sur les parties non visibles de l'image source (valide uniquement si l'image source dépasse au moins une bordure de l'élément image.

•  [image]  Rotation : cliquez sur l'outil, puis cliquez plusieurs fois de suite sur l'image pour la faire pivoter dans le sens des aiguilles d'une montre, par incrément de 90°.

Manipulation d'éléments image par programme : Pour réagir aux événements des éléments image, utilisez les déclencheurs suivants :

• When-Image-Activated (activé lorsque l'utilisateur clique deux fois sur un élément image)

• When-Image-Pressed (activé lorsqu'un utilisateur clique une ou deux fois sur un élément image)

Vous pouvez également utiliser la procédure interne IMAGE_ZOOM pour manipuler les images contenues dans des éléments image.


Création d'un élément graphique

Pour créer un élément graphique :

1	Dans le Navigateur d'objet, cliquez sur le bloc de votre choix.

2	Choisissez Outils [image] Editeur de présentation.

3	Dans l'Editeur de présentation, cliquez sur [image] dans la barre d'outils, puis procédez comme l'indique l'assistant pour créer un élément graphique.


Création d'un texte de graphique

  Rubriques connexes

Pour créer un texte de graphique :

1	Dans l'Editeur de présentation, cliquez sur l'outil Texte de la palette d'outil.

2	Cliquez sur la région dans laquelle vous voulez placer le texte.

3	Entrez votre texte.

La boîte englobante de l'objet texte s'adapte à la longueur du texte. Utilisez des retours chariot pour passer à la ligne suivante si nécessaire.

4	Cliquez en dehors de la boîte englobante de l'objet texte pour sortir du mode Texte.

Remarque : Lorsque l'option Boîte englobante variable de la boîte de dialogue Options de dessin - texte est activée, vous pouvez créer un objet texte de graphique en cliquant et en faisant glisser l'objet jusqu'à ce que la boîte englobante ait la taille voulue. Le texte passe automatiquement à la ligne suivante lorsqu'il atteint l'extrémité de la boîte englobante de l'objet texte. Pour appeler la boîte de dialogue Options de dessin - texte, sélectionnez Format [image] Options de dessin [image] Texte. Pour activer l'option Boîte englobante variable, cliquez sur Boîte englobante prédéfinie.


Edition de texte graphique

Pour éditer un texte graphique :

1	Cliquez sur l'outil Texte dans la palette d'outils de l'Editeur de présentation.

2	Cliquez sur l'objet texte de graphique à éditer.

Le point d'insertion de texte apparaît dans l'objet texte.

3	Editez le texte.

4	Cliquez en dehors de la boîte englobante de l'objet texte pour sortir du mode Texte.


Création de graphiques à lignes

  Rubriques connexes

Pour créer des rectangles, des lignes, des ellipses et des arcs :

1	Dans l'Editeur de présentation, cliquez sur l'outil souhaité dans la palette d'outils.

2	Placez le pointeur à l'endroit où vous voulez commencer à tracer le graphique.

3	Cliquez et faites glisser le graphique jusqu'à ce qu'il ait la taille de votre choix, puis relâchez.

Remarque : Lorsque vous créez un nouvel arc, l'angle de balayage par défaut est de 90°. Pour le modifier, utilisez l'outil Remettre en forme.

Pour créer des polygones et des lignes polygonales:

1	Dans l'Editeur de présentation, sélectionnez l'outil Polygone ou Ligne polygonale.

2	Placez le pointeur à l'endroit où vous voulez commencer le premier segment, puis cliquez.

3	Déplacez le pointeur jusqu'à ce que le premier segment de ligne ait la longueur et l'angle voulus, puis cliquez pour marquer la fin du segment.

4	Continuez à cliquer et à déplacer le pointeur pour définir chaque segment du polygone.

5	Cliquez deux fois pour marquer la fin du dernier segment.

Lorsque vous utilisez l'outil Polygone, Form Builder ajoute un dernier segment de droite qui relie le point final au point de départ.

Pour utiliser l'outil Forme libre :

1	Sélectionnez l'outil Forme libre.

2	Placez le pointeur à l'endroit où vous voulez commencer à dessiner.

3	Cliquez et faites glisser pour dessiner le graphique de forme libre de votre choix.


Contrainte des outils graphiques

Vous pouvez contraindre le fonctionnement des outils graphiques en maintenant enfoncée la touche de contrainte (touche Maj sur la plupart des plates-formes).

Les outils contraints fonctionnent de la manière suivante :

Outil	Résultat
Ellipse	Cercle
Droite, Polygone	Angles horizontal, vertical ou diagonal
Ligne polygonale, Rectangle	Angles horizontal, vertical ou diagonal
Rectangle	Carré
Rectangle arrondi	Carré arrondi
Arc	Cercle


Création d'éléments


A propos de la création d'éléments d'interface

Pour créer un élément, vous avez le choix entre insérer un nouvel élément dans un bloc ou transformer un élément existant, en modifiant son type.


A propos des boutons

  Rubriques connexes

Les boutons sont des éléments d'interface que les utilisateurs sélectionnent pour exécuter des commandes ou déclencher des actions. Ils peuvent, par exemple, servir à lancer une navigation, à afficher des listes de valeurs (LOV), à appeler un éditeur ou une fenêtre, à valider des données dans une application Forms, à lancer une interrogation ou à effectuer virtuellement n'importe quelle autre opération se prêtant à un codage PL/SQL.

Form Builder accepte deux types de bouton : les boutons texte et les boutons icône. Les boutons texte comportent un libellé textuel. Les boutons icône comportent un graphique bitmap. Ils sont souvent utilisés dans les barres d'outils.

Comportement à l'exécution Sur les plates-formes à interface graphique, un bouton texte apparaît sous la forme d'un rectangle contenant un libellé textuel qui décrit l'action déclenchée par le bouton. Sur les plates-formes en mode caractère, un bouton texte apparaît sous la forme d'une chaîne de texte entre parenthèses.

Les boutons icône sont affichés comme des icônes graphiques, sans libellé. Ils ne peuvent apparaître que sur les plates-formes à interface graphique.

Remarque : Dans Microsoft Windows, les attributs de couleur des boutons sont gérés exclusivement par l'utilitaire Couleur (dans le Panneau de configuration). Pour définir ces attributs (devant du bouton, ombre du bouton, couleur du texte, mise en évidence), vous devez obligatoirement passer par cet utilitaire.


A propos de la navigation vers des boutons

  Rubriques connexes

Les utilisateurs se déplacent jusqu'aux boutons à l'aide de la souris ou d'une touche de fonction Form Builder. Avec une touche de fonction, le bouton sélectionné dépend de l'ordre dans lequel il apparaît dans le Navigateur d'objet.


A propos de la sélection de boutons

  Rubriques connexes

Les utilisateurs sélectionnent un bouton en cliquant sur celui-ci avec la souris. La commande ou l'action associée au bouton est lancée dès que le bouton de la souris est relâché. Le point d'insertion peut se trouver sur n'importe quel élément de l'application Forms lorsque l'utilisateur sélectionne le bouton ; il n'est pas nécessaire de naviguer jusqu'au bouton pour le sélectionner.

Les utilisateurs peuvent également sélectionner un bouton en navigant jusqu'à celui-ci, puis en appuyant sur [Sélectionner]. Le curseur reste sur le bouton, sauf si la commande déclenchée par le bouton déplace le curseur sur un autre élément.


Création d'un bouton

  Rubriques connexes

Pour créer un bouton :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du nœud bloc souhaité.

Form Builder développe le nœud Blocs et affiche ses sous-nœuds.

2	Cliquez sur le nœud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le nœud Eléments.

4	Cliquez deux fois sur l'icône située à côté de cet élément pour afficher la Palette de propriétés.

5	Sous le nœud Général, définissez la propriété Type d'élément à Bouton.

6	Sous le nœud Base de données, définissez la propriété Elément de base de données à Non.

Remarque : Lorsque vous créez un élément dans un bloc de données, Form Builder considère que l'élément est un élément de données et il définit sa propriété Elément de base de données sur Oui. Les éléments de données sont inclus automatiquement dans les instructions SELECT, UPDATE et INSERT envoyées à la base de données. Si l'élément que vous créez est un élément d'interface dans un bloc de données, définissez explicitement sa propriété Elément de base de données sur Non.

7	Sous le nœud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.


Ajout d'un libellé de bouton

  Rubriques connexes

Pour ajouter un libellé de bouton :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'objet en regard du bouton de votre choix pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, entrez le texte de votre choix dans le champ de propriété Libellé.

Conseil : Assurez-vous que le bouton est assez grand pour contenir le texte du libellé. Pour savoir si le libellé va entrer dans le bouton, vous pouvez visualiser ce dernier dans l'Editeur de présentation.


Définition d'un bouton icône

  Rubriques connexes

Pour définir un bouton comme bouton icône :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône en regard du bouton de votre choix pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel :

• définissez la propriété Icône à Oui ;

• définissez la propriété Nom de fichier d'icône au nom de l'icône. Indiquez cette propriété en omettant l'extension du nom de fichier d'icône. Par exemple, entrez MY_ICON au lieu de MY_ICON.ICO.

Remarque : A l'exécution, Form Builder recherche l'icône dans le chemin indiqué par la variable d'environnement de votre système (UI60_ICON dans Microsoft Windows).


Définition d'un bouton par défaut

  Rubriques connexes

Pour définir un bouton comme bouton par défaut :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'objet en regard du bouton de votre choix pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, définissez la propriété Bouton par défaut à Oui.


Manipulation des boutons à l'exécution

  Rubriques connexes

Form Builder fournit des déclencheurs que vous pouvez utiliser pour répondre à des événements d'interface survenant lorsque l'utilisateur manipule un bouton.

Exécution du code de bouton Pour qu'un bouton exécute ou lance une commande, vous devez lui associer un déclencheur When-Button-Pressed qui est activé à la sélection du bouton.

Lorsque l'événement attendu survient, c'est-à-dire, lorsqu'un utilisateur sélectionne le bouton, Form Builder exécute le code contenu dans le déclencheur When-Button-Pressed.

L'exemple suivant illustre un déclencheur When-Button-Pressed calculant la somme des valeurs stockées dans deux éléments texte :

Déclencheur When-Button-Pressed :

:order.total := :order.qty * :order.price

Définition des propriétés de bouton par programme  Vous pouvez définir et extraire par programme les propriétés de bouton, grâce aux sous-programmes intégrés suivants :

•	CONVERT_OTHER_VALUE

•	DISPLAY_ITEM

•	 GET_ITEM_PROPERTY

• 	SET_ITEM_PROPERTY


A propos des cases à cocher

  Rubriques connexes

Une case à cocher est une commande à deux états qui indique si une certaine condition ou une valeur est activée ou désactivée, vraie ou fausse.

Comportement à l'exécution  Sur les plates-formes à interface graphique, une case à cocher s'affiche sous la forme d'une petite case carrée avec un libellé textuel à droite. Sur les plates-formes en mode caractère, une case à cocher apparaît entre crochets.

Une case à cocher doit toujours être cochée ou non cochée. Les utilisateurs font basculer l'état de la case à cocher en cliquant sur celle-ci avec la souris ou en navigant jusqu'à elle, puis en appuyant sur [Sélectionner].

Sur la plupart des interfaces graphiques, le texte contenu dans le libellé de la case à cocher est "dynamique". Autrement dit, les utilisateur peuvent activer ou désactiver l'option en cliquant soit sur la case à cocher, soit sur le texte lui-même.

En mode Saisie interrogation, l'utilisateur peut exclure une case à cocher des critères d'interrogation en indiquant son état comme indéfini. Lorsqu'une case à cocher est à l'état indéfini, elle apparaît désactivée. Notez que cet état n'est valable qu'en mode Saisie interrogation.


A propos des valeurs de case à cocher

  Rubriques connexes

Les cases à cocher contiennent des valeurs CHAR, NUMBER ou DATE. La valeur d'une case à cocher peut être définie par une extraction depuis une colonne de base de données correspondante, par une entrée utilisateur via une manipulation d'élément, ou encore par une valeur par défaut ou une affectation à l'exécution. De même, la valeur d'une case à cocher peut être validée dans la base de données par l'intermédiaire d'un traitement de validation standard.

Lorsque vous définissez une case à cocher, vous indiquez quelle valeur vous souhaitez que celle-ci représente dans les états coché et non coché.

Prenons l'exemple d'une case à cocher qui indique si un crédit a été ou non accordé à un client. En définissant la case à cocher, vous pouvez indiquer que la valeur Cochée correspond à 'CREDIT_OK' et la valeur Non cochée, à 'NO_CREDIT'.

Lors de l'extraction d'un enregistrement client, la case à cocher contient la valeur extraite de la colonne de base de données à laquelle elle est associée. Si la valeur extraite est 'NO_CREDIT', la case est affichée dans son état non coché (désactivée). Si l'utilisateur active la case pour la faire passer à l'état coché (activée), la valeur devient la valeur cochée, 'CREDIT_OK'.

Cases à cocher et autres valeurs  Lorsque vous créez une case à cocher, vous devez indiquer comment vous souhaitez qu'elle gère les valeurs extraites ou affectées qui ne font pas partie des valeurs représentées par les états coché ou non coché. (Notez que l'état indéfini n'est utilisé qu'en mode Saisie interrogation. Il est donc impossible de lui associer une valeur.)

Vous pouvez indiquer qu'une case à cocher gère ces autres valeurs de l'une des trois façons suivantes :

•	en rejetant les autres valeurs comme non autorisées ;

•	en affichant les autres valeurs comme état coché ;

•	en affichant les autres valeurs comme état non coché.

Dans l'exemple précédent, vous pourriez indiquer que la case à cocher pour l'accord d'un crédit traduise toute autre valeur par un état non coché (désactivé). Par conséquent, si un enregistrement extrait devait renvoyer la valeur 'PENDING', la case à cocher serait non cochée, indiquant ainsi que le crédit n'a pas encore été accordé au client. Dans cet exemple, seule la valeur 'CREDIT_OK' définit l'état de la case comme coché ; toutes les autres valeurs s'affichent comme non cochées.

Lorsqu'une valeur autre que la valeur Cochée ou Non cochée est extraite ou affectée à une case à cocher, l'état de l'élément peut être soit coché, soit non coché, mais sa valeur reste Autres valeurs jusqu'à ce qu'une nouvelle valeur soit extraite ou affectée, ou que l'utilisateur fasse basculer l'état de la case à cocher.

Le tableau suivant indique les états et les valeurs possibles de la case à cocher prise en exemple :

Valeur extraite ou affectée	Etat de la case à cocher	Valeur de la case à cocher	Etat/valeur après bascule par l'utilisateur
CREDIT_OK	coché	CREDIT_OK	non coché/NO_CREDIT
NO_CREDIT	non coché	PENDING	coché/CREDIT_OK
PENDING	non coché	PENDING	Coché/CREDIT_OK
123ABC	non coché	123ABC	Coché/CREDIT_OK


Création d'une case à cocher

  Rubriques connexes

Pour créer une case à cocher :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du nœud bloc souhaité.

Form Builder développe le nœud Blocs et affiche ses sous-nœuds.

2	Cliquez sur le nœud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le nœud Eléments.

4	Cliquez deux fois sur l'icône objet en regard du nouvel élément créé pour afficher la Palette de propriétés.

5	Sous le nœud Général, définissez la propriété Type d'élément à Case à cocher.

6	Sous le nœud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.

7	Créez un libellé pour la case à cocher en entrant le texte de votre choix dans le champ de la propriété Libellé, se trouvant dans le nœud Fonctionnel.

Le libellé de la case à cocher s'affiche à droite de l'élément à l'exécution.

8	Indiquez les valeurs que la case à cocher devra afficher selon qu'elle est "cochée" ou "non cochée", dans les champs de propriété Valeur cochée et Valeur non cochée. Ces propriétés se trouvant dans le nœud Fonctionnel.

Par exemple, si vous souhaitez que la case soit "cochée," ou activée, lorsque sa valeur stockée est égale à XYZ, entrez la chaîne XYZ dans le champ de propriété Valeur cochée.

Remarque : Les valeurs que vous entrez ne peuvent excéder le nombre de caractères indiqué dans la propriété de longueur maximum.

Conseil : Si vous souhaitez qu'une case à cocher affiche une valeur Null lorsqu'elle est cochée ou non cochée, n'inscrivez rien dans le champ de propriété Valeur cochée ou Valeur non cochée, selon le cas. Utilisez l'état correspondant (coché ou non coché) dans la propriété Case à cocher Correspondance d'autres valeurs :

•	Pour qu'une valeur Null apparaisse lorsque la case est cochée, définissez la propriété Case à cocher Correspondance d'autres valeurs sur Cochée.

•	Pour qu'une valeur Null apparaisse lorsque la case n'est pas cochée, définissez la propriété Case à cocher Correspondance d'autres valeurs sur Non cochée. Si vous ne le faites pas, cette propriété entraîne l'apparition d'un message d'erreur signalant la présence d'une valeur non valide.

9	Définissez la propriété Case à Cocher Correspondance d'autres valeurs dans le nœud Fonctionnel pour indiquer comment elle doit gérer les autres valeurs.

Cette propriété détermine comment la case à cocher gère les valeurs différentes de celles que vous avez indiquées dans les champs de propriété Valeur cochée et Valeur non cochée.

•  Choisissez Cochée si vous souhaitez que la case soit cochée lorsque sa valeur est différente de celles indiquées dans les champs de propriété Valeur cochée et Valeur non cochée.

•  Choisissez Non cochée si vous souhaitez que la case ne soit pas cochée lorsque sa valeur est différente de celles indiquées dans les champs de propriété Valeur cochée et Valeur non cochée.

•  Choisissez Non autorisée si vous souhaitez que la case rejette toute valeur différente de celles indiquées comme non valides dans les champs de propriété Valeur cochée et Valeur non cochée. Lorsqu'une autre valeur non valide est extraite ou affectée à la case, l'enregistrement est rejeté en silence.

Remarque : La propriété Case à cocher Correspondance d'autres valeurs ne s'applique qu'aux valeurs de case à cocher extraites de la base de données ou attribuées par programme à l'exécution. Lorsque les utilisateurs activent ou désactivent une case à cocher, la valeur de celle-ci est soit Cochée, soit Non cochée, jamais Autres valeurs.


About check box initial values
A propos des valeurs initiales de case à cocher

  Rubriques connexes

Vous pouvez indiquer une valeur initiale pour une case à cocher  dans le champ de la propriété Valeur initiale. Il s'agit de la valeur initiale de l'élément, qui détermine si la case à cocher est cochée ou non cochée initialement.

Vous devez indiquer une valeur initiale valide, sauf :

•	si la propriété Boîte à cocher Correspondance d'autres valeurs est définie à Cochée ou Non cochée ou ;

•	que la valeur associée à l'état coché ou non coché est Null.

Remarque : La valeur initiale n'est pas affectée tant que Form Builder n'a pas créé d'enregistrement dans le bloc. Dans un enregistrement Null, c'est-à-dire un enregistrement qui n'a pas encore été initialisé, une case à cocher apparaît toujours non cochée.


Définition d'une valeur initiale pour une case à cocher

  Rubriques connexes

Pour définir une valeur initiale pour une case à cocher :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'objet en regard de la case à cocher pour laquelle vous souhaitez donner une valeur initiale. La Palette de propriétés s'affiche.

2	Sous le nœud Données, définissez la propriété Valeur initiale à la valeur souhaitée.


Manipulation de cases à cocher à l'exécution

  Rubriques connexes

Form Builder fournit des déclencheurs que vous pouvez utiliser pour répondre à des événements d'interface survenant lorsque l'utilisateur manipule une case à cocher.

Exécution du code d'une case à cocher Pour qu'une case à cocher exécute ou lance une commande, vous devez lui associer un déclencheur When-Checkbox-Changed qui est activé à la sélection de la case à cocher.

Lorsque l'événement attendu survient, c'est-à-dire lorsqu'un utilisateur sélectionne la case à cocher, Form Builder exécute le code contenu dans le déclencheur When-Checkbox-Changed.

Définition des propriétés de case à cocher par programme Vous pouvez définir et extraire par programme les propriétés de case à cocher à l'aide des sous-programmes intégrés suivants :

•	CONVERT_OTHER_VALUE

•	DISPLAY_ITEM

• 	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


A propos des éléments affichés

  Rubriques connexes

Les éléments affichés sont semblables aux éléments texte à la seule différence qu'ils ne stockent et n'affichent que des valeurs extraites ou affectées. Les éléments affichés servent généralement de texte standard ou conditionnel.

Un des avantages à utiliser un élément affiché est qu'il exige moins de mémoire qu'un élément texte.

Comportement à l'exécution Les utilisateurs ne peuvent pas naviguer vers ces éléments ni éditer leurs valeurs.

Remarque : Les éléments affichés multilignes n'effectuent pas de renvoi à la ligne automatique entre des caractères ou des mots ; leurs valeurs ne passent à la ligne suivante que sur un caractère d'interligne.


Création d'un élément affiché

  Rubriques connexes

Pour créer un élément affiché :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du nœud bloc souhaité.

Form Builder développe le nœud Blocs et affiche ses sous-nœuds.

2	Cliquez sur le nœud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le nœud Eléments.

4	Cliquez deux fois sur l'icône objet en regard du nouvel élément créé pour afficher la Palette de propriétés.

5	Sous le nœud Général, définissez la propriété Type d'élément à Elément affiché.

6	Sous le nœud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.


A propos du formatage des valeurs d'élément affiché avec des masques de format

  Rubriques connexes

Vous pouvez formater des éléments affichés monolignes avec des masques de format. Lorsqu'un masque de format est affecté à un élément affiché, toute valeur extraite ou affectée à l'élément est affichée dans le format indiqué par le masque.

L'exemple suivant présente comment un masque de format influe sur une valeur NUMBER :

Masque de format	Valeur extraite	Valeur affichée
$9,999,999.99	3246000	$3,246,000.00

Masques de format et types de données  Un masque de format peut être appliqué aux éléments affichés avec les types de données suivants :

•	NUMBER

•	DATE et DATETIME

•	CHAR

Le masque de format doit être compatible avec le type de données de l'élément affiché.


Attribution d'un masque de format à un élément affiché

  Rubriques connexes

Pour attribuer un masque de format à un élément affiché :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'objet en regard de l'élément affiché de votre choix.

2	Sous le nœud Général, entrez directement les caractères du masque de format le champ de propriété Masque de format.

3	Assurez-vous que le type de données de l'élément affiché tel qu'il est indiqué dans la propriété Type de données (nœud Données de la Palette de propriétés) est compatible avec le masque de format.

4	Assurez-vous que la propriété Longueur maximum de l'élément affiché est définie pour permettre à l'élément affiché de stocker tout caractère supplémentaire qui sera intégré par le masque de format.

Remarque : La définition des paramètres NLS affectera les formats par défaut.


Symboles de masque de format d'élément affiché pour des valeurs NUMBER

 Examples 	     Rubriques connexes

Le tableau suivant présente les symboles les plus fréquemment utilisés dans les masques de format numérique.

Symbole	Description
9	Représente 1 caractère numérique. Le nombre de 9 détermine le nombre de chiffres que peut afficher l'élément texte.
0	Affiche des zéros en tête.
$	Représente le signe dollar en tête.
B	Affiche un espace avant des zéros.
MI	Affiche "-" après une valeur négative.
PR	Affiche une valeur négative <entre chevrons>.
,  (virgule)	Affiche une virgule à sa position au besoin.
. (décimale)	Affiche une décimale à sa position.

Caractères intégrés dans des valeurs NUMBER  Vous pouvez intégrer une chaîne de caractères dans une valeur NUMBER en la mettant entre guillemets dans le masque de format. Les caractères intégrés servent habituellement pour des valeurs de longueur fixe telles que des numéros de nomenclature et des numéros de téléphone.

Le masque de format suivant intègre des tirets dans des valeurs numériques :

Masque de format	Valeur affichée
999"-"99"-"9999	566-23-5733

L'emplacement d'une chaîne intégrée est fixe dans un élément affiché et ne change pas selon le nombre de chiffres dans la valeur stockée.


Symboles de masque de format d'élément affiché pour des valeurs NUMBER - Exemples

Exemple

Le tableau suivant présente des exemples de masque de format pour des valeurs NUMBER :

Masque de format	Nombre entré	Résultat
999	223.4	223
$9,999.99	3445.34	$3,445.34
999"-"999"-"9999"	4083543957	408-354-3957
99.9	00027.48	27.5
099.9	00027.48	00027.5
B99,9	00027.48	27.5
99.9MI	-24	24.0-
99.99"%"	66.17	66.17%


Symboles de masque de format d'élément affiché pour des valeurs DATE

 Examples 	     Rubriques connexes

Le tableau suivant présente les symboles les plus fréquemment utilisés dans les masques de format de date et de date/heure.

Symbole	Description
9	Représente 1 caractère numérique. Le nombre de 9 détermine le nombre de chiffres que peut afficher l'élément texte.
MM	Mois (01-12).
MOI	Nom du mois, abrégé en 3 lettres.
MOIS	Nom du mois, complété par des espaces (9 caractères au maximum).
JJ	Jour du mois (1-31).
JO	Nom du jour, abrégé en 3 lettres.
JOUR	Nom du jour, rempli de blancs jusqu'à 9 caractères.
YYYY,YYY, YY,  ou Y	Année à 4, 3, 2 ou 1 chiffre(s).
TH	Nombre ordinal (par exemple., "DDTH" pour "15TH").
SP	Nombre en toute lettre (par exemple, "DDSP" pour "FIFTEEN").
SPTH ou THSP	Nombre ordinal en toute lettre (par exemple, "DDSPTH" pour "FIFTEENTH"
FM	Préfixe utilisé avec des symboles tels que MONTH et DAY pour supprimer le remplissage ajouté à ces symboles. Permet également de supprimer les zéros en tête pour des symboles numériques tels que HH et MM. FM est une bascule . Si FM apparaît deux fois dans un modèle de format de date, le remplissage par des espaces et des zéros en tête est supprimé pour les éléments après le premier FM, et est activé après le second.

Caractères intégrés dans des valeurs DATE et DATETIME  Pour intégrer une chaîne de caractères dans un masque de format de date, mettez-la entre guillemets. Des espaces et des caractères de ponctuation (/ .  , : ' - ) peuvent être intégrés dans un masque de format de date sans les mettre entre guillemets.

Par exemple :

Masque de format	Valeur affichée
"La valeur d'aujourd'hui est" fmDAY, fmMONTH DDTH	La valeur d'aujourd'hui est Tuesday, March 16TH


Symboles de masque de format d'élément affiché pour des valeurs DATE - Exemples

Exemple

Le tableau suivant présente des exemples de masque de format pour des valeurs DATE :

Masque de format	Résultat
MM/DD/YYYY	03/15/1995
MONTH 15 YYYY	MARCH 15 1995
fmMONTH 15 1995	MARCH 15 1995
Jour, "the" DDTH "of" fmMonth	Wednesday, the 15TH of March
J	2449792


Symboles de masque de format d'élément affiché pour des valeurs CHAR

 Examples 	     Rubriques connexes

Le tableau suivant présente les symboles les plus fréquemment utilisés dans les masques de format CHAR.

Symbole	Description
FM	Mode de remplissage : accepte la chaîne telle qu'elle est saisie, sans justification à droite. Permet à l'utilisateur d'entrer des chaînes plus petites que le masque de format.
X	Tout caractère, alphabétique, numérique ou spécial. La chaîne d'entrée doit être exactement de la longueur indiquée par le masque de format.
9	Caractères numériques uniquement. La chaîne d'entrée doit être exactement de la longueur indiquée par le masque de format.
A	Caractères alphabétiques uniquement. La chaîne d'entrée doit être exactement de la longueur indiquée par le masque de format.


Symboles de masque de format d'élément affiché pour des valeurs CHAR - Exemples

Exemple

Masque de format	Résultat
XXAA	Accepte --ab, abcd, 11ab; n'accepte pas --11, ab11, ou ab--(vous devez utiliser XX pour que les tirets et les autres caractères spéciaux soient acceptés).
XXXX	Accepte toute combinaison de caractères alphabétiques, numériques ou spéciaux comme --ab, abcd, 11ab, --11, ab11, ou ab--. Accepte 1234 ou abcd ; n'accepte pas 123 ou abc. (Pour qu'une chaîne d'entrée plus courte que le masque soit acceptée, utilisez FMXXXX.)
FMXX99	Accepte ab12, ab1, ab suivi de deux blancs ; n'accepte pas 12ab ou abcd. (Pour obtenir un type de données Alpha version 3.0 Form Builder, utilisez FMAAAAAA.)


A propos des éléments Liste

  Rubriques connexes

Un élément liste consiste en une liste d'éléments texte qui peuvent s'afficher sous la forme d'une liste instantanée, d'une liste texte ou d'une zone de liste déroulante.

Un élément liste contient un nombre fixe d'éléments. Chaque élément de la liste consiste en une chaîne de texte contenant 30 caractères au maximum. A l'exécution, il vous est possible d'évaluer, d'ajouter ou de supprimer par programme des éléments liste.

Comportement à l'exécution

Liste instantanée	L'élément liste de type liste instantanée apparaît initialement comme champ simple (semblable à un champ d'élément texte). Cependant, dès que l'utilisateur sélectionne l'icône de liste, une liste des choix disponibles apparaît.
Liste texte	L'élément liste de type liste texte apparaît sous la forme d'une boîte rectangulaire contenant un nombre fixe de valeurs. Lorsque cette liste contient des valeurs non affichables (en raison de la zone d'affichage limitée de l'élément), une barre de défilement verticale apparaît, permettant ainsi à l'utilisateur de visualiser et de sélectionner les valeurs non affichées.
Zone de liste déroulante	L'élément liste de type zone de liste déroulante combine les caractéristiques des éléments liste et texte. Contrairement aux listes en incrustation ou aux listes texte, cet élément liste affiche des valeurs fixes tout en acceptant une valeur entrée par l'utilisateur.

Remarque : Les valeurs entrées par l'utilisateur ne deviennent pas automatiquement des entrées permanentes dans la liste. Pour qu'elles fassent partie de la liste, utilisez le sous-programme intégré ADD_LIST_ELEMENT.

L'élément liste zone de liste déroulante apparaît sous la forme d'une boîte vide avec une icône à droite. L'utilisateur peut entrer du texte directement dans le champ de liste déroulante ou cliquer sur l'icône de liste pour afficher une liste des valeurs disponibles.


A propos des valeurs d'élément liste

  Rubriques connexes

Lorsque vous créez un élément liste, vous devez associer une valeur de données à chaque élément de la liste. Ainsi, quand l'utilisateur sélectionne un élément, l'élément liste adopte la valeur associée à cet élément. De la même façon, lorsqu'une valeur est extraite de la base de données ou affectée à la liste par programme, l'élément dont la valeur correspond à la valeur extraite ou affectée est sélectionné dans la liste.

Un élément liste peut aussi contenir une valeur extraite ou affectée qui n'est pas associée à un élément propre à la liste. En définissant un élément liste, vous devez indiquer comment il devra traiter ces autres valeurs. Vous avez le choix entre deux méthodes :

•	indiquer que l'élément liste rejette les autres valeurs comme non autorisées ;

•	indiquer l'élément de la liste à sélectionner lorsque la valeur de l'élément liste est une autre valeur.

Remarque : Comme les éléments liste de type zone de liste déroulante acceptent les données entrées par l'utilisateur, vous n'avez pas besoin de définir d'autre valeur pour ces éléments.

Eléments liste et valeurs Null Vous pouvez attribuer une valeur Null (par programme ou par interrogation) à un élément Liste, qu'il s'agisse d'une zone de liste déroulante, d'une liste instantanée ou d'une liste de sélection. Cette opération est valide même si l'élément Liste est obligatoire, qu'il n'autorise aucune autre valeur et qu'il ne contient pas d'élément dont la valeur a été explicitement définie sur Null.

Tout élément Liste peut contenir une valeur Null, même s'il ne contient aucun élément dont la valeur a été explicitement définie sur Null et qu'il n'autorise aucune autre valeur. Lorsqu'une valeur Null est extraite ou affectée à un élément liste, c'est l'élément Null (vide) qui est en cours de sélection dans la liste. A l'exécution, l'aspect d'un élément liste Null dépend du type d'affichage :

•	Pour une liste instantanée, un élément Null implicite est temporairement inséré dans la liste.

•	Pour une liste texte, aucun élément n'est mis en évidence.

•	Pour une zone de liste déroulante, aucun texte n'apparaît dans l'élément liste.

En mode Saisie interrogation, les utilisateurs peuvent définir la valeur d'un élément liste comme Null lorsqu'ils ne souhaitent pas inclure la valeur de cet élément dans les critères d'interrogation :

•	Pour une liste instantanée, les utilisateurs excluent l'élément en sélectionnant l'élément Null (vide) ;

•	Pour une liste texte, les utilisateurs excluent l'élément en annulant la sélection de l'élément en cours ;

•	Pour une zone de liste déroulante, les utilisateurs excluent l'élément en ne lui attribuant aucune valeur.

N'oubliez pas non plus que la valeur d'un élément est Null quand le bloc ne contient pas encore d'enregistrements. Form Builder crée un enregistrement en cas de navigation vers ce bloc.

Ainsi, même si vous avez attribué une valeur par défaut à l'élément liste en définissant la propriété Par défaut, cette valeur n'est pas affectée jusqu'à ce que l'événement Créer enregistrement ait lieu pour ce bloc. Vous pouvez imposer par programme une navigation, grâce à des routines intégrées comme GO_BLOCK et GO_ITEM.

La définition de la propriété Obligatoire d'une liste instantanée ou d'une liste de sélection peut avoir une incidence sur les valeurs figurant dans la liste : lorsque cette propriété est sélectionnée, une instance de liste instantanée affiche une valeur Null supplémentaire si sa valeur actuelle est Null ou si sa propriété Obligatoire est définie à FALSE. Lorsque vous sélectionnez la valeur actuelle d'une instance de liste de sélection, celle-ci est désélectionnée (ainsi, aucune valeur de la liste n'est sélectionnée) si sa propriété Obligatoire est définie à FALSE. En revanche, si sa propriété Obligatoire est définie à TRUE, la sélection de la valeur actuelle de l'instance n'a aucun effet. La valeur reste sélectionnée.


Création d'un élément Liste

  Rubriques connexes

Pour créer un élément liste :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du nœud bloc souhaité.

Form Builder développe le nœud Blocs et affiche ses sous-nœuds.

2	Cliquez sur le nœud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le nœud Eléments.

4	Cliquez deux fois sur l'icône objet en regard du nouvel élément créé pour afficher la Palette de propriétés.

5	Sous le nœud Général, définissez Type d'élément à Elément liste.

6	Sous le nœud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.

7	Indiquez le type d'affichage pour la liste en définissant la propriété Type de liste (sous le nœud Fonctionnel) à Liste instantanée, Liste texte ou Zone de liste déroulante. La propriété Liste instantanée est la valeur par défaut.

8	Cliquez deux fois sur la propriété Eléments de liste (également sous le nœud Fonctionnel) pour afficher la boîte de dialogue correspondante, puis entrez les éléments exactement comme vous souhaitez les voir apparaître dans la liste à l'exécution.

Conseil : Pour insérer un nouvel élément dans la liste, appuyez sur [Bas] ou sur [Insérer élément]. Pour supprimer un élément liste, appuyez sur [Supprimer élément].

Remarque : Au lieu de définir des valeurs d'élément Liste à la conception, vous pouvez également ajouter des éléments Liste individuels à l'exécution à l'aide du sous-programme intégré ADD_LIST_ELEMENT ou remplir la liste à l'exécution à partir d'un groupe d'enregistrements à l'aide de la procédure interne POPULATE_LIST. Dans ce cas, assurez-vous que le groupe d'enregistrements utilisé contient les valeurs appropriées avant d'appeler la procédure interne POPULATE_LIST. S'il s'agit d'un groupe d'enregistrements statique, il contient déjà les valeurs appropriées. Dans le cas contraire, vous devez remplir le groupe à l'exécution à l'aide de l'un des groupes d'enregistrements.

9	Associez une valeur à chaque élément de la liste en entrant la valeur de votre choix dans le champ Valeur d'élément Liste, puis en choisissant OK.

Ce champ affiche la valeur associée à l'élément actuellement sélectionné dans la colonne Eléments de liste. Les valeurs que vous affectez à chaque élément doivent être compatibles avec le type de données (CHAR, NUMBER ou DATE) de l'élément liste.

Conseil : Pour affecter une valeur Null à un élément, ne complétez pas le champ Valeur d'élément Liste.

Remarque : La valeur d'un élément ne peut excéder le nombre de caractères indiqué dans la propriété Longueur maximum de l'élément liste.

10	Vous devez indiquer comment un élément liste devra traiter une valeur extraite ou affectée qui n'est pas associée à un élément propre à la liste. Pour ce faire, définissez la propriété Correspondance d'autres valeurs sous le nœud Fonctionnel:

•  Laissez ce champ vide pour indiquer que les autres valeurs ne sont pas autorisées pour cet élément. Tout enregistrement demandé qui contient une valeur ne correspondant à aucune des valeurs associées à un élément de la liste sera rejeté en silence. Il sera en outre impossible d'affecter une autre valeur.

•  Entrez une valeur correspondant à l'une des valeurs associées à un élément spécifique ou au nom de l'un des éléments.

Remarque : La propriété Correspondance d'autres valeurs ne s'applique qu'aux valeurs d'éléments liste extraites de la base de données ou attribuées par programme à l'exécution. Lorsqu'un utilisateur sélectionne un élément, la valeur de l'élément liste est toujours celle qui est associée à cet élément, jamais une autre.


A propos des valeurs initiales d'élément Liste

  Rubriques connexes

Vous devez indiquer une valeur initiale valide sauf si a) l'élément liste accepte d'autres valeurs ou que b) la valeur associée à l'un des éléments de la liste est Null.

Remarque : Si la valeur initiale doit déterminer l'état initial de sélection de la liste, n'oubliez pas que les valeurs initiales ne sont affectées que lorsque Oracle Forms crée un enregistrement dans le bloc.


Indication d'une valeur initiale pour un élément liste

  Rubriques connexes

Pour indiquer une valeur initiale pour un élément liste :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'objet en regard de l'élément liste de votre choix pour afficher la Palette de propriétés.

2	Sous le nœud Données, définissez la propriété Valeur initiale à la valeur souhaitée.


Manipulation d'éléments Liste à l'exécution

  Rubriques connexes

Form Builder fournit des déclencheurs que vous pouvez utiliser pour répondre à des événements d'interface survenant lorsque l'utilisateur manipule un élément liste.

•	When-List-Activated

•	When-List-Changed

A l'exécution, vous pouvez ajouter, supprimer, modifier ou évaluer par programme des éléments d'un élément liste à l'aide des sous-programmes intégrés suivants :

•	ADD_LIST_ELEMENT

•	CONVERT_OTHER_VALUE

•	DELETE_LIST_ELEMENT

•	GET_LIST_ELEMENT_COUNT

•	GET_LIST_ELEMENT_LABEL

•	GET_LIST_ELEMENT_VALUE

•	POPULATE_LIST

•	RETRIEVE_LIST


A propos de l'ajout d'éléments liste

  Rubriques connexes

Vous pouvez ajouter des éléments liste soit au coup par coup, soit en remplissant un élément liste avec des valeurs contenues dans un groupe d'enregistrements.

Vous pouvez ajouter des valeurs à un élément liste en utilisant les sous-programmes intégrés suivants :

•	ADD_LIST_ELEMENT

•	POPULATE_LIST


Ajout d'un seul élément liste

  Rubriques connexes

Pour ajouter un seul élément à une liste, utilisez le sous-programme intégré ADD_LIST_ELEMENT.

En appelant ADD_LIST_ELEMENT, vous indiquez quel élément liste va recevoir ce nouvel élément en indiquant le nom de la liste, son index, son libellé et la valeur à ajouter.

Dans l'exemple suivant, la valeur "1994" est ajoutée à un élément liste appelé calendar.

Add_List_Element('calendar',list_index,'1994','1994');


Ajout de plusieurs éléments Liste

 Examples 	  Rubriques connexes

Pour remplacer tous les éléments d'une liste, utilisez le sous-programme intégré POPULATE_LIST. Ce sous-programme supprime le contenu de l'élément liste en cours puis remplit ce dernier avec les valeurs issues d'un groupe d'enregistrements.

Un groupe d'enregistrements est une structure de données interne à Form Builder qui comporte un cadre colonne/ligne semblable à celui d'une table de base de données. Un des avantages à remplir un élément liste avec des valeurs issues d'un groupe d'enregistrements est que ces groupes (avec ou sans interrogation) peuvent être construits dynamiquement à l'exécution.

Remarque :  Pour pouvoir remplir un élément liste, le groupe d'enregistrements doit être créé à l'exécution et comporter deux colonnes de type CHAR. La première contient des valeurs de libellé de liste et la seconde, des valeurs d'élément liste.

En appelant POPULATE_LIST, vous indiquez quel élément liste va recevoir les valeurs du groupe d'enregistrements en indiquant l'ID de la liste et le nom du groupe.


Ajout de plusieurs éléments liste - Exemple

L'exemple suivant crée un groupe d'enregistrements avec interrogation à deux colonnes, puis remplit un élément liste avec les valeurs de ce groupe.

DECLARE
    group_id     RecordGroup;
    list_id      Item := Find_Item('list_item1');
    status       NUMBER;
BEGIN
/*
**  Créer un groupe d'enregistrements avec interrogation à deux colonnes appelé
**  product_name.
*/
    group_id := Create_Group_From_Query('product_names','SELECT
       product.name, product.name FROM product');
    status := Populate_Group('product_names');
/*
**  Remplir l'élément liste avec les valeurs issues du
**  groupe d'enregistrement product_name.
*/
    Populate_List(list_id,group_id);
END;


Extraction et stockage d'éléments liste dans un groupe d'enregistrements

 Examples 	  Rubriques connexes

Pour extraire et stocker (créer un "cliché") le contenu d'une liste dans un groupe d'enregistrements, utilisez le sous-programme intégré RETRIEVE_LIST. Cette opération vous permet de restaurer la liste avec son contenu initial.

En appelant RETRIEVE_LIST, vous indiquez quelle liste récupérer en indiquant les ID de la liste et du groupe d'enregistrements.

Pour pouvoir extraire le contenu d'un élément liste, le groupe d'enregistrements doit comporter deux colonnes de type CHAR, la première contenant des valeurs de libellé de liste et la seconde, des valeurs d'élément liste.


Extraction et stockage d'éléments liste dans un enregistrement - Exemple

L'exemple suivant extrait le contenu de l'élément liste en cours ('list_item1') dans un groupe d'enregistrements (orders), crée un groupe d'enregistrements avec interrogation à deux colonnes (product_names), puis remplit l'élément liste avec les valeurs issues de ce dernier groupe.

DECLARE
/*
**  Créer un groupe d'enregistrements sans interrogation à deux colonnes appelé
**  orders. Ce groupe contient les valeurs de l'élément liste.
**  Affecter son ID à la variable group_id.
*/
    group1_id    RecordGroup;
    group2_id    RecordGroup
    col1_id      GroupColumn;
    col2_id      GroupColumn;
    it_id        Item := Find_Item('list_item1');
    status       NUMBER;

BEGIN
    group1_id := Create_Group('orders');
/*
**  Ajouter deux colonnes au nouveau groupe en utilisant group1_id pour
**  identifier le groupe, puis extraire les valeurs d'élément liste
**  dans le groupe d'enregistrements.
*/
    col1_id := Add_Group_Column(group1_id,'col1',CHAR_COLUMN,50);
    col2_id := Add_Group_Column(group1_id,'col2',CHAR_COLUMN,50);

    Add_Group_Row(group1_id,1);
    Add_Group_Row(group1_id,2);
    Retrieve_List(it_id, 'orders');
/*
**  Créer un groupe d'enregistrements avec interrogation à deux colonnes appelé product_names.
*/
    group2_id := Create_Group_From_Query('product_names','SELECT
        product.name,product.name FROM product');
    status := Populate_Group('product_names');
/*
**  Remplir l'élément liste avec les valeurs issues du
**  groupe d'enregistrement product_names.
*/
    Populate_List(it_id,'product_names');
END;


A propos de la suppression d'éléments Liste

  Rubriques connexes

Vous pouvez supprimer des éléments liste soit au coup par coup, soit en supprimant toute la liste.

Vous avez le choix entre trois sous-programmes intégrés qui permettent de supprimer des éléments d'une liste :

•	CLEAR_LIST

•	DELETE_LIST_ELEMENT

Remarque : Ne supprimez pas d'élément ni de liste si la propriété Correspondance d'autres valeurs de la liste en question est définie à Non et qu'une interrogation soit en cours. En effet, Form Builder risquerait de ne pas pouvoir afficher les enregistrements déjà extraits.

Par exemple, soit un élément liste contenant les valeurs A, B et C et dont la propriété Correspondance d'autres valeurs est définie à Non. Supposons que ces valeurs ont été extraites de la base de données (une interrogation est donc ouverte). A ce stade, si vous supprimez un élément de la liste, une erreur surviendra ; en effet, Form Builder va tenter d'afficher les valeurs déjà extraites (A, B et C), mais n'y parviendra pas parce qu'un élément fera défaut.

Avant de supprimer un élément, vérifiez la présence d'éventuelles interrogations ouvertes, puis utilisez le sous-programme intégré ABORT_ QUERY pour les fermer.


Suppression d'un seul élément Liste

  Rubriques connexes

Pour supprimer un élément particulier d'une liste, utilisez le sous-programme intégré DELETE_LIST_ELEMENT.

En appelant ce sous-programme, vous indiquez quel élément supprimer en indiquant le nom ou l'ID de la liste et l'index de l'élément.

Elément liste	Index de liste	Valeur de liste
1993	1	1993
1994	2	1994
1995	3	1995

Par exemple, si vous indiquez :

Delete_List_Element('calendar',1);

la valeur '1993' sera supprimée de l'élément liste.


Suppression de tous les éléments Liste

  Rubriques connexes

Pour supprimer le contenu d'une liste, utilisez le sous-programme intégré CLEAR_LIST. En appelant CLEAR_LIST, vous indiquez quelle liste supprimer en indiquant le nom ou l'ID de la liste.

Par exemple :

Clear_List(list_id);


A propos des groupes de boutons d'option

  Rubriques connexes

Un groupe de boutons d'option est une commande d'interface qui affiche un nombre fixe d'options s'excluant mutuellement. Chaque option est représentée par un bouton d'option individuel, ou bouton d'option.

Un groupe de boutons peut contenir n'importe quel nombre de boutons. Les boutons d'option peuvent être dimensionnés, positionnés et formatés indépendamment les uns des autres.

Comportement à l'exécution  Les utilisateurs sélectionnent un bouton en cliquant sur celui-ci avec la souris ou en navigant jusqu'à ce dernier, puis en appuyant sur [Sélectionner]. La sélection d'un bouton d'option annule celle du bouton précédemment sélectionné dans le groupe. A l'exécution, un seul bouton d'option peut être sélectionné à la fois.


A propos des valeurs de groupe de boutons d'option

  Rubriques connexes

Lorsque vous créez un groupe de boutons, vous associez une valeur de données spécifique à chaque bouton du groupe. Ainsi, quand l'utilisateur sélectionne un bouton, le groupe de boutons adopte la valeur associée au bouton sélectionné.

Prenons l'exemple d'un groupe de trois boutons d'option qui permet à l'utilisateur d'indiquer quel entrepôt va devoir satisfaire une commande. Les libellés des boutons d'option sont New York, Chicago et San Francisco.

La valeur associée à chaque bouton est l'ID numérique d'entrepôt :

Libellé	Valeur associée
New York	100
Chicago	200
San Francisco	300

La sélection du bouton d'option libellé New York fixe la valeur du groupe de boutons à 100 (ID de l'entrepôt). Lorsque l'utilisateur valide la commande, la valeur 100 est insérée dans la colonne correspondante de la base de données. De même, lorsqu'une valeur est extraite ou affectée au groupe de boutons, le bouton d'option dont la valeur correspond à la valeur extraite devient le bouton sélectionné dans le groupe.

Groupes de boutons d'option et autres valeurs  Un groupe de boutons peut contenir une valeur extraite ou affectée qui n'est pas associée à un bouton spécifique du groupe. En créant un groupe de boutons, vous devez indiquer comment il devra traiter ces autres valeurs. Vous avez le choix entre deux méthodes :

•	indiquer que le groupe de boutons rejette les autres valeurs comme non valides ;

•	indiquer l'élément de la liste à sélectionner lorsque la valeur de l'élément liste est une autre valeur.

Dans l'exemple précédent, vous pourriez indiquer que le bouton d'option libellé "New York" soit le bouton sélectionné lorsqu'une autre valeur est extraite ou affectée au groupe de boutons. Dans ce cas, la valeur extraite 149 serait une autre valeur et par conséquent, le bouton d'option "New York" serait sélectionné.

Notez que lorsqu'une autre valeur est extraite ou affectée à un groupe de boutons d'option, le bouton désigné est sélectionné, mais la valeur reste Autres valeurs jusqu'à ce qu'une nouvelle valeur soit extraite ou affectée, ou que l'utilisateur sélectionne un autre bouton.


Création d'un groupe de boutons d'option

  Rubriques connexes

Pour créer un groupe de boutons, vous avez le choix entre en insérer un nouveau dans un bloc ou transformer un élément existant en groupe de boutons, en modifiant son type.

Après avoir créé un groupe de boutons, vous pouvez créer des libellés de bouton, indiquer leur valeur, définir leur propriété d'affichage, etc.

Pour créer un groupe de boutons d'option :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du nœud bloc souhaité.

Form Builder développe le nœud Blocs et affiche ses sous-nœuds.

2	Cliquez sur le nœud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le nœud Eléments.

4	Cliquez deux fois sur l'icône objet en regard du nouvel élément créé pour afficher la Palette de propriétés.

5	Sous le nœud Général, définissez Type d'élément à Groupe de boutons d'option.

6	Sous le nœud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.

7	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du groupe de boutons d'option que vous venez de créer.

8	Cliquez sur le nœud Boutons d'option.

9	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouveau bouton d'option avec un nom par défaut est inséré sous le nœud Boutons d'options.

10	Cliquez deux fois sur l'icône d'objet en regard du bouton d'option que vous venez de créer pour faire afficher la Palette de propriétés.

11	Créez un libellé pour le bouton d'option en entrant le texte de votre choix dans le champ de propriété Libellé sous le nœud Fonctionnel.

12	Entrez une valeur pour le bouton d'option sélectionné dans le champ de propriété Valeur de bouton d'option sous le nœud Fonctionnel. Les valeurs attribuées à chacun des boutons doit être compatible avec le type de données (CHAR, NUMBER ou DATE) du groupe de boutons d'option.

Lorsqu'un utilisateur sélectionne le bouton d'option, Form Builder définit la valeur de l'élément groupe de boutons d'option à la valeur entrée dans le champ de la propriété Valeur de bouton d'option. De même, le bouton d'option en cours est celui qui est sélectionné dans le groupe dès que la valeur indiquée est extraite ou affectée à l'élément groupe de boutons d'option.

Conseil : Pour affecter une valeur Null à un bouton d'option, ne complétez pas le champ de propriété Valeur de bouton d'option.

Remarque : La valeur ne peut excéder le nombre de caractères indiqué dans la propriété Longueur maximum du groupe de boutons.

13	Indiquez comment vous voulez que le groupe de boutons d'option gère une valeur extraite ou affectée qui n'est pas l'une des valeurs associées à un bouton d'option particulier. Pour ce faire, définissez la propriété Correspondance d'autres valeurs pour le groupe de boutons d'option sous le nœud Fonctionnel :

•  Laissez cette propriété vide pour indiquer que les autres valeurs ne sont pas autorisées pour cet élément. Tout enregistrement demandé qui contient une valeur ne correspondant à aucune des valeurs associées à un bouton du groupe sera rejeté en silence. Il sera en outre impossible d'affecter une autre valeur.

•  Entrez une valeur correspondant au nom de l'un des boutons d'option ou à la valeur associée à l'un de ces boutons.

Remarque : La propriété Correspondance d'autres valeurs ne s'applique qu'aux valeurs de groupe de boutons extraites de la base de données ou attribuées par programme à l'exécution. Lorsqu'un utilisateur sélectionne un bouton, la valeur du groupe de boutons est toujours celle qui est associée au bouton sélectionné et jamais une autre.

Conseil : Il est recommandé de disposer clairement les boutons d'option afin de permettre aux utilisateurs de déterminer lesquels appartiennent à un même groupe de boutons. Pour ce faire, vous pouvez regrouper les boutons sur un canevas et, en cas de besoin, séparer le groupe des autres éléments à l'aide d'objets graphiques ou du texte.


A propos des valeurs initiales de groupe de boutons d'option

  Rubriques connexes

Vous devez indiquer une valeur initiale valide, sauf :

•	si le groupe de boutons d'option accepte d'autres valeurs ou

•	que la valeur associée à l'un des boutons d'option dans le groupe est Null.

Remarque : Si vous dépendez de la valeur initiale pour initialiser l'état de sélection de bouton du groupe de boutons d'option, notez que la valeur initiale n'est pas affectée avant que Form Builder crée un enregistrement dans le bloc. Un groupe de boutons d'option dans un enregistrement Null, c'est-à-dire un enregistrement qui n'a pas encore été initialisé, est affiché sans bouton d'option sélectionné.


Définition d'une valeur initiale pour un groupe de boutons d'option

  Rubriques connexes

Pour définir une valeur initiale pour un groupe de boutons d'option :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'objet en regard du groupe de boutons d'option de votre choix pour afficher la Palette de propriétés.

2	Sous le nœud Données, définissez la propriété Valeur initiale à la valeur souhaitée.


Manipulation de groupes de boutons d'option à l'exécution

  Rubriques connexes

Form Builder fournit des déclencheurs que vous pouvez utiliser pour répondre à des événements d'interface survenant lorsque l'utilisateur manipule un groupe de boutons d'option.

Exécution du code de bouton d'option  Pour qu'un bouton d'option exécute ou lance une commande, vous devez lui associer un déclencheur When-Radio-Changed est activé à la sélection du bouton d'option.

Lorsque l'événement attendu survient, c'est-à-dire, lorsqu'un utilisateur sélectionne le bouton d'option, Form Builder exécute le code contenu dans le déclencheur When-Radio-Changed.

Définition par programme des propriétés de bouton d'option  Vous pouvez définir et extraire par programme les propriétés de bouton d'option à l'aide des sous-programmes intégrés suivants :

• CONVERT_OTHER_VALUE

• DISPLAY_ITEM

•  GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


A propos des éléments Texte

  Rubriques connexes

Un élément texte est une commande d'interface qui affiche un texte pouvant être entré par l'utilisateur dans un champ monoligne ou multiligne.

Comportement à l'exécution  Un élément texte apparaît sous la forme d'une boîte rectangulaire vide, ou conteneur. Par défaut, il est possible d'appeler un éditeur à partir d'un élément texte.


Création d'un élément Texte

  Rubriques connexes

Pour créer un élément texte :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du nœud bloc souhaité.

Form Builder développe le nœud Blocs et affiche ses sous-nœuds.

2	Cliquez sur le nœud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le nœud Eléments.

4	Cliquez deux fois sur l'icône objet en regard du nouvel élément créé pour afficher la Palette de propriétés.

5	Sous le nœud Général, définissez la propriété Type d'élément à Elément texte (valeur par défaut à la création d'un nouvel élément).

6	Sous le nœud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.


A propos des types de données d'élément texte

  Rubriques connexes

Form Builder prend en charge plusieurs types de données. Dans la mesure du possible, utilisez les types de données Form Builder standard. Issus des types de données ORACLE natifs, ils offrent de meilleures performances et une plus grande portabilité des applications.

Form Builder prend en charge les types de données standard suivants :

•	CHAR

•	NUMBER

•	DATE

•	DATETIME

•	LONG

Les types de données Form Builder V3 ne sont inclus que dans un souci de compatibilité avec les versions antérieures. Vous pouvez obtenir les mêmes caractéristiques de formatage en utilisant les types de données Form Builder standard (ci-dessus) avec un masque de format et/ou la propriété Alignement. Les types de données de Form Builder V3 sont :

•	ALPHA

•	EDATE

•	INT (nombre entier)

•	JDATE (date du calendrier julien)

•	MONEY

•	RINT (entier droit)

•	RMONEY (devise droit)

•	RNUMBER (nombre droit)

•	TIME


Changement de type de données d'élément Texte

  Rubriques connexes

Pour changer le type de données d'un élément texte :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Données, définissez la propriété Type de données au type de données souhaité.

Le type de données par défaut pour les éléments texte est CHAR.


A propos de la création d'éléments texte monoligne et multiligne

  Rubriques connexes

Form Builder prend en charge aussi bien les éléments texte monoligne que multiligne.

La propriété Multiligne (sous le nœud Fonctionnel) détermine si un élément texte affiche une seule ligne de texte ou plusieurs lignes. Le nombre de caractères pouvant tenir sur une seule ligne est déterminé par la largeur de l'élément texte et par la police attribuée à cet élément. Un élément texte multiligne peut contenir plusieurs lignes de texte en faisant passer celui-ci à la ligne suivante.

Form Builder traite les retours chariot des éléments texte monoligne comme un événement NEXT_ITEM. Par contre, dans un élément multiligne, un retour chariot déplace le curseur au début de la ligne suivante.

Conseil : Les éléments texte monoligne utilisent moins de mémoire que les éléments texte multiligne. Par conséquent, utilisez toujours un élément monoligne, sauf si l'application exige absolument la fonction multiligne.

Propriétés Monoligne et Multiligne  Le tableau suivant présente les propriétés propres aux éléments texte monoligne et multiligne :

Propriété	Monoligne	Multiligne
Barre de défilement	Non	Oui
Types de renvoi à la ligne	Non	Oui
Sécuriser	Oui	Non
Saut automatique	Oui	Non
Masque de format	Oui	Non


Définition d'un élément Texte multiligne

  Rubriques connexes

Pour définir un élément texte multiligne :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, définissez la propriété Multiligne à Oui.

Conseil : La propriété Multiligne rend possible le stockage de plusieurs lignes de texte, mais ne rend pas nécessairement l'élément assez grand pour afficher plusieurs lignes. Vous devez donc définir les propriétés Largeur, Hauteur, Taille de police et Longueur maximum afin de garantir l'affichage du nombre de lignes et de caractères souhaité.

Remarque : Le type de données d'un élément texte multiligne doit être CHAR, ALPHA ou LONG.


A propos des types de renvoi à la ligne pour les éléments texte multiligne

  Rubriques connexes

Vous avez le choix entre plusieurs types de renvoi à la ligne pour les éléments texte multiligne.

Aucune	Aucun renvoi à la ligne. Tout texte excédant la largeur du champ est masqué.
Caractère	Le texte suivant le dernier caractère visible sur une ligne est renvoyé à la ligne suivante.
Mot	Le texte suivant le dernier mot complet visible sur une ligne est renvoyé à la ligne suivante.


Définition du type de renvoi à la ligne pour les éléments texte multiple

  Rubriques connexes

Pour définir le type de renvoi à la ligne pour les éléments texte multiple :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Dans le nœud Fonctionnel, définissez la propriété Renvoi à la ligne à Aucun, Caractère ou Mot.


A propos des barres de défilement verticales pour les éléments texte multiligne

  Rubriques connexes

Vous pouvez ajouter des barres de défilement à vos éléments texte multiligne. Ces barres permettent à l'utilisateur de faire défiler le texte vers le haut et vers le bas.

Form Builder trace la barre de défilement à l'intérieur du rectangle de délimitation de l'élément texte. Par conséquent, l'ajout d'une barre de défilement peut réduire le nombre de caractères contenus dans les limites de l'élément texte.


Ajout d'une barre de défilement verticale à un élément texte multiple

  Rubriques connexes

Pour ajouter une barre de défilement verticale à un élément texte multiligne :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Dans le nœud Physique, définissez la propriété Afficher barre de défilement verticale à Oui


A propos de la longueur maximum d'un élément Texte

  Rubriques connexes

Vous pouvez indiquer le nombre maximum de caractères que peut contenir un élément texte ou un élément affiché. Form Builder respecte cette longueur maximum, quelles que soient les propriétés Hauteur et Largeur de l'élément.

Lorsqu'un élément texte monoligne contient plus de caractères qu'il ne peut en afficher, vous pouvez le faire défiler. Form Builder fait défiler horizontalement la valeur dans l'élément texte au fur et à mesure que l'utilisateur entre des caractères de sorte que le curseur demeure visible.

Le nombre de caractères pouvant être affichés par un élément texte varie en fonction de différents facteurs, notamment la largeur de l'élément texte, les attributs de police et la plate-forme à l'exécution. Il se peut que vous deviez procéder à des essais pour déterminer les paramètres optimaux pour les propriétés Longueur maximum et Taille.


Définition de la longueur maximum d'un élément texte

  Rubriques connexes

Pour définir la longueur maximum d'un élément texte :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Données, indiquez le nombre maximum de caractères stockable dans le champ de propriété Longueur maximum.

Remarque : Si l'élément est un élément de table de base, la propriété Longueur maximum ne doit pas être supérieure à la largeur de la colonne correspondante de la base de données.


A propos des valeurs d'élément texte obligatoires

  Rubriques connexes

Vous pouvez exiger des utilisateurs d'entrer une valeur dans un élément texte avant d'en sortir.

Form Builder applique la propriété Obligatoire de la façon suivante :

•	Les utilisateurs ne peuvent pas sortir de l'élément texte en appuyant sur [Elément suivant] tant que l'élément texte ne contient pas une valeur valide.

•	Les utilisateurs ne peuvent pas valider l'enregistrement tant que l'élément texte obligatoire ne contient pas une valeur valide.


Définition d'une valeur d'élément Texte obligatoire

  Rubriques connexes

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Données, définissez la propriété Obligatoire à Oui.

Remarque : Lorsque vous créez un bloc par l'intermédiaire de la fonction Bloc par défaut, Form Builder définit automatiquement la propriété Obligatoire à Oui pour les éléments texte relatifs à une colonne ayant la contrainte NOT NULL. Pour plus d'informations sur les contraintes de colonne, reportez-vous à SQL Language Reference Manual.


A propos des valeurs de longueur fixe pour les éléments texte

  Rubriques connexes

Vous pouvez exiger des utilisateurs qu'ils entrent un nombre fixe de caractères dans un élément texte, en définissant la propriété Longueur fixe sous le nœud Données. Cette propriété permet de garantir la validité des valeurs ayant toujours le même nombre de caractères, tels que les numéros de téléphone, les numéros de nomenclature, les références de commande, etc.


Définition d'une valeur de longueur fixe pour un élément texte

  Rubriques connexes

Pour exiger une valeur de longueur fixe :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Données, définissez la propriété Longueur maximum à la valeur souhaitée.

3	Définissez la propriété Longueur fixe (également sous le nœud Données) à Oui.

Lorsque cette propriété est définie à Oui, un élément texte n'est valide que s'il contient le nombre maximum de caractères autorisé (déterminé par la propriété Longueur maximum).

Remarque : Form Builder accepte les valeurs Null dans un élément texte de longueur fixe, à condition que la propriété Obligatoire de cet élément ne soit pas activée.


A propos de la définition d'une plage valide de valeurs pour un élément texte

  Rubriques connexes

Vous pouvez indiquer qu'un élément texte n'accepte que des valeurs comprises dans une plage valide. Cette plage est définie par les propriétés Valeur de plage max et Valeur de plage min sous le nœud Données de la Palette de propriétés. L'élément texte accepte toute valeur comprise dans l'intervalle défini, y compris les valeurs supérieure et inférieure.


Définition d'une plage valide de valeurs pour un élément texte

  Rubriques connexes

Pour définir une plage valide de valeurs :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Données, indiquez la valeur valide minimum dans le champ de propriété Valeur de plage min, puis la valeur valide maximum dans le champ de propriété Valeur de plage max.


A propos du respect des majuscules ou des minuscules pour un élément texte

  Rubriques connexes

Vous pouvez demander à Form Builder de convertir automatiquement une valeur entrée par l'utilisateur en texte en majuscules ou en minuscules, à l'aide la propriété Respecter maj/min. Cette propriété ne s'applique qu'aux valeurs entrées par l'utilisateur ; elle ne modifie aucunement les valeurs extraites ou affectées.

Form Builder applique la propriété Respecter maj/min de la façon suivante :

Respecter maj/min	Résultat
Mixte	Form Builder affiche le texte tel qu'il est entré.
Majuscules	Form Builder convertit les caractères minuscules en majuscules.
Minuscules	Form Builder convertit les caractères majuscules en minuscules.


Respect des majuscules ou minuscules pour un élément texte

  Rubriques connexes

Pour limiter le texte entré par l'utilisateur dans un élément texte à des majuscules ou à des minuscules :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, définissez la propriété Respecter maj/min à Mixte, Majuscule ou Minuscule.


A propos de la justification

  Rubriques connexes

Les données affichées dans un élément texte peuvent être justifiées à gauche, au centre ou à droite. Vous pouvez indiquer l'une de ces justifications dans le champ de propriété Justification sous le nœud Fonctionnel de la Palette de propriétés.

Remarque : La définition d'un alignement à droite ou au centre pour un élément texte pouvant défiler peut entraîner l'alignement des valeurs affichées de sorte qu'elles soient masquées à l'utilisateur. En outre, certains gestionnaires de fenêtres peuvent ne pas afficher le texte centré ou aligné à droite.


Définition de la justification

  Rubriques connexes

Pour définir la justification :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, définissez la propriété Justification à Gauche, Droite, ou Centre.


A propos du masquage des valeurs d'élément Texte

  Rubriques connexes

Vous pouvez masquer la valeur d'un élément texte monoligne en indiquant l'élément comme étant sécurisé. Par exemple, un mot de passe peut être sécurisé de façon à ce que l'utilisateur ne le voit pas lorsqu'il l'entre à l'écran.


Masquage des valeurs d'élément Texte

  Rubriques connexes

Pour masquer la valeur entrée dans un élément texte :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, définissez la propriété Masquer données à Oui.


A propos du saut automatique

  Rubriques connexes

La fonction de saut automatique accélère la saisie de données en évitant aux utilisateurs d'avoir à naviguer expressément d'un élément texte monoligne au suivant dans une séquence de navigation.

Lorsque la propriété Saut automatique est activée, le point d'insertion se déplace automatiquement à l'élément de navigation autorisé suivant dès que l'utilisateur entre ou modifie le dernier caractère de la valeur de l'élément texte.

Pour identifier ce dernier caractère, Form Builder se base sur la propriété Longueur maximum de l'élément.


Définition du saut automatique

  Rubriques connexes

Pour définir le saut automatique :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, définissez la propriété Saut automatique à Oui.


A propos du maintien de la position du curseur

  Rubriques connexes

Vous pouvez contrôler la position du curseur dans un élément texte à l'aide de la propriété Conserver position. du curseur sous le nœud Fonctionnel.

Si cette propriété est définie comme Oui, Form Builder place le curseur dans l'élément texte exactement où il était lorsque le point d'insertion se trouvait encore dans cet élément. (Si le point d'insertion n'a jamais été dans cet élément au cours de la session en cours, la propriété Conserver position du curseur n'a aucun effet sur la position du curseur.)


Maintien de la position du curseur dans un élément texte

  Rubriques connexes

Pour maintenir la position du curseur dans un élément texte :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, définissez la propriété Conserver position du curseur à Oui.


A propos du formatage des valeurs d'élément texte à l'aide de masques de format

  Rubriques connexes

Vous pouvez formater les nombres et les dates contenus dans des éléments texte monoligne en utilisant des masques de format. Lorsqu'un masque de format est affecté à un élément texte, toute valeur entrée par l'utilisateur, extraite ou affectée à l'élément est affichée au format indiqué par le masque.

L'exemple suivant présente comment un masque de format influe sur une valeur NUMBER :

Masque de format	Valeur extraite	Valeur affichée
$9,999,999.99	3246000	$3,246,000.00

Un masque de format peut aussi être utilisé pour inclure automatiquement des caractères spéciaux, comme des tirets et des symboles monétaires, dans des valeurs entrées par les utilisateurs.

Masque de format et types de données  Un masque de format peut être appliqué à des éléments texte avec les types de données suivants :

•	NUMBER

•	DATE

•	DATETIME

•	TIME

Le masque de format doit être compatible avec le type de données de l'élément texte. Par exemple, le masque de format suivant ne peut être utilisé qu'avec un élément texte de type DATETIME, car seuls ce type de données comporte à la fois les informations de date et d'heure requises par le masque :

Masque de format	Valeur affichée
DDfmMONTH YYYY HH:MI	12 JUIN 1994 12:32


Attribution d'un masque de format à un élément texte

  Rubriques connexes

Pour attribuer un masque de format à un élément texte :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Données, entrez directement les caractères du masque de format dans le champ de propriété Masque de format.

Remarque :

•  Assurez-vous que le type de données de l'élément est compatible avec le masque de format.

•  Assurez-vous que la propriété Longueur maximum de l'élément texte est définie de façon à permettre le stockage de caractères supplémentaires inclus par le masque de format.

• La définition des paramètres NLS affectent les formats par défaut.


Symboles de masque de format d'élément texte pour des valeurs NUMBER

 Examples 	  Rubriques connexes

Le tableau suivant présente les symboles les plus fréquemment utilisés dans les masques de format numérique.

Symbole	Description
9	Représente 1 caractère numérique. Le nombre de 9 détermine le nombre de chiffres que peut afficher l'élément texte.
0	Affiche des zéros en tête.
$	Représente le signe dollar en tête.
B	Affiche un espace avant des zéros.
MI	Affiche "-" après une valeur négative.
PR	Affiche une valeur négative <entre chevrons>.
,  (virgule)	Affiche une virgule à sa position au besoin.
. (décimale)	Affiche une décimale à sa position.

Caractères intégrés dans des valeurs NUMBER  Vous pouvez intégrer une chaîne de caractères dans une valeur NUMBER en la mettant entre guillemets dans le masque de format. Les caractères intégrés servent habituellement pour des valeurs de longueur fixe telles que des numéros de nomenclature et des numéros de téléphone.

Le masque de format suivant intègre des tirets dans des valeurs numériques :

Masque de format	Valeur affichée
999"-"99"-"9999	566-23-5733

L'emplacement d'une chaîne intégrée est fixe dans un élément texte et ne change pas selon le nombre de chiffres dans la valeur stockée.


Symboles de masque de format d'élément texte pour des valeurs NUMBER - Exemples

Exemple

Le tableau suivant présente des exemples de masque de format pour des valeurs NUMBER :

Masque de format	Nombre entré	Résultat
999	223.4	223
$9,999.99	3445.34	$3,445.34
999"-"999"-"9999"	4083543957	408-354-3957
99.9	00027.48	27.5
099.9	00027.48	00027.5
B99,9	00027.48	27.5
99.9MI	-24	24.0-
99.99"%"	66.17	66.17%


Symboles de masque de format d'élément Texte pour des valeurs DATE et DATETIME

 Examples 	  Rubriques connexes

Le tableau suivant présente les symboles les plus fréquemment utilisés dans les masques de format de date/heure.

Symbole	Description
9	Représente 1 caractère numérique. Le nombre de 9 détermine le nombre de chiffres que peut afficher l'élément texte.
MM	Mois (01-12).
MOI	Nom du mois, abrégé en 3 lettres.
MOIS	Nom du mois, complété par des espaces (9 caractères au maximum).
JJ	Jour du mois (1-31).
JO	Nom du jour, abrégé en 3 lettres.
JOUR	Nom du jour, rempli de blancs jusqu'à 9 caractères.
YYYY,YYY, YY,  ou Y	Année à 4, 3, 2 ou 1 chiffre(s).
HH ou HH12	Heure du jour (1-12).
HH24	Heure du jour (0-23).
MI	Minute (0-59).
SS	Seconde (0-59).
AM ou A.M. ou PM ou P.M.	Indicateur de méridien.
TH	Nombre ordinal (par exemple., "DDTH" pour "15TH").
SP	Nombre en toute lettre (par exemple, "DDSP" pour "FIFTEEN").
SPTH ou THSP	Nombre ordinal en toute lettre (par exemple, "DDSPTH" pour "FIFTEENTH"
FM	Préfixe utilisé avec des symboles tels que MONTH et DAY pour supprimer le remplissage ajouté à ces symboles. Permet également de supprimer les zéros en tête pour des symboles numériques tels que HH et MM. FM est une bascule . Si FM apparaît deux fois dans un modèle de format de date, le remplissage par des espaces et des zéros en tête est supprimé pour les éléments après le premier FM, et est activé après le second.

Caractères intégrés dans des valeurs DATE  Pour intégrer une chaîne de caractères dans un masque de format de date/heure, mettez-la entre guillemets. (Remarque : Vous ne pouvez pas intégrer de guillemets dans un masque en tant que caractères. Autrement dit, si vous tentez d'obtenir DD"MM en utilisant le code de masque DD"""MM, des résultats inattendus surviennent.)

Des espaces et des caractères de ponctuation (/ .  , : ' - ) peuvent être intégrés dans un masque de format de date/heure sans les mettre entre guillemets.

Exemples :

Masque de format	Valeur affichée
"La valeur d'aujourd'hui est" fmDAY, fmMONTH DDTH	La valeur d'aujourd'hui est Tuesday, March 16TH


Symboles de masque de format d'élément Texte pour des valeurs DATE et DATETIME - Exemples

Exemple

Le tableau suivant présente les masques de format pour des valeurs DATE et DATETIME :

Masque de format	Type de données	Résultat
MM/JJ/AAAA	DATE	03/15/1995
MONTH 15 YYYY	DATE	MARCH 15 1995
fmMONTH 15 1995	DATE	MARCH 15 1995
Jour, "the" DDTH "of" fmMonth	DATE	Wednesday, the 15TH of March
J	DATE	2449792
HH:MI PM	TIME	10:30 PM
HH24:MI	TIME	20:30
MM-DD-YY  HH:MI AM	DATETIME	3-15-95  06:30 AM
fmMM-DD-YY fmHH:MI AM	DATETIME	3-15-95  06:30 AM
fmMonth YY	DATETIME	Mars 95


A propos des masques de format de date

  Rubriques connexes

Form Builder utilise un masque de format pour convertir des dates dans les circonstances suivantes :

•	lorsque la conversion d'une date en chaîne, ou inversement, est nécessaire ;

•	lorsque la conversion d'une date entrée par l'utilisateur est requise pour l'affichage dans un message d'erreur.

Les masques de format de date varient selon les opérations de conversion. Tout masque de format que vous créez (via la propriété Format_Mask) est attaché à un élément précis. Ces masques n'existent que si vous les créez de manière spécifique. Les autres masques de format de date utilisés par Form Builder sont des masques généraux utilisés pour tous les éléments Date dans des conditions particulières. Ces masques d'utilisation générale existent toujours ; vous pouvez toutefois modifier leurs paramètres.

Les différentes opérations de conversion et les masques de format qui leur sont associés apparaissent dans les deux tableaux suivants (conversion de date en chaîne et conversion de chaîne en date). Les masques sont détaillés dans la section qui suit les tableaux.

Les paramètres de tous ces masques de format de date peuvent être modifiés. Vous pouvez définir certains de ces paramètres via leurs propriétés lors du développement et paramétrer les autres à l'exécution à l'aide des variables d'environnement du système d'exploitation.

En général, il est conseillé de respecter les règles suivantes :

•	Ne créez des masques de format pour des éléments distincts qu'en cas de nécessité absolue. Form Builder utilise l'un de ses masques d'utilisation générale pour tout élément ne disposant pas de son propre masque. Ces masques sont généralement appropriés. Le codage de masques distincts rend la portabilité et l'internationalisation plus difficiles.

•	Définissez les masques généraux de manière active et coordonnez leurs valeurs. Evitez d'utiliser les valeurs par défaut, sauf si vous voulez conserver la cohérence avec le comportement de la version 4.5. (Le paramétrage des valeurs de masque est détaillé sous chacun des masques ci-dessous.)

Opérations nécessitant une conversion de date en chaîne	Masque de format utilisé
Opérations de formatage :
Affichage d'une valeur dans un élément disposant d'un masque de format	Le masque de format de cet élément
Affichage d'une valeur dans un élément ne disposant d'aucun masque de format	Sortie
Affichage d'une valeur dans une colonne de liste de valeurs de date	Sortie
Opérations internes à l'application Forms :
Lecture :SYSTEM.CURRENT_DATETIME	Procédure interne
Lecture :SYSTEM.EFFECTIVE_DATE	Procédure interne
Définition d'un élément récepteur CHAR à partir d'une colonne de liste de valeurs de date	Procédure interne (voir Remarque)
Définition de la valeur initiale d'un élément CHAR à partir de $$DATE$$, $$DATETIME$$, $$DBDATE$$ ou $$DBDATETIME$$	Procédure interne (voir Remarque)
GET_ITEM_PROPERTY(item, DATABASE_VALUE)	Procédure interne (voir Remarque)
GET_ITEM_PROPERTY(item, ITEM_DEFAULT_VALUE)	Procédure interne (voir Remarque)
GET_ITEM_PROPERTY(item, RANGE_HIGH/LOW)	Procédure interne (voir Remarque)
GET_LIST_ELEMENT_VALUE(item, value)	Procédure interne
GET_PARAMETER_ATTR(list, key, paramtype, value) d'un paramètre de date défini lors du développement	Procédure interne
NAME_IN(variable)	Procédure interne
PL/SQL :
TO_CHAR(value, format_mask) en PL/SQL	Ce masque de format
TO_CHAR(value) en PL/SQL	PL/SQL
Conversion implicite en PL/SQL	PL/SQL
SQL de base de données (y compris l'instruction SQL de la base de données intégrée au PL/SQL):
TO_CHAR(value, format mask) en SQL de base de données	Ce masque de format
TO_CHAR(value) en SQL de base de données	Base de données
Conversion implicite en SQL de base de données	Base de données
Stockage d'une valeur de date renvoyée par l'instruction SQL de base de données dans une variable CHAR de l'application Forms	Base de données
Conversion d'une variable de date de l'application Forms lors de son insertion dans une colonne CHAR ou lors de sa comparaison avec cette colonne	Base de données
Débogage PL/SQL :
Affichage de la valeur d'un élément ou d'un paramètre dans le débogueur	Procédure interne
Affichage de la valeur d'une variable PL/SQL locale dans le débogueur	PL/SQL
Remarque :

Si vous paramétrez la propriété Runtime_Compatibility_Mode de votre application Forms sur 4.5, cette opération de conversion utilise le masque de format Sortie à la place.

Opérations nécessitant une conversion de chaîne en date	Masque de format utilisé
Opérations de formatage :
Extraction d'une valeur d'un élément disposant d'un masque de format	Le masque de format de cet élément
Extraction d'une valeur d'un élément qui ne dispose d'aucun masque de format	Entrée
Opérations internes à l'application Forms :
Définition :SYSTEM.EFFECTIVE_DATE	Procédure interne
Définition d'un élément retour DATE/DATETIME à partir d'une colonne CHAR LOV	Procédure interne (voir Remarque)
Définition de la valeur initiale d'un élément DATE/DATETIME à partir d'une variable CHAR (utilisation de la notation de colonne)	Procédure interne (voir Remarque)
ADD_LIST_ELEMENT(item, index, label, value)	Procédure interne
SET_PARAMETER_ATTR(list, key, paramtype, value) pour un paramètre de date défini lors du développement	Procédure interne
COPY(value, variable)	Procédure interne
DEFAULT_VALUE(value, variable)	Procédure interne
PL/SQL :
TO_DATE(value, format_mask)	Ce masque de format
TO_DATE(value) en PL/SQL	PL/SQL
Conversion implicite en PL/SQL	PL/SQL
SQL de base de données (y compris l'instruction SQL de la base de données intégrée au PL/SQL):
TO_DATE(value, format_mask) en SQL de base de données	Ce masque de format
TO_DATE(value) en SQL de base de données	Base de données
Conversion implicite en SQL de base de données	Base de données
Stockage d'une valeur CHAR renvoyée par l'instruction SQL de base de données dans une variable DATE de l'application Forms	Base de données
Conversion d'une variable CHAR d'une application Forms pour l'insérer dans une colonne de dates ou la comparer avec cette colonne	Base de données
Débogage PL/SQL :
Définition de la valeur d'un élément ou d'un paramètre dans le débogueur	Procédure interne
Définition de la valeur d'une variable locale PL/SQL dans le débogueur	PL/SQL
Remarque :

Si vous paramétrez la propriété Runtime_Compatibility_Mode de votre application Forms sur 4.5, cette opération de conversion utilise le masque de format Entrée à la place.

Types de masques de format de date

Form Builder utilise les masques de format de date suivants :

1	les masques de format de date créés par l'utilisateur pour les éléments individuels ;

2	le masque de format de date PL/SQL ;

3	le masque de format de date intégré (built-in) ;

4	le masque de format de date Base de données ;

5	le masque de format de date en entrée (input) ;

6	le masque de format de date en sortie (output) ;

7	le masque de format de date Erreur.

1.  Masque de format de date d'un élément individuel

Vous créez et définissez ce type de masque via la propriété Format_Mask. Evitez de créer ces masques individuels si les masques d'utilisation générale conviennent (voir ci-avant).

2.  Masque de format de date PL/SQL

Vous définissez ce masque dans la propriété PLSQL_Date_Format. Pour les nouvelles applications, il est FORTEMENT RECOMMANDE de définir cette propriété sur un masque qui contient toutes les informations de date et d'heure. Il est également recommandé d'utiliser la même configuration pour le masque de format de date Procédure interne. (Reportez-vous à l'exemple ci-après.)

3.  Masque de format de date Procédure interne

Vous définissez ce masque dans la propriété Builtin_Date_Format . Pour les nouvelles applications, il est FORTEMENT RECOMMANDE de définir cette propriété sur un masque qui contient toutes les informations de date et d'heure. Il est également recommandé d'utiliser la même configuration pour le masque de format de date PL/SQL. (Reportez-vous à l'exemple ci-après.)

4.  Masque de format de date Base de données

Chaque session de base de données dans une application Forms dispose d'un seul masque de format de date Base de données. Le serveur de la base de données utilise ce masque pour convertir une chaîne en une valeur de date, ou inversement, lors de l'évaluation de l'interrogation.

Le paramètre d'initialisation NLS_DATE_FORMAT (ou NLS_LANG ou NLS_TERRITORY) du serveur Oracle établit la valeur par défaut de ce masque. Dans toutes les nouvelles sessions de base de données d'un client, vous pouvez remplacer cette valeur en paramétrant les variables d'environnement NLS_LANG et NLS_DATE_FORMAT du client.

Dans une application Forms, vous pouvez remplacer la valeur du masque de chaque session individuelle en créant une commande ALTER SESSION. Cette opération peut simplifier la logique d'une application si elle est définie sur le même masque de format que les propriétés PLSQL_Date_Format et Builtin_Date_Format de l'application. (Reportez-vous à l'exemple suivant.)

Remarquez que si vous utilisez le paramètre OPEN_FORM en indiquant l'option SESSION, l'application Forms est ouverte avec une nouvelle session de base de données ; par conséquent, vous pouvez également souhaiter modifier cette session.

Exemple de création des masques PL/SQL, Procédure interne et Base de données

Pour créer et coordonner ces masques, le déclencheur PRE-FORM initial de l'application contient :

   SET_APPLICATION_PROPERTY(PLSQL_DATE_FORMAT,     'YYYY/MM/DD HH24:MI:SS');

   SET_APPLICATION_PROPERTY(BUILTIN_DATE_FORMAT,   'YYYY/MM/DD HH24:MI:SS');

   FORMS_DDL('ALTER SESSION SET NLS_DATE_FORMAT = ''YYYY/MM/DD HH24:MI:SS''');

5.  Masque de format de date Entrée

Le masque de format de date Entrée (il s'agit en réalité d'un ensemble de masques) permet d'extraire une valeur d'un élément sans masque de format : ce masque permet de convertir une chaîne entrée par l'utilisateur en une valeur de date au format natif.

L'administrateur ou l'utilisateur peut définir les variables d'environnement FORMS60_USER_DATE_FORMAT et FORMS60_USER_DATETIME_FORMAT pour indiquer les masques de format à utiliser afin d'extraire les valeurs des éléments du type DATE et DATETIME, respectivement. Dans ces deux cas, vous pouvez indiquer plusieurs masques de format en les séparant par des barres verticales. Lorsque vous convertissez une chaîne entrée par un utilisateur, les masques de format sont utilisés selon l'ordre indiqué, jusqu'à ce que la conversion réussisse ou que le dernier masque de format indiqué soit atteint.

Par exemple, vous pouvez définir ces variables d'environnement de la manière suivante à l'exécution :

   FORMS60_USER_DATE_FORMAT       FXFMDD-MM-RRRR

   FORMS60_USER_DATETIME_FORMAT   FXFMDD-MM-RRRR HH24:MI:SS|FXFMDD-MM-RRRR HH24:MI

Vous devez alors renseigner les éléments DATE (sans masque de format) en utilisant le format de type 31-6-97. (RRRR permet de saisir les années comprises entre 1950 et 2049, à l'exception de l'an 2000). Pour les éléments DATETIME, l'utilisateur final peut saisir des valeurs au format 31-6-97 13:45:30 ou 31-6-97 13:45 (qui est interprété comme 31-6-97 13:45:00).

Si l'une de ces deux variables d'environnement à l'exécution n'est pas définie, Form Builder crée des masques de format par défaut, de la manière décrite ci-après.

6.  Masque de format de date Sortie

Le masque de format de date Sortie permet d'afficher une valeur dans un élément sans masque de format ou dans une colonne LOV. Deux masques Sortie existent : un pour les éléments DATE et les colonnes LOV, l'autre pour les éléments DATETIME. (Les colonnes DATETIME LOV n'existent pas.) L'administrateur système ou l'utilisateur peut définir les variables d'environnement FORMS60_OUTPUT_DATE_FORMAT et FORMS60_OUTPUT_DATETIME_FORMAT pour indiquer ces masques de format de manière explicite.

Si la variable FORMS60_OUTPUT_DATE_FORMAT n'est pas définie mais que la variable FORMS60_USER_DATE_FORMAT est paramétrée, le masque de format de date Sortie des éléments DATE est généré à partir de cette dernière, en prenant en compte le premier masque de format (valeur apparaissant avant la première barre verticale) et en supprimant toutes les occurrences de FX et FM.

Par exemple, si FORMS60_OUTPUT_DATE_FORMAT n'est pas définie et que FORMS60_USER_DATE_FORMAT est paramétrée sur FXFMDD-MM-RRRR|FXFM-MON-RRRR, le masque de format de date Sortie des éléments DATE est DD-MM-RRRR.

Si aucune de ces deux variables n'est définie, Form Builder crée des masques de format par défaut, de la manière décrite ci-après.

Les éléments DATETIME obéissent à des règles similaires.

7.  Masque de format de date Erreur

Le masque de format de date Erreur permet à Form Builder de créer certains messages d'erreur qui apparaissent lorsque vous entrez une valeur non valide dans un élément Date. (En fait, deux masques de ce type existent : un masque pour les éléments DATE et l'autre pour les éléments DATETIME.)

Par exemple :

   FRM-50012 : Format de date accepté : <error_date_format>

   FRM-50025 : Format date/heure accepté : <error_datetime_format>

L'administrateur système ou l'utilisateur peut définir les variables d'environnement FORMS60_ERROR_DATE_FORMAT et FORMS60_ERROR_DATETIME_FORMAT pour indiquer ces masques de format de manière explicite.

Si FORMS60_ERROR_DATE_FORMAT n'est pas définie mais que FORMS60_USER_DATE_FORMAT est paramétrée, le masque de format de date Erreur des éléments DATE correspond à l'intégralité de la valeur FORMS60_USER_DATE_FORMAT, y compris les barres verticales.

Si aucune de ces deux valeurs n'est définie, Form Builder crée des masques de format par défaut de la manière décrite ci-après.

Les éléments DATETIME obéissent à des règles similaires.

Valeurs par défaut des masques Entrée, Sortie et Erreur

Si les variables d'environnement à l'exécution FORMS60_USER_DATE_FORMAT et FORMS60_USER_DATETIME_FORMAT ne sont pas toutes deux définies, les règles ci-dessus n'indiquent pas tous les masques de format Entrée, Sortie et Erreur des éléments DATE et DATETIME. Il est recommandé de paramétrer ces deux variables d'environnement afin d'éviter l'utilisation des règles complexes décrites ci-dessous.

En général, Form Builder attribue des valeurs par défaut compatibles avec la version 4.5 et les versions antérieures. Dans certains cas, le comportement de ces versions peut être légèrement différent. Il est alors considéré comme erroné.

Les règles suivantes établissent une distinction entre les éléments DATE2 et DATE4 (pour plus de détails, reportez-vous à Propriété Builtin_Date_Format), à la condition que la colonne LOV dont le type de données est DATE soit considérée comme un objet DATE2. Remarquez que les colonnes DATETIME LOV n'existent pas et que les colonnes LOV n'interviennent pas directement dans les procédures internes.

Form Builder démarre avec le masque de format provenant de l'environnement NLS en cours. Vous pouvez définir ce masque explicitement en paramétrant la variable d'environnement NLS_DATE_FORMAT. Si vous ne le faites pas, NLS calcule un masque de format par défaut fondé sur le langage en cours. Appelez ce masque de format NLS "<masque_YY>".

Form Builder calcule ensuite un second masque de format (appelez-le "<masque_YYYY>") à partir du premier, de la manière suivante : si le <masque_YY> contient "YY" et non "YYYY", le <masque_YYYY> est défini sur <masque_YY>, mais "YY" est remplacé par "YYYY". De même, "yy", "RR" ou "rr" est remplacé par "yyyy", "RRRR" ou "rrrr" dans <masque_YYYY>. Dans le cas contraire, <masque_YYYY> est défini sur <masque_YY>.

Dans ces conditions, les masques de format Entrée non indiqués des objets DATE2, DATE4 et DATETIME deviennent :

   DATE2:    FXFM<masque_YY>

   DATE4:    FXFM<masque_YYYY>

   DATETIME: FXFM<masque_YYYY> HH24:MI:SS

             FXFM<masque_YYYY> HH24:MI

Omettez la condition FXFM du début si le masque de format contient déjà FX ou FM.

Les occurrences de FX et FM sont ensuite supprimées de <masque_YY> et de <masque_YYYY>.

Dans ces conditions, les autres masques de format Sortie non définis deviennent :

   DATE2:    <masque_YY>

   DATE4:    <masque_YYYY>

   DATETIME: <masque_YYYY> HH24:MI:SS

Enfin, pour les autres masques de format Erreur non indiqués, la première occurrence éventuelle de RR, rr, RRRR ou rrrr dans <masque_YY> et <masque_YYYY> est remplacée par le nombre correspondant de Y ou de y.

Dans ces conditions, les masques de format Erreur non indiqués deviennent :

   DATE2:    <masque_YY>

   DATE4:    <masque_YYYY>

   DATETIME: <masque_YYYY> HH24:MI[:SS]


A propos de l'attribution d'une liste de valeurs (LOV) à un élément texte

  Rubriques connexes

Il est possible d'associer une liste de valeurs (LOV) à un élément texte à l'aide de la propriété Liste de valeurs sous le nœud Liste de valeurs (LOV). Dans ce cas, les utilisateurs peuvent afficher la LOV en appuyant sur [Liste] dès que le point d'insertion se trouve dans l'élément texte.

Les LOV sont des objets réutilisables qui doivent être définis séparément dans la Palette de propriétés.


Attribution d'une liste de valeurs (LOV) à un élément texte

  Rubriques connexes

Pour attribuer une liste de valeurs (LOV) à un élément texte :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'objet en regard de l'élément texte auquel vous souhaitez associer la LOV. La Palette de propriétés s'affiche.

2	Sous le nœud Liste de valeurs (LOV), sélectionnez la LOV de votre choix dans la liste instantané de propriété Liste de valeurs.


Manipulation d'éléments Texte à l'exécution

  Rubriques connexes

Form Builder fournit des déclencheurs que vous pouvez utiliser pour répondre à des événements d'interface survenant lorsque l'utilisateur manipule un élément texte..

Exécution du code d'un élément texte  Pour qu'un élément texte exécute ou lance une commande, vous devez lui associer un déclencheur When-New-Item-Instance qui est activé lorsque l'utilisateur navigue jusqu'à l'élément.

Lorsque l'événement attendu survient, Form Builder exécute le code contenu dans le déclencheur When-New-Item-Instance.

Définition des propriétés d'élément texte par programme  Vous pouvez définir et extraire par programme les propriétés d'élément texte à l'aide des sous-programmes intégrés suivants :

•	CONVERT_OTHER_VALUE

•	DISPLAY_ITEM

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


A propos des composants JavaBean
A propos de l'ajout de composants JavaBean

  Rubriques connexes

Vous pouvez étendre la fonction de l'application WebForm en incluant des composants JavaBean.

Un composant JavaBean est une unité de programme écrite en Java et conforme à la spécification JavaBean. Vous pouvez intégrer des composants JavaBean dans votre application pour exécuter des fonctions spécialisées permettant d'augmenter les capacités de l’application Forms.

Pour plus d'informations sur la valeur et les caractéristiques des composants JavaBean, reportez-vous à l'introduction aux composants adaptables Java.

Mise à disposition d'un conteneur pour le composant JavaBean

Pour permettre au composant JavaBean de s'intégrer correctement à votre application, vous devez mettre à sa disposition un conteneur. Celui-ci doit mettre en oeuvre une interface définie par WebForms, appelée interface IView.

Si le composant JavaBean doit communiquer avec l'application Forms pendant l'exécution, votre conteneur doit également étendre la classe VBean. (La classe VBean met en oeuvre l'interface IView.) En étendant la classe VBean, votre conteneur peut bénéficier du module d’écoute CustomListener et distribuer des événements personnalisés.

Dans le constructeur du conteneur, vous instanciez le composant JavaBean. Votre conteneur peut mettre en oeuvre différents modules d'écoute d'événements et vous pouvez inscrire le conteneur en tant que module d'écoute de plusieurs événements gérés par le composant JavaBean. Par ailleurs, vous pouvez inscrire les propriétés et définir celles du gestionnaire passé dans la méthode init(). Ces propriétés peuvent être partagées avec l'application Forms.


Comment ajouter des composants JavaBean
Comment ajouter des composants JavaBean : présentation

  Rubriques connexes [image]  Exemple

Suivez les étapes générales ci-dessous pour ajouter un composant JavaBean à votre application WebForms. L'application Forms ainsi que le composant Java requièrent un codage spécial.

Dans l'application Forms :

1	Lors de la conception, créez à l'intérieur de l'application Forms une zone composant JavaBean en tant qu'élément (propriété Item Type (Type d'élément)). L'utilisateur final verra le composant JavaBean de cet élément dans l'interface utilisateur.

2	Dans cet élément de zone JavaBean, définissez la propriété Implementation Class (Classe de mise en oeuvre) afin d'attribuer un nom à la classe de conteneur que vous créez pour votre composant JavaBean (voir les étapes ci-dessus). Ce nom doit être complet (c'est-à-dire, oracle.forms.-----). Il établit la connexion initiale entre l'application Forms et le composant JavaBean.

3	Si une communication avec le composant JavaBean est nécessaire pendant son exécution, codez des procédures internes Set_Custom_Property et des déclencheurs When-Custom-Item-Event dans l'application Forms pour envoyer et recevoir des informations.

Dans le composant JavaBean :

1	Ecrivez une classe de conteneur pour le composant JavaBean. (Vous pouvez utiliser le produit JDeveloper pour effectuer cette tâche générale.) Plus précisément :
a)  Faites que la classe du conteneur étende Vbean. Un fichier de classe VBean est fourni avec le package WebForms. VBean met en oeuvre l'interface IView et étend LWContainer.
b)  Mettez en oeuvre les modules d'écoute d'événement.
c)  Inscrivez les propriétés définies par l'utilisateur. Elles seront alors accessibles dans l'application Forms à l'aide de ces mêmes noms.
d)  Mettez en oeuvre les gestionnaires pour gérer tous les événements reçus de l'application Forms.
e)  Définissez les propriétés du gestionnaire passé dans la méthode init().
f)  Si nécessaire, définissez la distribution des événements personnalisés communiquant avec l'application Forms.

2	Compilez la classe de conteneur que vous avez écrite à l'étape 1. Le compilateur doit se situer sur le même ClassPath que les composants JavaBean de WebForms et pointer soit sur le répertoire Java, soit sur le fichier JAR de WebForms.

3	Stockez le composant JavaBean et sa classe de manière que WebServer puisse les trouver lors de l'exécution. Il est généralement plus efficace de les installer sur la machine serveur que sur le client utilisateur final. Le répertoire Codebase de l’applet WebForms est le premier emplacement consulté, suivi de ClassPath sur le serveur.


Communication avec un composant JavaBean

  Rubriques connexes  [image]  Exemple

Mécanismes de communication

Lors de l'exécution, la communication entre l'application Forms et le conteneur du composant JavaBean a lieu par l'intermédiaire des fonctions suivantes :

•	Un CustomListener Java et des CustomEvents

•	Les variables système System.Custom_Item_Event et System.Custom_Item_Event_Parameters

•	La procédure interne Set_Custom_Property de l'application Forms

•	Le déclencheur When-Custom-Item-Event de l'application Forms

CustomListener et CustomEvents

L'application Forms fournit une interface CustomListener ainsi qu'une classe CustomEvent associée. Lors de sa procédure de lancement à l'exécution, le gestionnaire de l'application Forms inscrit un module d'écoute CustomListener avec le conteneur JavaBean. Puis, pendant l'exécution, le conteneur JavaBean communique avec l'application Forms en lui envoyant des événements personnalisés via ce CustomListener. Cette procédure est conforme au mécanisme d'événement AWT standard. (Votre conteneur doit étendre VBean, qui fournit CustomListener et CustomEvents.)

public interface CustomListener extends EventListener {

    public void customActionPerformed(CustomEvent event);

}

public class CustomEvent extends java.util.EventObject {

    public CustomEvent(Object source, ID name);

    public string getName();

}

Inscription et définition de propriétés

Pour que les éléments du conteneur puissent être reconnus dans l'application Forms, ils doivent être inscrits. Vous pouvez inscrire les événements, propriétés et méthodes dans votre conteneur, en appelant ID.registerProperty.

Une fois inscrits, ces éléments sont reconnus dans l'application Forms et y sont accessibles par leurs noms.

Voici un exemple d'inscription d'un événement :

private static final ID MOUSEPRESSED = ID.registerProperty(«MousePressed»);

Le déclencheur When-Custom-Item-Event

Ce déclencheur est utilisé dans l'application Forms pour recevoir le contrôle et les informations du conteneur JavaBean pendant l'exécution. Forms inscrit un module d’écoute CustomListener avec chaque conteneur JavaBean instancié. Si le conteneur distribue un événement personnalisé pendant l'exécution, le module d'écoute est automatiquement activé et il active à son tour le déclencheur When_Custom_Item_Event associé de l'application Forms. Le nom de l'événement est indiqué dans PropertyID de CustomEvent.

Lorsque le déclencheur When-Custom-Item-Event est activé dans l'application Forms, il peut accéder au nom de l'événement à partir de la variable système System.Custom_Item_Event. Il peut également accéder aux propriétés définies depuis la dernière exécution du déclencheur. Le système accumule celles-ci dans la variable système System.Custom_Item_Event_Parameters. Il efface cette variable à la fin de l'exécution du déclencheur.

Par exemple, supposons le code d'événement suivant dans le conteneur :

public void mousePressed(MouseEvent event)

     {

        Integer xobj = new Integer(event.getX());

        Integer yobj = new Integer(event.getY());

        try

        {

            mHandler.setProperty(X_POS, xobj);

            mHandler.setProperty(Y_POS, yobj);

        }

        CustomEvent ce = new CustomEvent(mHandler, MOUSEPRESSED);

        dispatchCustomEvent(ce);

     }

Cet événement mousePressed peut être géré dans l'application Forms via un déclencheur When-Custom-Item-Event de la manière suivante :

BeanValListHdl := get_parameter_list(:SYSTEM.Custom_Item_Event_Parameters);	EventName      := :SYSTEM.Custom_Item_Event;

:event_name    := EventName;

if (EventName = 'MousePressed') then

       .

       .

Les propriétés de composant JavaBean définies par l'utilisateur sont uniquement accessibles dans l'application Forms à partir de ce déclencheur. Le client n'envoie pas au serveur les propriétés définies par l'utilisateur tant que l'événement personnalisé n'est pas distribué. Toutefois, ces propriétés sont disponibles depuis le client si la méthode getProperty du conteneur JavaBean les prend en charge.

La procédure interne Set_Custom_Property

Vous pouvez définir des propriétés inscrites du composant JavaBean à partir d'un déclencheur Forms en appelant la procédure interne Set_Custom_Property. Le fait d'appeler cette procédure interne permet d'appeler setProperty() dans le conteneur JavaBean correspondant. La procédure interne transmet un paramètre de valeur de type String, Integer ou Boolean. (Si le nom indiqué dans la procédure interne n'est pas inscrit dans le conteneur JavaBean, l'exécution de la procédure interne échoue.)


A propos de l'ajout d'éléments d'interface utilisateur personnalisés
A propos de l'ajout de composants d'interface utilisateur personnalisés

  Rubriques connexes

Au lieu d'employer des composants standard fournis avec WebForms dans l'interface utilisateur de votre application, vous pouvez utiliser vos propres composants personnalisés. Par exemple, vous pouvez remplacer le bouton de commande de forme rectangulaire standard de Forms par un bouton de commande de forme ovale.

Les éléments d'interface utilisateur (types d'élément de contrôle) pouvant être remplacés sont :

•	Case à cocher

•	Elément liste (combinaison de ComboBox, TList, et PopList)

•	Bouton de commande (normal et icône)

•	Groupe de boutons d'option

•	Elément texte (combinaison de Multi-line, TextArea et TextField)

Les composants d'interface utilisateur standard mettent en oeuvre l'interface IView de WebForm. En créant votre propre classe de composant d'interface utilisateur personnalisé, vous pouvez remplacer le composant standard par votre composant personnalisé afin de l'intégrer dans votre application Forms.


Comment ajouter des éléments d'interface utilisateur personnalisés

  Rubriques connexes   [image]  Exemples

Il existe plusieurs manières de personnaliser votre interface utilisateur à l'aide de Java :

•	Etendre l'une des classes standard fournies par WebForms.

•	Etendre une classe qui n’est pas une classe WebForms.

•	Créer une classe de conteneur.

•	Créer un nouveau type d'élément d'interface.

Chaque type de personnalisation suit ses propres étapes, expliquées ci-dessous.

Pour étendre une classe Forms existante

1	Créez votre propre mise en oeuvre en étendant l'une des classes d'interface utilisateur existantes fournies par Forms, qui crée ensuite votre propre nouvelle classe. (Les classes fournies par Forms sont listées ci-dessous.)

2	Si nécessaire, remplacez les méthodes setProperty() et/ou getProperty() pour gérer les propriétés.

3	Stockez votre classe dans le répertoire Codebase de Forms.

4	Identifiez votre classe dans la propriété Implementation Class (Classe de mise en oeuvre) de l'élément d'interface utilisateur dans votre application Forms.

Pour étendre une classe qui n’est pas une classe WebForms

1	Créez une nouvelle classe en étendant une autre, mais en lui faisant mettre en oeuvre l'interface IView. (La classe à étendre peut être une classe JFL ou tierce.)

2	Incluez les méthodes getProperty et setProperty. Celles-ci doivent gérer les propriétés que Forms indique normalement pour cette classe d'élément d'interface utilisateur.

3	Stockez la classe dans le répertoire Codebase de Forms.

4	Identifiez la classe dans la propriété Implementation Class (Classe de mise en oeuvre) de l'élément d'interface utilisateur de votre application Forms.

Pour créer une classe de conteneur

1	Créez une classe de conteneur qui met en oeuvre l'interface IView.

2	Créez un nouvel élément d'interface utilisateur dans ce conteneur.

3	Ecrivez vos propres méthodes getProperty et setProperty pour gérer les propriétés de manière que les méthodes appropriées soient appelées sur le composant.

4	Assurez-vous que des modules d'écoute sont ajoutés au composant d'interface utilisateur pour y contrôler les actions de l'utilisateur final.

5	Identifiez la classe dans la propriété Implementation Class (Classe de mise en oeuvre) de l'élément d'interface utilisateur de votre application Forms.

Pour créer un nouveau type d'élément d'interface

1	Créez votre propre classe pour le nouveau type d'élément.

2	Faites que la nouvelle classe mette en oeuvre l'interface IView.

3	Mettez en oeuvre les méthodes requises par la classe.

4	Identifiez la classe dans la propriété Implementation Class (Classe de mise en oeuvre) de l'élément d'interface utilisateur de votre application Forms.

Classes fournies par Forms pour les éléments d'interface utilisateur

Les définitions de classes fournies par Forms pour les composants d'interface utilisateur sont :

•	VButton

•	VCheckbox

•	VComboBox

•	Vimage

•	VPopList

•	VRadioButton

•	VTextArea

•	VTextField

•	VTList

Présentation Oracle

Pour obtenir l'apparence des composants d'interface standard Oracle (par exemple, boutons arrondis), ajoutez <param name = «LookAndFeel» value = «Oracle»> et <param name = «LookAndFeel» value = «ColorScheme»> au fichier html.


Ajout de composants d'interface utilisateur personnalisés : exemples

Exemple 1 : Extension d'une classe existante Forms

import oracle.forms.ui.VButton;

import oracle.ewt.button.PushButton;

public class      SingleButton

       extends    VButton

{

    public SingleButton()

    {

        super();

        setLeftmost(true);

        setRightmost(true);

    }

}

Exemple 2 : Création d'une nouvelle classe par extension d'une autre

package oracle.forms.jfcplug;

import com.sun.java.swing.*;

import com.sun.java.swing.border.*;

import com.sun.java.swing.event.*;

import java.awt.*;

import java.awt.event.*;

import java.util.EventListener;

import oracle.forms.handler.IHandler;

import oracle.forms.properties.ID;

import oracle.forms.ui.IView;

public class       VJCheckBox

       extends     JCheckBox

       implements  IView

{

    /* Instance counter used to generate default names */

    private static int   sInstanceCounter;

    /* Helper class to handle the IView interface */

    private IHandler     mHandler;

    private int          mInstance;

    /**

    ** Constructs a new JCheckBox.

    */

    public VJCheckBox()

    {

        super();

        mInstance = sInstanceCounter++;

    }

    /**

    ** Implementation of IView interface

    **

    ** @param handler - message handler associated with this view.

    ** @see IView

    */

    public void init(IHandler handler) {

    {

        mHandler = handler;

    }

    /**

    ** Implementation of IView interface

    **

    ** @see IView

    */

    public void destroy()

    {

    }

    /**

    ** Implementation of IView interface

    **

    ** @param id - ID de la propriété

    ** @return the value of the property id

    ** @see IView

    */

    public Object getProperty(ID id) {

    {

        switch  ( id.toID() )

        {

           case ID.INDEX_BOUNDS:

               return getBounds();

           case ID.INDEX_ENABLED:

               return isEnabled() ? Boolean.TRUE : Boolean.FALSE;

           case ID.INDEX_LANGUAGE_DIRECTION:

               return mDirection;

           case ID.INDEX_LOCATION:

               return getLocation();

           case ID.INDEX_SIZE:

               return getSize();

           case ID.INDEX_VISIBLE:

               return isVisible() ? Boolean.TRUE : Boolean.FALSE;

           case ID.INDEX_UI_PARENT:

               return getParent();

            case ID.INDEX_LABEL:

                return getText();

            case ID.INDEX_VALUE:

                return isSelected() ? Boolean.TRUE : Boolean.FALSE;

            menu par défaut

                return null;

        }

    }

    /**

    ** Implementation of IView interface

    **

    ** @param id    - propriété à définir.

    ** @param value - value of the property id.

    ** @return      - true (if the property could be set), sinon false.

    ** @see IView

    */

    public boolean setProperty(ID id, Object value)

    {

        switch  ( id.toID() )

        {

            case ID.INDEX_BACKGROUND:

               Color bgColor = (Color) value;

               setBackground(bgColor);

               return true;

            case ID.INDEX_ENABLED:

               setEnabled(toBoolean(value));

               return true;

            case ID.INDEX_FOCUS:

               // Ne peut être défini qu'à true:-)

               if ( value == Boolean.TRUE )

               {

                   cp.requestFocus();

               }

               return true;

            case ID.INDEX_FONT:

               setFont((Font) value);

               return true;

            case ID.INDEX_FOREGROUND:

               Color fgColor = (Color) value;

               setForeground(fgColor);

               return true;

            case ID.INDEX_LANGUAGE_DIRECTION:

               // Adjust the alignment to conform to the new lang direction

               // setDirection((LanguageDirection)value);

               return true;

            case ID.INDEX_LOCATION:

               setLocation((Point) value);

               return true;

            case ID.INDEX_SIZE:

               Point pt = (Point) value;

               setSize(pt.x, pt.y);

               return true;

            case ID.INDEX_VISIBLE:

               setVisible(((Boolean)value).booleanValue());

               return true;

            case ID.INDEX_LABEL:

                setText((String)value);

                return true;

            case ID.INDEX_VALUE:

                setSelected(((Boolean)value).booleanValue());

                return true;

            default:

                return false;

        }

    }

    /**

    ** Implementation of IView interface

    **

    ** @param type     - Class type of the listener.

    ** @param listener - Listener object.

    ** @see IView

    */

    public void addListener(Class type, EventListener listener)

    {

        if ( type == FocusListener.class )

        {

            addFocusListener((FocusListener) listener);

        }

        else if ( type == KeyListener.class )

        {

            addKeyListener((KeyListener) listener);

        }

        else if ( type == MouseListener.class )

        {

            addMouseListener((MouseListener) listener);

        }

        else if ( type == MouseMotionListener.class )

        {

            addMouseMotionListener((MouseMotionListener) listener);

        }

        else if ( type == ItemListener.class )

        {

            addItemListener((ItemListener) listener);

        }

    }

    /**

    ** Implementation of IView interface

    **

    ** @param type     - Class type of the listener.

    ** @param listener - Listener object.

    ** @see IView

    */

    public void removeListener(Class type, EventListener listener)

    {

        if ( type == FocusListener.class )

        {

            removeFocusListener((FocusListener) listener);

        }

        else if ( type == KeyListener.class )

        {

            removeKeyListener((KeyListener) listener);

        }

        else if ( type == MouseListener.class )

        {

            removeMouseListener((MouseListener) listener);

        }

        else if ( type == MouseMotionListener.class )

        {

            removeMouseMotionListener((MouseMotionListener) listener);

        }

        else if ( type == ItemListener.class )

        {

            removeItemListener((ItemListener) listener);

            return;

        }

    }

    /**

    ** Implementation of IView interface

    **

    ** @param child - Object to be added( or inserted in Lists, Choice)

    ** @param index - The position of insertion. For add's, this is --1.

    ** @see IView

    */

    public void add(Object child, int index)

    {

        // Not supported

    }

    /**

    ** Implementation of IView interface

    **

    ** @child -  Element to be deleted from the list.

    ** @see IView

    */

    public void remove(Object child)

        // Not supported

    }

    /**

    ** Implementation of IView interface

    */

    public void removeAll()

    {

        // Not supported

    }

    /**

    ** Implement getDefaultName() to return a default name of

    ** the form <ClassName># where # is the instance number

    ** of the CheckBox

    */

    protected String getDefaultName()

    {

        return getClass().getName() + mInstance;

    }

}


L'interface IView

 Rubriques connexes

Pour créer un composant JavaBean ou une version personnalisée d'un élément d'interface utilisateur s'exécutant avec votre application WebForms, vous devez indiquer une classe de vue, c'est-à-dire une classe Java mettant en oeuvre l'interface IView et prenant en charge les propriétés et les modules d'écoute propres à ce type de vue.

La classe VBean étend l'interface IView. Donc, si vous créez un conteneur JavaBean qui étend VBean, vous obtenez automatiquement l'interface IView.

Une classe mettant en oeuvre IView doit avoir un constructeur ne demandant aucun argument.

Contenu de l'interface Iview :

public interface IView

{

   public void init (IHandler handler);

   public void destroy ();

   public Object getProperty(ID id);

   public boolean setProperty (ID id, Object value);

   public void addListener (Class type, EventListener listener);

   public void removeListener (Class type, EventListener listener);

   public void paint (Graphics g);

   public void repaint (Rectangle r);

   public void add (Object child, int index);

   public void remove (Object child);

   public void removeAll ();

   public boolean contains (int x, int y);

}

Détails fonctionnels de l'interface IView :

public void init (IHandler handler)

Le gestionnaire appelle cette méthode immédiatement après que l'applet WebForms a créé l'objet. Cette méthode transmet à l'objet Vue une référence au gestionnaire et lui permet d'effectuer l'initialisation.

public void destroy ()

L'applet  WebForms appelle cette méthode pour éliminer l'objet. Cette méthode libère les ressources système utilisées par cet objet.

public Object getProperty (ID id)

Cette méthode renvoie la valeur de la propriété demandée (identifiée par id). L'objet Vue doit prendre en charge les propriétés correspondant à son type (reportez-vous aux sections suivantes). Si cet objet ne prend pas en charge la propriété indiquée, cette méthode renvoie NULL.

public boolean setProperty (ID id, Object value)

Cette méthode définit la valeur de la propriété demandée (identifiée par id) à la valeur Objet. L'objet Vue doit prendre en charge les propriétés correspondant à son type (reportez-vous à la section Propriétés et modules d'écoute). Si cet objet ne prend pas en charge la propriété indiquée, la méthode renvoie la valeur FALSE. Dans les autres cas, elle renvoie la valeur TRUE.

public void addListener (Class type, EventListener listener)

Cette méthode ajoute à l'objet Vue un module d'écoute conforme au nom et au type indiqués. Cet objet doit prendre en charge les modules d'écoute correspondant à son type (reportez-vous à la section Propriétés et modules d'écoute).

public void removeListener (Class type, EventListener listener)

Cette méthode supprime dans l'objet Vue le module d'écoute indiqué..

public void paint (Graphics g)

Le gestionnaire appelle cette méthode pour peindre l'objet Vue à l'aide de l'objet AWT Graphics indiqué.

public void repaint (Rectangle r)

Cette méthode invalide et repeint le rectangle indiqué. Si ce dernier est Null, l'opération concerne l'intégralité de l'objet.

public void add(Object child, int index)

Cette méthode ajoute l'enfant indiqué à cet objet. Il est ajouté à l'endroit indiqué dans l'index. Pour ajouter l'enfant à la fin de l'index, précisez un index de -1.

public void remove (Object child)

Cette méthode supprime dans cet objet l'enfant indiqué..

public void removeAll ()

Cette méthode supprime tous les enfants de cet objet.

public boolean contains (int x, int y)

Cette méthode renvoie une valeur True si le point (x, y) indiqué se trouve dans la zone de sélection du composant. Dans les autres cas, elle renvoie la valeur False.


Propriétés et modules d'écoute nécessaires pour les classes de composant d'interface utilisateur

  Rubriques connexes

Tous les composants d'interface utilisateur emploient l'interface IView, mais chaque type d'élément d'interface est doté de son propre ensemble de propriétés et propose des modules d'écoute pour des événements différents. Cette section répertorie les différents types d'éléments d'interface, ainsi que les propriétés et les modules d'écoute pris en charge par chacun d'eux.

Il y a héritage des propriétés et modules d'écoute des composants d'interface. Pour chaque élément d’interface listé ci-dessous, la section Conditions héritées liste les conditions de l'élément d'interface qui le précède dans la hiérarchie d'héritage. Par exemple, l'élément ComboBoxes liste les propriétés et modules d'écoute de PopLists en tant que conditions héritées. L'élément ComboBoxes doit donc également inclure les conditions héritées de PopLists (qui sont les propriétés et modules d'écoute communs). Notez que tous les composants exigent les propriétés et modules d'écoute communs.

Les propriétés listées comprennent le nom, le type et les conditions pour chaque élément d'interface. Chaque propriété doit être gérée dans les méthodes getProperty() et/ou setProperty() de l'interface IView conformément aux conditions de la propriété. La condition pouvant être extraite (gettable) correspond à getProperty(), celle pouvant être définie (settable) à setProperty().

Exemples : La propriété BACKGROUND (dans les propriétés communes) peut être extraite et définie de sorte que BACKGROUND doit être géré dans les deux méthodes getProperty() et setProperty(). La propriété UI_PARENT (dans les propriétés communes) ne peut être qu'extraite de sorte que UI_PARENT doit être géré dans la méthode getProperty() seulement.

Sauf indication contraire, les modules d'écoute font partie du kit AWT (Abstract Windowing Toolkit) de Javasoft. Une documentation est disponible chez Javasoft. Les noms utilisent la terminologie standard de Java.

La même classe est utilisée pour représenter les boutons texte et les boutons icône.

Propriétés et modules d'écoute communs

Propriétés et modules d'écoute requis pour tous les éléments d'interface

Propriétés	Type	Conditions
BACKGROUND	Color	Gettable, Settable
BGPATTERN	Image	Gettable, Settable
BOUNDS	Rectangle	Gettable, Settable
ENABLED	Boolean	Gettable, Settable
FOCUS	Boolean	Gettable, Settable
FONT	Font	Gettable, Settable
FOREGROUND	Color	Gettable, Settable
LANGUAGE_DIRECTION	LanguageDirection (les instances statiques sont LEFT_TO_RIGHT, RIGHT_TO_LEFT ou DEFAULT)	Gettable, Settable
LOCATION	Point	Gettable, Settable
MNEMONIC	Character	Gettable, Settable
SIZE	Point	Gettable, Settable
UI_PARENT	Container	Gettable
VISIBLE	Boolean	Gettable, Settable
Modules d'écoute
FocusListener
KeyListener
MouseListener
MouseMotionListener
Conditions héritées
Aucune
Propriétés et modules d'écoute de la zone JavaBean

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
BORDER_BEVEL	BorderBevel (les instances statiques sont PLAIN, RAISED, LOWERED ou NONE)	Gettable, Settable
Module d'écoute
CustomListener
Conditions héritées
Inclure tous les propriétés et modules d'écoute communs
Boutons

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
IMAGE	Image	Gettable, Settable
IS_DEFAULT	Boolean	Gettable, Settable
LABEL	String
Modules d'écoute
ActionListener
Conditions héritées
Inclure tous les propriétés et modules d'écoute communs
CheckBoxes

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
LABEL	String	Gettable, Settable
VALUE	Boolean	Gettable, Settable
Modules d'écoute
ItemListener
Conditions héritées
Inclure tous les propriétés et modules d'écoute communs
ComboBoxes

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
CASE_FOLD	CaseRestriction	Gettable, Settable
MAX_LENGTH	Integer	Gettable, Settable
SELECT*	Integer	Settable
USERTEXT	String	Gettable
Modules d'écoute
SelectionListener
TextListener
Conditions héritées
Inclure tous les propriétés et modules d'écoute PopList
Images

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
BORDER_BEVEL	BorderBevel (les instances statiques sont PLAIN, RAISED, LOWERED ou NONE)	Gettable, Settable
CANVAS_ORIGIN	Point	Gettable, Settable
SCALE	Integer	Gettable, Settable
SCROLL_POSITION	Point	Gettable
SCROLL_STYLE	ImageScrollPolicy (les instances statiques sont HORIZONTAL, VERTICAL, BOTH ou NONE)	Gettable, Settable
VALUE	Image	Gettable, Settable
VIEWPORT_SIZE	Dimension	Gettable
Modules d'écoute
(aucun nouveau module d'écoute)
Conditions héritées
Inclure tous les propriétés et modules d'écoute communs
PopLists

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
COUNT*	Integer	Gettable
SELECT*	Integer	Settable
SELECTEDINDEX	Integer	Gettable
Modules d'écoute
DropDownListener
ItemListener
Conditions héritées
Inclure tous les propriétés et modules d'écoute communs
RadioButtons

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
GROUPLEADER	Boolean	Gettable, Settable
LABEL	String	Gettable, Settable
LOCALSTATE	Boolean	Gettable
RADIOGROUP	Iview	Gettable
VALUE	Boolean	Gettable, Settable
Modules d'écoute
ItemListener
Conditions héritées
Inclure tous les propriétés et modules d'écoute communs
Propriétés et modules d'écoute de TEdits (composant de texte) normal et multiligne

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
ALIGNMENT	Alignment (les instances statiques sont START, RIGHT, LEFT, CENTER ou END)	Gettable, Settable
BORDER_BEVEL	BorderBevel (les instances statiques sont PLAIN, RAISED, LOWERED ou NONE)	Gettable, Settable
CAN_TAKE_FOCUS	Boolean	Gettable, Settable
CASE_FOLD	CaseRestriction (les instances statiques sont UPPERCASE, LOWERCASE ou NONE)	Gettable, Settable
CURSOR_POSITION	Integer	Gettable, Settable
EDITABLE	Boolean	Gettable, Settable
MAX_LENGTH	Integer	Gettable, Settable
SELECTION	Point	Gettable, Settable
VALUE	String	Gettable, Settable
Modules d'écoute
TextListener
Conditions héritées
Inclure tous les propriétés et modules d'écoute communs
Propriétés et modules d'écoute de TEdits (TextArea) multiligne

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
VSBARPOLICY	Boolean	Gettable, Settable
WRAP_STYLE	WrapStyle (les instances statiques sont CHARACTER, WORD ou NONE)	Gettable, Settable
Modules d'écoute
(aucun nouveau module d'écoute)
Conditions héritées
Inclure tous les propriétés et modules de composant texte
TEdits (TextField) non multiligne

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
SECURE	Boolean	Gettable, Settable
Modules d'écoute
(aucun nouveau module d'écoute)
Conditions héritées

Inclure tous les propriétés et modules de composant texte

TLists

Propriétés et modules d'écoute requis :

Propriétés	Type	Conditions
COUNT*	Integer	Gettable
DESELECT	Integer	Settable
MAKEVISIBLE	Integer	Settable
SELECT*	Integer	Settable
SELECTEDINDEX	Integer	Gettable
Modules d'écoute
ActionListener
ItemListener
Conditions héritées
Inclure tous les propriétés et modules d'écoute communs


Ajout d'un composant JavaBean et de contrôles personnalisés : exemple

  Rubriques connexes

L'exemple ci-dessous montre comment inclure un composant JavaBean dans une application Forms. Ce composant JavaBean particulier (appelé sunw.demo.juggler.Juggler) est un graphique animé, dont la vitesse d'animation peut être réglée par l'utilisateur final à l'aide de divers contrôles d'affichage.

Dans l'application Forms

Dans l'application Forms, vous pouvez créer un élément de zone JavaBean puis, à l'aide de sa propriété Implementation Class (Classe de mise en oeuvre), identifier la classe qui constitue le conteneur définissant le composant JavaBean lui-même. Dans cet exemple, l'élément de zone JavaBean est appelé JUGGLER_BEAN et son nom complet de Implementation Class (Classe de mise en oeuvre) est oracle.forms.pjc.demo.JugglerWrapper.

Dans l'application Forms, l'utilisateur final dispose également de divers éléments de contrôle : un bouton figer/redémarrer, des boutons d'augmentation/réduction de la vitesse d'animation, ainsi qu'un contrôle de vitesse de type curseur. (Ce curseur est mis en oeuvre par un composant et un conteneur JavaBean séparés.)

A l'aide de déclencheurs et procédures internes PL/SQL dans l'application Forms, l'exemple extrait et définit les propriétés définies dans les classes de conteneur. En inscrivant les événements, méthodes et propriétés du composant JavaBean réel en tant que propriétés de la classe de conteneur, il est possible de contrôler le composant JavaBean par programme en définissant simplement la propriété appropriée dans le conteneur. Dans l'application Forms, les propriétés du composant JavaBean sont accessibles à l'aide de la procédure interne SET_CUSTOM_PROPERTY.

Les événements du composant JavaBean sont capturés à l'aide du déclencheur When-Custom-Item-Event.

Les éléments et déclencheurs associés sont visibles dans cette vue du Navigateur d'objet de l'application Forms :

Le conteneur du juggler JavaBean

N'oubliez pas que pour permettre au composant JavaBean de communiquer avec une application Forms lors de l'exécution, la définition de la classe du conteneur doit étendre la classe VBean. La définition de la classe VBean elle-même est fournie par le package  WebForms. (VBean étend également IView.)

package oracle.forms.pjc.demo;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.beans.*;

import oracle.forms.properties.ID;

import oracle.forms.handler.IHandler;

import oracle.forms.ui.CustomEvent;

import oracle.forms.ui.VBean;

public class      JugglerWrapper

       extends    VBean

       implements MouseListener

{

    private Component mComp;

    private IHandler     mHandler;

// Java Bean EVENTS registered as properties of 'wrapper' implementation class

   private static final ID MOUSEPRESSED = ID.registerProperty(«MousePressed»);

   private static final ID MOUSEENTERED = ID.registerProperty(«MouseEntered»);

   private static final ID MOUSEEXITED  = ID.registerProperty(«MouseExited»);

// Java Bean PROPERTIES registered as properties of 'wrapper' implementation class

   private static final ID X_POS      = ID.registerProperty("MouseX");

   private static final ID Y_POS      = ID.registerProperty("MouseY");

   private static final ID ARATE      = ID.registerProperty("AnimationRate");

// Java Bean METHODS registered as properties of 'wrapper' implementation class

   private static final ID STOP       = ID.registerProperty("StopJuggling");

   private static final ID START      = ID.registerProperty("StartJuggling");

   private static final ID SETRATE    = ID.registerProperty(«SetAnimationRate»);

   private static final ID GETRATE    = ID.registerProperty("GetAnimationRate");

    public JugglerWrapper()

    {

        super();

        try

        {

            ClassLoader cl = getClass().getClassLoader();

            Object obj = Beans.instantiate(cl, "sunw.demo.juggler.Juggler");

            mComp = (Component) obj;

            mComp.setVisible(true);

            mComp.setEnabled(true);

            add("Center", mComp);

            if ( mComp instanceof Applet )

            {

                Applet apl = (Applet) Beans.getInstanceOf(mComp, Applet.class);

                apl.start();

            }

        }

        catch ( Exception e )

        {

        }

    }

    public void init(IHandler    handler) {

    {

        super.init(handler);

        mHandler = handler;

        mComp.addMouseListener(this);

    }

    public void destroy()

    {

        if ( mComp instanceof Applet )

        {

            Applet apl = (Applet) Beans.getInstanceOf(mComp, Applet.class);

            apl.destroy();

            apl.stop();

        }

    }

    public boolean setProperty(ID pid, Object value)

    {

    if ( pid == STOP )

        {

            if ( ((Integer)value).intValue() == 1)

            {

              ((sunw.demo.juggler.Juggler)mComp).stopJuggling();

            }

            return true;

        }

        else if ( pid == START )

        {

            if ( ((Integer)value).intValue() == 1)

            {

              ((sunw.demo.juggler.Juggler)mComp).startJuggling();

            }

            return true;

        }

        else if ( pid == SETRATE )

        {

            ((sunw.demo.juggler.Juggler)mComp).setAnimationRate(

                                                 ((Integer)value).intValue());

             return true;

        }

    return super.setProperty(pid, value);

    }

    public void mousePressed(MouseEvent event)

    {

    }

    public void mousePressed(MouseEvent event)

    {

        CustomEvent ce = new CustomEvent(mHandler, MOUSEPRESSED);

        dispatchCustomEvent(ce);

    }

    public void mouseExited(MouseEvent event)

    {

        CustomEvent ce = new CustomEvent(mHandler, MOUSEPRESSED);

        dispatchCustomEvent(ce);

    }

    public void mousePressed(MouseEvent event)

    {

        Integer xobj = new Integer(event.getX());

        Integer yobj = new Integer(event.getY());

        try

        {

            mHandler.setProperty(Y_POS, yobj);

            mHandler.setProperty(X_POS, xobj);

        }

        catch ( Exception e )

        {

        }

        CustomEvent ce = new CustomEvent(mHandler, MOUSEPRESSED);

        dispatchCustomEvent(ce);

    }

    public void mouseReleased(MouseEvent event)

    {

    }

}

Réception d'informations du composant JavaBean via le déclencheur When-Custom-Item-Event

Dans cet exemple, le déclencheur When-Custom-Item-Event de l'application Forms est attaché à l'élément de zone JavaBean pour le juggler JavaBean. Lorsque le conteneur de ce composant JavaBean distribue un événement personnalisé, le déclencheur est exécuté. Ce dernier exécute la procédure PL/SQL appelée Juggler_event_trap (voir ci-dessous) :

Notez que la procédure de l'application Forms recherche dans les champs System.Custom_Item_Event et System.Custom_Item_Event_Parameters le nom de l'événement et essaie d'obtenir les valeurs définies dans le conteneur.

Notez également que le nom de l'événement et les valeurs transmises des coordonnées X et Y de la souris, sont des propriétés inscrites dans le conteneur.

PROCEDURE Juggler_event_trap IS

  BeanHdl        Item;

BeanValListHdl ParamList;

paramType      Number;

EventName      VarChar2(20);

CurrentValue   number(4);

XPos           Number(4);

YPos           Number(4);

Begin

BeanValListHdl := get_parameter_list(:SYSTEM.Custom_Item_Event_Parameters);	EventName      := :SYSTEM.Custom_Item_Event;

:event_name    := EventName;

if (EventName = 'MousePressed') then

   get_parameter_attr(BeanValListHdl,'MouseX',ParamType, CurrentValue);

   XPos := CurrentValue;

   get_parameter_attr(BeanValListHdl,'MouseX',ParamType, CurrentValue);

   YPos := CurrentValue;

   MsgBox('If you click at '||to_Char(XPos)||'/'||to_Char(YPos)||' again I may drop these beans');

  end if;

Fin;

Elément de contrôle de type curseur

Dans cet exemple, l'interface utilisateur de l'application Forms comporte également des éléments de contrôle permettant à l'utilisateur final de faire varier la vitesse d'animation du juggler JavaBean.

L'un de ces contrôles est un élément de zone JavaBean appelé EWT_SLIDER. Sa propriété Implementation Class (Classe de mise en oeuvre) complète est oracle.forms.pjc.demo.EwtSliderWrapper, c'est-à-dire le conteneur ci-dessous :

/**

** Simple JavaBean Wrapper. It allows the EWT Slider control component to be

** embedded within the form. The slider allows the end user to control the juggler bean’s animation speed.

*/

package oracle.forms.pjc.demo;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.beans.*;

import oracle.ewt.slider.Slider;

import oracle.ewt.meter.BoundedRangeModelImpl;

import oracle.forms.properties.ID;

import oracle.forms.handler.IHandler;

import oracle.forms.ui.CustomEvent;

import oracle.forms.ui.VBean;

public class      EwtSliderWrapper

       extends    VBean

       implements PropertyChangeListener

{

    private Component             mComponent;

    private IHandler              mHandler;

    private BoundedRangeModelImpl mSliderRange;

    // Java Bean EVENTS registered as properties of 'wrapper' implementation class

    private static final ID VALUECHANGED = ID.registerProperty(«ValueChanged»);

    // Java Bean PROPERTIES registered as properties of 'wrapper' implementation

    // classe

    private static final ID VALUE           = ID.registerProperty("Value");

    private static final ID MAXVALUE        = ID.registerProperty("MaxValue");

    private static final ID MINVALUE        = ID.registerProperty("MinValue");

    // Java Bean METHODS registered as properties of 'wrapper' implementation class

    private static final ID SETVALUE        = ID.registerProperty("SetValue");

    private static final ID GETVALUE        = ID.registerProperty("GetValue");

    private static final ID GETMAXVALUE     = ID.registerProperty("GetMaximum");

    private static final ID GETMINVALUE     = ID.registerProperty("GetMinimum");

    public void init(IHandler    handler) {

    {

        super.init(handler);

        mHandler    = handler;

        mSliderRange = new BoundedRangeModelImpl(0,300,125);

        mComponent  = new Slider(mSliderRange);

        mSliderRange.addPropertyChangeListener(this);

        mComponent.setEnabled(true);

        add("Center", mComponent);

    }

    public boolean setProperty(ID pid, Object value)

    {

        return super.setProperty(pid, value);

    }

   public void propertyChange(PropertyChangeEvent event)

    {

         String PropName = event.getPropertyName();

         if (PropName.equals("value"))

         {

           Integer SliderValue = new Integer(mSliderRange.getValue());

           try

           {

           mHandler.setProperty(VALUE, SliderValue);

           }

           catch (Exception e)

           {

           }

           CustomEvent ce = new CustomEvent(mHandler, VALUECHANGED);

           dispatchCustomEvent(ce);

         }

    }

}

Dans l'application Forms, un déclencheur When-Custom-Item-Event est attaché à l'élément de zone JavaBean EWT_Slider. Lorsque l'utilisateur final déplace le curseur surl’écran, le composant JavaBean ci-dessus en est averti par son PropertyChangeListener. Le conteneur distribue un événement personnalisé, ce qui entraîne l'activation de ce déclencheur dans l'application Forms. Le déclencheur exécute la procédure PL/SQL suivante, appelée Slider_Event_Trap.

Après avoir recueilli les valeurs modifiées de System.Custom_Item_Event_Parameters, cette procédure utilise la procédure interne Set_Custom_Property pour transmettre ces valeurs modifiées au juggler JavaBean.

PROCEDURE Slider_Event_Trap IS

  BeanHdl          Item;

BeanValListHdl   ParamList;

paramType        Number;

EventName        VarChar2(20);

CurrentValue     Number(4);

NewAnimationRate Number(4);

Begin

-- Update data items and Display fields with current radius information

BeanValListHdl := get_parameter_list(:SYSTEM.Custom_Item_Event_Parameters);

EventName      := :SYSTEM.Custom_Item_Event;

:event_name    := EventName;

if (EventName = 'MousePressed') then

   get_parameter_attr(BeanValListHdl,'Value',ParamType, CurrentValue);

   NewAnimationRate := (300 - CurrentValue);

   :Animation_Rate  := NewAnimationRate;

     set_custom_property(’Juggler_Bean’, ALL_ROWS, ’SetAnimationRate’, NewAnimationRate);

elsif (EventName = 'mouseReleased') then

   get_parameter_attr(BeanValListHdl,'Value',ParamType, CurrentValue);

     set_custom_property(’Juggler_Bean’, ALL_ROWS, ’SetAnimationRate’, CurrentValue);

  end if;

Fin;

Autres boutons Java dans l'application Forms

L'application Forms dispose également de plusieurs composants d'interface utilisateur personnalisés. Ceux-ci sont créés par l'extension de la classe VButton existante de Forms, comme suit :

/**

** Here, the 'Oracle Look & Feel' buttons are enhanced by subclassing the

** standard EWT PushButton Class and calling one of the available methods.

**

** Use of both setLeftmost() & setRightmost() function causes the Left & Right

** edges of the button to be rounded (allows for the creation of a stand-alone

** rounded style button)

*/

import oracle.forms.ui.VButton;

import oracle.ewt.button.PushButton;

public class      SingleButton

       extends    VButton

{

    public SingleButton()

    {

        super();

        setLeftmost(true);

        setRightmost(true);

    }

}

/**

** Here, the 'Oracle Look & Feel' buttons are enhanced by subclassing the

** standard EWT PushButton Class and calling one of the available methods.

**

** Use of the setLeftmost() function causes the left edge of the button to be

** rounded (for use at the left end of a group of buttons)

*/

import oracle.forms.ui.VButton;

import oracle.ewt.button.PushButton;

public class       LeftButton

       extends     VButton

{

    public LeftButton()

    {

        super();

        setLeftmost(true);

    }

}

(The RightButton definition, which is similar to the above LeftButton, is not shown here.)

Autres déclencheurs liés à Java dans l'application Forms

L'application Forms contient également plusieurs déclencheurs When-Button-Pressed. Celui qui suit, par exemple, est attaché au bouton Start-Stop dans l'application Forms. Il permet d'exécuter la procédure suivante, qui fige ou redémarre l’animation à l’écran.

Notez que les propriétés StartJuggling et StopJuggling référencées dans les procédures internes Set_Custom_Property sont également des propriétés inscrites dans le conteneur du juggler JavaBean.

PROCEDURE Start_Stop_Juggling IS

BtnHdl    Item;

BtnLabel  VarChar2(10);

BeanHdl   Item;

BEGIN

BtnHdl := find_item('START_STOP_BTN');

if NOT id_null(BtnHdl) then

   BtnLabel := get_item_property(BtnHdl, LABEL);

   BeanHdl  := find_item('JUGGLER_BEAN');

   if NOT id_Null(BeanHdl) then

      if BtnLabel = 'Start Me!' then

         set_custom_property(BeanHdl, ALL_ROWS, 'StartJuggling', 1);

         set_item_property       (BtnHdl, LABEL,           'Stop Me!');

        elsif BtnLabel = 'Stop Me!' then

         set_custom_property(BeanHdl, ALL_ROWS, 'StartJuggling', 1);

         set_item_property       (BtnHdl,  LABEL,         'Start Me!');

        end if;

     end if;

  end if;

END;


Evénements point d'insertion et clavier des composants de zone JavaBean

Le développeur doit ajouter des fonctionnalités pour que le point d’insertion et la navigation dans les composants de zone JavaBean d'une applet Forms soient cohérents avec les autres composants Forms.  La zone JavaBean (classe de conteneur JavaBean) doit mettre en oeuvre les interfaces FocusListener et KeyListener. Par ailleurs, tous les composants d'une zone JavaBean doivent inscrire la zone JavaBean en tant que FocusListener et KeyListener. Enfin, le développeur doit mettre en oeuvre des méthodes transmettant les propriétés inscrites (à partir de la classe VBean) et l'objet d'événement pour créer un point d'insertion et une navigation qui soient cohérents avec les autres composants Forms.

Evénements point d'insertion

Le serveur ne reconnaît pas automatiquement les modifications de point d'insertion dans une zone JavaBean. Pour permettre au serveur de reconnaître que le point d'insertion se trouve dans le composant d'une zone JavaBean, le développeur doit utiliser la propriété inscrite FOCUS_EVENT, définie dans VBean. FOCUS_EVENT permet aux composants de la zone JavaBean de gérer le point d'insertion à partir de de la souris de manière cohérente avec le reste des composants d'une applet Forms. Ceci permet à l'utilisateur de demander de l'aide contextuelle dans la zone JavaBean.

Comment utiliser la propriété inscrite FOCUS_EVENT

Conditions de base de l'utilisation de FocusListener et de la propriété inscrite FOCUS_EVENT :

n	Une zone JavaBean (classe de conteneur JavaBean) met en oeuvre l'interface FocusListener.

n	Tous les composants de la classe de conteneur JavaBean inscrivent ce conteneur en tant que FocusListener.

Lorsque le point d'insertion est placé dans un composant de la zone JavaBean, appelez la méthode mHandler.setProperty() avec la propriété inscrite FOCUS_EVENT et le FocusEvent de JDK en tant qu'argument. FOCUS_EVENT est une propriété inscrite définie dans VBean. La méthode mHandler.setProperty() indique au serveur que le point d'insertion se trouve dans la zone JavaBean. Le serveur ne suit pas le point d'insertion jusqu'au niveau de composant individuel des zones JavaBean.

Exemple de code d'événements point d'insertion

Cette section explique l'utilisation de l'interface FocusListener et de la propriété inscrite FOCUS_EVENT à l'aide de snippets. Le code complet de l'exemple de classe est inclus à la fin de cette section.

Pour utiliser l'interface FocusListener :

Mettez en oeuvre FocusListener. Notez que la classe doit également étendre VBean. Cet exemple de classe est appelé BeanWrapper.

public class BeanWrapper

       extends VBean

       implements FocusListener, KeyListener

{

    // objet Handler transmis à la vue par l'application Forms

    private IHandler mHandler;

Créez les composants. Cet exemple de zone JavaBean comporte quatre boutons de commande offrant quatre choix à l'utilisateur.

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

Initialisez la classe en inscrivant FocusListener pour chaque composant. Notez qu'addFocusListener est défini pour la zone JavaBean et chacun des boutons de commande.

    // initialiser la classe

    public void init(IHandler handler)

    {

        super.init(handler);

        mHandler = handler;

        add(beanButton1,BorderLayout.NORTH);

        add(beanButton2,BorderLayout.EAST);

        add(beanButton3,BorderLayout.WEST);

        add(beanButton3,BorderLayout.SOUTH);

        addFocusListener(this);

        beanButton1.addFocusListener(this);

        beanButton2.addFocusListener(this);

        beanButton3.addFocusListener(this);

        beanButton4.addFocusListener(this);

    }

La méthode focusGained() est appelée lorsque le point d'insertion se trouve dans la zone JavaBean ou l'un de ses enfants (composants). FocusEvent, l'objet d'événement JDK standard, est transmis dans la méthode focusGained(). Vous trouverez ci-après un exemple typique de méthode focusGained().

La méthode beanButton1.requestFocus() affecte le point d'insertion au premier composant de la zone JavaBean lorsqu'il se trouve dans cette zone (conteneur). Appelez la méthode mHandler.setProperty() à l'aide de la propriété inscrite FOCUS_EVENT et de l'objet d'événement (e) pour indiquer au serveur que le point d'insertion se trouve dans la zone JavaBean.

    public void focusGained(FocusEvent e)

    {

        if (e.getComponent() == this)

        {

            beanButton1.requestFocus();

        }

        try

        {

            mHandler.setProperty(FOCUS_EVENT, e);

        }

        catch ( Exception ex )

        {

        }

    }

    public void focusLost(FocusEvent e)

    {

    }

Evénements clavier

Les séquences de touches provenant d'éléments d'application Forms et de zone JavaBean d'une applet Forms doivent produire des résultats cohérents. Par défaut, Ctrl+K appelle l'écran d'aide Keys (Touches) lors de l'exécution pour l'élément d'application Forms dans lequel se trouve le point d'insertion. Tab déplace le point d'insertion de l'élément actuel à l'élément suivant. Maj+PageSuivante place le point d'insertion sur le premier élément du bloc suivant. Par défaut, les séquences de touches sur les éléments de zone JavaBean ne produisent pas ces résultats.

Pour maintenir la cohérence du point d'insertion et de la navigation par séquence de touches dans une applet Forms contenant une zone JavaBean, envoyez la plupart des séquences de touches d'une zone JavaBean au serveur à l'aide du KeyListener, de la propriété inscrite KEY_EVENT et de la méthode mHandler.setProperty(KEY_EVENT, e). Le serveur effectue alors l'action appropriée. Par exemple, le fait d'appuyer sur Ctrl+K permet au serveur d'afficher l'écran d'aide Keys (Touches) pour la zone JavaBean qui contient le point d'insertion, et le fait d'appuyer sur Maj+PageSuivante déplace le point d'insertion sur premier élément du bloc suivant.

Dans certaines navigations au clavier dans la zone JavaBean, cependant, il est important de ne pas envoyer certaines séquences de touches (certaines instances de Tab et Maj+Tab) au serveur, en fonction de la position du composant dans la zone JavaBean. La règle générale est d'envoyer au serveur toutes les séquences de touches  retirent le point d'insertion de la zone JavaBean. Par exemple, n’envoyez pas au serveur les séquences de touches Tab et Maj+Tab, qui déplacent le point d'insertion entre les composants d'une même zone JavaBean.

Le fait d'envoyer des séquences de touches Tab et Maj+Tab d'un composant de zone JavaBean au serveur permet à ce dernier de déplacer le point d'insertion de la zone JavaBean respectivement vers l'élément d'application Forms suivant ou précédent. Compte tenu de cela, il y a des situations où les séquences de touches Tab et Maj+Tab doivent être envoyées au serveur : pour le premier composant d'une zone JavaBean, envoyez Maj+Tab au serveur, et pour le dernier composant d'une zone JavaBean, envoyez Tab au serveur.

Il appartient au développeur de programmer les séquences de touches à envoyer et à ne pas envoyer au serveur en ce qui concerne les composants d'une zone JavaBean.

Exemple

Contexte :

Une application Forms contient plusieurs éléments. Une zone JavaBean est l'un de ces éléments, et elle est située parmi d'autres éléments. La zone JavaBean contient quatre boutons de commande.

Objectif :

L'utilisateur doit avoir la possibilité d'appeler des actions standard d'une application Forms, telles que COMMIT et NEXT BLOCK, à l'aide de séquences de touches émanant de la zone JavaBean. Il doit avoir la possibilité d’appuyer sur Tab pour déplacer le point d'insertion vers le bouton de commande suivant de la zone JavaBean, et sur Maj+Tab pour le déplacer vers l'élément précédent de cette zone. Lorsque l'utilisateur appuie sur Tab à partir du dernier bouton de commande de la zone JavaBean, le point d'insertion doit se déplacer vers l'élément suivant de l'application Forms. Lorsque l'utilisateur appuie sur Maj+Tab à partir du premier bouton de commande de la zone JavaBean, le point d'insertion doit se déplacer vers l'élément précédent de l'application Forms.

Comportement par défaut :

Sans la mise en oeuvre de KeyListener et la propriété inscrite KEY_EVENT, et sans appel à la méthode mHandler.setProperty(KEY_EVENT, e) pour les composants de zone JavaBean, aucune séquence de touches n'est envoyée au serveur. Tab et Maj+Tab déplacent le point d'insertion entre les différents composants de la zone JavaBean. Le serveur ne reçoit aucune séquence lorsque les touches sont utilisées pour retirer le point d'insertion de la zone JavaBean (par exemple, Maj+PageSuivante), de sorte que l'élément d'application Forms sur lequel est placé le nouveau point d'insertion apparent peut en fait ne pas avoir le point d'insertion au niveau du serveur. Le fait d'appuyer sur Ctrl+K affiche l'écran d'aide Keys (Touches) pour l'élément que le serveur identifie comme celui ayant le point d'insertionmais cet élément peut être différent de celui qui semble contenir le point d’insertion. La séquence de touches de navigation suivante, par exemple Tab, peut donc produire un résultat autre que celui prévu parce que la navigation démarre à partir de l'élément que le serveur identifie comme celui contenant le point d'insertion. Lorsque les séquences de touches ne sont pas envoyées au serveur, le serveur et le client sont désynchronisés quant à l'identification de l'élément en cours.

Solution :

Mettez en oeuvre KeyListener, utilisez la propriété inscrite KEY_EVENT et appelez la méthode mHandler.setProperty(KEY_EVENT, e) pour envoyer la plupart des séquences de touches au serveur. Choisissez d'envoyer ou de ne pas envoyer au serveur les séquences de touches Tab et Maj+Tab pour chacun des boutons de commande afin de déplacer le point d'insertion comme indiqué dans l'objectif.

Bouton de commande 1 :

Lorsque l'utilisateur appuie sur Tab à partir du dernier élément de l'application Forms avant la zone JavaBean, le point d'insertion se place sur le bouton de commande 1 de cette zone. Lorsque l'utilisateur appuie sur Tab à partir du bouton de commande 1, le point d'insertion se place sur le bouton de commande 2. Il est préférable de ne pas envoyer la séquence de touches Tab au serveur, car cet envoi fait que le serveur déplace le point d'insertion de la zone JavaBean vers l'élément d’application Forms qui suit cette zone.

Lorsque l'utilisateur appuie sur Maj+Tab à partir du bouton de commande 1, le point d'insertion doit se placer sur l'élément d'application Forms précédant la zone JavaBean. Les séquences de touches Maj+Tab doivent être envoyées au serveur, car cet envoi fait que serveur déplace le point d'insertion vers l'élément précédent de l'application Forms. Lorsque les séquences de touches Maj+Tab ne sont pas envoyées au serveur, le serveur et le client sont désynchronisés quant à l'identification de l'élémenten cours.

Boutons de commande 2 et 3 :

Lorsque l'utilisateur appuie sur Tab à partir du bouton de commande 2, le point d'insertion se place sur le bouton 3 et, à nouveau, la séquence de touches ne doit pas être envoyée au serveur. (La même condition s'applique lorsque Tab est utilisé à partir du bouton de commande 3.) Lorsque l'utilisateur appuie sur Maj+Tab à partir du bouton de commande 2, 3 ou 4, le point d'insertion se place sur le bouton de commande précédent de la zone JavaBean. Il est préférable de ne pas envoyer ces séquences de touches au serveur. Lorsque le point d'insertion quitte un composant d’une zone JavaBean et se déplace vers un autre composant de la zone, les séquences de touches Tab et Maj+Tab ne doivent pas être envoyées au serveur.

Bouton de commande 4 :

Lorsque l'utilisateur appuie sur Tab à partir du bouton de commande 4, le dernier de la zone JavaBean, la séquence de touches doit être envoyée au serveur car cet envoi fait que serveur déplace le point d'insertion de la zone JavaBean vers l'élément suivant de l'application Forms. Lorsque l'utilisateur appuie sur Maj+Tab à partir du bouton de commande 4 de la zone JavaBean, le point d'insertion se place sur le bouton de commande 3. Puisque le point d'insertion ne quitte pas la zone JavaBean, les séquences de touches Maj+Tab ne doivent pas être envoyées au serveur.

Récapitulatif

Si le point d'insertion se trouve sur un élément de la zone JavaBean et que l'utilisateur emploie des séquences de touches devant déplacer le point d’insertion en dehors de cette zone, envoyez ces séquences au serveur. Si le point d'insertion se trouve sur un élément de la zone JavaBean et que l'utilisateur emploie des séquences de touches devant placer le point d’insertion sur un autre élément dans la zone JavaBean, n'envoyez pas ces séquences au serveur.

Les séquences de touches envoyées au serveur dépendent de la position de l'élément dans la zone JavaBean.

n	Pour le premier composant d'une zone JavaBean, envoyez au serveur toutes les séquences de touches sauf Tab.

n	Pour le dernier composant d'une zone JavaBean, envoyez au serveur toutes les séquences de touches sauf Maj+Tab.

n	Pour tous les autres composants (sauf le premier et le dernier) d'une zone JavaBean, envoyez au serveur toutes les séquences de touches excepté Tab et Maj+Tab.

Comment utiliser la propriété inscrite KEY_EVENT

Pour envoyer au serveur les séquences de touches nécessaires pour les composants de zone JavaBean d'une applet Forms, le développeur doit d'abord mettre en oeuvre l'interface KeyListener :

0	Conditions de base de  l'utilisation de KeyListener :

n	Une zone JavaBean (classe de conteneur JavaBean) met en oeuvre l'interface KeyListener.

n	Tous les composants de la classe de conteneur JavaBean inscrivent ce conteneur en tant que KeyListener.

Lorsque tous les composants ont inscrit KeyListener dans la zone JavaBean, envoyez au serveur toutes les séquences de touches à l'exception de certaines instances de Tab et/ou Maj+Tab, suivant que ces séquences déplacent ou non le point d'insertion en dehors de la zone JavaBean. Utilisez la méthode keyPressed() de l'interface KeyListener pour filtrer les séquences de touches. Pour celles qui doivent être envoyées au serveur, le développeur doit appeler la méthode mHandler.setProperty() avec la propriété inscrite KEY_EVENT (définie dans VBean) et le KeyEvent de JDK en tant qu'argument.

Exemple de code d'événements clavier

Cette section explique l'utilisation de l'interface KeyListener à l'aide de snippets. Cet exemple contient également des informations sur FocusListener. Le code complet de l'exemple de classe est inclus à la fin de cette section.

Pour utiliser l'interface KeyListener :

Mettez en oeuvre KeyListener. Notez que la classe doit également étendre VBean. Cet exemple de classe est appelé BeanWrapper.

public class BeanWrapper

       extends VBean

       implements FocusListener, KeyListener

{

    // the Handler object passed to our view by Forms

    private IHandler mHandler;

Créez les composants. Cet exemple de zone JavaBean comprend quatre boutons de commande.

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

Initialisez la classe, en mettant en oeuvre le KeyListener pour chaque composant. Notez que addKeyListener est appelé sur chacun des boutons de commande.

    // initialise the class

    public void init(IHandler handler) {

    {

        super.init(handler);

        mHandler = handler;

        add(beanButton1,BorderLayout.NORTH);

        add(beanButton2,BorderLayout.EAST);

        add(beanButton3,BorderLayout.WEST);

        add(beanButton3,BorderLayout.SOUTH);

        addFocusListener(this);

        beanButton1.addFocusListener(this);

        beanButton2.addFocusListener(this);

        beanButton3.addFocusListener(this);

        beanButton4.addFocusListener(this);

        beanButton1.addKeyListener(this);

        beanButton2.addKeyListener(this);

        beanButton3.addKeyListener(this);

        beanButton4.addKeyListener(this);

    }

La méthode keyPressed() est appelée lorsque le point d'insertion se trouve sur l'un des composants de la zone JavaBean. KeyEvent, l'objet d'événement clavier JDK standard, est transmis dans la méthode keyPressed().

Voici un exemple typique de méthode keyPressed() utilisée avec plusieurs composants d'une zone JavaBean.

Les conditions ci-après concernent tous les boutons de commande de la zone JavaBean. Pour le premier composant de cette zone, envoyez au serveur toutes les séquences de touches sauf Tab. Envoyez les séquences de touches Maj+Tab déplaçant le point d'insertion hors de la zone JavaBean et envoyez toutes les autres séquences appelant des actions d'application Forms standard telles que l'affichage de l'écran d'aide Keys (Ctrl+K) et NEXT BLOCK (Maj+PagePrécédente).

La première condition décrit l'événement pour le premier composant de la zone JavaBean, beanButton1. La méthode e.getSource() teste si beanButton1 est activé. La méthode e.getKeyCode() teste si une des touches utilisée est Tab (KeyEvent.VK_TAB). Si la séquence de touches activée dans l'instruction ELSE ne comporte pas Tab, appelez la méthode mHandler.setProperty() à l'aide de la propriété inscrite KEY_EVENT et de l'objet d'événement (e) pour envoyer les séquences de touches au serveur.

Si Maj+Tab est utilisé, appelez la méthode mHandler.setProperty() à l'aide de la propriété inscrite KEY_EVENT et de l'objet d'événement (e) pour envoyer les séquences de touches au serveur.

    public void keyPressed(KeyEvent e)

    {

        if ( e.getSource() == beanButton1 )

        {

            /*

            ** For the first component in the bean area, send all

            ** keystrokes except Tab to the server. Also, send

            ** Shift+Tab to the server.

            */

            if ( (e.getKeyCode() == KeyEvent.VK_TAB) )

            {

                if (e.isShiftDown() )

                {

                    try

                    {

                        mHandler.setProperty(KEY_EVENT, e);

                    }

                    catch ( Exception ex )

                    {

                    }

                }

            }

            else

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

Cettecondition décrit l'événement pour le dernier composant (beanButton4) de la zone JavaBean. La méthode e.getSource() teste si beanButton4 est activé. La méthode e.getKeyCode() teste si la séquence de touches n'est pas Maj+Tab. Si elle ne l'est pas, appelez la méthode mHandler.setProperty() à l'aide de la propriété inscrite KEY_EVENT et de l'objet d'événement (e) pour envoyer la séquence de touches au serveur.

        else if ( e.getSource() == beanButton1 )

        {

            /*

            ** For the last component in the bean area, send all

            ** keystrokes except Shift+Tab to the server.

            */

            if ( !((e.getKeyCode() == KeyEvent.VK_TAB) && (e.isShiftDown())) )

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

Pour les composants restants de la zone JavaBean, qui ne sont ni le premier ni le dernier, envoyez au serveur toutes les séquences de touches sauf Tab et Maj+Tab. Cet exemple de code est destiné aux composants suivants de la zone JavaBean, beanButton2 et beanButton3.

La méthode e.getSource() teste si beanButton2 ou beanButton3 est activé. La méthode e.getKeyCode() teste si la la touche utilisée n'est pas Tab (KeyEvent.VK_TAB). Si elle ne l'est pas, appelez la méthode mHandler.setProperty() à l'aide de la propriété inscrite KEY_EVENT et de l'objet d'événement (e) pour envoyer les séquences de touches au serveur.

        else if ( (e.getSource() == beanButton2) ||

                  (e.getSource() == beanButton3) )

        {

            /*

            ** For all the remaining components in the bean area,

            ** send all keystrokes except Tab and Shift+Tab

            ** to the server.

            */

            if ( !(e.getKeyCode() == KeyEvent.VK_TAB) )

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

}

Evénements clavier pour un composant de la zone JavaBean

Si votre zone JavaBean ne contient qu'un seul composant (par exemple, beanButton1), envoyez toutes ses séquences de touches au serveur. Vous devez mettre en oeuvre KeyListener et utiliser la méthode keyPressed(), mais vous pouvez exécuter la méthode mHandler.setProperty() immédiatement.

L'exemple suivant montre le code de la méthode keyPressed() pour un seul bouton de commande, beanbutton1, dans une zone JavaBean.

public void keyPressed(KeyEvent e)

{

    try

    {

        mHandler.setProperty(KEY_EVENT, e);

    }

    catch ( Exception ex )

    {

    }

}

Exemple de code complet pour les événements point d'insertion et clavier

package oracle.forms.demos;

import oracle.forms.properties.ID;

import oracle.forms.handler.IHandler;

import oracle.forms.ui.CustomEvent;

import oracle.forms.properties.ID;

import oracle.forms.handler.IHandler;

import oracle.forms.ui.VBean;

import oracle.ewt.button.PushButton;

import java.awt.Component;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.awt.BorderLayout;

public class BeanWrapper

       extends VBean

       implements FocusListener, KeyListener

{

    // the Handler object passed to the view by Forms

    private IHandler mHandler;

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

    PushButton beanButton1 = new PushButton("BeanButton1");

    public BeanWrapper()

    {

        super();

    }

    // initialise the class

    public void init(IHandler handler) {

    {

        super.init(handler);

        mHandler = handler;

        add(beanButton1,BorderLayout.NORTH);

        add(beanButton2,BorderLayout.EAST);

        add(beanButton3,BorderLayout.WEST);

        add(beanButton3,BorderLayout.SOUTH);

        addFocusListener(this);

        beanButton1.addFocusListener(this);

        beanButton2.addFocusListener(this);

        beanButton3.addFocusListener(this);

        beanButton4.addFocusListener(this);

        beanButton1.addKeyListener(this);

        beanButton2.addKeyListener(this);

        beanButton3.addKeyListener(this);

        beanButton4.addKeyListener(this);

    }

    public void focusGained(FocusEvent e)

    {

        if (e.getComponent() == this)

        {

            beanButton1.requestFocus();

        }

        try

        {

            mHandler.setProperty(FOCUS_EVENT, e);

        }

        catch ( Exception ex )

        {

        }

    }

    public void focusLost(FocusEvent e)

    {

    }

    /*

    ** If a particular key sequence causes the navigation to stay inside

    ** the bean area i.e. one the components of the bean area loses

    ** focus and the other component of bean area gains focus, then

    ** we do not want to send the keystrokes to the server. Otherwise,

    ** we do want to send the keystrokes to the server.

    **

    ** A key sequence is sent to the server by invoking

    ** mHandler.setProperty(KEY_EVENT, e).

    **

    ** For example, if the focus is on the first component(beanButton1) of

    ** the bean area, and if the user presses Tab, then the focus will be

    ** transferred to the second component(beanButton2) of the bean area.

    ** Since beanButton2 is inside the bean area, we do not want to send the

    ** keystrokes to the server. If instead of Tab the user presses

    ** Shift+Tab, then the focus needs to transferred to the previous form

    ** item, which is outside the bean area. In this case, we need to send

    ** the keystrokes to the server so that the server can determine the

    ** previous form item to which the focus should be transferred.

    **

    ** Similarly, if the focus is on  the last component(beanButton4) of the

    ** bean area, and if the user presses Tab, then the focus needs to be

    ** transferred to the next form item, which is outside the bean area.

    ** In this case, we do want to send the keystrokes to the server so

    ** that it can determine the next form item to which the focus should be

    ** transferred. If instead of Tab the user presses Shift+Tab, then

    ** the focus needs to be transferred to the previous component

    ** (beanButton3) in the bean area. Since beanButton3 is inside the bean

    ** area, we do not need to send the keystrokes to the server.

    **

    ** For other components in the bean area, such as beanButton2 and

    ** beanButton3, we do not want to send Tab and Shift+Tab to the form

    ** server. This is because both of them cause focus to be transferred

    ** to a bean area component. Anything else should be sent to the

    ** server.

    */

    public void keyPressed(KeyEvent e)

    {

        if ( e.getSource() == beanButton1 )

        {

            /*

            ** For the first component in the bean area, send all

            ** keystrokes except Tab to the server. Also, send

            ** Shift+Tab to the server.

            */

            if ( (e.getKeyCode() == KeyEvent.VK_TAB) )

            {

                if (e.isShiftDown() )

                {

                    try

                    {

                        mHandler.setProperty(KEY_EVENT, e);

                    }

                    catch ( Exception ex )

                    {

                    }

                }

            }

            else

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

        else if ( e.getSource() == beanButton1 )

        {

            /*

            ** For the last component in the bean area, send all

            ** keystrokes except Shift+Tab to the server.

            */

            if ( !((e.getKeyCode() == KeyEvent.VK_TAB) && (e.isShiftDown())) )

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

        else if ( (e.getSource() == beanButton2) ||

                  (e.getSource() == beanButton3) )

        {

            /*

            ** For all the remaining components in the bean area,

            ** send all keystrokes except Tab and Shift+Tab

            ** to the server.

            */

            if ( !(e.getKeyCode() == KeyEvent.VK_TAB) )

            {

                try

                {

                    mHandler.setProperty(KEY_EVENT, e);

                }

                catch ( Exception ex )

                {

                }

            }

        }

    }

    public void keyTyped(KeyEvent e)

    {

    }

    public void keyReleased(KeyEvent e)

    {

    }

    public boolean setProperty(ID pid, Object value)

    {

        return super.setProperty(pid,value);

    }

    public String toString()

    {

        return ("BeanArea Wrapper");

    }

}


Utilisation des bibliothèques


A propos des bibliothèques

Une bibliothèque est un ensemble de sous-programmes, comprenant des packages, des fonctions et des procédures nommées par l'utilisateur.

Les bibliothèques permettent de stocker des unités de programme côté client et de les partager entre plusieurs applications.

Lorsque vous créez une bibliothèque, vous pouvez l'attacher à une autre application Forms, à un autre menu ou à un autre module de bibliothèque. Il est alors possible d'appeler les unités de programme de bibliothèque à partir de déclencheurs, de commandes d'élément de menu et de routines, nommées par l'utilisateur, que vous écrivez dans les modules que vous avez attachés à la bibliothèque.

Une même bibliothèque peut être attachée à plusieurs applications Forms et à plusieurs menus. Inversement, une application Forms ou un menu peuvent avoir plusieurs bibliothèques attachées.

Les bibliothèques peuvent également être attachées à d'autres bibliothèques. Lorsqu'une bibliothèque est attachée à une autre bibliothèque, les unités de programme de la première bibliothèque peuvent faire référence aux unités de programme de la bibliothèque attachée.

Les bibliothèques acceptent le chargement dynamique, c'est-à-dire que les unités de programme d'une bibliothèque ne sont chargées dans une application qu'au moment de leur utilisation, ce qui diminue considérablement l'espace en mémoire nécessaire lors de l'exécution d'une application.


A propos des bibliothèques globales

Les bibliothèques globales peuvent être partagées par les applications Forms ouvertes. La mémoire contient une seule copie de la bibliothèque PL/SQL, à laquelle toutes les applications Forms peuvent accéder. Les bibliothèques globales permettent d'économiser de l'espace mémoire, d'améliorer les performances, de simplifier la transmission de structures de données d'une application Forms à l'autre.


A propos des formats de fichier de bibliothèque

.PLL	Le fichier .PLL contient le code source de la bibliothèque et le code p (code exécutable) compilé, propre à la plate-forme. Le fichier .PLL est créé ou mis à jour lorsque vous enregistrez votre module de bibliothèque et, de plus, les modifications sont alors reportées sur chaque module auquel est attachée la bibliothèque.

.PLX	Le fichier .PLX est un exécutable, propre à la plate-forme, qui ne contient pas de code source.

Lorsque vous serez prêt à déployer votre application, vous voudrez probablement générer une version de votre bibliothèque contenant uniquement le code p compilé, sans aucun code source. Vous pouvez générer un fichier .PLX à partir de Form Builder ou à partir de la ligne de commande.

Remarque : Lorsque vous attachez une bibliothèque à un module dans Form Builder, il s'agit de la version .PLL de la bibliothèque. Lors de l'exécution, Form Builder recherche un fichier .PLX portant ce nom dans les chemins de recherche par défaut. S'il ne trouve pas de fichier .PLX, il recherche le fichier .PLL portant ce nom.

.PLD	Le fichier .PLD est un fichier, en format texte, qui peut être utilisé pour le contrôle du source de vos fichiers de bibliothèque.


Création d'une bibliothèque

Pour créer une bibliothèque :

1	Dans le Navigateur d'objet, créez un module Bibliothèque.

Pour créer une bibliothèque, choisissez Fichier [image] Nouveau [image] Bibliothèque.

ou

Sélectionnez le nœud Bibliothèques, puis choisissez Navigateur [image] Créer.

Remarque : Contrairement aux applications Forms et aux menus, vous ne pouvez pas modifier le nom d'un module Bibliothèque en l'éditant dans le Navigateur d'objet. Le nom de bibliothèque est mis à jour automatiquement lorsque vous enregistrez la bibliothèque.

2	Pour créer une unité de programme, développez le nœud Bibliothèque de votre choix, sélectionnez le nœud Unités de programme, puis choisissez Navigateur [image] Créer.

La boîte de dialogue Nouvelle unité de programme s'affiche.

3	Indiquez le nom de l'unité de programme et son type (procédure, fonction, spécifs, package ou corps de package). Choisissez OK.

L'éditeur PL/SQL s'affiche.

4	Dans l'Editeur PL/SQL, définissez votre unité de programme, puis choisissez Compiler pour compiler et appliquer vos modifications. Choisissez Fermer pour quitter l'éditeur.

Remarque : Comme Form Builder ne peut pas exécuter d'unités de programme non compilées lors de l'exécution, vous devez compiler vos unités de programme de bibliothèque lors du développement.

Choisissez Fichier [image] Compiler pour compiler les unités de programme de bibliothèque non compilées, ou choisissez Fichier [image] Compiler tout pour compiler toutes les unités de programme de bibliothèque.

5	Choisissez Fichier [image] Enregistrer pour enregistrer le module Bibliothèque dans un fichier ou dans la base de données.


Attachement d'une bibliothèque à un module

Pour attacher une bibliothèque à un module :

1	Dans le Navigateur d'objet, ouvrez le module Bibliothèque, Menu ou Application Forms de votre choix.

Pour ouvrir un module, choisissez Fichier [image] Ouvrir, puis indiquez le type de module à ouvrir.

Remarque : Lorsque vous attachez une bibliothèque à un module dans Form Builder, il s'agit de la version .PLL de la bibliothèque. Lors de l'exécution, Form Builder recherche un fichier .PLX ayant ce nom dans les chemins de recherche par défaut. S'il n'en trouve pas, il utilise le fichier .PLL portant ce nom.

2	Développez le module, puis sélectionnez le nœud Bibliothèques attachées. Choisissez Navigateur [image] Créer pour attacher une bibliothèque.

3	Indiquez le nom de la bibliothèque à attacher.

Conseil : Vous ne devez pas spécifier de nom de chemin de bibliothèque lorsque vous attachez des bibliothèques. Les noms de chemin des attachements de bibliothèque sont stockés en interne et ne sont donc pas portables. Vous devrez indiquer le nom de la bibliothèque et laisser le chemin standard de recherche de Form Builder localiser votre bibliothèque lors de l'exécution.

Lors de la recherche des bibliothèques attachées, à l'exécution, Forms Builder commence par explorer le répertoire en cours, puis les répertoires énumérés dans les variables d'environnement PATH (FORMSxx_PATH et ORACLE_PATH).

Remarque : Si vous indiquez un chemin d'accès à une bibliothèque, Form Builder vous demande de confirmer ce chemin.

Après confirmation, lors de l'exécution, Form Builder recherche votre bibliothèque en utilisant strictement le chemin de recherche indiqué ; il n'explore pas le chemin de recherche indiqué, et n'exécute pas ensuite la recherche standard.

En l'absence de confirmation, Form Builder supprime le chemin d'accès et enregistre le nom de la bibliothèque. Lors de l'exécution, Form Builder explore le chemin de recherche standard pour localiser votre bibliothèque.

4	Enregistrez le module menu ou application Forms actif pour incorporer l'attachement de bibliothèque dans la définition de module.

Remarque : Les bibliothèques attachées ne peuvent qu'être lues. Vous ne pouvez pas éditer une bibliothèque attachée, mais seulement faire référence aux unités de programme qu'elle contient. Pour éditer un module de bibliothèque, ouvrez-le dans le Navigateur d'objet et utilisez l'éditeur PL/SQL pour éditer les unités de programme.


Edition d'une bibliothèque

Vous ne pouvez pas éditer ou visualiser des unités de programme de bibliothèque à partir du nœud Bibliothèques attachées, dans le Navigateur d'objet. Pour éditer ou visualiser des unités de programme de bibliothèque, vous devez ouvrir le module Bibliothèque lui-même.

Lorsque vous éditez une bibliothèque, vos modifications ne sont reportées dans les modules auxquels la bibliothèque est attachée que lorsque vous enregistrez vos modifications.

Pour modifier une bibliothèque déjà attachée à un module :

1	Dans le Navigateur d'objet, ouvrez le module Bibliothèque, puis ajoutez, éditez ou supprimez des unités de programme de bibliothèque.

2	Enregistrez le module Bibliothèque.

Les modifications sont répercutées dans chaque module auquel la bibliothèque est attachée.


Appel des unités de programme de bibliothèque

Lorsque vous avez créé une bibliothèque et que vous l'avez attachée au module de votre choix, vous pouvez appeler les unités de programme de bibliothèque à partir de ce module en utilisant la syntaxe que vous utiliseriez si les unités de programme étaient définies localement. Par exemple, pour appeler la procédure Enregistrement de couleur en cours, dans une bibliothèque attachée, vous pouvez simplement écrire le nom de la procédure dans votre déclencheur d'application Forms :

enregistrement de couleur en cours;

Pour faire référence au contenu d'un package de bibliothèque, utilisez la notation PL/SQL standard avec point, comme indiqué ci-dessous :

package_name.object

Lorsque Form Builder détecte un appel à une unité de programme, il commence par rechercher cette unité de programme dans le module en cours, puis dans les bibliothèques attachées.

Lorsque vous attachez plusieurs bibliothèque au même module, vos pouvez indiquer l'ordre de recherche de bibliothèque par défaut en classant de façon séquentielle vos attachements de bibliothèque dans le Navigateur d'objet.


Accès aux variables de lien d'application Forms dans les unités de programme de bibliothèque

Comme les modules Bibliothèque sont compilés indépendamment des applications Forms et des menus, les variables de lien des applications Forms (les valeurs des éléments des applications Forms, des variables système et globales et des paramètres) se trouvent toujours à l'extérieur des unités de programme de bibliothèque. Vous ne pouvez donc pas faire directement référence à des variables de lien d'application Forms, dans une unité de programme de bibliothèque. Par exemple, une procédure ou une fonction de bibliothèque, nommée par l'utilisateur, ne peut pas faire référence aux objets suivants :

•	:block_name.item_name

•	:GLOBAL.variable_name

•	:SYSTEM.variable_name

•	:PARAMETER.my_param

Utilisez à la place la fonction du sous-programme NAME_IN pour faire indirectement référence aux valeurs des variables de lien :

•	Name_In('block_name.item_name')

•	Name_In('GLOBAL.variable_name')

•	Name_In('SYSTEM.variable_name')

Utilisez la procédure de sous-programme COPY pour définir indirectement les valeurs des variables de lien :

•	Copy('28876', 'block_name.item_name');

•	Copy('standard', 'GLOBAL.variable_name');

•	Copy('FALSE', 'System.Supress_Working');

Lorsque vous utilisez COPY pour définir la valeur d'un élément d'application Forms dans une routine de bibliothèque, cet élément est marqué CHANGED, ce qui peut affecter les opérations ultérieures de validation et d'enregistrement dans la base de données.

Chaque fois que possible, écrivez des unités de programme de bibliothèque qui utilisent les paramètres IN et IN OUT pour la transmission de données entre le module de menu ou l'application Forms et la bibliothèque. Vous pouvez également utiliser pour cela des valeurs de retour de fonction. Lorsque vous appelez une procédure de bibliothèque qui utilise des paramètres, vous pouvez transmettre des références de variables de lien sous la forme de paramètres réels, comme indiqué ci-dessous :

my_library_procedure(:form_block.form_item,:System.Cursor_Block);


A propos des listes de valeurs (LOV)

Rubriques connexes

Une liste de valeurs (LOV) est une fenêtre instantanée qui offre à l'utilisateur une liste de sélection sur une ou plusieurs colonnes.

Les fonctions offertes par une LOV sont les suivantes :

•	Une LOV peut être affichée à la demande de l'utilisateur (si elle existe) lorsque celui-ci passe à un élément texte auquel est associée une LOV, ou par programme, indépendamment de tout élément texte spécifique.

•	Les fonctions de réduction automatique et de recherche de LOV permettent aux utilisateurs de localiser des valeurs spécifiques.

•	Les valeurs de LOV sélectionnées par l'utilisateur peuvent être attribuées à des éléments d'application Forms en fonction des éléments récepteurs que vous indiquez.

•	Lors de la conception, une LOV peut être attachée à un ou plusieurs éléments texte de l'application Forms.

•	Les valeurs de LOV sont dérivées des groupes d'enregistrements.

Lors de l'exécution, Form Builder affiche l'indicateur <LISTE> sur la ligne d'état lorsqu'une LOV est disponible. Une fois appelée, soit par programme soit à la demande de l'utilisateur, une LOV s'affiche dans une fenêtre modale pour que l'utilisateur puisse sélectionner une valeur.

Une LOV reste affichée jusqu'à ce que l'utilisateur la quitte en sélectionnant une valeur ou en choisissant Annuler.

Les utilisateurs ne peuvent pas utiliser d'autres fenêtres lorsqu'une LOV est affichée. Ils peuvent déplacer et redimensionner des LOV si le gestionnaire de fenêtres d'exécution prend en charge ces fonctions.

Fonctions de réduction automatique et de recherche Les utilisateurs peuvent localiser une valeur dans une liste à l'aide des fonctions de réduction automatique et de recherche de LOV.

Pour utiliser la réduction automatique, il suffit de taper l'entrée voulue directement dans la liste de la fenêtre LOV. Au fur et à mesure de l'entrée des caractères, Form Builder limite la liste aux seules valeurs qui correspondent à la chaîne entrée. En appuyant sur [Suppression arrière] l'utilisateur augmente la liste des choix. La réduction automatique compare la chaîne entrée par l'utilisateur aux valeurs de la première colonne affichée dans la LOV.

Si la LOV à afficher contient une longue liste de valeurs possibles, la fenêtre LOV n'affiche que les titres de colonne (pas les valeurs). Si l'utilisateur entre une chaîne de réduction dans le champ Rechercher et qu'une interrogation soit exécutée sur cette chaîne, les valeurs de LOV résultantes s'affichent sous les titres de colonne. La LOV reprend ensuite son apparence normale et son comportement, et l'utilisateur peut sélectionner une valeur dans la liste ou la réduire davantage en développant la chaîne de réduction.

L'utilisateur peut, à l'aide de la fonction de recherche, localiser une concordance avec une chaîne de texte spécifique et effectuer des recherches de caractères génériques. Pour utiliser cette fonction, il passe au champ Rechercher de la LOV et y entre la chaîne de critères de recherche, puis choisit le bouton Rechercher afin de lancer la recherche. Form Builder limite la liste aux choix dont les valeurs de première colonne correspondent aux critères de recherche de l'utilisateur. Notez que si l'utilisateur fait précéder les critères de recherche du symbole "%", Form Builder fait porter la recherche sur toutes les colonnes de la LOV.

Pour alterner entre la fenêtre de LOV et le champ Rechercher, il suffit d'appuyer sur la touche de tabulation.

Remarque : Les LOV de l'interface de Form Builder ont les mêmes fonctions de réduction automatique et de recherche que les LOV que vous créez pour vos propres applications.


A propos des valeurs de LOV et des groupes d'enregistrements

Les valeurs de LOV sont extraites d'une structure de données interne appelée groupe d'enregistrements. Lorsque vous définissez une LOV, vous l'associez à un groupe d'enregistrements nommés.

Un groupe d'enregistrements se compose de colonnes et de lignes semblables à celles d'une table de bases de données. La LOV est l'objet interface qui permet à l'utilisateur d'afficher, de faire défiler et de sélectionner des enregistrements stockés dans le groupe d'enregistrements sous-jacent de la LOV.

Un groupe d'enregistrements peut avoir un nombre illimité de colonnes de type CHAR, LONG, NUMBER ou DATE, à condition toutefois que le nombre total de colonnes ne dépasse pas 64 Ko.

Lorsque vous créez une LOV, vous indiquez les colonnes du groupe d'enregistrements sous-jacent qui doivent être affichées dans la fenêtre de LOV. Les colonnes d'un groupe d'enregistrements sont toujours affichées, dans la fenêtre de LOV, dans l'ordre dans lequel elles se présentent dans le groupe d'enregistrements.

Comme les LOV et les groupes d'enregistrements sont des objets distincts, vous pouvez créer plusieurs LOV en utilisant le même groupe d'enregistrements. Vous pouvez, par exemple, créer deux LOV fondées sur le même groupe d'enregistrements en quatre colonnes et affichant chacune des colonnes différentes de ce groupe.

Valeurs contenues dans un groupe d'enregistrements  Les valeurs réelles d'un groupe d'enregistrements proviennent de l'une des sources ci-dessous :

•	de l'exécution d'une instruction SELECT que vous avez associée au groupe d'enregistrements lors de la conception (groupe d'enregistrements d'interrogation) ;

•	d'une table de valeurs statiques que vous avez associée au groupe d'enregistrements lors de la conception (groupe d'enregistrements statiques).

Remarque : Par défaut, lorsqu'une LOV est fondée sur un groupe d'enregistrements d'interrogation (c'est-à-dire un groupe d'enregistrements auquel est associé une instruction SELECT), Form Builder exécute l'interrogation chaque fois que la LOV s'affiche et extrait tous les enregistrements qui répondent aux critères d'interrogation du groupe d'enregistrements. Cette fonctionnalité garantit que la LOV affiche toujours les valeurs de base de données en cours.


A propos des éléments récepteurs de LOV

  Rubriques connexes

Lorsque vous créez une LOV, vous indiquez les colonnes du groupe d'enregistrements sous-jacent de la LOV qui doivent y être incluses. Vous pouvez désigner un élément récepteur pour toute colonne que vous incorporez dans la LOV. Lorsque l'utilisateur sélectionne un enregistrement dans la LOV, Form Builder attribue les valeurs des colonnes de l'enregistrement sélectionné aux éléments récepteurs correspondants.

Cette fonction permet aux utilisateurs de remplir un élément texte en sélectionnant des valeurs dans une LOV. En général, l'utilisateur passe à l'élément texte, puis appuie sur [Liste de valeurs] pour appeler une liste d'entrées valide pour cet élément. Lorsque l'utilisateur sélectionne une valeur, Form Builder retourne automatiquement cette valeur dans l'élément texte. L'utilisation d'une LOV permet de gagner du temps de saisie et garantit que la valeur entrée est valide pour cet élément.

Cette fonction permet également de remplir des éléments d'application Forms en utilisant des valeurs de colonnes masquées. Une colonne masquée est une colonne qui fait partie de la structure de la LOV, mais dont les valeurs ne sont pas affichées dans la fenêtre de LOV. (N'oubliez pas que lorsque vous définissez la LOV, vous indiquez les colonnes du groupe d'enregistrements sous-jacent de la LOV qui doivent y être incluses.)

Prenons par exemple une LOV qui affiche des noms de client. La LOV est fondée sur un groupe d'enregistrements d'interrogation qui comprend des colonnes de la table Client, et notamment nom, id, téléphone et contact. A chaque colonne de la LOV correspond un élément récepteur .

L'utilisateur peut appeler la LOV en appuyant sur [Liste de valeurs] à partir de l'élément texte cust_block.name. Lorsque l'utilisateur sélectionne un nom de client dans la LOV, Form Builder retourne toutes les informations sur ce client dans les éléments récepteurs correspondants.


Création d'une liste de valeurs (LOV)

  Etape suivante   [image]  Rubriques connexes

Pour créer une LOV via l'assistant LOV :

1	Dans le Navigateur d'objet, cliquez sur le nœud LOV.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouvelle LOV, choisissez Utiliser l'assistant LOV.

Remarque : Vous pouvez utiliser l'assistant LOV pour créer une LOV à partir d'un groupe d'enregistrements d'interrogation existant ou d'un nouveau groupe (défini lors du processus d'exécution de cet assistant), ou d'un groupe d'enregistrements statique existant. Pour élaborer une LOV à partir d'un nouveau groupe d'enregistrements statique, créez d'abord le groupe, puis exécutez l'assistant LOV pour créer la liste.

Pour créer manuellement une LOV :

1	Dans le Navigateur d'objet, cliquez sur le nœud LOV.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouvelle LOV, choisissez Créer une nouvelle LOV manuellement.

Une LOV, à laquelle un nom générique est attribué, est créée et affichée dans le Navigateur d'objet.

4	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet située en regard de cette nouvelle liste pour afficher la Palette de propriétés.

5	Cette palette permet de définir les propriétés de cette nouvelle LOV.


Modification de l'instruction d'interrogation SELECT pour une LOV existante

  Rubriques connexes

Pour modifier l'instruction d'interrogation SELECT pour une LOV existante :

1	Sélectionnez la LOV dans le Navigateur d'objet.

2	Choisissez Outils [image] Assistant LOV.

3	Cliquez sur l'onglet Groupe d'enregistrements situé dans la partie supérieure de l'assistant.

ou

1	Dans le nœud Groupe d'enregistrements du Navigateur d'objet, cliquez deux fois sur l'icône objet située en regard du groupe d'enregistrements devant servir de base à la LOV pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, modifiez la propriété Interrogation associée au groupe d'enregistrements selon vos besoins.

Remarque : Les modifications apportées à l'interrogation du groupe d'enregistrements risquent d'avoir une incidence sur une autre LOV élaborée à partir de ce groupe d'enregistrements . Si vous exécutez l'assistant LOV, vous pouvez créer automatiquement un groupe d'enregistrements sur la base de l'interrogation modifiée, et générer la LOV à partir de ce nouveau groupe.


Affichage des colonnes associées à une LOV

  Rubriques connexes

Pour visualiser les colonnes associées à une LOV :

1	Sélectionnez la LOV dans le Navigateur d'objet.

2	Choisissez Outils [image] Assistant LOV.

3	Cliquez sur l'onglet Affichage de colonne disponible dans la partie supérieure de l'assistant.

ou

1	Dans le nœud LOV du Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de la LOV souhaitée pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, cliquez deux fois sur la propriété Correspondance de colonne.

La boîte de dialogue de correspondance de colonne de LOV apparaît, et Form Builder affiche le nom des colonnes de LOV dans la liste Noms de colonne de la LOV.


Suppression d'une colonne d'une LOV

  Rubriques connexes

Pour supprimer une colonne d'une LOV :

1	Sélectionnez la LOV dans le Navigateur d'objet.

2	Choisissez Outils [image] Assistant LOV.

3	Cliquez sur l'onglet Colonnes disponible dans la partie supérieure de l'assistant.

4	Les colonne répertoriées dans Colonnes de LOV sont celles qui figurent dans la LOV. Pour supprimer une colonne, sélectionnez-la, puis cliquez sur [image]. Pour supprimer toutes les colonnes, cliquez sur [image].

ou

1	Dans le nœud LOV du Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de la LOV souhaitée pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, cliquez deux fois sur la propriété Correspondance de colonne. La boîte de dialogue de correspondance de colonne de LOV s'affiche.

3	Sélectionnez la colonne à supprimer dans la liste Noms de colonne et appuyez sur [Supprimer élément].


Ajout d'une colonne à une LOV

  Rubriques connexes

Pour ajouter une colonne à une LOV :

1	Sélectionnez la LOV dans le Navigateur d'objet.

2	Choisissez Outils [image] Assistant LOV.

3	Cliquez sur l'onglet Colonnes disponible dans la partie supérieure de l'assistant.

4	Les colonnes répertoriées dans Colonnes du groupe d'enregistrements sont celles qui ne figurent pas dans la LOV. Pour ajouter une colonne, sélectionnez-la, puis cliquez sur [image]. Pour ajouter toutes les colonnes, cliquez sur [image].

ou

1	Dans le nœud LOV du Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de la LOV souhaitée pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, cliquez deux fois sur la propriété Correspondance de colonne. La boîte de dialogue de correspondance de colonne de LOV s'affiche.

3	Dans la liste Noms de colonne, entrez le nom de la colonne de groupe d'enregistrements à ajouter à la LOV.

4	Définissez la propriété Largeur d'affichage sur en utilisant l'unité appropriée (points, pixels, centimètres, pouces ou caractères, comme l'indique la propriété Système de coordonnées de l'application Forms) que vous voulez que Form Builder réserve pour la colonne dans la fenêtre LOV.

Remarque : Par défaut, la propriété Largeur d'affichage est paramétrée sur la largeur de la colonne du groupe d'enregistrements. S'il s'agit d'un groupe d'enregistrements d'interrogation, la largeur correspond par défaut à celle de la colonne de base de données correspondante lors de la création de ce groupe d'enregistrements.

Conseil : Pour augmenter l'espace entre les colonnes dans la fenêtre LOV, définissez Largeur d'affichage à une valeur supérieure à la valeur par défaut de la colonne. Notez cependant une exception à cette règle : vous ne pouvez pas augmenter l'espace prévu entre une colonne de type NUMBER et une colonne d'un autre type en augmentant la largeur d'affichage de la colonne NUMBER, car les LOV affichent les nombres justifiés à droite.

Si, par exemple, votre LOV contient trois colonnes dont les colonnes 1 et 3 sont de type CHAR et la colonne 2 de type NUMBER, vous pouvez, pour augmenter la largeur entre les colonnes, augmenter la largeur d'affichage des colonnes 1 et 3.


Masquage d'une colonne d'une LOV

  Rubriques connexes

Pour masquer une colonne dans une LOV :

1	Sélectionnez la LOV dans le Navigateur d'objet.

2	Choisissez Outils [image] Assistant LOV.

3	Cliquez sur l'onglet Affichage de colonne disponible dans la partie supérieure de l'assistant.

4	Toutes les colonnes de la LOV apparaissent dans la table. Si vous souhaitez masquer une colonne, paramétrez la valeur Largeur sur zéro dans cette table.

ou

1	Dans le nœud LOV du Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de la LOV souhaitée pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, cliquez deux fois sur la propriété Correspondance de colonne. La boîte de dialogue de correspondance de colonne de LOV s'affiche.

3	Sélectionnez la colonne que vous voulez masquer, puis définissez à zéro la propriété Largeur d'affichage. (Notez que les colonnes masquées, comme les colonnes affichées, peuvent néanmoins être attribuées à des éléments récepteurs.)


Création d'un titre de colonne de LOV

  Rubriques connexes

Pour créer un titre de colonne :

1	Sélectionnez la LOV dans le Navigateur d'objet.

2	Choisissez Outils [image] Assistant LOV.

3	Cliquez sur l'onglet Affichage de colonne disponible dans la partie supérieure de l'assistant.

4	Toutes les colonnes de la LOV apparaissent dans la table. Modifiez le titre de la colonne à votre convenance.

ou

1	Dans le nœud LOV du Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de la LOV souhaitée pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, cliquez deux fois sur la propriété Correspondance de colonne. La boîte de dialogue de correspondance de colonne de LOV s'affiche.

3	Sélectionnez la colonne souhaitée dans la liste Noms de colonne, puis entrez le titre dans le champ de propriété Titre de colonne.

Conseil : Lorsque vous créez des titres, tenez compte de la largeur d'affichage de la colonne. Form Builder tronque un titre qui dépasse la largeur d'affichage réservée aux valeurs dans cette colonne. N'oubliez pas que le changement de taille de police du texte de la LOV peut changer le nombre de caractères pouvant tenir dans une largeur d'affichage donnée.


A propos de l'indication des éléments récepteurs de LOV

  Rubriques connexes

Vous pouvez indiquer un élément récepteur pour une colonne de LOV. Lorsqu'un utilisateur sélectionne une option de la LOV, Form Builder attribue la valeur sélectionnée à l'élément récepteur correspondant.

L'élément récepteur peut être un élément de l'application Forms en cours, une variable globale ou un paramètre d'application Forms. Entrez son nom selon la syntaxe appropriée :

Elément :	customer.name
Variable globale	GLOBAL.my_global
Paramètre d'application Forms:	PARAMETER.my_parameter
Ne faites pas précéder le nom de l'objet de deux-points (:).

Remarque : Le type de données de l'élément récepteur doit être compatible avec celui de la valeur retournée.

N'oubliez pas que vous pouvez désigner un élément récepteur pour une colonne masquée (c'est-à-dire une colonne dont la propriété Largeur d'affichage est définie à 0).

Les éléments récepteurs peuvent être indiqués via les propriétés de colonne ou dans l'instruction d'interrogation SELECT d'un groupe d'enregistrements d'une LOV définie à partir d'un groupe d'enregistrements d'interrogation.


Indication d'éléments récepteurs de LOV à l'aide de la propriété Correspondance de colonne

  Rubriques connexes

Pour indiquer un élément récepteur de LOV :

1	Sélectionnez la LOV dans le Navigateur d'objet.

2	Choisissez Outils [image] Assistant LOV.

3	Cliquez sur l'onglet Affichage de colonne disponible dans la partie supérieure de l'assistant.

4	Toutes les colonnes de la LOV apparaissent dans la table. Remplacez la valeur de retour de la colonne par le nom de l'élément récepteur souhaité. Vous pouvez cliquer sur le bouton Rechercher l'élément récepteur afin de rechercher l'élément récepteur correspondant de la colonne.

ou

1	Dans le nœud LOV du Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de la LOV souhaitée pour afficher la Palette de propriétés.

2	Sous le nœud Fonctionnel, cliquez deux fois sur la propriété Correspondance de colonne. La boîte de dialogue de correspondance de colonne de LOV s'affiche.

3	Sélectionnez la colonne souhaitée dans la liste Noms de colonne.

4	Dans le champ Elément récepteur, entrez un nom (élément, variable globale ou paramètre).

Colonne : Si vous ne voulez pas qu'une colonne soit retournée, laissez la propriété Elément récepteur en blanc.


Indication d'éléments récepteurs de LOV dans l'instruction SELECT

  Rubriques connexes

Pour indiquer un élément récepteur dans l'instruction SELECT :

Si vous créez une LOV fondée sur un groupe d'enregistrements d'interrogation, vous pouvez indiquer les éléments récepteurs dans l'instruction SELECT.

Dans la boîte de dialogue Nouvelle LOV, ajoutez à votre instruction SELECT la clause INTO appropriée, puis cliquez sur OK.

Par exemple, si vous voulez que toutes les informations concernant un client soient retournées dans les éléments d'application Forms appropriés chaque fois qu'un utilisateur choisit un nom dans la LOV Client, vous pouvez, lorsque vous créez le groupe d'enregistrements dans la boîte de dialogue Nouvelle LOV, écrire l'instruction SELECT suivante :

SELECT id, nom, contact, téléphone
INTO :id.client, :nom.client :contact.client, :téléphone.client
FROM CLIENT;

Lorsque vous cliquez sur le bouton OK pour créer le groupe d'enregistrements, Form Builder analyse l'instruction SELECT et insère automatiquement les noms des éléments récepteurs dans le champ Elément récepteur.

L'ordre des éléments récepteurs référencés dans la clause INTO doit correspondre à celui des colonnes de la base de données, référencées dans la clause SELECT.

Remarque : La clause INTO établit la relation entre la LOV et les éléments récepteurs, mais est sans effet sur la définition du groupe d'enregistrements résultant. Lorsque vous visualisez le nouveau groupe d'enregistrements dans la Palette de propriétés, vous ne voyez que l'instruction SELECT, sans la clause INTO. C'est la LOV elle-même qui est associée aux éléments récepteurs, et non l'objet groupe d'enregistrements.


A propos de la validation d'éléments texte à l'aide de valeurs de LOV

  Rubriques connexes

Lorsque vous attachez une LOV à un élément texte, vous pouvez définir la propriété facultative Valider à partir de la liste pour que Form Builder valide la valeur de l'élément texte en la comparant aux valeurs de la LOV.

Lorsque la propriété Valider à partir de la liste est définie à Oui, Form Builder compare les valeurs de l'élément texte aux valeurs de la première colonne affichée dans la LOV chaque fois que l'événement de validation se produit.

•	Si la valeur de l'élément texte correspond à l'une des valeurs de la première colonne de la LOV, la validation réussit, la LOV n'est pas affichée et le traitement se poursuit normalement.

•	Si la valeur de l'élément texte ne correspond pas à l'une des valeurs de la première colonne de la LOV, Form Builder affiche  la LOV et utilise la valeur de l'élément texte comme critère de recherche pour réduire automatiquement la liste.

Par exemple, si l'utilisateur entre les trois premiers chiffres d'un code produit à 6 chiffres, puis tente de passer à l'élément suivant, Form Builder affiche la LOV et réduit automatiquement la liste de façon à afficher tous les codes qui ont les trois mêmes premiers chiffres.

•	Si l'utilisateur sélectionne une valeur dans la LOV, Form Builder quitte la LOV et attribue les valeurs sélectionnées aux éléments récepteurs correspondants.

Lorsque vous utilisez une LOV pour validation, Form Builder ajoute toujours à l'élément texte une marque indiquant que l'élément est valide si l'utilisateur effectue une sélection dans cette  LOV. Vous devez donc vous assurer que a) l'élément texte auquel la LOV est attachée est défini comme élément récapitulatif pour la première colonne affichée dans la LOV et que b) les valeurs de la LOV seront effectivement valides.

Remarque : Bien que l'élément comporte en interne une marque indiquant qu'il est valide, le déclencheur When-Validate-Item s'active, s'il existe.

Notez également que la première colonne affichée dans la LOV peut ne pas être la première colonne du groupe d'enregistrements sous-jacent de la LOV, car certaines colonnes de groupe d'enregistrements peuvent être masquées ou ne pas avoir été incluses dans la structure de la LOV.


Utilisation de valeurs de LOV pour valider des éléments texte

  Rubriques connexes

Pour utiliser des valeurs de LOV pour valider un élément texte :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Liste de valeurs (LOV), définissez à Oui la propriété Valider à partir de la liste.


A propos de l'attachement d'une LOV à des éléments texte

  Rubriques connexes

Vous pouvez attacher une LOV à un ou plusieurs éléments texte d'une application Forms. Lorsque l'utilisateur ou l'application passe à un élément texte auquel est attachée une LOV, Form Builder affiche l'indicateur de liste LOV dans la ligne d'état pour indiquer qu'une LOV est disponible. L'utilisateur peut appeler la LOV en appuyant sur Liste de valeurs.

Autre possibilité : si vous définissez à Oui la propriété Affichage automatique de LOV, Form Builder affiche automatiquement la LOV lorsque l'utilisateur passe à l'élément texte.


Attachement d'une LOV à un élément texte lors du développement

  Etape suivante   [image]  Rubriques connexes

Pour attacher une LOV existante à un élément texte :

1	Sélectionnez la LOV dans le Navigateur d'objet.

2	Choisissez Outils [image] Assistant LOV.

3	Cliquez sur l'onglet Eléments disponible dans la partie supérieure de l'assistant.

4	Les éléments répertoriés dans Eléments récepteurs sont ceux auxquels une valeur est renvoyée par la LOV lorsque celle-ci est sélectionnée. Pour attacher la LOV à l'un de ces éléments, sélectionnez ce dernier, puis cliquez sur [image]. Pour attacher la LOV à tous ces éléments, cliquez sur [image].

ou

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément texte souhaité, pour afficher la Palette de propriétés.

2	Sous le nœud Liste de valeurs (LOV), définissez la propriété LOV en entrant le nom de la LOV que vous voulez attacher à l'élément texte.

3	Définissez les coordonnées d'affichage de la LOV en définissant les propriétés Position de liste X et Y.

Conseil : Laissez les coordonnées définies à 00 (valeur par défaut) si vous voulez que Form Builder utilise la position d'affichage par défaut de la LOV. Remplacez les propriétés Position de liste X et Y par toute valeur autre que 00 si vous voulez modifier la position d'affichage par défaut de la LOV.


Attachement d'une LOV par programme à l'exécution

  Rubriques connexes

Vous pouvez attacher par programme une LOV à un élément texte en utilisant la procédure interne SET_ITEM_PROPERTY. L'exemple ci-dessous attache la LOV appelée lov2 à l'élément texte appelé emp.empno :

Set_Item_Property('emp.empno',LOV_NAME,'lov2');

Inversement, pour savoir quelle LOV est attachée à un élément texte, appelez la procédure interne GET_ITEM_PROPERTY :

IF Get_Item_Property('emp.empno',LIST) = 'lov1' THEN
   Set_Item_Property('emp.empno',LIST,'lov2');
END IF;

Pour savoir si une LOV est attachée à un élément texte, vous pouvez appeler la procédure interne GET_ITEM_PROPERTY avec la constante LIST :

IF Get_Item_Property('emp.empno',LIST) = 'TRUE' THEN...


Affichage d'une LOV par programme

Pour afficher une LOV, vous pouvez utiliser deux procédures internes :

•	LIST_VALUES

•	SHOW_LOV

Utilisation de LIST_VALUES pour afficher une LOV  La procédure LIST_VALUES permet d'afficher une LOV si, lors de  l'exécution :

•	l'élément en cours dans l'application Forms est un élément texte ;

•	une LOV est attachée à l'élément texte.

La procédure LIST_VALUES est souvent appelée à partir d'un déclencheur When-New-Item-Instance pour afficher une LOV lorsque l'utilisateur ou l'application passe à un élément texte auquel est attachée une LOV.

La procédure LIST_VALUES peut également être appelée à partir d'un déclencheur Key-LISTVAL. Ce déclencheur est activé lorsqu'un utilisateur appuie sur [Liste de valeurs].  En appelant LIST_VALUES à partir d'un déclencheur Key-LISTVAL, vous pouvez étendre le traitement par défaut de l'application Forms pour la touche [Liste de valeurs].

N'oubliez pas que Form Builder affiche une LOV par défaut lorsque l'utilisateur appuie sur [Liste de valeurs] dans un élément texte auquel est attachée une LOV. Vous pouvez dupliquer cette fonction par défaut en écrivant un déclencheur Key-LISTVAL qui appelle la procédure [LIST_VALUES] :

Déclencheur Key-LISTVAL:

List_Values;

Ce déclencheur, tel qu'il est écrit ci-dessus, est de peu d'intérêt car il ne fait que dupliquer la fonctionnalité par défaut de Form Builder. Cependant, l'utilisation d'un déclencheur Key-LISTVAL vous permet d'ajouter des instructions PL/SQL qui s'exécutent après l'affichage de la LOV, mais avant le retour de Form Builder à la séquence normale des événements.

Dans l'exemple ci-après, une instruction IF est ajoutée au déclencheur précédent.

Déclencheur Key-LISTVAL:

List_Values;
IF :customer.id IS NULL THEN
   Go_Item ('id.client');
END IF;

Dans cet exemple, lorsque l'utilisateur entre l'élément texte et appuie sur [Liste de valeurs], Form Builder affiche la LOV attachée, dans ce cas, une liste de noms de client. Lorsque l'utilisateur a sélectionné un client dans la liste, le déclencheur passe à un autre élément si la valeur de l'un des éléments récepteurs (customer.id) est NULL.

N'oubliez pas que les utilisateurs peuvent sortir d'une LOV sans faire de sélection ; les instructions PL/SQL qui s'exécutent après la procédure LIST_VALUES doivent être écrites en conséquence.

Utilisation de SHOW_LOV pour afficher une LOV  La fonction SHOW_LOV permet d'afficher une LOV donnée aux coordonnées d'affichage indiquées. A la différence de LIST_VALUES, SHOW_LOV ne demande pas que la LOV soit attachée à un élément texte. Par exemple, vous pouvez utiliser SHOW_LOV pour permettre à l'utilisateur d'appeler une LOV en cliquant sur un bouton ou en sélectionnant une option de menu.

La fonction SHOW_LOV est une fonction BOOLEENNE qui retourne TRUE si l'utilisateur effectue une sélection dans la LOV et FALSE si l'utilisateur quitte la LOV sans faire de sélection.

La solution la plus simple pour appeler la fonction SHOW_LOV consiste à attribuer la valeur de retour de SHOW_LOV à une variable fictive, comme dans le déclencheur When-Button-Pressed ci-dessous.

Déclencheur When-Button-Pressed :

DECLARE
   dummy	 BOOLEAN;
BEGIN
   dummy := Show_LOV('ma_lov',15,10);
END;

Les coordonnées d'affichage indiquées dans la liste d'arguments SHOW_LOV (15 et 10) remplacent les coordonnées par défaut de la LOV.

Pour effectuer une opération fondée sur la sélection ou l'annulation de la LOV par l'utilisateur, structurez votre déclencheur de la manière suivante :

Déclencheur When-Button-Pressed :

IF Show_LOV('ma_lov',15,10) THEN
/* L'utilisateur a fait une sélection, et Form Builder a
** retourné les valeurs des colonnes sélectionnées aux éléments
** récepteurs correspondants. Vous devez donc effectuer une opération ici.
*/
Message('Bon choix!');
ELSE
/* L'utilisateur a annulé la LOV sans faire de sélection.
** Vous devez donc effectuer une autre opération ici.
*/
Message('Entrez une valeur.');
END IF;

Dans cet exemple, la fonction SHOW_LOV est utilisée comme condition de test d'un élément IF-THEN-ELSE. Si l'utilisateur choisit une option de la liste, la condition est TRUE, et Form Builder exécute le premier ensemble d'instructions conditionnelles.

Si l'utilisateur annule la LOV sans faire de sélection, la condition est FALSE et Form Builder exécute le second ensemble d'instructions conditionnelles.


Réutilisation d'une LOV

Vous pouvez afficher la même LOV en plusieurs endroits d'une application. Cette technique est intéressante pour les applications qui permettent à l'utilisateur d'accéder aux mêmes informations dans plusieurs contextes.  Par exemple, vous pourriez vouloir que l'utilisateur puisse sélectionner un nom de client dans une LOV lorsqu'il entre une nouvelle commande, ainsi que générer un relevé mensuel de factures.

Pour utiliser une LOV en plusieurs endroits d'une application, vous pouvez attribuer les valeurs de colonne de l'enregistrement sélectionné à différents éléments récepteurs, en fonction du contexte de l'application.

Pour cela, vous pouvez utiliser des variables globales ou des paramètres d'application Forms comme éléments récepteurs avec le sous-programme intégré SHOW_LOV.

Par exemple, vous pourriez définir une LOV fondée sur un groupe d'enregistrements sur 4 colonnes qui retourne une valeur dans 4 variables globales, appelées GLOBAL.un à GLOBAL.quatre.

Lorsque vous écrivez le déclencheur pour afficher la LOV, vous attribuez aussi les valeurs des éléments récepteurs des variables globales aux éléments d'application Forms appropriés au contexte de l'application en cours :

Texte du déclencheur:

IF Show_LOV('lov_générique') THEN
/* L'utilisateur a fait une sélection, et Form Builder a attribué les valeurs
** sélectionnées aux éléments récepteurs des variables globales. Affecter
** maintenant ces valeurs aux éléments appropriés de l'application Forms :
*/
   :block_A.item1 := :GLOBAL.un;
   :block_A.item2 := :GLOBAL.deux;
   :block_A.item3 := :GLOBAL.trois;
   :block_A.item4 := :GLOBAL.quatre;
END IF;


Définition de propriétés de LOV à l'exécution

Pour extraire et définir des propriétés de LOV lors de  l'exécution, vous pouvez utiliser les sous-programmes intégrés suivants :

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

La procédure SET_LOV_PROPERTY permet de définir les propriétés de LOV suivantes :

•	GROUP_NAME

•	Taille

•	Position X, Position Y

En définissant la propriété GROUP_NAME, vous pouvez remplacer le groupe d'enregistrements sous-jacent d'une LOV par un autre.  L'exemple ci-dessous associe un groupe d'enregistrements appelé nouveau_groupe à la LOV appelée ma_lov, en définissant la propriété GROUP_NAME :

Set_LOV_Property('ma_lov',GROUP_NAME,'nouveau_groupe');

Le nouveau groupe d'enregistrements reste associé à la LOV pendant toute la durée de la session, ou jusqu'à ce qu'il soit à nouveau remplacé par un appel à SET_LOV_PROPERTY.

Lorsque vous remplacez un groupe d'enregistrements de LOV par un autre, le nouveau groupe doit :

•	exister dans l'application Forms au moment de l'appel de SET_LOV_PROPERTY ;

•	avoir des noms et des types de colonne qui correspondent aux noms et aux types de colonne du groupe d'enregistrements qu'il remplace.


Utilisation d'une LOV dotée d'une colonne REF

L'exemple suivant indique comment utiliser une LOV dotée d'une colonne REF Oracle8. Cette technique permet d'effectuer des recherches REF en attendant la prise en charge totale des codes PL/SQL

Dans une table objet appelée O_EMP, créez le bloc O_EMP contenant les éléments suivants :

  MGR

  DEPTREF

  EMPNO

  ENAME

  JOB

  SAL

  COMM

  MGR_ENAME

  DEPTREF_DNAME

Créez le groupe d'enregistrements RG via l'interrogation suivante. (Notez que « o » correspond en l'occurrence à l'alias de la table o_emp.)

  select o.ename from o_emp o

Créez le groupe d'enregistrements MGRS via l'interrogation suivante :

  select ref(o) refemp, o.ename from o_emp o

Créez une LOV, également appelée MGRS, à partir du groupe d'enregistrements MGRS. Cette LOV est attachée à l'élément MGR_ENAME.

Créez un déclencheur WHEN-VALIDATE-ITEM attaché à l'élément MGR_ENAME. Ce déclencheur contient le code suivant :

  DECLARE

     mgrref   VARCHAR2(128);
     mgrrec   NUMBER;

  BEGIN

     mgrrec := POPULATE_GROUP('mgrs');
     mgrrec := GET_GROUP_RECORD_NUMBER('mgrs.ename', :o_emp.mgr_ename);

     IF mgrrec <> 0 THEN

          mgrref := GET_GROUP_CHAR_CELL('mgrs.refemp', mgrrec);
          COPY(mgrref, 'o_emp.mgr');

     ELSE

          MESSAGE('Nom du gestionnaire introuvable');
          RAISE FORM_TRIGGER_FAILURE;

     END IF;

  END;

Le code ci-dessus extrait la valeur REF, l'insère dans une variable locale varchar2, puis la copie dans l'élément. Ce code a la même fonction que l'instruction PL/SQL

:o_emp.mgr := get_group_char_cell('mgrs.refemp', mgrref);.


Assistant LOV : page Bienvenue

  Etape suivante	  Rubriques connexes

A propos de l'Assistant LOV

L'Assistant LOV vous permet de créer et de modifier une liste de valeurs (LOV). Une LOV est une fenêtre instantanée contenant une liste de sélection à une ou plusieurs colonnes que vous pouvez faire défiler. Vous pouvez utiliser l'Assistant LOV pour créer une LOV fondée sur un groupe d'enregistrements existant ou sur un nouveau groupe d'enregistrements que vous remplissez à l'aide d'une interrogation SQL.

Assistant LOV en mode invariant

L'Assistant LOV peut fonctionner en mode invariant. Ce mode vous permet d'utiliser l'Assistant LOV pour modifier une LOV existante, même si cette dernière n'a pas été initialement créée à l'aide de l'Assistant Présentation.

Pour appeler l'Assistant LOV en mode invariant, sélectionnez une LOV existante dans le Navigateur d'objet, puis choisissez Outils [image] Assistant LOV. Le mode invariant vous permet de parcourir les pages de l'Assistant à l'aide des onglets situés en haut de la fenêtre.

Navigation dans l'Assistant LOV

L'Assistant LOV comporte six boutons, que vous pouvez utiliser pour passer d'une page à l'autre :

•	Annuler : Permet d'annuler toute modification apportée et de quitter l'Assistant.

•	Aide : Permet d'afficher l'aide en ligne correspondant à la page active de l'Assistant.

•	Précédent : Permet de revenir à la page précédente de l'Assistant.

•	Suivant : Permet de passer à la page suivante de l'Assistant.

•	Appliquer : Permet d'appliquer les modifications effectuées sans quitter l'Assistant (mode invariant uniquement).

•	Fin : Permet d'enregistrer toute modification apportée et de quitter l'Assistant

Si vous utilisez l'Assistant LOV en mode invariant, vous pouvez également naviguer à l'aide des onglets situés en haut des pages. Les boutons fléchés situés à droite des onglets vous permettent d'afficher les onglets non visibles dans la fenêtre de l'Assistant.

Remarque : Si vous cliquez sur Suivant ou sur Précédent avant d'avoir entré toutes les informations requises dans une page donnée de l'Assistant, vous ne pouvez pas changer de page. De même, si vous n'avez pas entré toutes les informations requises lorsque vous cliquez sur Appliquer ou sur Fin, l'Assistant affiche automatiquement la page comportant des données manquantes ou incorrectes.

Afficher cette page ultérieurement

La page Bienvenue de l'Assistant LOV apparaît automatiquement lorsque vous appelez cet Assistant pour la première fois. Si vous ne voulez plus qu'elle soit affichée à l'avenir, désélectionnez la case Afficher cette page ultérieurement. Vous pouvez également modifier ce paramètre via la boîte de dialogue Préférences.


Assistant LOV : page Source de LOV

  Etape suivante 	   Rubriques connexes	  A propos de l'Assistant LOV

Pour indiquer la source de la nouvelle LOV :

1	Pour fonder la nouvelle LOV sur un nouveau groupe d'enregistrements, sélectionnez le bouton d'option Nouveau groupe d'enregistrements fondé sur une interrogation. (Vous indiquez l'interrogation de ce groupe d'enregistrements sur une autre page de l'Assistant.)

Remarque : L'Assistant LOV ne prend pas en charge la création de LOV basées sur de nouveaux groupes d'enregistrements statiques. Vous pouvez cependant fonder votre LOV sur un groupe d'enregistrements statique existant. Reportez-vous au paragraphe ci-dessous.

2	Pour fonder la nouvelle LOV sur un groupe d'enregistrements existant, sélectionnez le bouton d'option Groupe d'enregistrements existant. Sélectionnez le groupe d'enregistrements voulu dans la liste déroulante. Cette liste répertorie les noms de toutes les interrogations et de tous les groupes d'enregistrements statiques disponibles dans l'application Forms.


Assistant LOV : page Groupe d'enregistrements

  Rubriques connexes	  A propos de l'Assistant LOV

Cette page n'apparaît que si vous utilisez l'Assistant LOV en mode invariant afin de modifier une LOV existante fondée sur un groupe d'enregistrements d'interrogation.

Si vous utilisez l'Assistant LOV en mode invariant pour modifier l'interrogation du groupe d'enregistrements sur lequel la LOV est fondée, vous pouvez choisir de modifier le groupe d'enregistrements existant ou d'en créer un nouveau, fondé sur l'interrogation modifiée. Si vous décidez de modifier le groupe d'enregistrements existant, remarquez que toute autre LOV fondée sur ce même groupe est concernée par la modification.


Assistant LOV : page Interrogation SQL

  Etape suivante	  Rubriques connexes	  A propos de l'Assistant LOV

Dans cette page, indiquez l'interrogation SQL à utiliser pour créer le groupe d'enregistrements sur lequel la LOV doit être fondée. Cette page n'apparaît que lors de la création d'une LOV.

Si vous avez sélectionné un groupe d'enregistrements existant dans la page Source de LOV ou que vous utilisez l'Assistant en mode invariant, le champ texte de cette page contient déjà l'interrogation SQL sur laquelle le groupe d'enregistrements sélectionné est fondé.

Pour indiquer ou modifier l'interrogation SQL :

1	Pour entrer directement l'interrogation, saisissez le code SQL approprié dans le champ texte situé au milieu de la page.

2	Pour créer l'interrogation à l'aide de Forms Developer Query Builder, cliquez sur le bouton Générer interrogation SQL.

3	Pour importer une interrogation SQL depuis un fichier, cliquez sur le bouton Importer interrogation SQL.

Pour vérifier la syntaxe de l'interrogation SQL dans le champ texte :

Cliquez sur le bouton Vérifier la syntaxe. (Si vous n'êtes pas encore connecté à la base de données, cette opération ouvre la boîte de dialogue de connexion. Vous devez être connecté à la base de données pour pouvoir vérifier la syntaxe de l'interrogation.)

Pour vous connecter à la base de données :

Cliquez sur le bouton Connecter.

Remarque : Dans la page Source de LOV, si vous décidez de fonder la LOV sur un groupe d'enregistrements statique existant, la page Interrogation SQL n'apparaît pas et vous passez automatiquement à la page des propriétés de colonne.


Assistant LOV : page de choix des colonnes

  Etape suivante	  Rubriques connexes	  A propos de l'Assistant LOV

Les colonnes d'une LOV correspondent à une partie ou à l'ensemble des colonnes du groupe d'enregistrements sur lequel la LOV est fondée. Cette page permet de sélectionner les colonnes à inclure dans la LOV.

Pour sélectionner les colonnes à inclure dans la LOV :

1	Pour ajouter une seule colonne à la LOV :

•	Sélectionnez la colonne dans la liste Colonnes du groupe d'enregistrements.

•	Cliquez sur le bouton [image].

2	Pour inclure toutes les colonnes dans la LOV :

•	Cliquez sur le bouton [image].

3	Pour supprimer une seule colonne de la LOV :

•	Sélectionnez la colonne dans la liste Colonnes de LOV.

•	Cliquez sur le bouton [image].

4	Pour supprimer toutes les colonnes de la LOV :

•	Cliquez sur le bouton [image].


Assistant LOV : page Affichage de colonne

  Etape suivante  	  Rubriques connexes	  A propos de l'Assistant LOV

Cette page permet d'indiquer les propriétés d'affichage des colonnes que vous avez incluses dans la LOV.

Le tableau affiche les noms des colonnes de la LOV et leurs propriétés :

•	Titre  Titre de la colonne LOV. Le titre de colonne par défaut correspond au nom de la colonne du groupe d'enregistrements.

•	Largeur  Largeur d'affichage de la colonne LOV. La largeur de colonne par défaut dépend du type des données et de la largeur de la colonne correspondante du groupe d'enregistrements. Vous pouvez indiquer une largeur de colonne de 0 pour signaler que la colonne doit être incluse dans la LOV de manière invisible.

•	Valeur renvoyée Paramètre (ou variable globale) auquel la valeur de la colonne doit être attribuée. La valeur par défaut est NULL. Cet élément est facultatif.

Le bouton Rechercher l'élément récepteur permet d'afficher la liste de tous les éléments et de tous les paramètres d'une application Forms. Les éléments sont précédés du nom de bloc (nom_bloc.nom_élément) et les paramètres du mot parameter (parameter.nom_paramètre). Sélectionnez une entrée dans cette liste, puis cliquez sur OK pour la copier dans le champ Valeur renvoyée de la colonne sélectionnée.

Pour modifier une propriété de colonne :

1	Sélectionnez le champ approprié dans la table.

2	Entrez la valeur voulue.

Remarque : Vous ne pouvez pas modifier les noms des colonnes de la LOV car ils proviennent du groupe d'enregistrements sur lequel la LOV est fondée.

La case à cocher Dimensionner automatiquement les colonnes permet d'indiquer si les largeurs de colonnes LOV doivent être déterminées automatiquement. (Si la largeur de colonne est définie sur 0, la colonne est toujours masquée, quel que soit le paramétrage de l'option Dimensionner automatiquement les colonnes.) Cette case à cocher permet de définir la propriété Largeur de colonne automatique de la LOV.

•	Si la case Dimensionner automatiquement les colonnes est cochée, Form Builder détermine la largeur de colonne à l'exécution en utilisant la valeur la plus élevée parmi les deux valeurs suivantes :

•	largeur indiquée pour la colonne ;

•	largeur nécessaire à l'affichage complet du titre de la colonne.

•	Si la case Dimensionner automatiquement les colonnes n'est pas cochée, la valeur de colonne indiquée est utilisée, même si le titre de la colonne n'apparaît pas en entier.


Assistant LOV : page Affichage de LOV

  Etape suivante	  Rubriques connexes	  A propos de l'Assistant LOV

Cette page permet de contrôler l'apparence, la taille et l'emplacement de la boîte de dialogue LOV qui apparaît à l'exécution.

•	Titre de la LOV  Titre de la boîte de dialogue LOV.

•	Largeur  Largeur de la boîte de dialogue LOV.

•	Hauteur  Hauteur de la boîte de dialogue LOV.

A l'exécution, Form Builder peut placer automatiquement votre boîte de dialogue LOV près du champ qui l'a appelée. Vous pouvez également indiquer manuellement l'emplacement où elle doit apparaître lorsqu'elle est appelée. Si vous optez pour cette dernière option, vous devez préciser les coordonnées suivantes :

•	Haut  Distance entre le haut de la fenêtre LOV et le haut de la zone d'affichage.

•	Gauche  Distance entre le bord gauche de la fenêtre LOV et le bord gauche de la zone d'affichage.


Assistant LOV : page des options avancées

  Etape suivante 	  Rubriques connexes	  A propos de l'Assistant LOV

Cette page permet de définir les propriétés avancées suivantes. (Si vous ne maîtrisez pas ces propriétés, acceptez les valeurs par défaut affichées.)

•	Taille d'extraction du groupe d'enregistrements  Indique la taille du groupe d'enregistrements à extraire. Plus la taille d'extraction est importante, plus le nombre d'extractions requises pour obtenir le groupe d'enregistrements est faible. Si la LOV est fondée sur un groupe d'enregistrements statique, ce champ est désactivé.

•	Filtrer avant afficher  Si cette case est cochée, aucun enregistrement n'est affiché lorsque vous appelez la LOV pour la première fois lors de l'exécution. L'utilisateur peut entrer une valeur dans le champ Rechercher et appuyer sur le bouton Rechercher ; ainsi, seuls les enregistrements qui répondent aux critères indiqués sont affichés. Si cette case n'est pas cochée, tous les enregistrements sont affichés dans la LOV lorsque vous l'appelez.

•	Régénérer automatiquement la LOV  Si cette case est cochée, les enregistrements affichés dans la LOV sont interrogés chaque fois que la LOV est appelée. Si elle n'est pas cochée, les enregistrements extraits à l'appel initial de la LOV sont mis en mémoire cache et réutilisés lors des appels suivants.


Assistant LOV : page Eléments

  Etape suivante	  Rubriques connexes	  A propos de l'Assistant LOV

Cette page permet d'attacher votre LOV à l'un des éléments récepteurs indiqués dans la page Affichage de colonne de l'Assistant LOV ou à tous ses éléments.

Lorsque l'utilisateur ou l'application navigue vers un élément Texte auquel une LOV est attachée, Form Builder affiche l'icône de LOV (ampoule) sur la ligne d'état afin d'indiquer qu'une LOV est disponible. Les utilisateurs peuvent appeler la LOV en appuyant sur [Liste de valeurs].

Si vous aviez indiqué des éléments récepteurs dans la page Affichage de colonne, ils sont répertoriés dans la colonne « Eléments récepteurs ». Les éléments auxquels la LOV est attribuée sont répertoriés dans la colonne « Eléments attribués ».

Pour attacher la LOV à un élément :

1	Pour attacher la LOV à un seul élément :

•	Sélectionnez l'élément dans la liste Eléments récepteurs.

•	Cliquez sur le bouton [image].

2	Pour attacher la LOV à tous les éléments :

•	Cliquez sur le bouton [image].

3	Pour détacher la LOV d'un seul élément :

•	Sélectionnez la colonne dans la liste Eléments récepteurs.

•	Cliquez sur le bouton [image].

4	Pour détacher la LOV de tous les éléments :

•	Cliquez sur le bouton [image].


Assistant LOV : page Fin

  Rubriques connexes	  A propos de l'Assistant LOV

Et ensuite ?

Lorsque vous cliquez sur Fin, l'Assistant LOV est fermé et votre LOV (et le groupe d'enregistrements associé, le cas échéant) est créée.

Vous pouvez personnaliser davantage l'apparence et le comportement de votre LOV en modifiant ses propriétés dans la Palette de propriétés. Sélectionnez la LOV dans le Navigateur d'objet et choisissez Outils [image] Palette de propriétés. Vous pouvez également modifier la LOV dans l'Assistant LOV en sélectionnant la LOV dans le Navigateur d'objet, puis en choisissant Outils [image] Assistant LOV.


A propos de l'assistant Présentation

  Etape suivante	  Rubriques connexes

A propos de l'assistant Présentation

L'assistant Présentation permet de présenter rapidement et facilement les éléments d'un bloc de données. Pour ce faire, il affiche les éléments dans un cadre sur un canevas, puis les dispose selon le type de présentation choisi.

Utilisez l'assistant Présentation pour effectuer les tâches suivantes :

• sélectionner ou créer un canevas (surface de présentation) destiné à recevoir un cadre et des éléments de bloc de données ;

• sélectionner des éléments de bloc de données à afficher dans la présentation, ainsi que leurs types ;

• définir des invites d'élément, leur largeur et leur hauteur ;

• sélectionner un type de présentation et le titre du cadre contenant votre présentation ;

• indiquer le nombre d'enregistrements dans le cadre et la distance les séparant ;

• afficher une barre de défilement.

Assistant Présentation en mode invariant

La possibilité de fonctionner en mode invariant est l'un des principaux avantages de l'assistant Présentation, c'est-à-dire que vous pouvez l'utiliser pour modifier la présentation d'un cadre, même si ce cadre n'a pas été créé à l'origine avec l'assistant Présentation.

Pour appeler l'assistant Présentation en mode invariant, sélectionnez un cadre dans le Navigateur d'objet (sous le nœud Canevas) ou l'Editeur de présentation, puis choisissez Outils [image] Assistant Présentation.

Navigation dans l'assistant Présentation

L'assistant Présentation comporte six boutons qui vous permettent de vous déplacer dans ses différentes pages :

• Annuler  permet d'annuler toutes les modifications que vous avez apportées (le cas échéant) et de vous faire sortir de l'assistant ;

• Aide  permet d'afficher le texte d'aide en ligne de la page en cours de l'assistant ;

• Précédent  permet de revenir à la page précédente de l'assistant ;

• Suivant  permet de passer à la page suivante de l'assistant ;

• Appliquer  permet d'appliquer les modifications que vous avez apportées sans sortir de l'assistant (assistant en mode invariant uniquement) ;

• Fin  permet d'enregistrer les modifications que vous avez apportées en utilisant l'assistant (le cas échéant) et de quitter l'assistant.

Remarque : Si vous cliquez sur Suivant ou Précédent avant d'avoir entré toutes les informations nécessaires pour une page d'assistant, l'assistant vous empêche de passer à la page suivante (ou de revenir à la page précédente). De même, si vous n'avez pas entré toutes les informations nécessaires dans l'assistant lorsque vous cliquez sur Appliquer ou Fin, l'assistant vous fait automatiquement passer à la page dans laquelle vous pouvez finir d'entrer les données nécessaires.


t Présentation : page Canevas

  Etape suivante 	  A propos de l'assistant

Pour sélectionner un canevas :

1	Sur la page Canevas, sélectionnez un nom de canevas dans la liste instantanée Canevas.

Vous pouvez soit sélectionner un canevas existant, soit en créer un nouveau.

2	Si vous sélectionnez (Nouveau canevas), choisissez un type de canevas dans la liste instantanée Type.

Pour plus d'informations sur les choix disponibles, reportez-vous à A propos des types de canevas

Si vous sélectionnez Onglet dans la liste instantanée Type, vous devez également choisir une page onglet dans la liste instantanée Page onglet.

Remarque : La page Canevas n'est pas disponible dans l'assistant Présentation en mode invariant. Pour transférer un cadre dans un autre canevas, utilisez l'Editeur de présentation pour couper le cadre et le coller sur le nouveau canevas.


t Présentation : page Bloc de données

  Etape suivante	  A propos de l'assistant

Pour afficher dans le cadre des éléments de bloc de données :

1	Dans la page Bloc de données, sélectionnez un bloc dans la liste instantanée Bloc de données.

Remarque : Si vous êtes passé directement de l'assistant Bloc de données à l'assistant Présentation, la liste instantanée Bloc de données est désactivée.

2	Sélectionnez dans la liste Eléments disponibles le ou les éléments de bloc de données à afficher dans le cadre.

3	Pour ajouter un ou plusieurs éléments à la présentation du cadre, sélectionnez ces éléments et :

• Cliquez sur [image] pour transférer le ou les éléments sélectionnés de la liste Eléments disponibles dans la liste Eléments affichés (pour déplacer tous les éléments disponibles, cliquez sur [image]).

ou

• Faites glisser le ou les éléments de la liste Eléments disponibles et déposez-les dans la liste Eléments affichés.

Lorsque vous transférez un élément de la liste Eléments disponibles dans la liste Eléments affichés, l'assistant place l'élément sur le canevas du cadre et active sa propriété Affiché.

4	Pour déplacer un ou plusieurs éléments hors de la liste Eléments disponibles (donc les faire sortir du cadre), sélectionnez ces éléments et :

• Cliquez sur [image] ou [image].

ou

• Faites glisser le ou les éléments de la liste Eléments affichés et déposez-les dans la liste Eléments disponibles.

Lorsque vous transférez un élément de la liste Eléments affichés dans la liste Eléments disponibles, l'assistant supprime l'élément du canevas du cadre et désactive sa propriété Affiché.

5	Chaque fois que vous transférez un élément dans la liste Eléments affichés, utilisez la liste instantanée Type d'élément pour indiquer un type de données.

Remarque : Si l'élément est un groupe de boutons d'option, sélectionnez-le dans la liste Eléments affichés, puis utilisez la liste instantanée Affichage pour changer le point d'insertion de l'assistant (du groupe de boutons d'option lui-même aux boutons d'option composant le groupe), ce qui vous permet de réorganiser les boutons d'option ou de définir l'invite ainsi que la largeur ou la hauteur d'un bouton d'option (sur la page Eléments).


t Présentation : page Eléments

  Etape suivante	  A propos de l'assistant

Pour définir des invites d'élément, leur largeur et leur hauteur :

• Sur la page Eléments indiquez le texte, la largeur et la hauteur de l'invite de chaque élément affiché dans la présentation du cadre.

Une invite est un libellé textuel qui est physiquement attaché à un élément. Si vous actualisez la présentation des éléments de bloc de données dans l'Editeur de présentation, le transfert d'un élément entraîne également le transfert de l'invite.

Remarque : Les unités de largeur et de hauteur d'élément sont affichées en haut de la page Eléments. Pour les modifier, définissez la propriété Système de coordonnées (au niveau Application Forms).


t Présentation : page Style

  Etape suivante	  A propos de l'assistant

Pour sélectionner un style de présentation pour le cadre :

• Dans la page Style, cliquez sur un bouton d'option pour choisir entre les présentations Formulaire et Tabulaire.

Le style de présentation Formulaire convient particulièrement bien aux blocs composés d'un seul enregistrement, alors que le style de présentation Tabulaire convient mieux aux blocs de données qui affichent plusieurs enregistrements.

Remarque : L'Assistant Présentation prend en charge la plupart des options de format. Pour créer une présentation spéciale (par exemple, un tableau orienté horizontalement), sortez de l'Assistant et paramétrez manuellement les propriétés appropriées.


t Présentation : page Lignes

  Etape suivante	  A propos de l'assistant

Pour définir le titre de cadre et les propriétés d'enregistrement :

1	Dans la page Lignes, entrez dans le champ Titre le titre à afficher en haut du cadre.

2	Dans le champ Enregistrements affichés, entrez le nombre d'enregistrements à afficher dans le cadre (par défaut : 1).

Si le style de présentation du cadre est :

•	Application Forms   - commun si le bloc de données est un bloc maître - définissez le nombre d'enregistrements affichés à 1.

•	Tabulaire  - commun si le bloc de données est un bloc détail - ajustez le nombre d'enregistrements affichés de manière à afficher le nombre d'enregistrements détail désiré.

3	Dans le champ Distance entre enregistrements, entrez la distance physique (en unités du système de coordonnées de l'application Forms) pour séparer les enregistrements affichés dans le cadre.

4	Pour afficher une barre de défilement à côté du cadre (lors de la conception et de l'exécution), sélectionnez la case à cocher Afficher barre de défilement. Les barres de défilement sont généralement très utiles pour les blocs multi-enregistrements.


t Présentation : page Fin

  A propos de l'Assistant

Etape suivante

Lorsque vous avez fini de disposer les éléments du bloc de données dans le cadre, vous êtes prêt à quitter l'assistant Présentation et à continuer à travailler sur l'application. Lorsque vous cliquez sur Fin, l'assistant ferme l'assistant Présentation et affiche automatiquement la présentation de votre cadre dans l'Editeur de présentation, qui est l'un des outils de conception de Form Builder.

Conseil : Pour personnaliser davantage l'aspect et les fonctionnalités des cadres dans votre application Forms, vous pouvez définir différentes propriétés de cadre dans la Palette de propriétés. Sélectionnez le cadre dans le Navigateur d'objet (sous le nœud Canevas) et choisissez Outils [image] Palette de propriétés.


A propos des menus

 Rubriques connexes

Les menus sont des listes d'options qui permettent à l'utilisateur de sélectionner des fonctions ou des opérations spécifiques. Chaque option d'un menu représente une commande ou un sous-menu.

Les trois principaux types de menu pris en charge par Form Builder sont les suivants :

•	menus d'application Forms

•	barres d'outils de menu

•	menus instantanés

Menus d'application Forms Un menu d'application Forms comprend généralement des commandes standard de niveau application Forms permettant de naviguer, d'éditer et d'interagir avec la base de données. Chaque application Forms s'exécute avec l'un des menus suivants :

•	valeur par défaut

•	personnalisé

•	aucun

Barres d'outils de menu  Si vous créez un module de menu d'application Forms personnalisé pour votre application Forms, vous pouvez également en extraire une barre d'outils de menu. Une barre d'outils de menu affiche, sous la forme d'icônes, sur une barre horizontale ou verticale, les options de menu sélectionnées dans le menu d'application Forms en cours.

Menus instantanés  Chaque application Forms peut comporter, outre un menu d'application Forms, des menus instantanés, liés au contexte, et qui sont attachés à des options et à des canevas individuels de cette application.


A propos du développement de menus

 Rubriques connexes

Les principaux atouts d'un système de menus sont la simplicité et la facilité d'utilisation. Lorsque vous développez des menus, votre principal objectif doit être d'offrir à l'utilisateur un accès rapide et intuitif aux commandes et aux fonctions couramment utilisées. Pour développer des menus répondant à ces critères, il est conseillé de respecter les règles suivantes :

•	regroupez dans un menu les commandes similaires ;

•	limitez à 10, au maximum, le nombre d'options d'un menu ;

•	créez des sous-menus pour regrouper des options de menu similaires.

Editeur de menu Form Builder offre un outil de développement extrêmement puissant qui permet de créer et de modifier des menus : l'Editeur de menu. Vous pouvez utiliser le Navigateur d'objet et la Palette de propriétés pour créer hiérarchiquement des menus, et l'Editeur de menu si vous préférez voir la structure physique d'un menu au fur et à mesure de son développement. L'Editeur de menu vous permet de créer et d'agencer facilement (et rapidement) des objets de menu.


A propos du menu d'application Forms par défaut

 Rubriques connexes

Le menu d'application Forms par défaut est un composant interne de Form Builder, et non un module Menu distinct (c'est-à-dire que ce n'est pas un fichier exploitable). Form Builder attache automatiquement le menu d'application Forms par défaut à toute nouvelle application Forms que vous créez, à moins d'indication contraire. La seule fois où vous devez attacher explicitement le menu par défaut à une application Forms est lorsque la propriété Module Menu de l'application Forms a été modifiée précédemment.

Le menu d'application Forms par défaut comporte des commandes standard qui correspondent aux touches de fonction Forms Runtime :

Action	Editer	Interrogation	Bloc	Enregistrement	Champ	Aide
Enregistrer*	Couper*	Entrer*	Précédent*	Précédent*	Précédent	Aide*
Effacer tout	Copier*	Exécuter*	Suivant*	Suivant*	Suivant	Touches
Imprimer*	Coller*	Annuler*	Effacer	Défiler vers le haut	Effacer	Afficher erreur
Configuration de l'imprimante*	Editer	Dernier critère		Défiler vers le bas	Dupliquer	Debug
Quitter*	Afficher liste	Compter nbre de lignes extraites		Insérer*
		Ramener ensemble d'enregistrements suivant		Supprimer*
				Verrouiller*
				Dupliquer
				Effacer
A propos de la barre d'outils du menu d'application Forms par défaut

Barre d'outils de menu par défaut Si vous attachez le menu d'application Forms par défaut à une application Forms, Form Builder attache automatiquement la barre d'outils de menu par défaut à cette application. La barre d'outils de menu se compose de boutons icônifiés. Elle est située au début de votre application Forms, sous le menu d'application Forms déroulant. Les boutons sont des "raccourcis" de nombreuses options du menu d'application Forms par défaut. (Ces options, apparaissant dans la barre d'outils de menu par défaut, sont suivies d'un astérisque (*) dans le tableau ci-dessus.)


Rattachement du menu d'application Forms par défaut

Pour attacher le menu d'application Forms par défaut à un module Application Forms :

1	Dans le Navigateur d'objet, cliquez deux fois sur le module Application Forms.

2	Dans la Palette de propriétés, sous le noeud Fonctionnel, définissez la propriété Module Menu à PAR DEFAUT.

Remarque : Pour exécuter une application Forms sans menu d'application Forms, laissez en blanc le champ de propriété Module Menu.


A propos des modules Menu d'application Forms personnalisés

 Rubriques connexes

Si vous voulez créer un module Menu d'application Forms personnalisé pour votre application (au lieu d'utiliser le menu d'application Forms par défaut), vous avez le choix entre :

•	modifier le module Menu menudef.mmb ;

•	créer de toutes pièces un nouveau module Menu d'application Forms.

Si vous créez un type de menu d'application Forms personnalisé pour votre application Forms, vous pouvez également en extraire une barre d'outils de menu. Une barre de menu affiche, sous la forme d'icônes, sur une barre horizontale ou verticale, les options de menu sélectionnées dans le menu d'application Forms en cours.


A propos du module Menu menudef.mmb

 Rubriques connexes

Form Builder est livré avec un module Menu tout prêt (menudef.mmb) qui comporte exactement les mêmes options de menu que le menu d'application Forms par défaut. Comme le module Menu menudef.mmb est une copie fichier du menu d'application Forms par défaut, vous pouvez le modifier comme vous le désirez, sans vous préoccuper d'apporter des modifications permanentes au menu d'application Forms par défaut lui-même. Comme ce menu est un composant interne, et non un fichier, vous pouvez toujours l'utiliser dans son état d'origine.

Si vous modifiez le module Menu menudef.mmb, notez que ses commandes d'options sont mises en oeuvre à l'aide des procédures internes DO_KEY (qui exécutent des déclencheurs sur touches et permettent donc aux utilisateurs d'exécuter des commandes à partir soit du menu soit du clavier). Pour maintenir la cohérence des fonctionnalités, veillez à utiliser les procédures internes DO_KEY lorsque vous ajoutez des commandes d'options de menu au module menudef.mmb.


Modification du module Menu menudef.mmb

 Rubriques connexes

Pour modifier le module Menu menudef.mmb :

1	Dans le Navigateur d'objet, cliquez sur le noeud Menus.

2	Cliquez sur le bouton Ouvrir de la barre d'outils.

3	Dans la boîte de dialogue, sélectionnez menudef.mmb, puis cliquez sur OK.

Conseil : Le module Menu menudef.mmb se trouve dans le répertoire /demos/dfltmenu, comme indiqué dans votre fichier ORACLE.INI ou la base de registre WIN32.

4	Utilisez le Navigateur d'objet ou l'Editeur de menu pour ajouter de nouveaux objets au fichier menudef.mmb (ou pour modifier les objets de menu qu'il contient).

5	Enregistrez et compilez le module Menu modifié et attachez-le à votre module Application Forms.

N'oubliez pas de renommer le module Menu après l'avoir modifié afin de distinguer la version d'origine de la version modifiée.


A propos de la création de toutes pièces d'un module Menu d'application Forms

 Rubriques connexes

Si le menu par défaut ne vous convient pas et si vous ne voulez pas commencer avec le module Menu menudef.mmb et le modifier, vous pouvez créer de toutes pièces votre propre module Menu. Pour créer tous les objets de menu nécessaires, utilisez le Navigateur d'objet, l'Editeur de menu et la Palette de propriétés.

Pour créer un menu d'application Forms, procédez comme suit :

•	Dans le Navigateur d'objet, créez un nouveau module Menu.

•	Utilisez le Navigateur d'objet ou l'Editeur de menu pour créer les objets de menu (un menu principal, des menus et des sous-menus individuels, et des options de menu).

•	Attribuez des commandes aux options de menu.

•	Enregistrez et compilez le module Menu.

•	Attachez le module Menu à un module Application Forms.


Enregistrement et compilation d'un module Menu d'application Forms personnalisé

Pour enregistrer et compiler un module Menu d'application Forms personnalisé :

1	Dans le Navigateur d'objet, sélectionnez le module Menu.

2	Choisissez Fichier [image] Enregistrer ou Fichier [image] Enregistrer sous pour enregistrer le module Menu.

Remarque : Vous pouvez enregistrer les modules Menu .MMB dans le système de fichiers ou dans la base de données.

Attention : Si vous enregistrez une version modifiée du module Menu menudef.mmb, vous aurez intérêt à l'enregistrer sous un nom de fichier différent, pour pouvoir créer ultérieurement d'autres modules Menu d'application Forms (à partir du module menudef.mmb d'origine).

3	Choisissez Fichier [image] Administration [image] Compiler fichier pour compiler le module Menu.

Form Builder crée un fichier menu runtime ayant le suffixe .MMX. (Les exécutables de menu sont stockés dans le système de fichiers, et non dans la base de données.)


Rattachement d'un module Menu d'application Forms personnalisé

 Rubriques connexes

Pour attacher un module Menu d'application Forms personnalisé à un module Application Forms :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet du module Application Forms.

2	Dans la Palette de propriétés, sous le noeud Fonctionnel, définissez la propriété Module Menu au nom du fichier menu runtime (le suffixe .MMX est facultatif).

Remarque : Vous devez avoir au préalable enregistré et compilé le module Menu pour l'attacher à votre module Application Forms.

3	Activez la propriété Menu Source (par défaut).

4	Choisissez Fichier [image] Administration [image] Compiler fichier pour compiler le module Application Forms.

Une fois que vous avez attaché un module Menu à un module Application Forms, Form Builder charge automatiquement le fichier menu .MMX lorsque l'application Forms est exécutée.


A propos du déploiement du module Menu d'application Forms personnalisé

Les modules Menu d'application Forms personnalisés sont distincts des modules Application Forms. Si vous déployez un module Application Forms avec une version modifiée de menudef.mmb ou un menu Application Forms créé de toutes pièces, vous devez donc fournir deux fichiers exécutables :

•	.FMX (module d'application Forms) ;

•	.MMX (module Menu d'application Forms).

Vous devrez parfois, selon l'application, livrer plusieurs fichiers exécutables de module Menu et Application Forms. Plusieurs Applications Forms peuvent partager un même menu, ou chacune peut appeler un menu différent.

Remarque : Lors de l'exécution, une application ne peut avoir qu'un module Menu d'application Forms actif à la fois.


A propos des barres d'outils de menu

 Rubriques connexes

Lorsque vous créez un menu d'application Forms personnalisé, vous pouvez indiquer que certaines de ses options doivent apparaître dans une barre d'outils de menu (c'est-à-dire une barre d'outils de boutons icônifiés qui représentent des options distinctes de votre menu d'application Forms), également appelée Smartbar.

Si vous utilisez un menu d'application Forms personnalisé, vous devez attribuer explicitement des options de menu distinctes à une barre d'outils de menu. Vous devez également fournir des icônes représentant les boutons associés, dans la barre d'outils de menu ; si vous utilisez le menu d'application Forms par défaut, Form Builder attache automatiquement une barre d'outils de menu par défaut à votre application Forms.

Vous pouvez attribuer des options de menu à une barre d'outils de menu horizontale ou verticale. Form Builder place la barre d'outils de menu horizontale en haut d'une application Forms (juste en dessous du menu d'application Forms déroulant), alors que la barre d'outils de menu verticale apparaît à l'extrémité gauche d'une application Forms (à la gauche de tout canevas à barre d'outils existant).


Création d'une barre d'outils de menu

 Rubriques connexes

Pour créer une barre d'outils de menu :

1	Dans le Navigateur d'objet, sélectionnez l'option de menu que vous voulez placer sur une barre d'outils de menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, activez la propriété Visible dans la barre d'outils de menu horizontale ou Visible dans la barre d'outils de menu verticale de l'option (ou les deux).

Remarque : Vous pouvez placer une option de menu à la fois sur une barre d'outils horizontale et verticale.

4	Dans le champ de propriété Nom de fichier d'icône, entrez le chemin complet d'accès au répertoire et le nom de fichier (sans suffixe) de l'icône qui doit représenter le bouton d'option de menu dans la barre d'outils.


A propos des menus instantanés

 Rubriques connexes

Les menus instantanés sont des menus contextuels (attachés aux canevas et aux éléments d'une Application Forms) qui permettent à l'utilisateur d'accéder rapidement à des commandes et à des fonctions communes. Ce sont des objets de niveau supérieur du Navigateur d'objet (semblables aux alertes, aux blocs, aux canevas, etc.) qui appartiennent à un module Application Forms (contrairement aux menus d'application Forms qui appartiennent à un module Menu distinct).

Les options d'un menu instantané doivent correspondre aux objets associés du menu. Par exemple, vous n'inclurez pas d'options d'édition de texte dans le menu instantané correspondant à un élément numérique à 2 chiffres. (Cependant, vous pouvez inclure ces options dans le menu instantané correspondant à un élément de texte multiligne.)

Attachement d'un menu instantané  La relation entre un menu instantané et les éléments/canevas (auxquels il est attaché) est similaire à celle qui existe entre les applications Forms et les menus d'applications Forms :

•	vous pouvez attacher un menu instantané à un ou plusieurs canevas ou options ;

•	chaque canevas ou option peut prendre en charge un menu instantané, et un seul.

Comportement lors de l'exécution L'utilisateur peut afficher un menu instantané en plaçant le point d'insertion sur une option ou un canevas et en appelant le menu conformément aux règles de leur plate-forme d'exécution. (Les utilisateurs de Microsoft Windows et de Motif doivent cliquer sur le bouton droit de la souris, par exemple, alors que les utilisateurs de Macintosh doivent appuyer sur plusieurs touches.) L'angle supérieur gauche du menu apparaît au point d'insertion pour que les utilisateurs puissent localiser et sélectionner facilement et rapidement la bonne option de menu.


Création d'un menu instantané

 Rubriques connexes

Pour créer un menu instantané :

1	Dans le Navigateur d'objet, cliquez sur le noeud Menus instantanés, puis sur le bouton Créer de la barre d'outils.

Form Builder crée un menu instantané et lui donne un nom par défaut, par exemple MENU1.

2	Dans le Navigateur d'objet ou l'Editeur de menu, créez un menu instantané principal, des sous-menus (le cas échéant) et des options de menu.

3	Attribuez des commandes aux options de menu.

4	Attachez le menu instantané aux options et aux canevas.


Rattachement d'un menu instantané à une option ou à un canevas

 Rubriques connexes

Pour attacher un menu instantané à une option ou à un canevas :

1	Dans le Navigateur d'objet, sous le noeud Blocs ou le noeud Canevas, cliquez sur l'icône objet d'une option ou d'un canevas (ou des deux).

Remarque : Vous pouvez attacher un menu instantané à tout type de canevas et d'option, à l'exception des cases à cocher, des boutons d'option, des icônes et de OLE.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, sélectionnez un menu instantané dans la liste instantanée de propriété Menu instantané.

Conseil : Pour attacher simultanément le même menu instantané à plusieurs options et canevas, sélectionnez les options et les canevas avant d'afficher la Palette de propriétés.


A propos des objets de menu

 Rubriques connexes

Pour créer des menus instantanés ou des menus d'application Forms personnalisés, vous devez avoir une bonne connaissance de la création et de la manipulation des objets de menu—qui sont les éléments fondamentaux des menus de Form Builder.

Les objets de menu sont de trois types :

•	modules

•	menus

•	éléments

Chaque module Menu contient un ou plusieurs menus (dont un menu principal, des menus individuels et des sous-menus). Chaque menu contient une ou plusieurs options de menu (dont des commandes associées).

Comme les objets d'application Forms, les objets de menu :

•	respectent un système hiérarchique : par exemple, les modules Menu sont propriétaires de menus, alors que les menus sont propriétaires d'options de menu ;

•	ont des propriétés que vous pouvez manipuler pour définir des fonctionnalités d'exécution. Pour visualiser les propriétés des menus ou des options, sélectionnez un menu ou une option dans le Navigateur d'objet ou l'Editeur de menu, et affichez la Palette de propriétés ;

•	peuvent être déplacés, copiés ou supprimés indépendamment les uns des autres. Notez que si vous déplacez, copiez ou supprimez un menu, vous déplacez, copiez ou supprimez également le ou les sous-menus et le ou les options de menu qui lui sont associées.


A propos des noms et des libellés d'objet

 Rubriques connexes

Pour utiliser des objets de menu, vous devez avoir une bonne connaissance des trois propriétés qui leur sont associées :

•	Nom (propriété de menu).  Nom interne, utile pour faire référence au menu dans le code.

•	Nom (propriété d'élément).  Nom interne, utile pour faire référence à l'option de menu dans le code.

•	Libellé (propriété d'élément).  Libellé externe de l'option de menu, utilisé uniquement dans l'interface graphique.

Noms et libellés par défaut

Lorsque vous créez un nouveau menu (y compris le menu principal, les menus individuels et les sous-menus) ou une nouvelle option de menu, Form Builder crée des noms ou des libellés par défaut pour :

•	Nom de menu (MENU17, par exemple). Form Builder affiche les noms de menu dans le Navigateur d'objet et la Palette de propriétés (propriété Nom).

•	Nom d'option (ITEM8, par exemple). Form Builder affiche les noms d'option de menu dans le Navigateur d'objet et la Palette de propriétés (propriété Nom).

•	Libellé d'option (<New_Item>, par exemple). Form Builder affiche les libellés des options de menu dans l'Editeur de menu et la Palette de propriétés (propriété Libellé).

Vous pouvez utiliser les noms et les libellés par défaut dans votre code PL/SQL et votre interface graphique, ou les modifier en fonction de vos besoins.

Utilisez le Navigateur d'objet ou la Palette de propriétés pour modifier les noms d'option et de menu. Utilisez la Palette de propriétés ou l'Editeur de menu pour modifier les libellés d'option.


Changement de nom d'un objet de menu

 Rubriques connexes

Pour changer le nom d'un menu ou d'une option :

1	Dans le Navigateur d'objet, cliquez sur l'icône objet d'une option ou d'un menu pour le sélectionner.

2	Effectuez l'une des opérations suivantes :

•	Cliquez sur le nom pour passer en mode Edition. Le nom apparaît en vidéo inverse et le curseur prend la forme d'un pointeur en I. Entrez le nouveau nom et appuyez sur [Entrée].

•	Cliquez deux fois sur l'icône objet de l'option pour afficher la Palette de propriétés. Sous le noeud Général, changez la propriété Nom de l'objet de menu.

Form Builder applique le changement de nom dans le Navigateur d'objet et dans la Palette de propriétés.

Remarque : Si Form Builder affiche le message d'erreur

 FRM_15500: Vous devez entrer un nom d'objet unique et valide.

il est possible que vous n'ayez pas respecté les conventions d'appellation PL/SQL, en incluant peut-être un blanc ou un signe de ponctuation non valide.


Changement du libellé d'un objet de menu

 Rubriques connexes

Pour changer le libellé d'une option de menu :

1	Dans le Navigateur d'objet, cliquez sur l'option de menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, définissez la propriété Libellé.

Form Builder applique le changement de libellé dans la Palette de propriétés et dans l'Editeur de menu.

Remarque : Les libellés peuvent contenir plusieurs mots et des signes de ponctuation. Par exemple, "Afficher touches" et "Options..." sont des libellés d'option valides.


Référence aux objets de menu dans le code

 Exemples

Pour faire référence à un objet de menu dans le code PL/SQL, utilisez la syntaxe nom_menu.nom_option, pour :

•	attacher des commandes à des options de menu ;

•	initialiser des options de menu de type case à cocher ou bouton d'option ;

•	changer le code de démarrage du menu ;

•	activer/désactiver dynamiquement des options de menu

Options du menu principal  Les options du menu principal n'appartiennent qu'à lui, et non aux menus individuels qu'il contient. Dans le menu par défaut de l'application Forms, par exemple, QUERY est bien une option de MAIN_MENU mais non de QUERY_MENU (le menu qu'il possède). Les options de QUERY_MENU sont Saisir, Exécuter, Dernier critère, Annuler, Compter nbre enreg et Extraire ensemble suivant.

Pour faire référence à l'option INTERROGATION du menu principal dans le code, utilisez la syntaxe :

  main_menu.query (et non query_menu.query)


Référence aux objets de menu dans le code - Exemple

/* Désaffecter dynamiquement l'option ENTRER du menu INTERROGATION */

SET_MENU_ITEM_PROPERTY(query.enter, enabled, property_false);


Ouverture d'un module Menu existant

Pour ouvrir un module Menu existant :

1	Choisissez Fichier [image] Ouvrir.

Form Builder affiche la boîte de dialogue d'ouverture.

2	Localisez et sélectionnez le module Menu que vous voulez ouvrir.

Remarque : Vous pouvez également indiquer le nom du module Menu dans la ligne de commande lorsque vous lancez Form Builder :

ifbld60 std_menu.mmb

Form Builder ouvre le module Menu et l'affiche dans le Navigateur d'objet.


Création d'un nouveau module Menu

 Rubriques connexes

Pour créer de toutes pièces un nouveau module Menu :

1	Sélectionnez le noeud Menus dans le Navigateur d'objet et cliquez sur le bouton Créer de la barre d'outils.

Form Builder crée un nouveau module Menu dans le Navigateur d'objet et lui donne un nom par défaut, MODULE1 par exemple.

2	Remplacez le nom par défaut par un nom plus significatif.


A propos des menus et des options de menu

 Rubriques connexes

Une fois que vous avez un module Menu actif dans le Navigateur d'objet, vous pouvez créer des menus et des options de menu, notamment :

•	un menu principal (menu de niveau supérieur, affiché par défaut sous la forme d'une barre horizontale) ;

•	des menus et sous-menus individuels (menus de niveau inférieur, affichés par défaut sous la forme de listes verticales d'options) ;

•	options de menu

Vous pouvez utiliser à la fois le Navigateur d'objet et l'Editeur de menu pour créer des menus ainsi que des options. Si vous préférez travailler :

•	en format graphique, utilisez l'Editeur de menu qui permet de voir les liens entre les menus et les options.

•	en format d'organisation hiérarchique, utilisez le Navigateur d'objet.


Création de menus et d'options de menu

 Rubriques connexes

Pour créer des menus et des options de menu dans le Navigateur d'objet :

 Dans le module Menu en cours, sélectionnez le noeud Menus ou le noeud Options, et cliquez sur le bouton Créer de la barre d'outils.

Form Builder crée le menu ou l'option (élément) et lui donne un nom par défaut, MENU5 ou ITEM20, par exemple.


A propos des commandes des options de menu

 Rubriques connexes

Chaque fois que vous créez une option de menu d'application Forms et une option de menu instantané, vous devez définir les propriétés Type d'élément de menu et Type de commande. Ces propriétés de niveau élément de menu déterminent l'aspect et les fonctions de chaque option (élément) de menu.

Les types d'options de menu disponibles sont les suivants :

•	Simple

•	Case à cocher

•	Bouton d'option

•	Séparateur

•	Magique

Le type d'option de menu le plus courant est Simple ; les autres sont utilisés pour pour personnaliser l'apparence et la fonctionnalité d'un menu.

Lorsque vous avez sélectionné un type d'option de menu valide, vous devez indiquer un type de commande valide et (parfois) le texte de commande de l'option.

Les types de commande valides sont les suivants :

•	Null (obligatoire si l'option de menu est un séparateur)

•	Menu (obligatoire si l'option de menu appelle un sous-menu)

•	PL/SQL (par défaut ; obligatoire si l'option de menu exécute des commandes PL/SQL)

•	Plus

•	Application Forms

•	Macro

Remarque : Dans la présente version de Form Builder, les types de commande Form Builder, Plus, Form et Macro ne sont fournis que pour assurer la compatibilité avec les versions précédentes. Ils ne seront plus pris en charge lors de la prochaine révision majeure de Form Builder.


Attribution de commandes aux options de menu

 Exemples	   Rubriques connexes

Pour attribuer une commande à une option de menu :

1	Dans le Navigateur d'objet ou l'Editeur de menu, sélectionnez une option de menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, définissez les propriétés Type d'élément de menu et Type de commande.

4	Cliquez deux fois sur le champ de propriété Texte de commande.

5	Dans l'Editeur PL/SQL, entrez le code pour définir la commande de l'option de menu.

6	Cliquez sur Compiler, puis sur Fermer.


Attribution de commandes aux options de menu - Exemple

/* Créer une option de menu qui affiche un message destiné à
** l'utilisateur :
**
**Créer une option de menu (sur un menu quelconque) et lui donner le nom
** AFFICH_MSG et le libellé "Afficher message ". Dans la Palette
** de propriétés, vérifier que la propriété Type d'élément de menu
** de l'option (élément) est définie à Simple et la propriété
** Type de commande à PL/SQL. Cliquer deux fois dans le champ de propriété
** Texte de commande pour afficher l'Editeur PL/SQL. Entrer le message: */

  MESSAGE('A tout jamais !');


A propos des éléments de menu spéciaux

 Restrictions	  Rubriques connexes

Les éléments de menu spéciaux permettent de personnaliser l'aspect et les fonctions d'un menu. Form Builder prend en charge non seulement les éléments de type Simple (type par défaut), mais aussi des éléments appartenant à quatre autres types :

•	Case à cocher

•	Bouton d'option

•	Séparateur

•	Magique


A propos des éléments de menu spéciaux - Restrictions

•	La disponibilité et l'aspect de chaque élément de menu spécial sont propres à la plate-forme utilisée. Par exemple, si une plate-forme affiche des cases à cocher sous forme de losanges, il n'est pas possible de les afficher sous forme de carrés.

•	N'utilisez pas d'éléments case à cocher ou bouton d'option dans le menu principal (barre de menu) ou les menus instantanés.

•	N'utilisez pas d'éléments séparateurs dans le menu principal.

•	Ne définissez pas les propriétés Raccourci-clavier, Icône ou Message d'aide pour un élément de menu magique.

•	Vous ne pouvez utiliser un élément de menu magique qu'une fois dans un module Menu. Par exemple, vous ne pouvez pas définir l'élément de menu magique Copier sur deux menus différents d'un même module.


A propos des éléments case à cocher et bouton d'option

 Rubriques connexes

Un élément case à cocher est affiché sous la forme d'un indicateur visuel (une boîte, par exemple) qui apparaît coché (pour indiquer qu'il est activé) ou non coché (pour indiquer qu'il est désactivé). Lorsque vous sélectionnez un élément case à cocher lors de l'exécution, il passe à l'état opposé.

Un élément bouton d'option est affiché sous la forme d'un indicateur visuel (un cercle, par exemple) qui apparaît rempli (pour indiquer qu'il est activé) ou vide (pour indiquer qu'il est désactivé). Si vous sélectionnez un élément bouton d'option non sélectionné dans un groupe, vous annulez la sélection de l'élément sélectionné. Un élément bouton d'option doit appartenir à un groupe de boutons d'option de menu de deux ou plusieurs éléments connexes, dont un et un seul doit toujours être activé. Les éléments d'un même groupe doivent être affichés côte à côte sur le même menu.


A propos des commandes des éléments case à cocher et bouton d'option

Les commandes des éléments case à cocher et bouton d'option sont facultatives.

Pour attribuer une commande à un élément case à cocher ou bouton d'option, procédez de la même façon que pour attribuer des commandes à un élément de menu de type Simple. Les commandes sont exécutées par Form Builder lorsque l'état ou la valeur de l'élément sont modifiés :

•	Elément case à cocher : lorsqu'un utilisateur fait passer l'élément à l'état opposé (un élément actif devient inactif et vice versa)

•	Elément bouton d'option : lorsqu'un utilisateur modifie la valeur du groupe de boutons d'option (c'est-à-dire lorsqu'il sélectionne un autre bouton d'option)

Pour créer un élément case à cocher ou bouton d'option qui n'exécute pas de commande, vous devez définir sa propriété Type de commande à Null. Utilisez un Type de commande Null (et un Texte de commande vide) pour un élément case à cocher ou bouton d'option qui permette à l'utilisateur de définir un mode de fonctionnement ou un contexte d'opérations dans l'application. Par exemple, un groupe d'éléments bouton d'option peut permettre à l'utilisateur d'indiquer le niveau de détail qu'il veut voir lorsqu'il interroge les données d'un bloc.


A propos des états des éléments case à cocher et bouton d'option

 Exemples

Lorsqu'un menu est chargé au démarrage d'une application Forms, les états par défaut des éléments de menu case à cocher et bouton d'option sont les suivants :

Type d'élément	Etat par défaut
Case à cocher	Non sélectionné (désactivé)
Bouton d'option (premier du groupe)	Sélectionné (activé)
Boutons d'option (tous les autres du groupe)	Non sélectionné (désactivé)

Vous pouvez utiliser les procédures internes GET_MENU_ITEM_PROPERTY et SET_MENU_ITEM_PROPERTY pour connaître et modifier l'état des éléments case à cocher et bouton d'option.

Lorsque vous utilisez l'une de ces procédures internes, le premier paramètre à indiquer est le nom de l'élément de menu. Utilisez la syntaxe suivante :

  nom_menu.,nom_élément


A propos des états des éléments case à cocher et bouton d'option - Exemple

 /* Définir l'état d'un élément de menu case à cocher à Activer détails : */

  SET_MENU_ITEM_PROPERTY('query.show_dtls',
                          checked,
                          property_on);


A propos des éléments de menu séparateurs

Un élément de menu séparateur est affiché sous la forme d'un trait horizontal (ou de tout autre élément visuel propre à la plate-forme utilisée) et permet de regrouper visuellement les éléments connexes d'un même menu. Par exemple, vous pouvez utiliser un séparateur pour isoler les éléments bouton d'option d'un groupe des autres éléments de menu. Vous devez définir la propriété Type de commande d'un élément séparateur à Null. L'utilisateur ne peut pas sélectionner d'élément de menu séparateur.


A propos des éléments de menu magiques

 Rubriques connexes

Les éléments magiques permettent de créer rapidement des éléments de menu pour des fonctions standard offertes par la plupart des applications graphiques. Les types d'élément magique offerts par Form Builder sont les suivants :

•	A propos de

•	Copier

•	Effacer

•	Couper

•	Coller

•	Aide

•	Quitter

•	Annuler

•	Fenêtre

Remarque : Les éléments de menu magiques A propos de, Aide et Fenêtre ne sont pas pris en charge dans les menus déroulants.


A propos de l'aspect et des fonctions par défaut des éléments magiques

L'aspect (type et position) d'un élément magique est par défaut l'aspect standard de l'interface graphique de la plate-forme d'exécution. Les raccourcis-clavier par défaut sont, le cas échéant, attribués aux éléments magiques.

Certains éléments magiques comportent des fonctions par défaut. Par exemple, l'élément Couper--qui se trouve généralement dans un menu Editer--est automatiquement activé ou désactivé en fonction du type d'élément (texte ou image) sélectionné. L'appel de la commande Couper supprime l'élément sélectionné et le place dans le presse-papiers. Si vous créez un élément magique Couper, Form Builder propose automatiquement une instruction de commande et un raccourci-clavier.

Le tableau ci-après décrit les types de commandes valides pour chaque type d'élément de menu magique et indique si l'élément offre une fonction par défaut ou si vous devez définir votre propre commande.

Elément magique	Type de commande	Valeur par défaut	Fonctionnalité?
A propos de, Annuler	Tout type, sauf Menu	Non	Vous devez attribuer une commande qui exécutera la fonction voulue.
Effacer, Copier, Couper, Coller	Null	Oui	Ces éléments exécutent les opérations par défaut indiquées par leur nom.
Aide	Menu	Non	Vous devez définir le sous-menu devant être appelé par l'élément Aide et attribuer des commandes aux éléments de ce sous-menu.
Quitter	Null	Oui	L'élément Quitter demande à l'utilisateur d'enregistrer les modifications (le cas échéant) et le fait sortir de l'application Forms.
Fenêtre	Null ou Menu	Oui	L'élément Fenêtre appelle un sous-menu par défaut établissant la liste de toutes les fenêtres ouvertes. L'utilisateur peut activer une fenêtre en la sélectionnant dans le sous-menu. Si vous définissez votre propre sous-menu pour qu'il soit appelé par l'élément Fenêtre, Form Builder combine ses éléments à la liste des fenêtres ouvertes et crée un seul sous-menu. L'ordre des éléments du sous-menu combiné est sans importance.

Remarque : Si vous remplacez la propriété Type d'élément Menu d'un élément magique existant par Simple, sa propriété Type d'élément Magique est conservée, mais n'est plus utilisée. Pour des raisons de cohérence, il est conseillé de sélectionner à nouveau la propriété Type d'élément Magique à Aucune, mais ce choix n'est pas obligatoire.


Création d'éléments de menu spéciaux

 Rubriques connexes

Pour créer un élément de menu spécial :

1	Ajoutez un nouvel élément à un menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, changez la propriété Type d'élément Menu de Simple (par défaut) en Case à cocher, Bouton d'option, Séparateur ou Magique.

Si vous créez :

•	un élément bouton d'option, vous devez l'attribuer à un groupe de boutons d'option. Sélectionnez l'élément dans le Navigateur d'objet et entrez le nom correct dans le champ de propriété Groupe de boutons associé à élément de menu. (Les noms de groupes de boutons d'option sont internes et ne sont pas affichés lors de l'exécution.)

•	un élément magique, sélectionnez également un type d'élément dans la liste instantanée de propriétés Elément magique.

4	Définissez la propriété Type de commande de l'élément.

5	Si nécessaire, entrez le Texte de commande de l'élément.


Affichage d'icônes dans des éléments de menu

Pour afficher une icône dans un élément de menu :

1	Dans le Navigateur d'objet ou l'Editeur de menu, sélectionnez un élément de menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, entrez le nom du fichier de ressources d'icône dans le champ de propriété Nom de fichier d'icône.

Si Form Builder trouve le fichier d'icône, il affiche l'icône à la place du libellé de l'élément, dans l'Editeur de menu. Sinon, la référence à l'icône n'est pas prise en compte et Form Builder affiche à la place le libellé de l'élément.

Remarque : Vous pouvez afficher des icônes comme des éléments de menu dans des menus déroulants, mais uniquement si votre plate-forme d'exécution prend en charge cette fonction. Pour plus d'informations, reportez-vous à la documentation Form Builder de votre système d'exploitation.


Définition des touches d'accès de menu

Les touches d'accès de menu constituent des raccourcis-clavier qui permettent à l'utilisateur de sélectionner des éléments de menu (sans utiliser la souris). Les applications comportant des raccourcis-clavier offrent à la fois la facilité d'emploi d'une interface pilotée par menus et l'efficacité des commandes clavier.

Une touche d'accès de menu est représentée par un caractère spécial dans le libellé d'un élément de menu. Par exemple, la lettre E peut être la touche d'accès de l'élément de menu Enregistrer, et donc apparaître soulignée lors de l'exécution. Pour appeler la commande Enregistrer, l'utilisateur peut soit utiliser la souris soit appuyer sur une combinaison de touches comme Alt-E. (Les interfaces graphiques n'utilisent pas toutes les mêmes touches de commande pour activer les mnémoniques des menus.) En mode caractère, l'utilisateur appuie sur [Menu] pour accéder au menu, puis sur les touches d'accès de menu pour sélectionner des éléments.

Touche d'accès de menu par défaut Par défaut, la touche d'accès à un élément de menu est la première lettre majuscule du libellé de l'élément. Si l'élément ne comporte pas de lettre en majuscule, la touche d'accès du menu est le premier caractère. Par exemple, la lettre "i" est la touche d'accès de menu par défaut des éléments de menu suivants :

  imprimer   supprImer

Touches d'accès de menu définies par l'utilisateur Vous pouvez remplacer la touche d'accès de menu par défaut--et créer explicitement la vôtre--en entrant une perluète (&) à gauche du caractère choisi dans le libellé de l'élément de menu :

  &Imprimer     supprime&r

La perluète n'apparaît pas lors de l'exécution, et le caractère choisi comme touche d'accès de menu peut être soit en majuscule soit en minuscule.

  Arrêter     Enregistrer

Remarque : Pour inclure un littéral "&" dans un libellé d'élément de menu, entrez deux perluètes consécutives (&&).


Attribution de raccourcis-clavier à des éléments de menu

 Rubriques connexes

Un raccourci-clavier est une touche ou une séquence de touches de fonction que l'utilisateur peut utiliser pour exécuter la commande de l'élément de menu correspondante. Form Builder offre cinq touches de raccourci logique, [Raccourci1] à [Raccourci5], que vous pouvez attribuer aux éléments de menu de chaque application Forms.

Pour attribuer un raccourci-clavier à un élément de menu :

1	Dans le Navigateur d'objet ou l'Editeur de menu, sélectionnez un élément de menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, entrez le nom de la touche de raccourci logique que vous voulez attribuer à l'élément dans le champ de propriété Raccourci-clavier. Par exemple, entrez Accelerator1.

4	Dans Oracle Terminal, associez la touche de raccourci logique à une touche ou une séquence de touches d'unité physique, comme Ctrl-P.


A propos des menus d'application Forms déroulants

 Rubriques connexes

Un menu déroulant standard se compose de trois niveaux :

Niveau	Affichage	Fonction
Principal	Horizontal	Les éléments affichent des menus individuels. Les éléments d'un menu principal sont des titres ; ils n'exécutent pas de commandes.
Individuel	Vertical	Les éléments exécutent des commandes ou appellent des sous-menus.
Sous-menu	Vertical, à droite de l'élément de menu	Les éléments offrent des options supplémentaires concernant un élément d'un menu individuel.

Remarque : Vous pouvez créer plusieurs niveaux d'imbrications de sous-menus, mais cette solution n'est pas conseillée car elle ralentit l'accès aux éléments des sous-menus. Pour améliorer au maximum leur utilisation, vous aurez intérêt à limiter les sous-menus à un seul niveau. En outre, les spécialistes en utilisation conseillent de limiter à neuf le nombre d'éléments d'un menu.


Exécution d'un menu d'application Forms en mode déroulant

Pour exécuter un menu d'application Forms en mode déroulant :

1	Dans le Navigateur d'objet, sélectionnez le module Application Forms.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, définissez la propriété Type de menu à Déroulant.


A propos des menus détachables

Un menu détachable est un menu que l'utilisateur peut faire glisser pour le séparer de la barre de menu et le repositionner ailleurs sur l'écran. Vous pouvez activer la fonction correspondante pour le menu de votre choix, à condition que le gestionnaire de fenêtres prenne en charge cette fonction.

Pour créer un menu détachable :

1	Dans le Navigateur d'objet ou l'Editeur de menu, sélectionnez un menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, définissez la propriété Menu détachable à Oui.


Lecture et définition par programme de propriétés de menu

Pour rechercher des éléments de menu, et lire et définir des propriétés de menu par programme, Form Builder offre les sous-programmes intégrés suivants :

•	FIND_MENU_ITEM

•	GET_MENU_ITEM_PROPERTY

• SET_MENU_ITEM_PROPERTY


Affichage et masquage de menus par programme

 Rubriques connexes

Dans une application comportant plusieurs applications Forms, plusieurs modules Applications Forms peuvent partager le même menu, ou chacun d'entre eux peut appeler un menu différent lorsqu'il devient l'application Forms active de la session. Lorsque l'application Forms A exécute la procédure interne CALL_FORM pour appeler l'application Forms B, les arguments de la procédure CALL_FORM indiquent si l'application Forms B doit hériter le menu de l'application Forms A ou afficher son propre menu.

Lors de l'exécution, cependant, une application ne peut avoir qu'un module Menu d'application Forms actif à la fois. Pour gérer le problème posé par la multiplicité de modules Menu d'application Forms, Form Builder offre un certain nombre de routines internes qui vous permettent d'afficher, de masquer et de remplacer le menu actif d'une application Form Builder. Ces routines sont les suivantes :

HIDE_MENU	Masque le menu en cours.
REDISPLAY_MENU	Réaffiche le menu en cours.
REPLACE_MENU	Remplace le menu en cours par un autre ou par un blanc.
SHOW_MENU	Affiche le menu en cours.


A propos du code PL/SQL dans les modules Menu

 Rubriques connexes

Pour contrôler et manipuler par programme les menus lors de l'exécution, vous pouvez utiliser le PL/SQL dans les éléments suivants :

•	commandes d'élément de menu

•	sous-programmes nommés par l'utilisateur

•	code de démarrage


A propos de l'utilisation du code PL/SQL dans les commandes d'élément de menu

 Rubriques connexes

Sur le plan structurel, les commandes d'élément de menu PL/SQL sont semblables à des déclencheurs d'application Forms. Outre les fonctions d'application standard (navigation, validation et interaction avec la base de données, par exemple), vous pouvez utiliser des commandes d'élément de menu PL/SQL pour :

•	appeler une application Forms au cours de la même session, en utilisant les procédures internes OPEN_FORM, CALL_FORM ou NEW_FORM.

•	exécuter des commandes du système d'exploitation en utilisant la routine intégrée HOST. Les paramètres de cette routine indiquent la commande du système d'exploitation à exécuter, si Form Builder doit supprimer de l'écran l'application Forms en cours et si Form Builder doit attendre que l'utilisateur lui envoie un message avant de revenir à l'application Forms en cours, ou s'il y revient automatiquement après exécution de la commande.

•	appeler d'autres outils Oracle (comme Form Builder Forms Runtime, Report Builder (inclus dans Reports Developer) ou Graphics Builder) en utilisant procédure interne RUN_PRODUCT, qui assure l'intégration de Form Builder et des autres outils Oracle en vous permettant de passer des paramètres et des valeurs de données à l'outil appelé.

•	appeler la procédure interne DO_KEY, qui exécute le déclencheur sur touche correspondant à la routine intégrée indiquée. Si ce déclencheur n'existe pas, la routine indiquée s'exécute. Ce comportement est semblable à l'action sur la touche de fonction correspondante.

•	utiliser la procédure interne EXECUTE_TRIGGER, qui vous permet de faire directement référence aux valeurs des éléments d'application Forms. Comme une référence directe à partir de l'élément de menu lui-même n'est pas autorisée, vous devez écrire une routine nommée par l'utilisateur ou un bloc anonyme qui utilise une référence directe, les placer dans un déclencheur nommé par l'utilisateur, puis appeler ce déclencheur à l'aide de EXECUTE_TRIGGER.


Référence à des objets d'application Forms dans des commandes d'élément de menu PL/SQL

Les menus d'application Forms sont des modules réutilisables que vous compilez séparément des applications Forms. Pour faire référence à des objets d'application Forms dans des commandes d'élément de menu PL/SQL, vous devez donc écrire un code différent de celui qui vous permettrait de faire référence au même objet dans un déclencheur ou une routine nommée par l'utilisateur, dans une application Forms. Les restrictions applicables sont les suivantes :

•	Vous ne pouvez pas faire directement référence à la valeur d'un objet Form Builder. Utilisez pour cela la fonction interne NAME_IN pour déterminer la valeur en cours de l'objet.

 IF :titre.emp = 'DIRECTEUR'            -- erroné

 IF NAME_IN('titre.emp') = 'DIRECTEUR'  -- correct

Remarque : La valeur retournée par la fonction NAME_IN est une chaîne de caractères. Cependant, vous pouvez aussi utiliser NAME_IN pour retourner des valeurs numériques et des dates sous la forme de chaînes de caractères, puis convertir ces chaînes en types de données appropriées.

•	Vous ne pouvez pas utiliser une affectation directe pour définir la valeur d'un objet Form Builder. Utilisez de préférence la procédure interne COPY.

 :nom.produit := 'POMPE';        -- erroné

 COPY('POMPE', 'nom.produit');   -- correct


Ecriture de sous-programmes nommés par l'utilisateur

  Rubriques connexes

Vous pouvez utiliser l'Editeur PL/SQL pour créer des sous-programmes (routines) nommés par l'utilisateur dans un module Menu, comme vous le feriez dans un module Application Forms. Un sous-programme nommé par l'utilisateur peut être appelé à partir de n'importe quel élément de menu (ayant pour type de commande PL/SQL) à condition que l'élément et le sous-programme appartiennent au même module Menu.


A propos du code de démarrage de menu

 Rubriques connexes

Form Builder exécute le code de démarrage de menu lorsqu'un menu est chargé en mémoire lors du démarrage d'une application Forms, ou à la suite d'un appel aux procédures internes CALL_FORM, NEW_FORM ou REPLACE_MENU. Le code de démarrage, facultatif, peut être utilisé pour exécuter les tâches suivantes :

•	Initialisation de paramètres de substitution et de variables globales.

•	Définition par programme de l'état initial d'affichage des éléments de menu : par exemple, pour activer ou désactiver un élément de menu.

•	Définition par programme de l'état initial de sélection des éléments de menu case à cocher et bouton d'option.


Ecriture d'un code de démarrage de menu

Pour écrire un code de démarrage d'un menu :

1	Dans le Navigateur d'objet, sélectionnez un module Menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Fonctionnel, cliquez deux fois dans le champ de propriété Code de démarrage.

4	Dans l'Editeur PL/SQL, entrez le code PL/SQL que Form Builder devra exécuter au moment du démarrage du menu.

5	Cliquez sur Compiler, puis sur Fermer.

Remarque : Le code de démarrage peut comprendre des blocs anonymes et des appels à des sous-programmes intégrés. Cependant, comme il y a des restrictions concernant l'écriture de code PL/SQL pour les commandes d'élément de menu, vous ne pouvez pas faire directement référence aux valeurs des objets d'application Forms dans le code de démarrage.


A propos des paramètres de substitution

 Rubriques connexes

Les paramètres de substitution sont des variables de deux lettres (comme RN ou PQ) auxquelles vous pouvez faire référence dans des instructions de commande d'élément de menu. Form Builder comporte six paramètres de substitution intégrés, mais vous pouvez également en définir vous-même.

Vous pouvez définir par programme la valeur d'un paramètre de substitution, ou demander à l'utilisateur de fournir de manière interactive une valeur lors de l'exécution. Lorsqu'un utilisateur sélectionne un élément avec une commande comprenant un paramètre de substitution, Form Builder affiche la boîte de dialogue Valeurs de paramètre et demande à l'utilisateur d'entrer une valeur. Form Builder exécute alors la commande du menu en utilisant la valeur fournie par l'utilisateur.


Paramètres de substitution intégrés

La valeur d'un paramètre de substitution intégré est prédéfinie et toujours initialisée par Form Builder lors de l'exécution. Par exemple, la valeur du paramètre intégré UN est le nom de l'utilisateur en cours. Form Builder ne demande donc jamais à l'utilisateur la valeur de UN.

Paramètre	Description
UN	Nom utilisateur en cours.
PW	Mot de passe en cours.
AD	Répertoire dans lequel est stocké le fichier runtime de menu en cours (indiqué par les propriétés Répertoire de menu et Nom de fichier de menu du module Menu).
SO	Elément de menu en cours (Option Sélectionné).
TT	Type de terminal utilisé pour la connexion.
LN	Option de langue en cours, indiquée par la variable d'environnement NLS_LANG.


Création de paramètres de substitution

Pour définir un paramètre de substitution nommé par l'utilisateur :

1	Dans le Navigateur d'objet, sous le noeud Modules Menu, sélectionnez Paramètre et cliquez sur l'icône Créer dans la barre d'outils.

Form Builder crée un nouveau paramètre.

2	Editez le nom du nouveau paramètre.

Les noms de paramètre doivent se composer de deux caractères alphabétiques.

3	Choisissez Outils [image] Palette de propriétés.

4	Dans la Palette de propriétés, définissez les propriétés du paramètre.


Propriétés des paramètres de substitution

Pour définir des paramètres de substitution, définissez les propriétés suivantes :

Propriété	Description
Respecter maj/min	Convertit la valeur fournie par l'utilisateur dans la casse spécifiée (aucune, Majuscule ou Minuscule).
Valeur par défaut	Affichée dans le champ de valeur de paramètre lorsque la boîte de dialogue d'invite s'affiche.
Longueur fixe	Indique que la valeur entrée par l'utilisateur doit avoir le nombre maximum de caractères autorisé par la propriété Taille.
Message d'aide	Texte d'instruction ou de description qui s'affiche dans la ligne de message lorsque la boîte de dialogue d'invite apparaît.
Nom	Nom du paramètre (obligatoirement deux caractères).
Menus associés au paramètre	(Applicable uniquement aux menus plein écran.) Noms des menus auxquels vous voulez que le paramètre soit associé.
Invite	Chaîne de texte qui définit le champ de valeur de paramètre dans la boîte de dialogue Valeurs de paramètre (par exemple, Nom d'état ou ID client).
Obligatoire	Indique si l'utilisateur doit fournir une valeur pour le paramètre. Non permet à l'utilisateur de conserver la valeur de paramètre Null.
Sécuriser	Détermine si la valeur fournie par l'utilisateur est renvoyée en écho à l'écran lorsqu'elle est entrée. Oui permet de masquer une valeur de paramètre lorsqu'elle est entrée.
Taille	Indique le nombre maximum de caractères de la valeur du paramètre.


Référence aux paramètres de substitution dans le code

 Exemples

Selon l'endroit où vous faites référence à un paramètre de substitution, vous devez attacher le préfixe correct à la gauche du paramètre. Pour utiliser un paramètre de substitution dans :

•	des instructions de commandes d'élément de menu, utilisez une perluète (&RN),

•	des routines PL/SQL, utilisez deux-points (:SS).

Vous pouvez faire référence aux valeurs des paramètres de substitution de menus dans des déclencheurs et des routines nommées par l'utilisateur, définies dans l'application Forms en cours, à condition que les paramètres soient définis dans le module Menu en cours.

Form Builder n'affiche pas automatiquement la boîte de dialogue Valeurs de paramètre lorsque vous faites référence à un paramètre de substitution dans une commande d'élément de menu de type PL/SQL. Au lieu de cela, vous devez appeler explicitement la boîte de dialogue en faisant appel à la procédure interne QUERY_PARAMETER.

Remarque : Lorsque vous appelez la procédure interne QUERY_PARAMETER, vous devez faire précéder et suivre la référence de paramètre d'apostrophes. En outre, vous pouvez obtenir un nombre quelconque de valeurs de paramètres au cours d'un même appel à QUERY_PARAMETER.

Pour afficher et demander par programme les valeurs de paramètres de substitution, vous pouvez utiliser les sous-programmes internes suivants :

•	APPLICATION_PARAMETER

•	QUERY_PARAMETER

•	MENU_PARAMETER (menus plein écran seulement)


Référence aux paramètres de substitution dans le code - Exemples

 /* Exemple 1 : La commande d'élément de menu ci-après appelle
** SQL*Plus et exécute un fichier de commandes. Elle comprend trois
** paramètres de substitution : */

   SQLPLUS &UN/&PW @&CF

/* Les paramètres UN et PW sont des fonctions internes de Form Builder.
** Le paramètre CF représente le fichier de commandes SQL*Plus
** à exécuter. Lorsque l'utilisateur sélectionne cet élément de menu, la
** boîte de dialogue Valeurs de paramètre apparaît, pour que l'utilisateur
** puisse entrer le nom du fichier de commandes. */

/* Exemple 2 : La procédure ci-après commence par appeler la
** boîte de dialogue Valeurs de paramètre, pour permettre à l'utilisateur de
** fournir le nom d'un état qui devra être exécuté par Oracle Report
** Builder. Elle fait ensuite référence au paramètre de substitution
** sous la forme d'un argument de la procédure RUN_PRODUCT :*/

  QUERY_PARAMETER('&RN');
RUN_PRODUCT(REPORTS,:RN,SYNCHRONOUS,RUNTIME,
              FILESYSTEM,pl_id,NULL);


A propos de la sécurité des menus

  Rubriques connexes

La sécurité des menus basée sur l'utilisation de rôles permet de contrôler l'accès aux menus et aux éléments de module Menu. Cette personnalisation des menus vous permet de fournir un sous-ensemble de fonctions pour chaque catégorie d'utilisateur exploitant votre application et évite donc de devoir créer plusieurs applications effectuant des fonctions faisant double emploi. Par exemple, si deux services d'une entreprise exploitent la même application, les employés du service A peuvent avoir accès à certains éléments de l'application, non accessibles aux employés du service B.

Vous pouvez notamment permettre aux utilisateurs d'accéder :

•	à tous les éléments de menu d'un module ;

•	uniquement à certains éléments de menu.

Les fonctions de sécurité simplifient également l'utilisation des applications. Form Builder vous permet de simplifier l'interface applications en vous donnant la possibilité de masquer ou de désactiver les éléments de menu auxquels l'utilisateur n'a pas accès.


A propos de la mise en oeuvre de la sécurité des menus

Pour mettre en oeuvre la sécurité des menus, procédez de la manière suivante :

•	Créez des rôles de base de données et attribuez-leur des noms d'utilisateur--soit par Form Builder, soit directement dans la base de données.

•	Attribuez des rôles au module Menu en utilisant la propriété Rôles associés au module. (Avant d'attribuer un accès rôle à différents éléments de menu, vous devez attribuer le rôle au module Menu.)

•	Attribuez des accès rôle aux différents éléments des menus (en utilisant la propriété Options de menu - autorisation d'accès).

•	Définissez la propriété de module Menu Sécurité à Oui.

•	Compilez le module Menu.

•	Compilez le module Application Forms.

Remarque : La vue FRM50_ENABLED_ROLES doit exister dans la base de données pour que la sécurité des menus fonctionne correctement. La vue FRM50_ENABLED_ROLES est automatiquement créée dans les scripts de table de Form Builder 5.0, qui s'exécutent pendant l'installation si vous choisissez l'option "Create database tables". Si vous ne choisissez pas cette option, vous (ou votre administrateur de bases de données) devez vous connecter comme SYSTEM et exécuter le script SQL FRM50SEC.SQL (qui se trouve dans le répertoire SQL de Form Builder).


A propos de la propriété de module Menu Sécurité

Pour définir la propriété Sécurité :

1	Dans l'Editeur de menu ou le Navigateur d'objet, sélectionnez le module Menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Sécurité menu, définissez la propriété Sécurité :

Oui	Form Builder appliquera la sécurité.
Non	Form Builder ne tiendra pas compte de la sécurité.
4	Choisissez Fichier [image] Administration [image] Compiler fichier pour compiler le module Menu.

La propriété de module Menu Sécurité indique si Form Builder doit, ou non, appliquer la sécurité des menus lors de l'exécution. Cette sécurité n'est appliquée que si la propriété Sécurité a été définie à Oui lorsque vous avez compilé le module Menu (pour créer le fichier .MMX). Si vous compilez le module Menu avec la propriété Sécurité définie à Non, tous les utilisateurs auront accès à tous les éléments de menu.

Conseil : Pour supprimer la sécurité des menus, fondée sur l'utilisation des rôles pendant le test d'une application, définissez la propriété Sécurité à non et compilez le module Menu. Une fois les tests effectués, redéfinissez la propriété Sécurité à Oui et recompilez le module Menu.


A propos des rôles de base de données

 Rubriques connexes

Form Builder applique la sécurité des menus en fonction des rôles de la base de données, c'est-à-dire des listes d'utilisateurs qui, en raison de leurs responsabilités, doivent accéder aux mêmes informations. Par exemple, vous pouvez créer des rôles appelés Responsables et Employés.

Les rôles, créés une fois, sont utilisés pour fournir :

•	des privilèges d'accès au niveau base de données, notamment aux tables (insertion de données dans des tables, par exemple)

•	des privilèges système (connexion à la base de données, par exemple)

•	la sécurité des applications (en limitant l'accès à certains éléments de menu).

Une fois que vous avez créé un rôle, vous pouvez l'attribuer à des éléments de menu particuliers. Lorsque vous limitez l'accès aux éléments de menu à certains rôles, seuls les utilisateurs auxquels ce rôle a été accordé pourront sélectionner l'élément de menu lors de l'exécution.

La sécurité des menus, fondée sur les rôles de la base de données, est indépendante d'un module Menu particulier. En d'autres termes, lorsqu'un rôle a été défini, les utilisateurs peuvent ultérieurement accorder l'accès à ce rôle à tout module Menu ou élément de menu.

Remarque : Pour utiliser les fonctions de sécurité de menu, il faut que l'application soit connectée à la base de données lors de l'exécution, car Form Builder interroge la base de données au démarrage pour connaître les rôles auxquels appartient l'utilisateur en cours.


A propos de la création et de la transmission des rôles de base de données

 Rubriques connexes

Lorsque vous planifiez la sécurité de vos applications, définissez les rôles de sorte que tous les privilèges système et objet nécessaires à l'exécution d'une tâche donnée soient confiés à un seul rôle. Cette solution simplifiera la maintenance des applications, car l'ajout d'un nouvel utilisateur demandera l'attribution d'un rôle, au lieu de l'attribution de tous les privilèges individuels.

Avant de pouvoir choisir la sécurité des éléments de menu (élément par élément), vous devez commencer par choisir le sous-ensemble de rôles que vous voulez accorder au module Menu. Par exemple, l'administrateur de bases de données peut accorder 50 accès rôle à une base de données particulière. Cependant, pour une application spécifique utilisant cette base de données, vous voudrez peut-être n'y accorder d'accès qu'à 10 de ces rôles.

Accorder un accès rôle à un module Menu n'accorde pas cet accès rôle à tous les éléments de menu. Lorsque vous accordez un accès rôle au module Menu, il apparaîtra dans la liste des propriétés Options de menu - autorisation d'accès pour tous les éléments de menu du Module.

Une fois que vous avez accordé un accès rôle à un module Menu, vous pouvez accorder l'accès rôle aux différents éléments de menu au Module.

Vous pouvez créer et accorder des rôles de deux manières différentes :

•	directement dans la base de données (par des instructions GRANT) ;

•	dans la boîte de dialogue Liste de rôles de Form Builder (dans ce cas, Form Builder émet automatiquement les commandes de base de données).

Que vous mettiez en oeuvre la sécurité directement dans le serveur ou par Form Builder, les commandes SQL sous-jacentes sont les mêmes. Utilisez :

•	CREATE ROLE pour créer un rôle.

•	GRANT pour accorder des privilèges sur le rôle, puis accorder à un utilisateur spécifique toute une "collection" de privilèges.

•	ALTER USER...DEFAULT ROLE pour contrôler les rôles qui seront activés par défaut pour un utilisateur spécifique. Comme l'administrateur de bases de données définit les rôles des utilisateurs, les autorisations correspondantes seront automatiquement activées lorsqu'ils se connecteront.

La sécurité des menus de Form Builder repose sur les rôles accordés à un utilisateur, que le rôle soit, ou non, activé (par SET ROLE). Cependant, comme les autorisations sur les tables dépendent du rôle activé, vous devez inclure dans votre application la commande DBMS_SESSION.SET ROLE() nécessaire (à moins que vous n'activiez les rôles par défaut).

Conseil: Si un utilisateur tente d'interroger un bloc basé sur une table et reçoit le message Erreur ORACLE - Impossible d'exécuter... il est très probable qu'il n'a pas accès à cette table de base de données parce que le rôle approprié n'est pas défini. Vous devez :

•	activer les rôles appropriés comme rôles par défaut pour cet utilisateur ;

ou

•	définir explicitement les rôles dans votre application, en utilisant la commande DBMS_SESSION.SET ROLE().


Création de rôles de base de données

Pour créer un rôle de base de données :

1	Sélectionnez Fichier [image] Administration [image] Rôles base de données pour ouvrir la boîte de dialogue Liste de rôles.

Si l'élément de menu Rôles base de données est désactivé, vous ne disposez pas des privilèges d'administration des rôles. Demandez à un développeur bénéficiant de tels privilèges de vous octroyer les privilèges CREATE ROLE, DROP ROLE et GRANT ROLE.

2	Cliquez sur Nouveau pour faire apparaître la boîte de dialogue de gestion des rôles.

3	Entrez un nom dans le champ réservé à cet effet.

4	Ajoutez des utilisateurs au rôle en saisissant leur nom dans la colonne prévue à cet effet.

5	Paramétrez les privilèges Débogage, Commande OS et Menu d'arrière-plan du rôle :

Debug	Paramétrez ce privilège sur True pour permettre aux utilisateurs d'exécuter le mode de débogage en utilisant [Mode débogage].
Commande OS	Paramétrez ce privilège sur True pour permettre aux utilisateurs de quitter le système d'exploitation et d'entrer des commandes en utilisant [Saisir une seule commande OS] ou [Saisir plusieurs commandes OS].
Menu d'arrière-plan	Paramétrez ce privilège sur True pour permettre aux utilisateurs d'afficher la fenêtre du menu d'arrière-plan en utilisant [Afficher BGM].

Lorsqu'un utilisateur est membre d'un rôle et qu'il dispose des privilèges ci-dessus, Form Builder affiche le témoin correspondant (<DBG>, <OSC> ou <BGM>) sur la ligne d'état au moment de l'exécution.

6.	Cliquez sur OK pour accepter le paramétrage du rôle et revenir à la liste des rôles.

7.	Pour paramétrer un autre rôle, répétez les étapes 2 à 6. Lorsque vous avez terminé, cliquez sur Enregistrer pour enregistrer le paramétrage des rôles dans la base de données.


Modification de rôles de base de données existants

Pour modifier un rôle de base de données existant (par exemple, pour ajouter des utilisateurs) :

1	Sélectionnez Fichier [image] Administration [image] Rôles base de données pour ouvrir la boîte de dialogue Liste de rôles.

Si l'élément de menu Rôles base de données est désactivé, vous ne disposez pas des privilèges d'administration des rôles. Demandez à un développeur bénéficiant de tels privilèges de vous octroyer les privilèges CREATE ROLE, DROP ROLE et GRANT ROLE.

2	Choisissez le rôle à modifier, puis cliquez sur Modifier.

La boîte de dialogue des rôles apparaît. Vous pouvez alors modifier le rôle à votre convenance.

3	Pour :

•	ajouter un utilisateur à un rôle, placez-vous dans la colonne Nom utilisateur, puis choisissez [Créer élément] (ou appuyez sur Ctrl-Inser).

•	supprimer un utilisateur d'un rôle, sélectionnez le nom de l'utilisateur, puis cliquez sur [Effacer élément] (ou appuyez sur Ctrl-Suppr).

4	Cliquez sur OK.

La boîte de dialogue Liste de rôles est réactivée.

5	Cliquez sur Enregistrer.


Suppression de rôles de base de données existants

Pour supprimer un rôle de base de données existant :

1	Sélectionnez Fichier [image] Administration [image] Rôles base de données pour ouvrir la boîte de dialogue Liste de rôles.

Si l'élément de menu Rôles base de données est désactivé, vous ne disposez pas des privilèges d'administration des rôles. Demandez à un développeur bénéficiant de tels privilèges de vous octroyer les privilèges CREATE ROLE, DROP ROLE et GRANT ROLE.

2	Sélectionnez le rôle à supprimer.

3	Cliquez sur Supprimer.

Form Builder affiche un message vous demandant de confirmer la suppression.

4	Cliquez sur Supprimer.

5	Cliquez sur Enregistrer.


Autorisation d'accès aux rôles de base de données aux modules Menu

Pour accorder l'accès par rôles à un module Menu :

1	Dans le Navigateur d'objet, sélectionnez le module Menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Sécurité menu, cliquez deux fois sur le champ de propriété Rôles module pour afficher la boîte de dialogue correspondante.

4	Entrez les noms des rôles auxquels vous voulez accorder l'accès au module Menu.

5	Cliquez sur OK.


Autorisation d'accès aux rôles de base de données aux éléments de menu

Pour accorder l'accès par rôles à des éléments de menu :

1	Dans le Navigateur d'objet, sélectionnez l'élément de menu.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Sécurité menu, cliquez deux fois sur le champ de propriété Autorisation d'accès pour afficher la boîte de dialogue Options de menu - autorisation d'accès.

Form Builder affiche le nom des rôles ayant accès au module dans la liste de rôles. Les rôles ayant accès à l'élément de menu sélectionné sont en surbrillance. Ceux qui n'y ont pas accès sont affichés en brillance normale.

Remarque : Si la liste est vide, aucun rôle n'a d'autorisation d'accès au module Menu. Vous devez accorder des accès au module avant de pouvoir attribuer des accès à l'élément de menu.

4	Pour accorder un accès rôle à l'élément de menu en cours, sélectionnez et désélectionnez des rôles de la liste à l'aide de la souris (si vous annulez la sélection d'un rôle, vous annulez l'accès de l'élément) :

•	cliquez pour sélectionner ou désélectionner (le clic de la souris est une bascule)

•	appuyez sur Maj-clic pour sélectionner plusieurs rôles contigus

•	appuyez sur Ctrl-clic pour annuler la sélection d'un rôle préalablement sélectionné, indépendamment des autres rôles de la liste.

5	Définissez la propriété Afficher sans privilège pour indiquer comment Form Builder doit afficher l'élément pour les utilisateurs qui n'y ont pas accès :

Oui	L'élément sera affiché, mais désactivé. Sur la plupart des plates-formes, les éléments désactivés sont affichés en contraste réduit (ou grisé) pour indiquer qu'ils ne sont pas disponibles.
Non	L'élément sera complètement masqué.

Conseil : Pour accorder simultanément un accès rôle à plusieurs éléments de menu, sélectionnez plusieurs éléments en utilisant la combinaison de touches Maj-clic ou Ctrl-clic dans le Navigateur d'objet, puis définissez la propriété Options de menu - autorisation d'accès une fois pour tous les éléments sélectionnés.


A propos de la manipulation des rôles de base de données lors de l'exécution

 Rubriques connexes

Si vous utilisez des rôles de base de données pour gérer les autorisations d'accès à des objets de la base de données et la sécurité des menus d'applications de Form Builder, vous pouvez vérifier et définir des rôles de base de données lors de l'exécution. Par exemple, vous pouvez vérifier la vue du dictionnaire de données SESSION_ROLES pour connaître les rôles ou les autorisations d'accès qui sont activés pour l'utilisateur en cours.

Vous pouvez également interroger les vues supplémentaires suivantes pour vérifier dynamiquement les informations sur les rôles de base de données lors de l'exécution :

•	ROLE_ROLE_PRIVS

•	ROLE_SYS_PRIVS

•	ROLE_TAB_PRIVS

•	USER_ROLE_PRIVS

Pour une sécurité maximale, le rôle peut demander que le mot de passe soit défini à SET. Dans ce cas, une application Form Builder peut définir (SET) le rôle au démarrage en fournissant un mot de passe crypté dans l'application Forms, ce qui accorde automatiquement l'accès à tous les objets de la base de données nécessaires à l'exécution de cette application Forms.


Définition et contrôle des rôles de base de données lors de l'exécution

 Exemples

Pour définir un rôle de base de données :

   DBMS_SESSION.SET_ROLE('paye');

Pour définir un rôle avec un mot de passe :

   DBMS_SESSION.SET_ROLE('paye IDENTIFIED BY   PASSWORD xyz001');

(Pour des raisons de sécurité, le mot de passe peut être fourni sous la forme d'une variable.)

Si l'utilisateur n'a pas le rôle défini comme rôle par défaut (ce qui activerait automatiquement les autorisations d'accès concernées lors de l'exécution), il n'aura d'autorisation d'accès aux objets de la base de données que lorsqu'il exécutera l'application Forms (comportement préféré). Comme la sécurité des menus est fondée sur les rôles qui ont été accordés, et non uniquement ceux qui sont activés (ou définis par SET), votre application doit activer par programme les rôles nécessaires.

Remarque : Pour toute information sur les commandes de base de données, reportez-vous à la documentation Oracle7 ou Oracle8 Server.

Pour contrôler et définir dynamiquement des rôles de base de données lors de l'exécution :

Le package DBMS_SESSION comporte une procédure (SET_ROLE) et une fonction correspondante (IS_ROLE_SET) qui permettent de tester le résultat de la procédure.


Définition et contrôle des rôles de base de données lors de l'exécution - Exemple

 /* Utiliser le package DBMS_SESSION (y compris la procédure
** SET_ROLE et la fonction IS_ROLE_SET correspondante) pour définir
** et contrôler les rôles d'une application Form Builder.
** SET_THE_ROLE : Tente de définir le rôle transmis sous la forme d'un
** paramètre. Si le rôle exige un mot de passe,
** transmettre la chaîne 'ROLENAME IDENTIFIED BY PASSWORD' et non
** simplement 'ROLENAME' comme argument.
** Retourne :   TRUE    si la définition du rôle a réussi
**              FALSE   dans le cas contraire.*/

FUNCTION SET_THE_ROLE(fp_rname VARCHAR2)
RETURN BOOLEAN IS

   /* ORA-1979: Mot de passe manquant ou erroné... */

   wrong_password exception;
   pragma exception_init(wrong_password, -1979);

   /* ORA-1919: Le rôle n'existe pas */

   role_does_not_exist exception;
   pragma exception_init(role_does_not_exist, -1919);

BEGIN

   /* Appeler la procédure stockée pour exécuter SET ROLE

   */   DBMS_SESSION.SET_ROLE(fp_rname);
   RETURN(TRUE);

EXCEPTION

   /* Gérer les deux erreurs probables */

   WHEN role_does_not_exist
      OR wrong_password THEN
      RETURN(FALSE);

END;

/* L'utilisation de cette procédure vous permet de mettre en oeuvre
** un déclencheur PRE-FORM simple : */

   IF NOT(DBMS_SESSION.IS_ROLE_SET('paye') OR
     SET_THE_ROLE('paye')) THEN
        MESSAGE('Vous n'êtes pas autorisé à exécuter Paye.');
        PAUSE;
        RAISE FORM_TRIGGER_FAILURE;
        END IF;
   END IF;


A propos des événements de souris, des déclencheurs et des variables système

  Rubriques connexes

Lors de l'exécution, différents événements de souris peuvent se produire. Par exemple, lorsqu'un utilisateur clique sur un élément, celui-ci peut signaler si l'utilisateur a cliqué une ou deux fois sur le bouton.

Vous pouvez exécuter une commande ou déclencher une action lorsque se produit l'un des événements de souris suivants :

•	l'utilisateur appuie sur le bouton de la souris ;

•	l'utilisateur appuie sur le bouton de la souris et le relâche ;

•	l'utilisateur clique une fois à l'aide de la souris ;

•	l'utilisateur clique deux fois à l'aide de la souris ;

•	l'utilisateur amène la souris sur un canevas ou sur un élément ;

•	l'utilisateur fait sortir la souris d'un canevas ou d'un élément ;

•	l'utilisateur déplace la souris.


Création d'un déclencheur sur événement de souris

  Rubriques connexes

La création d'un déclencheur sur un événement de souris vous permet de déclencher une action lorsque l'événement de souris indiqué se produit.

Déclencheur de souris	Description
When-Mouse-Down	Déclenche une action lorsque l'utilisateur appuie sur le bouton de la souris dans un élément ou dans un canevas.
When-Mouse-Up	Déclenche une action lorsque l'utilisateur appuie sur le bouton de la souris, puis le relâche, dans un élément ou un canevas.
When-Mouse-Click	Déclenche une action lorsque l'utilisateur clique à l'aide de la souris dans un élément ou un canevas. Cliquer avec la souris consiste à appuyer sur le bouton de la souris et à le relâcher.
When-Mouse-DoubleClick	Déclenche une action lorsque l'utilisateur clique deux fois avec la souris dans un élément ou un canevas. Cliquer deux fois avec la souris consiste à appuyer deux fois sur le bouton de la souris et à le relâcher.
When-Mouse-Enter	Déclenche une action lorsque l'utilisateur amène la souris sur un élément ou sur un canevas.
When-Mouse-Leave	Déclenche une action lorsque l'utilisateur fait sortir la souris d'un élément ou d'un canevas.
When-Mouse-Move	Déclenche une action lorsque l'utilisateur déplace la souris dans un élément ou dans un canevas.


Utilisation des variables système d'événement de souris

  Rubriques connexes

Lorsqu'un événement de souris se produit, Form Builder initialise la variable système d'événement de souris appropriée (voir ci-dessous) et exécute le déclencheur de souris correspondant.

Remarque : Les variables système d'événement de souris sont définies immédiatement avant l'activation d'un déclencheur de souris. Pour être certain que vos variables système de souris sont actualisées, vous ne devez utiliser les variables système de souris que dans des déclencheurs de souris.

Variable système d'événement de souris	Valeur
SYSTEM.MOUSE_BUTTON_PRESSED	Numéro du bouton, 1, 2, ou 3 (gauche, centre ou droit) sur lequel vous avez appuyé.
SYSTEM.MOUSE_BUTTON_SHIFT_STATE	Le modificateur de majuscules et un bouton de la souris ont été actionnés au même moment.
SYSTEM.MOUSE_ITEM	Nom de l'élément dans lequel se trouve la souris.
SYSTEM.MOUSE_CANVAS	Nom du canevas dans lequel se trouve la souris.
SYSTEM.MOUSE_X_POS	Coordonnée X de la souris sur le canevas, en fonction du système de coordonnées, sauf lorsqu'elle est utilisée avec un déclencheur When-Mouse-Enter. Lorsqu'un déclencheur When-Mouse-Enter est utilisé, SYSTEM.MOUSE_X_POS représente la coordonnée X par rapport à l'élément entré, et non la position de l'élément sur le canevas.
SYSTEM.MOUSE_Y_POS	Coordonnée Y de la souris sur le canevas, en fonction du système de coordonnées, sauf lorsqu'elle est utilisée avec un déclencheur When-Mouse-Enter. Lorsqu'un déclencheur When-Mouse-Enter est utilisé, SYSTEM.MOUSE_Y_POS représente la coordonnée Y par rapport à l'élément entré, et non la position de l'élément sur le canevas.
SYSTEM.MOUSE_RECORD	Numéro de l'enregistrement dans lequel se trouve la souris.
SYSTEM.MOUSE_RECORD_OFFSET	Décalage à partir du premier enregistrement visible dans lequel se trouve la souris.

Remarque : Form Builder n'effectue en interne aucune navigation  à la souris pour activer les déclencheurs de souris. Les opérations de déplacement, d'entrée et de sortie de souris peuvent donc être activées sur l'élément qui n'est pas en cours ou sur un élément ne contenant pas d'enregistrement (par exemple, le cinquième enregistrement d'un bloc multi-enregistrement en mode Saisie interrogation).


Exécution d'actions en fonction du bouton de souris utilisé

 Exemples	     Rubriques connexes

Il est possible de déclencher une action en fonction du bouton actionné par l'utilisateur, qu'il s'agisse du bouton 1, 2 ou 3.

Vous pouvez également déclencher une action sur un simple clic, un double clic, un clic simple combiné à un modificateur de majuscules, ainsi que sur d'autres combinaisons.

Bouton utilisé Pour déclencher une action en fonction du bouton actionné par l'utilisateur, il faut utiliser un déclencheur When-Mouse-Click avec la variable système SYSTEM.MOUSE_BUTTON_PRESSED.

Simple ou double clic  Pour effectuer une action sur simple ou double clic de l'utilisateur, utilisez le déclencheur When-Mouse-Click ou When-Mouse-DoubleClick.


Exécution d'actions en fonction du bouton de souris utilisé - Exemple

L'exemple ci-après explique comment déterminer le bouton de souris sur lequel l'utilisateur a appuyé.

/* **  Déclencheur:  When-Mouse-Click */

DECLARE

   the_button_pressed  VARCHAR(1);

   BEGIN

     the_button_pressed := :System.Mouse_Button_Pressed;

   IF the_button_pressed = '1' THEN

     Show_Window('options_window');

   END IF;

 END;


Exécution d'actions en fonction de la position de la souris

 Exemples	     rubriques connexes

Vous pouvez déclencher une action en fonction de la position de la souris, que celle-ci soit dans un élément, un enregistrement, une zone de coordonnées ou un canevas.

Elément Pour savoir dans quel élément se trouve la souris, utilisez un déclencheur When-Mouse-Move avec la variable système SYSTEM.MOUSE_ITEM.

Coordonnées de la souris Pour déclencher une action en fonction des coordonnées X et Y de la souris, utilisez un déclencheur When-Mouse-Move avec les variables système SYSTEM.MOUSE_X_POS and SYSTEM.MOUSE_Y_POS.

Enregistrement Pour exécuter une action en fonction du numéro d'enregistrement dans lequel se trouve la souris, utilisez le déclencheur When-Mouse-Move ou When-Mouse-Click avec la variable système SYSTEM.MOUSE_RECORD.


Exécution d'actions en fonction de la position de la souris - Exemples

/* **  Déclencheur :  When-Mouse-Move */

 DECLARE

    mouse_location   varchar(50);

 BEGIN

    mouse_location := :System.Mouse_Item;

 END;

Dans l'exemple ci-dessous, les variables système SYSTEM.MOUSE_X_POS et SYSTEM.MOUSE_Y_POS sont utilisées dans un déclencheur When-Mouse-Click pour repositionner de manière dynamique les éléments.

DECLARE

    item_to_move       VARCHAR(50);

    the_button_pressed VARCHAR(50);

    target_x_position  VARCHAR(3);

    target_y_position  VARCHAR(3);

 BEGIN

 /*.**  Rechercher le nom de l'élément sur lequel l'utilisateur a cliqué.*/

    item_to_move := :System.Mouse_Item;

    the_button_pressed := :System.Mouse_Button_Pressed;

 /* **  Si l'utilisateur a cliqué dans une zone d'un canevas

 **  qui ne se trouve pas directement sur un autre élément, faire passer

**  l'élément au nouvel emplacement de la souris. */

    IF item_to_move IS NOT NULL AND the_button_pressed =    '2' THEN

      target_x_position := :System.Mouse_X_Pos);

      target_y_position := :System.Mouse_Y_Pos);

      Set_Item_Property(item_to_move,position,target_x_position,target_y_position);

      target_x_position := NULL;

      target_y_position := NULL;

      item_to_move := NULL;

    END IF;

  END;

Dans l'exemple suivant, la variable système SYSTEM.MOUSE_CANVAS est utilisée dans un déclencheur When-Mouse_Move pour déterminer le canevas dans lequel se trouve la souris.

DECLARE

    canvas_name  VARCHAR(50);

 BEGIN

    canvas_name := :System.Mouse_Canvas;

 END;

Pour savoir dans quelle fenêtre se trouve la souris, ajoutez à l'exemple ci-dessus la ligne :

window_name := :Get_View_Property(canvas_name,window_name);


Qu'est-ce qu'une application multiformulaire ?

Une application multiformulaire est une application conçue pour ouvrir plusieurs modules Application Forms au cours d'une même session Forms Runtime. Toutes les sessions Forms Runtime commencent de la même façon : par le chargement en mémoire d'un seul module Application Forms. Lorsque le premier module commence à s'exécuter, il peut appeler par programme un nombre quelconque de modules Application Forms supplémentaires qui, à leur tour, peuvent en appeler d'autres. Ce développement modulaire d'applications peut offrir des avantages lors de la conception et du déploiement.

Lorsqu'un module Application Forms en appelle un autre par programme, Form Builder recherche le nouveau module dans le répertoire approprié, puis le charge en mémoire. Lorsque vous livrez une application multiformulaire à l'utilisateur, tous les fichiers .FMX, .MMX et .PLL (applications Forms, menus et bibliothèques) qui seront appelés pendant la session doivent résider dans le répertoire de travail ou le chemin de recherche défini pour votre système.


Appel de Form Builder par programme
Appel par programme d'une autre application Forms

  Rubriques connexes

Pour appeler par programme un autre module Application Forms, une application Forms peut exécuter trois procédures internes Form Builder:

•	OPEN_FORM  (ouvre une application Forms distincte et indépendante).

•	NEW_FORM  (remplace l'application Forms en cours par une autre).

•	CALL FORM  (appelle une application Forms modale).

Lorsqu'une application Forms exécute OPEN_FORM pour appeler une autre application Forms, cette première application reste affichée, et l'utilisateur peut passer d'une application à l'autre s'il le désire. Une application Forms ouverte peut partager la même session de base de données que l'application Forms à partir de laquelle elle a été appelée, ou créer sa propre session distincte. Pour la plupart des applications graphiques, l'utilisation de OPEN_FORM est la solution la plus appropriée à la mise en oeuvre des fonctionnalités multiformulaires.

Lorsqu'une application Forms exécute NEW_FORM pour en appeler une autre, Form Builder quitte la première application et libère sa mémoire, puis charge la nouvelle application Forms (c'est-à-dire que la seconde remplace totalement la première). Si la première comportait des modifications en attente, Form Builder demande à l'utilisateur de les enregistrer avant de charger la nouvelle.

Lorsqu'une application Forms exécute CALL_FORM pour en appeler une autre, l'application appelée est modale par rapport à l'application appelante. Toutes les fenêtres qui appartiennent à l'application appelante ne sont pas utilisables tant que vous n'avez pas quitté l'application appelée et qu'un contrôle n'a pas été renvoyé par l'application appelante.

OPEN_FORM et CALL_FORM vous permettent de garder l'application Forms appelante affichée et d'intégrer des applications Forms si étroitement que l'utilisateur n'a pas l'impression d'appeler des applications distinctes.

Form Builder conserve les verrous (obtenus par une application Forms) pendant tous les appels de procédure OPEN_FORM (au cours de la même session), CALL_FORM et NEW_FORM. Une application Forms appelée a donc automatiquement les mêmes verrous que l'application qui l'a appelée.

CALL_FORM est une procédure non restreinte, valide en mode Saisie interrogation, alors que les procédures restreintes OPEN_FORM et NEW_FORM ne le sont pas.


Applications multiformulaires et fenêtre principale

  Rubriques connexes

Lorsque vous utilisez OPEN_FORM ou CALL_FORM pour créer une application multiformulaire, vous devez généralement éviter de définir une fenêtre principale dans les modules Application Forms que vous souhaitez afficher simultanément. Lors de l'exécution, vous ne pouvez afficher qu'une fenêtre principale à la fois, même dans une application multiformulaire. Si le premier canevas affiché par l'application Forms B est une vue intégrale attribuée à la fenêtre principale, il s'affiche dans la fenêtre principale de l'application Forms A, et non dans sa propre fenêtre principale distincte. Le canevas intégral de l'application Forms B masquera donc tous les canevas de l'application Forms A déjà affichés dans la fenêtre principale - ce qui n'est généralement pas ce que l'on attend des applications multiformulaires.

Si vous devez utiliser une fenêtre principale, vous pouvez empêcher la seconde application Forms de masquer la première. Assurez-vous que le canevas cible (affiché par la seconde application Forms) est :

•	un canevas intégral, ou canevas empilé, affecté à une fenêtre autre que la fenêtre principale,

•	ou un canevas empilé affecté à la fenêtre principale.

Lorsque le canevas cible est affecté à une fenêtre différente, Form Builder affiche la seconde application Forms dans une fenêtre distincte, et la fenêtre principale de la première application reste inchangée.

Lorsque le canevas cible est un canevas empilé affecté à la fenêtre principale, Form Builder l'affiche dans la fenêtre principale de la première application Forms. Cependant, si le canevas empilé est plus petit que le canevas intégral (ce qui est généralement le cas), le canevas intégral de la première application Forms reste au moins partiellement visible.


Appel d'applications Forms indépendantes avec OPEN_FORM

  Rubriques connexes

Pour ouvrir par programme une autre application Forms, exécutez la procédure interne OPEN_FORM :

OPEN_FORM('stocks');

Par défaut, Form Builder active immédiatement l'application Forms ouverte et positionne le point d'insertion dans le premier élément de navigation autorisée de l'application. Pour préciser explicitement ce comportement par défaut, ajoutez le paramètre optionnel ACTIVATE :

OPEN_FORM('stocks', activate);

Lorsque vous ouvrez une application Forms en indiquant ACTIVATE, Form Builder ne tient pas compte des instructions de déclenchement qui suivent l'appel à OPEN_FORM et ne les exécute jamais).

Si vous ne voulez pas que Form Builder place le point d'insertion dans l'application Forms ouverte, ajoutez le paramètre NO_ACTIVATE :

OPEN_FORM('stocks', no_activate);

Lorsque vous ouvrez une application Forms en indiquant NO_ACTIVATE, Form Builder exécute les instructions de déclencheur qui suivent l'appel à OPEN_FORM, lorsque l'application Forms ouverte a été chargée en mémoire et que ses déclencheurs de démarrage initial (le cas échéant) ont été activés.

Lorsque vous ouvrez une application Forms avec ACTIVATE ou NO_ACTIVATE, Form Builder active les déclencheurs de l'application Forms ouverte qui, normalement, seraient activés lors du démarrage de l'application Forms. Ces déclencheurs peuvent être notamment, Pre-Form, When-New-Form-Instance, When-New-Block-Instance, When-New-Record-Instance et When-New-Item-Instance.

Pour fermer une application Forms indépendante, exécutez la procédure CLOSE_FORM

CLOSE_FORM('stocks');


Navigation entre applications Forms indépendantes

  Rubriques connexes

La navigation entre applications Forms d'une application multiformulaire peut se produire lorsque l'utilisateur navigue à la souris ou lorsqu'une application Forms appelle l'une des procédures internes de navigation suivantes :

•	GO_FORM

•	NEXT_FORM

•	PREVIOUS_FORM

GO_FORM accepte un paramètre qui indique le nom de l'application Forms cible :

GO_FORM('calendrier');

NEXT_FORM et PREVIOUS_FORM passent à l'application Forms précédente ou suivante dans l'ordre dans lequel les applications Forms ont été ouvertes lors de l'exécution :

NEXT_FORM;
PREVIOUS_FORM;

De nombreux déclencheurs sont activés en réponse à des événements de navigation, notamment les déclencheurs Pre- et Post- (Pre-Block, Post-Record, etc.) et les déclencheurs When-New-Instance (When-New-Block-Instance, When-New-Item-Instance, etc.). Pour développer une application multiformulaire, vous devez connaître l'incidence de la navigation sur le traitement des déclencheurs.

Dans une application multiformulaire, chaque application Forms ouverte comporte un élément qui est l'élément en cours de cette application. Si vous utilisez GO_FORM, NEXT_FORM, PREVIOUS_FORM ou EXIT_FORM pour déclencher par programme la navigation vers une application Forms ouverte, l'élément cible est toujours l'élément en cours dans l'application cible. Par exemple, lorsque l'application A ouvre et active l'application B, Form Builder définit le point d'insertion à l'élément en cours de l'application B. Si l'application B appelle ultérieurement EXIT_FORM ou PREVIOUS_FORM, Form Builder renvoie le point d'insertion à l'élément en cours dans l'application A - dans le cas présent, l'élément qui était en cours lorsque l'application A a ouvert l'application B.

Lorsque vous passez d'une application Forms indépendante à une autre, n'oubliez pas ce qui suit :

•	Aucun enregistrement n'est effectué dans l'application Forms de démarrage. Il est possible de sortir d'un champ non valide à condition que le champ cible soit dans une autre application Forms. L'enregistrement normal a lieu lors du retour à l'application Forms de départ et de la tentative de navigation dans cette application.

•	A quelques exceptions près, aucun déclencheur n'est activé. Les seules exceptions sont When-Window-Deactivated (activé dans l'application Forms de départ) et When-Window-Activated (activé dans l'application Forms cible). Les déclencheurs Pre-, Post- et When-New-Instance ne sont pas activés lors de la navigation entre applications Forms.

Lorsqu'un utilisateur navigue, à la souris, de l'application A vers l'application B, l'élément cible peut être soit l'élément en cours dans l'application B, soit un autre élément de cette application B.

Si l'utilisateur clique sur :

•	l'élément en cours, dans l'application B, aucun déclencheur n'est activé ;

•	tout autre élément, dans l'application B, les déclencheurs qui sont activés sont ceux qui le seraient normalement lorsque la navigation s'effectue de l'élément en cours, dans l'application B vers l'élément cible, et l'enregistrement nécessaire s'effectue. En d'autres termes, le traitement des applications se déroule exactement comme si l'utilisateur passait de l'élément en cours dans l'application B à l'élément cible, sans tenir compte des éventuelles applications Forms externes.


Ouverture d'applications Forms dans des sessions de base de données différentes

  Rubriques connexes

Lors de l'exécution, Form Builder crée et gère automatiquement une seule connexion avec Oracle. Par défaut, il crée une session utilisateur pour cette connexion. Cependant, la fonction de sessions multiples d'Oracle permet à un seul client d'établir plusieurs sessions pour une même connexion. Comme les fonctions Oracle de gestion de transactions et de cohérence de lecture sont toutes mises en oeuvre au niveau session, la création de sessions multiples permet à un utilisateur d'avoir plusieurs transactions indépendantes.

Pour ce qui est du verrouillage d'enregistrements et de la cohérence de lecture, deux applications Forms de session différente sont comparables à deux clients indépendants ayant des connexions distinctes. Lorsque deux applications Forms indépendantes accèdent à la même table, l'une d'entre elles peut obtenir un verrou qui empêcherait l'autre d'accéder aux enregistrements de la table.

Dans une application multiformulaire, vous pouvez créer une session indépendante chaque fois que votre application Forms en ouvre une autre en utilisant la procédure OPEN_FORM. Par défaut, Form Builder n'émet pas de point d'enregistrement lorsque vous ouvrez une application Forms, et l'application ouverte partage la même session que l'application à partir de laquelle elle a été ouverte.

Les exemples ci-dessous ouvrent une application Forms sans créer de nouvelle session et sont équivalents :

OPEN_FORM('stocks'); -- par défaut ; NO_SESSION est implicite

OPEN_FORM('stocks',
          activate,
          no_session) -- NO_SESSION est explicite (par souci de clarté)

Pour ouvrir une application Forms dans sa propre session indépendante, utilisez le paramètre SESSION. L'instruction OPEN_FORM ouvre l'application Forms STOCKS dans sa propre session, et y définit immédiatement le point d'insertion :

OPEN_FORM('stocks',
          activate,
          session);

Enregistrement dans la base de données (Commit)  Lorsqu'une application Forms déclenche une procédure COMMIT, Form Builder exécute une validation et un enregistrement pour chaque application Forms ouverte qui partage la session de l'application Forms qui l'a appelée. Les applications Forms sont traitées dans l'ordre dans lequel elles ont été ouvertes, en commençant par celle qui a déclenché la procédure COMMIT. Si une erreur se produit pendant l'opération commit, Form Builder rend le point d'insertion à l'application Forms qui a déclenché la procédure COMMIT.

Savepoint et Annulation  Lorsque vous appelez OPEN_FORM avec le paramètre NO_SESSION (par défaut), Form Builder n'émet pas de point d'enregistrement pour l'application Forms, alors qu'il en émet un lorsque vous utilisez CALL_FORM. Si l'application A ouvre l'application B, toutes deux partagent la même session. Si l'application B exécute CLEAR_FORM (qui exécute un ROLLBACK implicite), Form Builder annule toutes les modifications effectuées dans l'application A et dans l'application B.

Il est généralement conseillé de créer des sessions indépendantes pour des applications Forms qui accèdent à des tables différentes et gèrent des transactions logiquement indépendantes. Par exemple, une application de saisie de commandes peut avoir une option de menu qui permet d'appeler une application de calendrier de rendez-vous. Si le calendrier est ouvert au cours de la même session que l'application de saisie de commandes, l'utilisateur doit valider simultanément les modifications apportées aux deux applications. Si l'application calendrier est ouverte dans une session distincte, cependant, l'utilisateur peut entrer un nouveau rendez-vous et l'enregistrer séparément dans la base de données, sans avoir à le valider dans l'application de saisie de commandes.

Remarque : Lorsque vous exécutez OPEN_FORM avec le paramètre session_mode défini à SESSION, l'option Session de Forms Runtime doit être activée. Si cette option est désactivée, Form Builder génère une erreur et n'ouvre pas l'application indiquée. Pour activer l'option Session de Forms Runtime, définissez la variable d'environnement FORMS50_SESSION à TRUE. Lorsque vous définissez la variable FORMS50_SESSION, tous les appels à Forms Runtime héritent sa définition, à moins que vous n'annuliez la variable d'environnement en définissant l'option Session à partir de la ligne de commande de Forms Runtime.


Ouverture de plusieurs instances de la même application Forms

  Rubriques connexes

Les applications multiformulaires offrent souvent la possibilité d'ouvrir plusieurs instances de la même application. Cette technique est intéressante pour les applications qui permettent à l'utilisateur d'exécuter des fonctions similaires sur différents ensembles d'enregistrements, notamment lorsqu'il est souhaitable que chaque application soit gérée au cours d'une session de transactions distincte.

Lorsque vous ouvrez par programme la même application n fois, vous avez n instances de cette application affichées à l'écran et stockées en mémoire. Pour faire référence à une instance spécifique d'une application Forms - par appel de GO_FORM ou CLOSE_FORM, par exemple - vous devez utiliser l'ID interne de l'instance de l'application. (Vous ne pouvez pas utiliser le nom de l'application, puisqu'il est commun à toutes les instances de cette application.)

Une fois qu'une application Forms est ouverte, utilisez la fonction interne FIND_FORM pour obtenir son ID interne :

DECLARE
  form_id   FORMMODULE;
BEGIN
  OPEN_FORM('stocks', no_activate);
  form_id := FIND_FORM('stocks');
  :GLOBAL.formid := TO_CHAR(form_id.id);
END;

Cet exemple déclare une variable de type FormModule (type Form Builder natif).Lorsque l'application STOCKS est ouverte, son ID interne est affecté à la variable par la fonction FIND_FORM. L'identificateur d'instance est alors converti en variable de type CHAR et affecté à une variable globale.

Une fois l'identificateur d'instance stocké dans une variable globale, vous pouvez à tout moment l'extraire pour les opérations effectuées sur l'instance d'application Forms spécifique. L'exemple ci-dessous transfère l'identificateur d'instance à la procédure interne GO_FORM :10

DECLARE
  form_id   FORMMODULE;
BEGIN
  form_id.id := TO_NUMBER(:GLOBAL.formid);
  GO_FORM(form_id);
END;

Comme la procédure GO_FORM utilise un paramètre de type FormModule, la première étape consiste à déclarer une variable de ce type, destinée à recevoir l'ID d'instance actuellement stocké dans la variable globale. Notez également que l'identificateur d'instance doit être défini à NUMBER pour être une valeur FormModule valide.

Pour stocker l'identificateur d'instance pour plusieurs applications Forms différentes, combinez des variables globales avec la procédure interne COPY :

DECLARE
  form_id FORMMODULE;
  temp    CHAR(10);
BEGIN
  -- Initialiser un compteur, ouvrir l'application STOCK, et
  -- stocker son ID interne dans id_application
  --
  DEFAULT_VALUE('1', 'GLOBAL.counter');
  OPEN_FORM('stocks', NO_ACTIVATE);
  form_id := FIND_FORM('stocks');
  --
  -- Comme la procédure COPY() ne lit que les variables globales
  -- et les valeurs d'élément, l'identificateur d'instance doit être entré
  -- dans une variable globale temporaire
  --
  :GLOBAL.temp_var := TO_CHAR(form_id.id);
  --
  -- Attribuer ensuite l'ID à la prochaine occurrence de la variable globale :
  -- GLOBAL.form<x>, où x est la valeur du compteur
  --
  COPY(NAME_IN('GLOBAL.temp_var'),
               'GLOBAL.form' || :GLOBAL.counter);
  :GLOBAL.counter := TO_NUMBER(:GLOBAL.counter) +1;
END;

Cet exemple crée un ensemble de variables globales (:GLOBAL.form1, :GLOBAL.form2, etc.) qui contiennent les identificateurs d'instance de chaque application Forms ouverte. Vous pouvez alors utiliser la variable appropriée pour effectuer par programme des opérations sur une application Forms spécifique.


Remplacement de l'application Forms en cours à l'aide de NEW_FORM

  Rubriques connexes

Pour remplacer l'application Forms en cours dans une application, exécutez la procédure interne NEW_FORM :

NEW_FORM(formmodule_name     CHAR,
         rollback_mode       NUMBER,
         query_mode          NUMBER,
         parameterlist_name  CHAR);

Le paramètre FormModule_Name est obligatoire ; tous les autres sont facultatifs. Si vous n'indiquez aucun paramètre facultatif, Form Builder exécute la nouvelle application Forms en utilisant les paramètres par défaut :

NEW_FORM('form_b');

équivaut logiquement à :

NEW_FORM('form_b',
         to_savepoint,
         no_query_only);

Si l'application Forms appelante était elle-même une application appelée, c'est-à-dire appelée par la procédure CALL_FORM), la nouvelle application occupe la position de l'application Forms père dans la pile d'appels. En outre, Form Builder exécute la nouvelle application Forms avec les mêmes paramètres CALL_FORM (HIDE ou NO_HIDE, DO_REPLACE ou NO_REPLACE, et QUERY_ONLY ou NO_QUERY_ONLY) que l'application Forms appelante.


Appel d'applications Forms modales à l'aide de CALL_FORM

  Rubriques connexes

Pour appeler par programme une autre application Forms, exécutez la procédure interne CALL_FORM :

CALL_FORM(formmodule_name     CHAR,
          display             NUMBER,
          switch_menu         NUMBER,
          query_mode          NUMBER,
          parameterlist_name  CHAR);

Le paramètre FormModule_Name est obligatoire ; tous les autres sont facultatifs. Si vous n'indiquez aucun paramètre facultatif, Form Builder exécute l'application Forms appelée en utilisant les paramètres par défaut :

CALL_FORM('form_b');

équivaut logiquement à :

CALL_FORM('form_b',
          HIDE,
          NO_REPLACE,
          NO_QUERY_ONLY);

CALL_FORM charge l'application Forms indiquée et laisse l'application appelante chargée. Par exemple, lorsque l'application A appelle l'application B, l'application B devient l'application active pour la session, mais l'application A reste en mémoire. Si l'utilisateur sort de l'application B, l'application A redevient l'application active. L'application B, à son tour, peut exécuter la procédure CALL_FORM pour appeler l'application C. Lorsque plusieurs applications Forms sont chargées par la procédure CALL_FORM, la hiérarchie de modules résultants est appelée pile d'appels d'applications Forms.

Lorsqu'une application en appelle une autre par CALL_FORM, l'application appelée est modale par rapport à l'application appelante. Les fenêtres qui appartiennent à l'application appelante ne sont pas utilisables tant que vous n'avez pas quitté l'application appelée et qu'un contrôle n'a pas été renvoyé à l'application appelante.

Contrairement à la procédure NEW_FORM, CALL_FORM ne quitte pas l'application Forms en cours et libère la mémoire qui lui est associée avant d'exécuter la nouvelle application Forms à la position en cours dans la pile d'appels d'applications.

Lorsque vous exécutez CALL_FORM pour indiquer si l'application appelante doit rester affichée, transmettez une constante appropriée pour le paramètre d'affichage. Les constantes valides sont HIDE (valeur par défaut) et NO_HIDE. L'appel de procédure ci-dessous appelle l'application B et laisse l'application A (l'application appelante) affichée :

CALL_FORM('form_B',
          NO_HIDE);

Seule l'application appelée est active, et l'utilisateur ne peut passer à des éléments de l'application appelante qu'après avoir quitté l'application appelée.


Sortie d'une application Forms appelée

Par défaut, Form Builder quitte une application lorsque l'une des opérations suivantes est exécutée :

•	procédure EXIT_FORM,

•	procédure NEW_FORM,

•	commande Quitter du menu Action par défaut,

•	touche [Quitter/Annuler]

Lors de la sortie d'une application appelée, le contrôle est rendu à l'application appelante et le traitement reprend là où il avait été interrompu. Le déclencheur, la commande d'élément de menu ou la routine nommée par l'utilisateur ayant exécuté la procédure CALL_FORM reprend donc le traitement à l'instruction qui suit immédiatement l'appel de procédure CALL_FORM.


Autorisation à un utilisateur de sortir d'une application Forms appelée

Dans certains cas, il est préférable de laisser l'utilisateur quitter une application à partir d'une application appelée, que de lui demander de quitter explicitement chaque application de la pile d'appels. Utilisez pour cela une variable globale qui indique si l'utilisateur veut quitter toute la session ou revenir à l'application appelante (les variables globales sont visibles dans les applications Forms appelées).

Par exemple l'application appelée peut avoir un bouton Quitter qui permet à l'utilisateur de quitter toute l'application à partir d'une application Forms appelée. Le déclencheur When-Button-Pressed de chaque bouton définit la valeur d'une variable globale pour indiquer que l'utilisateur veut soit quitter la session, soit revenir à l'application appelante.

Déclencheur When-Button-Pressed du bouton Quitter dans l'application appelée :

:GLOBAL.quit_check := 'quit';
Exit_Form;

Dans l'application Forms appelante, lire la valeur de la variable globale immédiatement après l'instruction de procédure CALL_FORM :

Texte du déclencheur dans l'application Forms appelante A :

CALL_FORM('form_b');
/*
** Les instructions suivantes s'exécutent immédiatement après
** le retour de l'application Forms appelée.
*/
IF :GLOBAL.quit_check = 'quit' THEN
  exit_form;
END IF;


Appel d'une application Forms en mode Interrogation seulement

Lorsque vous appelez une application Forms en utilisant CALL_FORM ou NEW_FORM, vous pouvez indiquer si l'application appelée doit s'exécuter en mode normal ou en mode Interrogation seulement. En mode Interrogation seulement, l'application peut interroger la base de données, mais ne peut pas effectuer d'insertions, de mises à jour ou de suppressions.

Pour indiquer qu'une application doit s'exécuter en mode Interrogation, fournissez la constante appropriée au paramètre du mode Interrogation dans la liste d'arguments CALL_FORM ou NEW_FORM. Les constantes valides sont NO_QUERY_ONLY (mode normal) et QUERY_ONLY.

Par exemple :

CALL_FORM('form_b',
          no_hide,
          no_replace,
          query_only);

  ou

NEW_FORM('form_b',
         to_savepoint,
         no_query_only);

Remarque : Form Builder exécute toute application Forms appelée à partir d'une application en mode Interrogation seulement comme une application QUERY_ONLY, même si la syntaxe de CALL_FORM ou de NEW_FORM indique que l'application appelée doit s'exécuter en mode NO_QUERY_ONLY (normal).


Utilisation de CALL_FORM avec OPEN_FORM dans la même application

 Exemples	   Restrictions

Lorsque vous exécutez CALL_FORM pour appeler une application modale, l'application appelante est désactivée jusqu'à ce que l'utilisateur quitte l'application appelée (et revienne à l'application appelante). Lorsqu'une application appelante est désactivée, ses fenêtres sont grisées et l'utilisateur ne peut pas définir le point d'insertion dans les éléments de l'application.

Une application appelée peut à son tour appeler une autre application. Dans ce cas, trois applications Forms sont chargées en mémoire, dont l'une est active et peut être à la disposition de l'utilisateur. Lorsque plusieurs applications Forms sont chargées par la procédure CALL_FORM, la hiérarchie de modules résultants est appelée pile d'appels d'application Forms.


Utilisation de CALL_FORM avec OPEN_FORM dans la même application - Restrictions

Lorsque vous appelez plusieurs applications Forms dans une même application en utilisant les procédures internes OPEN_FORM et CALL_FORM, les restrictions suivantes s'appliquent :

•	Navigation  Vous ne pouvez pas naviguer par programme vers une application désactivée d'une pile d'appels d'application Forms.

•	Appel d'applications Forms  Une application Forms ouverte ne peut pas exécuter la procédure CALL_FORM si une chaîne d'applications appelées a été déclenchée par une autre application Forms ouverte.


Utilisation de CALL_FORM avec OPEN_FORM dans la même application - Exemple

•	Prenons l'exemple suivant : (1) l'application A appelle l'application B, (2) l'application B ouvre l'application C, (3) l'application C ouvre l'application D et (4) l'application B appelle l'application E. A ce stade, il y a trois applications Forms actives et de navigation autorisée (C, D et E) et deux applications désactivées et de navigation non autorisée (A et B). Toute tentative de navigation par programme vers les applications A ou B génère une erreur. Les applications A, B et E représentent la pile d'appels d'application Forms en cours dans l'application. Si l'application Forms C tente d'en appeler une autre, une erreur se produit, car une application ouverte ne peut pas exécuter CALL_FORM lorsqu'il y a une pile d'applications Forms appelées déclenchée par une autre application Forms (dans le cas présent, A). Pour que l'application C puisse exécuter CALL_FORM, l'utilisateur ou l'application doit quitter l'application E (pour revenir à l'application B), puis sortir de l'application B (pour fermer la pile d'appels d'application Forms). En cas de sortie de l'application Forms D, le point d'insertion est rendu à l'application Forms à partir de laquelle l'application D a été ouverte (dans le cas présent, C). En cas de sortie de C, le point d'insertion est rendu à E, même si B a, au départ, ouvert C, pour la simple raison que B est désactivée à la suite de l'émission d'une procédure CALL_FORM appelant l'application E.


Gestion des opérations commit lors de l'utilisation de CALL_FORM

Dans une application multiformulaire, les applications appelées et les applications appelantes peuvent émettre des commandes DML pour verrouiller des enregistrements, enregistrer des modifications dans la base de données et annuler des modifications inscrites. Cette section décrit les concepts et les techniques de gestion des opérations commit des applications appelées.


Inscription et enregistrement dans la base de données

Si votre application implique que les transactions de la base de données s'étendent aux applications appelées, vous devez connaître la différence entre l'inscription (post) et l'enregistrement dans la base de données (commit).

Pendant une opération commit par défaut, Form Builder émet les instructions SQL nécessaires pour mettre à jour, supprimer ou insérer les enregistrements marqués dans l'application Forms comme étant modifiés, supprimés ou insérés. Form Builder émet alors l'instruction COMMIT pour enregistrer ces transactions dans la base de données.

L'inscription est l'opération qui consiste à écrire dans la base de données des mises à jour, des suppressions et des insertions effectuées sur l'application Forms, sans les enregistrer dans la base de données. L'exécution de la procédure interne POST vous permet de demander que Form Builder inscrive explicitement ces opérations, sans les enregistrer dans la base de données.

Lorsqu'une application exécute la procédure POST, Form Builder effectue toutes opérations de validation et d'enregistrement par défaut, mais n'émet pas l'instruction COMMIT pour finaliser ces transactions.

Etant donné que les transactions inscrites ont été écrites dans la base de données, Forms Builder n'a pas à tenir à jour l'état des enregistrements concernés des applications Forms appelées. Plus important encore, comme ces transactions n'ont pas été enregistrées dans la base de données, elles peuvent être annulées par programme. Cette fonction vous permet de gérer des transactions dans des applications Forms appelées.


Qu'est-ce que le mode Inscription seulement ?

Lorsqu'une application Forms appelante comporte des suppressions ou des mises à jour en attente qui n'ont pas été explicitement inscrites, Form Builder exécute l'application appelée en mode Inscription seulement (Post-only). En outre, toute application Forms appelée à partir d'une application s'exécutant en mode Inscription seulement sera également en mode Inscription seulement.

Dans ce mode, aucun enregistrement dans la base de données ni aucune annulation complète n'est autorisée. Toute tentative de validation déclenche l'apparition du message :

FRM-40403: Modifications non appliquées dans l'application Forms appelante. Enregistrement non autorisé.

Si un utilisateur modifie des enregistrements de l'application appelée, puis émet la commande Quitter par défaut, Form Builder affiche le message d'alerte :

Voulez-vous appliquer les modifications apportées ?

Cette fonction tient à jour les verrous obtenus par une application appelante, jusqu'à ce que le contrôle soit rendu à cette application.


A propos des savepoints et des annulations

Lorsque la propriété Mode savepoint de toutes les applications Forms d'une application est activée (valeur par défaut), Form Builder émet un point d'enregistrement chaque fois qu'une application est chargée en mémoire lors du démarrage de l'application Forms, ou par NEW_FORM ou CALL_FORM (aucun point d'enregistrement n'est émis lorsqu'une application est appelée par OPEN_FORM). Lorsqu'une application appelle plusieurs applications Forms, les points d'enregistrement divisent les transactions de base de données en segments qui correspondent à des modules Application Forms spécifiques.

Comme Form Builder émet un point d'enregistrement pour chaque application Forms appelée, votre application peut inscrire et annuler les modifications apportées à des applications Forms individuelles sans que cette opération affecte les modifications apportées à d'autres applications Forms actives pendant la session.


Annulation des modifications

Les procédures internes EXIT_FORM et NEW_FORM ont un point commun : elles provoquent toutes deux la sortie de Form Builder de l'application Forms en cours. Cependant, tandis que EXIT_FORM quitte simplement l'application Forms en cours, NEW_FORM nomme une autre application Forms qui doit être chargée à sa place. Dans les deux cas, Form Builder doit, avant de quitter, soit conserver, soit annuler les modifications apportées à l'application Forms en cours. CLEAR_FORM maintient ou annule également les modifications, selon le cas.

Vous pouvez choisir de conserver ou d'annuler les modifications apportées à une application Forms lorsque :

•	une application Forms exécute la procédure interne EXIT_FORM ;

•	l'utilisateur sélectionne l'élément Quitter dans le menu Action par défaut (ce qui équivaut à appeler EXIT_FORM avec des paramètres par défaut) ;

•	une application Forms exécute la procédure interne NEW_FORM ;

•	une application Forms exécute la procédure interne CLEAR_FORM ;

•	l'utilisateur sélectionne la commande Effacer tout dans le menu Action par défaut (ce qui équivaut à appeler CLEAR_FORM avec des paramètres par défaut)

Le maintien ou l'annulation des modifications dépend du mode d'annulation spécifié pour ces opérations.

Lorsque vous appelez les procédures EXIT_FORM, NEW_FORM ou CLEAR_FORM, le mode d'annulation est déterminé par la constante que vous fournissez pour le paramètre de mode Annulation (Rollback_mode) : TO_SAVEPOINT, NO_ROLLBACK ou FULL_ROLLBACK.


A propos des paramètres du mode Annulation

Les paramètres TO_SAVEPOINT, NO_ROLLBACK et FULL_ROLLBACK sont des constantes numériques prédéfinies qui doivent être entrées sans apostrophe, comme l'indiquent les exemples suivants :

CLEAR_FORM(ask_commit, to_savepoint);
NEW_FORM('my_form', no_rollback);
EXIT_FORM(ask_commit, full_rollback);

Paramètres d'annulation	Description
TO_SAVEPOINT	Option par défaut. Form Builder annule les modifications non enregistrées (y compris les modifications inscrites) jusqu'au dernier point d'enregistrement. Si l'application est une application appelée, toutes les modifications qui ont été inscrites dans l'application appelante sont conservées. Cependant, les modifications apportées à l'application Forms en cours ou les verrous acquis sont perdus.
NO_ROLLBACK	Form Builder n'émet pas d'annulation, et les modifications inscrites sont conservées (les modifications non inscrites apportées à la même application Forms en cours sont perdues). Lors de l'appel d'une nouvelle application Forms ou de la sortie d'une application Forms appelée, les verrous obtenus par l'application Forms en cours restent en vigueur.
FULL_ROLLBACK	Form Builder annule toutes les modifications non enregistrées en attente dans la session en cours (y compris les modifications inscrites), ainsi que les modifications apportées à l'application Forms en cours, les modifications inscrites apportées aux applications Forms ayant appelé l'application Form en cours et les modifications inscrites effectuées dans les applications Forms appelées par l'application Forms en cours.

Notez que les annulations complètes ne sont pas autorisées lorsqu'une application Forms est en mode Inscription seulement (Post-only) et que l'appel d'une procédure avec le paramètre FULL_ROLLBACK retourne un message d'erreur du type:

FRM-40739: Paramètre FULL_ROLLBACK non autorisé dans une application Forms Post-only.


Mode Annulation par défaut

Le mode Annulation par défaut des procédures CLEAR_FORM, NEW_FORM et EXIT_FORM est TO_SAVEPOINT. Les instructions :

CLEAR_FORM;
NEW_FORM('nom_appliform');
EXIT_FORM;

sont donc logiquement équivalentes à :

CLEAR_FORM(ask_commit, to_savepoint);
NEW_FORM('form_name', to_savepoint);
EXIT_FORM(ask_commit, to_savepoint);

Remarque : Form Builder interprète une instruction ROLLBACK dans un bloc PL/SQL comme une procédure interne CLEAR_FORM sans paramètre.


Modification des commandes CLEAR_ALL et EXIT

  Rubriques connexes

Le menu Application Forms par défaut de Form Builder comporte une commande Annuler tout, dans le menu Action, qui permet à l'utilisateur d'annuler les modifications apportées à une application Forms. Par défaut, l'option Annuler tout équivaut, sur le plan fonctionnel, à l'exécution de la procédure CLEAR_FORM avec les paramètres par défaut :

CLEAR_FORM(ask_commit, to_savepoint);

De même, l'option Quitter du menu Action équivaut, sur le plan fonctionnel, à l'appel de la procédure EXIT_FORM avec les paramètres par défaut :

EXIT_FORM(ask_commit, to_savepoint);

Comme ces options de menu correspondent directement à des commandes sur touche, vous pouvez modifier leur fonction en écrivant un déclencheur sur touche approprié. Par exemple, si vous souhaitez modifier le comportement par défaut de l'option de menu Effacer tout, pour annuler toutes les modifications apportées au cours de la session, y compris celles inscrites dans les applications Forms appelantes, écrivez le déclencheur Key-CLRFRM (" clear-form ") pour déclencher une annulation complète :

CLEAR_FORM(no_commit, full_rollback);

De même, pour modifier le mode d'annulation de l'option de menu Quitter, remplacez-le par NO_ROLLBACK afin que les modifications inscrites dans l'application Forms en cours ne soit pas annulées en sortie. Pour cela, écrivez le déclencheur Key-Exit suivant :

EXIT_FORM(ask_commit, no_rollback);


Utilisation des modes Inscription et Annulation pour la gestion des transactions

 Exemples

Bien qu'une application puisse comporter plusieurs modules Application Forms, elle ne peut traiter qu'une transaction de base de données à la fois. Une opération commit sur une application Forms enregistre dans la base de données les mises à jour, insertions et suppressions en attente pendant toute la session d'application, et non pour une application Forms particulière de l'application. Cela étant, une opération commit émise par une application B peut enregistrer dans la base de données les modifications inscrites par l'application A. De même, une commande d'annulation peut annuler les modifications inscrites dans les applications Forms autres que l'application Forms en cours.

Lorsque vous développez une application comportant plusieurs applications Forms, vous pouvez utiliser les modes Inscription et Annulation pour contrôler les opérations commit dans les applications Forms appelées.

Lorsque des modifications sont inscrites dans l'application Forms appelante, l'application appelée ne s'exécute pas en mode Inscription seulement, et l'utilisateur peut émettre une opération commit à partir de l'application Forms appelée. Les étapes ci-dessous illustrent cette séquence et indiquent comment l'inscription permet à une application Forms appelée d'enregistrer dans la base de données les modifications apportées à l'application Forms appelante :

1	Mise à jour ou suppression des enregistrements de l'application Forms A.

2	Inscription dans l'application Forms A.

3	Appel de l'application Forms B.

4	Insertion, mise à jour ou suppression des enregistrements dans l'application Forms B.

5	Enregistrement dans la base de données de l'application Forms B. (Cette opération enregistre dans la base de données les modifications apportées à l'application B et les modifications inscrites dans l'application A.)

6	Sortie de l'application Forms B.


Utilisation des modes Inscription et Annulation pour la gestion des transactions - Exemples

/* EXEMPLE 1 : Opération commit à partir d'une application Forms appelée

** Form Builder exécute des applications Forms appelées en mode Inscription seulement lorsque
** l'application Forms appelante comporte des modifications non inscrites.
** Bien que le mode Inscription seulement soit utile dans de nombreuses
** applications, son externalisation pour l'utilisateur peut accroître la
** complexité de l'interface de votre application.
** Dans certaines applications, il peut être préférable d'empêcher totalement
** l'exécution des applications Forms en mode Inscription seulement. Pour
** cela, développer l'application de manière que les modifications soient
** explicitement inscrites avant l'appel d'une autre application Forms.
** Pour inscrire les modifications apportées à une application Forms,
** exécuter la procédure interne POST immédiatement avant d'appeler une
** application Forms en utilisant la procédure CALL-FORM ou NEW_FORM.
** Par exemple, il suffit d'inclure la procédure POST dans la commande
** d'option de menu ou dans le déclencheur When-Button-Pressed qui appelle
** l'application Forms suivante :
*/
POST;
IF (system.form_status <> 'QUERY') THEN
  CALL_FORM('form_b', no_hide);
END IF;

/* EXEMPLE 2 : Opération commit dans l'application Forms appelante de modifications
**             provenant de l'application Forms appelée
**
** Utiliser l'inscription pour autoriser une application Forms appelante à
** enregistrer dans la base de données, dans une application Forms appelée,
** les modifications inscrites. Cette séquence est illustrée par les étapes
** suivantes :
**
** 1. Mettre à jour ou supprimer des enregistrements de l'application A.
** 2. Appeler l'application B. L'application B est en mode Inscription
**    seulement, car des modifications apportées à l'application A n'ont
**    pas été explicitement inscrites.
** 3. Insérer, mettre à jour ou supprimer des enregistrements dans
**    l'application B.
** 4. Inscrire dans l'application B les modifications apportées.
** 5. Sortir de l'application B avec le paramètre NO_ROLLBACK.
** 6. Enregistrer dans la base de données les modifications apportées à
**    l'application A. Cette opération enregistre dans la base de données
**    les modifications apportées à l'application A et celles inscrites
**    dans l'application B.
**
** Lors de la sortie de l'application B et du retour du contrôle à
** l'application A (étape 5), le mode Annulation est défini à NO_ROLLBACK
** pour conserver les modifications qui ont été inscrites dans
** l'application B.


Contrôle des enregistrements modifiés

Si la procédure interne POST est exécutée alors qu'il n'y a pas de modification à inscrire, Form Builder émet le message d'erreur :

FRM-40405: Aucune modification à appliquer.

Pour éviter cette erreur, avant de tenter d'inscrire les modifications, vérifiez le contenu de la variable système SYSTEM.FORM_STATUS pour vous assurer qu'au moins un enregistrement de l'application Forms a été enregistré comme modifié (CHANGED).

ENTER;
IF system.form_status = 'CHANGED' THEN
  POST;
END IF;
CALL_FORM('form_b', no_hide);

Comme le mode Annulation par défaut lors de la sortie d'une application Forms est TO_SAVEPOINT, vous devez explicitement remplacer cette fonctionnalité pour éviter une annulation. Par exemple, si l'utilisateur sélectionne l'option Quitter du menu Action par défaut, les modifications apportées à l'application Forms appelée seront perdues. Pour modifier la commande Quitter par défaut, vous pouvez écrire le déclencheur suivant :

Déclencheur Key-EXIT :

IF system.form_status = 'CHANGED' THEN
  POST;
END IF;
EXIT_FORM(no_commit, no_rollback);

Choisissez cette technique lorsque vous sortez de l'application Forms en cours en exécutant la procédure NEW_FORM au lieu de EXIT_FORM.

IF system.form_status = 'CHANGED' THEN
  POST;
END IF;
NEW_FORM(no_commit, no_rollback);

Dans ce cas, les modifications inscrites par l'application Forms appelée peuvent alors être enregistrées dans la base de données par la nouvelle application Forms qui la remplace.


Recherche d'informations sur la pile d'appels d'application Forms

 Exemples	     Rubriques connexes

Vous pouvez utiliser la fonction interne GET_APPLICATION_PROPERTY pour obtenir des informations sur la pile d'appels d'application Forms d'une application multiformulaire, et notamment :

•	le nom de l'application Forms en cours (paramètre CURRENT_FORM) ;

•	le nom de l'application Forms  qui a appelé l'application Forms en cours (paramètre CALLING_FORM) ;

•	le nom et le mot de passe de l'utilisateur en cours (paramètres USERNAME et PASSWORD).


Recherche d'informations sur la pile d'appels d'application Forms - Exemple

/* Rechercher l'application Forms qui a appelé l'application Forms en cours

** (par CALL_FORM)
*/
DECLARE
  parent_form  CHAR(20);
BEGIN
  parent_form := GET_APPLICATION_PROPERTY(calling_form);
  IF parent_form = 'form_A' THEN
    POST;
    EXIT_FORM(no_commit, no_rollback);
  ELSE
    COMMIT_FORM;
    EXIT_FORM;
  END IF;
END;


Suppression des messages d'inscription et d'enregistrement de transactions

Si, lorsque vous développez des applications multiformulaires, vous souhaitez supprimer les messages concernant l'inscription et l'enregistrement des transactions, pensez à définir la variable système SYSTEM.MESSAGE_LEVEL à 5 juste avant une inscription ou une opération commit, puis redonnez-lui la valeur de votre choix.


Transfert de paramètres à des applications Forms

  Rubriques connexes

Lorsque vous appelez une application Forms dans les procédures OPEN_FORM, CALL_FORM ou NEW_FORM, vous pouvez transférer de l'application appelante à l'application appelée des valeurs de paramètres d'application Forms.

Ce transfert n'est possible que si chaque paramètre et sa valeur sont dans une liste de paramètres. Les listes de paramètres sont des structures de données internes en 3 colonnes, qui contiennent la clé (nom), le type (Text_Parameter ou Data_Parameter) et la valeur de chaque paramètre de la liste.

Les paramètres dont les valeurs sont transférées doivent avoir été définis dans l'application Forms appelée lors de la conception - c'est-à-dire que l'application Forms appelée doit attendre une valeur pour chacun des paramètres inclus dans la liste de paramètres qu'elle reçoit de l'application Forms appelante.

Vous pouvez définir des paramètres dans une application Forms, dans le Navigateur d'objet, lors de la conception et également par programme lors de l'exécution. Les propriétés d'un paramètre comprennent notamment le nom, le type de données de paramètre, la longueur et la valeur initiale de paramètre. Les listes de paramètres doivent être créées par programme à l'aide des routines intégrées CREATE_PARAMETER_LIST et ADD_PARAMETER.

Les valeurs de paramètre ne sont pas visibles dans les applications Forms multiples. Cela étant, même si vous avez défini un paramètre appelé P1 dans l'application Forms A et dans l'application Forms B, chaque application a son propre contexte, et la définition de la valeur de P1 dans l'application B est sans effet sur la valeur de P1 dans l'application A. Les paramètres sont donc surtout utiles dans des applications multiformulaires en tant qu'entrées dans une application Forms, lorsqu'elle est appelée pour la première fois.

Si votre application requiert des variables dont les valeurs doivent être visibles dans les applications Forms appelées, utilisez des variables globales, visibles dans les applications Forms appelées, qui restent actives jusqu'à ce qu'elles soient explicitement supprimées par la procédure interne ERASE, ou jusqu'à la fin de la session.


Transfert d'une liste de paramètres

 Exemples	     Rubriques connexes

Une liste de paramètres est transférée d'une application Forms à l'autre sous la forme de dernier argument des procédures internes OPEN_FORM, CALL_FORM ou NEW_FORM.


Transfert d'une liste de paramètres - Exemples

/* Cet exemple crée une liste de paramètres appelée form_a_parms

** et affecte son ID d'objet à une variable appelée P_list.
** Un paramètre de texte appelé P1 est alors ajouté à l'aide de ADD_PARAMETER
** et sa valeur est définie à " bicyclette ".
** Enfin, la liste de paramètres est transférée à l'application B
** comme dernier argument de la procédure OPEN_FORM.
** Pour que cet exemple soit fonctionnel, il faut qu'un paramètre d'application
** Forms, appelé P1, ait été déclaré dans l'application B lors de la conception,
** et que son type de données et sa longueur soient compatibles avec la valeur transférée.
*/
DECLARE
  p_list  PARAMLIST;
BEGIN
  p_list := CREATE_PARAMETER_LIST('form_a_params');
  ADD_PARAMETER(p_list, 'p1', text_parameter, 'BICYCLETTE');
  OPEN_FORM('form_b', activate, no_session, p_list);
END;


Liste de paramètres par défaut

 Exemples

Chaque application Forms comporte une liste de paramètres par défaut, appelée Default. Cette liste contient tous les paramètres d'application Forms qui ont été définis dans l'application Forms lors de la conception. Par exemple, si vous définissez les paramètres p1, p2 et p3 dans l'application Forms A lors de la conception, ces paramètres sont automatiquement inclus dans la liste de paramètres par défaut de l'application Forms A.


Liste de paramètres par défaut - Exemple

/* Comme toute autre liste de paramètres, la liste de paramètres par défaut

** peut être transférée à une application appelée. Pour cela, il suffit de l'inclure
** dans la liste des arguments des procédures internes OPEN_FORM, CALL_FORM ou
** NEW_FORM.
*/
DECLARE
  liste_p  PARAMLIST;
BEGIN
  liste_p := GET_PARAMETER_LIST('défaut');
  OPEN_FORM('form_b', activate, no_session, 'défaut');
END;


Valeurs initiales des paramètres d'une application Forms appelée

Le tableau ci-dessous indique comment les valeurs initiales des paramètres de l'application appelée sont déterminées par la liste de paramètres en cours de transfert par l'application appelante à l'aide de OPEN_FORM, CALL_FORM ou NEW_FORM. Il considère que les applications A (application appelante) et B (application appelée) comportent des paramètres correspondants.

Si l'application A transfère...	Les paramètres correspondants de l'application B sont définis ...
aucune liste de paramètres	aux valeurs de paramètres par défaut indiquées dans l'application B lors de la conception. Si aucune valeur par défaut n'a été indiquée, les valeurs de paramètre par défaut sont A et NULL.
la liste de paramètres Défaut	aux valeurs en cours des paramètres correspondants de l'application A.
une liste de paramètres créée par programme	aux valeurs indiquées pour les paramètres lorsqu'ils ont été entrés dans la liste de paramètre à l'aide de ADD_PARAMETER.


Validation de paramètres

 Exemples	     Rubriques connexes

Lorsque vous transférez la liste des paramètres par défaut à une application Forms, Form Builder valide les différents paramètres en les comparant aux paramètres définis dans l'application Forms appelée, de la manière suivante :

•	Chaque paramètre de la liste doit avoir été défini lors de la conception dans l'application Forms appelée. Si vous transférez un paramètre non défini, OPEN_FORM, NEW_FORM et CALL_FORM échouent, et Form Builder émet le message d'erreur  FRM-47023 : Le paramètre <nom du paramètre> n'existe pas sous ce nom dans l'application Forms <nom du module Application Forms>.

•	Le type de données et la longueur du paramètre défini dans l'application Forms appelée doivent être compatibles avec la valeur de paramètre en cours de transfert. (Les valeurs d'une liste de paramètres sont des chaînes sans type, alors que les paramètres Forms sont déclarés comme étant de type CHAR, NUMBER ou DATE). Si le paramètre est incompatible avec la valeur, OPEN_FORM, NEW_FORM ou CALL_FORM échouent, et Form Builder émet le message d'erreur FRM-47024 : Le type du paramètre <nom du paramètre> ne correspond pas à la définition de l'application Forms <nom de l'application Forms appelée>.

Vous pouvez modifier la liste de paramètres Défaut en ajoutant et en supprimant des paramètres à l'aide des procédures internes ADD_PARAMETER et DELETE_PARAMETER.


Validation de paramètres - Exemple

/* Pour éviter une erreur de validation, il est possible de supprimer de la liste les

** paramètres non nécessaires, avant de la transférer à une application Forms.
** Par exemple, si l'application B ne demande que des paramètres P1 et P2,
** P3 peut être supprimé de la liste avant son transfert
** à l'application Forms B.
*/
DECLARE
  p_list  PARAMLIST;
BEGIN
  p_list := GET_PARAMETER_LIST('défaut');
  DELETE_PARAMETER(p_list, 'p3');
  OPEN_FORM('form_b', activate, no_session, 'défaut');
END;


Intégration des modules Menu et Application Forms

Vous pouvez combiner en une seule application plusieurs modules Menu ou Application Forms. Vous pouvez développer une application dans laquelle plusieurs modules Application Forms partagent le même module Menu, ou chaque application Forms de l'application exécute son propre menu. La façon dont les menus sont chargés dans les applications multiformulaires dépend de la procédure utilisée (OPEN_FORM, NEW_FORM ou CALL_FORM).


Fonction de menu OPEN_FORM

Lorsque vous utilisez OPEN_FORM pour créer des applications multiformulaires, chaque module Application Forms a son propre module Menu. Lorsque l'utilisateur passe d'une application Forms à l'autre, le menu de l'application Forms en cours devient le menu en cours pour l'application. Notez que sous Microsoft Windows, le type d'affichage MDI impose que le menu de l'application Forms en cours soit affiché dans la fenêtre d'application MDI. Lorsque l'utilisateur passe d'une application Forms à l'autre, seul le menu de l'application Forms en cours est donc affiché.


Fonction de menu NEW_FORM

Lorsque vous utilisez NEW_FORM pour créer des applications multiformulaires, Form Builder charge toujours le module Menu de la nouvelle application Forms, même si c'est également celui qui est utilisé par l'application appelante.

Seule exception à cette règle : si l'application Forms qui exécute la procédure NEW_FORM est elle-même une application qui a été appelée avec le paramètre NO_REPLACE. Dans ce cas, la nouvelle application Forms hérite la restriction NO_REPLACE et s'exécute sous le menu de l'application Forms appelante.


Fonction de menu CALL_FORM

Lorsque vous utilisez CALL_FORM pour créer des applications multiformulaires, le paramètre de remplacement de menu détermine si Form Builder charge un menu différent ou conserve le menu en cours. Les constantes valides pour le paramètre de remplacement de menu comprennent DO_REPLACE et NO_REPLACE.

Si vous utilisez la valeur de paramètre NO_REPLACE (valeur par défaut), Form Builder conserve le module Menu en cours. Si vous utilisez DO_REPLACE, Form Builder remplace le module Menu en cours par le menu qui a été attaché lors de la conception à l'application Forms appelée (menu Form Builder par défaut ou module Menu personnalisé).

Par exemple :

CALL_FORM('form_b', hide, do_replace);

exécute l'application Forms B avec le menu attaché à l'application Forms B lors de la conception, au lieu de garder le menu en cours.


Création d'un menu principal

Dans les applications multiformulaires, le développeur crée souvent un menu frontal qui n'existe que pour afficher le menu principal de l'application. Les options du menu principal peuvent alors appeler des modules Application Forms individuels qui exécutent des fonctions propres aux applications. Pour créer un menu principal qui appelle d'autres applications Forms, commencez par créer un module Application Forms sans bloc ni élément, puis attachez votre module Menu principal à cette application Forms.

Appel d'applications Forms à partir d'un menu principal avec OPEN_FORM  Lorsque des options du menu principal appellent des applications Forms avec OPEN_FORM, chaque application Forms indépendante a son propre menu. Vous ne pouvez pas demander qu'une application Forms indépendante utilise le menu en cours.

Appel d'applications Forms à partir d'un menu principal avec NEW_FORM  Lorsque des options du menu principal appellent des applications Forms avec la procédure interne NEW_FORM, le module Menu attaché à chaque application Forms est chargé lorsque cette application est appelée. Lorsque toutes les applications Forms d'une application partagent le même menu, le rechargement du menu chaque fois qu'une nouvelle application Forms est appelée (avec interrogation éventuelle de la base de données) peut être inacceptable.

Pour éviter ce problème, créez une application Forms de démarrage qui n'existe que pour appeler l'application Forms frontale (et son menu principal), en exécutant CALL_FORM avec le paramètre NO_REPLACE. Dans ce cas, Form Builder ne recharge pas le menu chaque fois qu'une application Forms est appelée à partir du menu principal. Comme l'application Forms frontale est elle-même une application appelée, les modules Application Forms appelés par la procédure NEW_FORM héritent automatiquement la restriction NO_REPLACE et s'exécutent sous le menu principal.

Appel d'applications Forms à partir d'un menu principal avec CALL_FORM  Lorsque des options du menu principal appellent des applications Forms avec la procédure interne CALL_FORM, vous pouvez indiquer, en utilisant le paramètre de remplacement de menu (DO_REPLACE ou NO_REPLACE), si les applications appelées doivent, ou non, hériter le menu principal.


Utilisation de la procédure interne REPLACE_MENU

  Rubriques connexes

Vous pouvez utiliser la procédure interne REPLACE_MENU pour remplacer dynamiquement le menu de l'application Forms en cours par un autre :

Par exemple, pour remplacer le menu en cours par un menu appelé mon_nouveau_menu , écrivez l'appel de procédure suivant :

REPLACE_MENU('mon_nouveau_menu');


Support NLS dans Oracle Developer

  Rubriques connexes

Si vous développez des applications destinées au marché international, vous devez faire en sorte que les utilisateurs puissent utiliser leur langue maternelle et respecter les conventions locales d'affichage des données. Le support NLS (National Language Support) Oracle comporte trois couches principales :

•	prise en charge des systèmes d'encodage de caractères de la langue nationale ;

•	prise en charge des conventions linguistiques et nationales ;

•	traduction de l'interface.

Cette combinaison de prises en charge au niveau du caractère, de l'affichage des données et de l'interface garantit l'utilisation de vos applications dans la plupart des langues parlées en Europe, au Moyen-Orient et en Asie, et notamment l'acceptation des systèmes d'encodage de caractères sur plusieurs octets et de la bidirectionnalité.


Architecture NLS

  Rubriques connexes

Cette architecture se compose de deux parties principales :

•	les fonctions indépendantes de la langue ;

•	les données dépendantes de la langue.

Les fonctions indépendantes de la langue permettent de gérer l'utilisation des données, en fonction de la langue et du pays de l'utilisateur chargé de l'exécution ; elles mettent en forme les données automatiquement, selon les conventions locales de date et d'heure.

L'isolation des données dépendantes de la langue permet à votre application de ne gérer que la traduction de ses propres chaînes.


Variables d'environnement NLS

  Rubriques connexes

Vous pouvez utiliser les paramètres suivants comme variables d'environnement pour indiquer les paramètres linguistiques employés par Oracle Developer :

Parameter	Description
NLS_CALENDAR	Calendrier utilisé
NLS_CREDIT	Chaîne utilisée pour indiquer une valeur monétaire positive
NLS_CURRENCY	Symbole monétaire local
NLS_DATE_FORMAT	Format de date par défaut
NLS_DATE_LANGUAGE	Langue par défaut utilisée pour les dates
NLS_DEBIT	Chaîne utilisée pour indiquer une valeur monétaire négative
NLS_ISO_CURRENCY	Symbole monétaire ISO
NLS_LANG	Paramètres linguistiques utilisés par Oracle Developer
DEVELOPER_NLS_LANG	Langue des générateurs Oracle Developer
USER_NLS_LANG	Langue du composant Runtime d'Oracle Developer
NLS_LIST_SEPARATOR	Caractère utilisé pour séparer les éléments d'une liste
NLS_MONETARY_CHARACTERS	Séparateurs décimal et des milliers des valeurs monétaires
NLS_NUMERIC_CHARACTERS	Séparateurs décimal et des milliers des valeurs numériques
NLS_SORT	Type de tri utilisé pour les caractères

Pour plus d'informations sur ces paramètres, reportez-vous au manuel Oracle8 Reference.


Variable d'environnement NLS_LANG

  Exemples	  Rubriques connexes

Cette variable permet de définir les paramètres linguistiques employés par Oracle Developer.

NLS_LANG indique les éléments suivants :

•	la langue des messages que l'utilisateur reçoit, par exemple le message signalant un traitement en cours ;

•	les masques de format par défaut utilisés pour les dates et les nombres ;

•	la séquence de tri ;

•	le jeu de caractères.

La syntaxe de la variable NLS_LANG est la suivante :

NLS_LANG=langue_pays.jeudecaractères

où :

language	Langue ainsi que ses conventions pour l'affichage des messages et des noms de jour et de mois. Si aucune langue n'est indiquée, la valeur utilisée par défaut est American.
territory	Fait référence au pays et aux conventions correspondantes pour le format de date par défaut, le séparateur décimal des nombres et le symbole monétaire, et la numérotation des semaines et des jours. Si aucun pays n'est indiqué, la valeur utilisée par défaut est America.
jeudecaractères	Fait référence au jeu de caractères utilisé pour représenter les données. Il doit correspondre à la langue et à la plate-forme que vous utilisez. Cet argument contrôle également le jeu de caractères qui sert à afficher les messages.

Pour plus d'informations sur le paramètre NLS_LANG, reportez-vous au manuel Oracle8 Reference.


Variables d'environnement DEVELOPER_NLS_LANG et USER_NLS_LANG

  Exemples	  Rubriques connexes

Dans la plupart des cas, il suffit de définir une seule valeur pour NLS_LANG. Cependant, si vous devez utiliser simultanément deux jeux de fichiers de ressources et de messages sur le même ordinateur, deux autres variables d'environnement sont à votre disposition :

•	DEVELOPER_NLS_LANG, qui indique la langue du générateur du produit ;

•	USER_NLS_LANG, qui indique la langue du composant Runtime du produit.

La syntaxe de DEVELOPER_NLS_LANG et de USER_NLS_LANG est la même que celle de NLS_LANG.

A la place de cette variable, utilisez DEVELOPER_NLS_LANG et USER_NLS_LANG dans les cas suivants :

•	Vous préférez utiliser le générateur en anglais, mais vous développez une application dans une autre langue.

•	Vous créez une application à exécuter dans une langue qui utilise un jeu de caractères bidirectionnels.

•	Vous créez une application à exécuter dans une langue pour laquelle une version locale du générateur n'est pas disponible.

Remarque : Si ces variables d'environnement ne sont pas explicitement paramétrées, les valeurs par défaut de NLS_LANG sont utilisées.

Pour plus d'informations sur le paramètre NLS_LANG, reportez-vous au manuel Oracle8 Reference.


Définition des variables d'environnement NLS_LANG

  Exemples	  Rubriques connexes

Pour paramétrer les variables d'environnement NLS_LANG :

 Définissez les valeurs de ces variables comme vous définiriez d'autres variables d'environnement dans votre système d'exploitation de base, en respectant les règles propres à cette plate-forme (longueur de chemin d'accès, etc.).

Par exemple, pour paramétrer la variable NLS_LANG pour Microsoft Windows NT :

1	Dans le menu Démarrer, sélectionnez Exécuter.

2	Entrez « regedit », puis cliquez sur OK pour ouvrir l'éditeur de base de registres.

Remarque : Toute modification a une incidence sur la base de registres de Windows. Ne modifiez les variables d'environnement qu'en cas de nécessité absolue. Si vous vous êtes trompé, cliquez sur Annuler, puis recommencez.

1	Développez les noeuds HKEY_LOCAL_MACHINE, puis SOFTWARE.

2	Cliquez sur ORACLE pour afficher les variables d'environnement Oracle dans le panneau de droite de l'éditeur de base de registres.

3	Cliquez deux fois sur la variable d'environnement NLS_LANG.

4	Dans la zone de texte Données de la valeur, entrez une nouvelle valeur pour cette variable, puis cliquez sur OK.

Remarque : Pour utiliser une fonction NLS, vous devez au moins paramétrer la variable NLS_LANG de façon à ce qu'Oracle Developer puisse repérer les composants NLS.


Création d'alias de police sur les plates-formes Windows

  Rubriques connexes

Dans certains cas, vous créez une application en utilisant une police particulière, mais vous découvrez qu'une autre police est utilisée à l'exécution de cette application. Vous risquez de rencontrer ce problème lorsque vous employez une police anglaise, telle que MS Sans Serif ou Arial, dans un environnement non européen. Cela est dû au fait qu'Oracle Developer vérifie si le jeu de caractères associé à cette police correspond à celui indiqué par la variable d'environnement de langue. S'ils ne correspondent pas, Oracle Developer remplace automatiquement la police choisie par une autre dont le jeu de caractères correspond à celui de cette variable. Ainsi, dans l'application, la netteté de l'affichage des données renvoyées depuis la base de données est garanti.

Remarque : Si vous saisissez des caractères locaux utilisant une police anglaise, Windows les associe à une autre police de façon implicite.

Toutefois, il peut parfois être nécessaire de ne pas effectuer ce remplacement. Pour l'éviter, mettez en correspondance toutes les polices voulues avec le jeu de caractères WE8ISO8859P1 du fichier d'alias de police. Par exemple, si vous ne pouvez pas employer la police Arial dans votre application, ajoutez la ligne suivante à ce fichier :

Arial.....=Arial...WE8ISO8859P1


Jeux de caractères Microsoft Windows pris en charge

Jeu de caractères	Description
AR8MSWIN1256	Latin/arabe MS Windows sur 8 bits (page de codes 1256)
BG8MSWIN	Alphabet cyrillique bulgare MS Windows sur 8 bits
CL8MSWIN1251	Latin/alphabet cyrillique MS Windows sur 8 bits (page de codes 1251)
EE8MSWIN1250	Langues d'Europe de l'Est MS Windows sur 8 bits (page de codes 1250)
EL8MSWIN1253	Latin/grec MS Windows sur 8 bits (page de codes 1253)
ET8MSWIN923	Estonien MS Windows sur 8 bits (page de codes 923)
IW8MSWIN1255	Latin/hébreu MS Windows sur 8 bits (page de codes 1255)
JA16SJIS	Japonais sur 16 bits (Maj-JIS)
KO16KSC5601	Coréen sur 16 bits (KSC5601)
LT8MSWIN921	Lituanien MS Windows sur 8 bits (page de codes 921)
TH8TISASCII	Thaïlandais - Norme standard 620-2533, ASCII 8 bits
WE8ISO8859P1	Europe de l'Ouest - Norme ISO 8859-1
ZHS16CGB231280	Chinois simplifié sur 16 bits (CGB2312-80)
ZHT16BIG5	Chinois traditionnel sur 16 bits (BIG5)


Jeux de caractères arabes pris en charge

ID	Jeu de caractères	Description
61	AR8ASMO708PLUS	Latin/arabe sur 8 bits - ASMO 708 Plus Client
72	AR8XBASIC	Latin/arabe sur 8 bits - Client EBCDIC XBASIC
504	AR8NAFITHA711T	Latin/arabe sur 8 bits - Nafitha Enhanced 711 Client
505	AR8SAKHR707T	Latin/arabe sur 8 bits - Client SAKHR 707
506	AR8MUSSAD768T	Latin/arabe sur 8 bits - Client Mussa'd Alarabi/2 768
507	AR8ADOS710T	Latin/arabe sur 8 bits - Client MS-DOS 710 (arabe)
508	AR8ADOS720T	Latin/arabe sur 8 bits - Client MS-DOS 720 (arabe)
509	AR8APTEC715T	Latin/arabe sur 8 bits - Client APTEC 715
511	AR8NAFITHA721T	Latin/arabe sur 8 bits - Client Nafitha International 721
514	AR8HPARABIC8T	Latin/arabe sur 8 bits - Client HP ARABIC8
567	AR8ARABICMACT	Latin/arabe sur 8 bits - Client Macintosh


Conventions linguistiques et nationales

  Rubriques connexes

Tandis que les systèmes d'encodage de caractères garantissent la disponibilité des caractères de chaque langue, le support des conventions nationales permet l'affichage correct des données traduites.

La langue indiquée définit les conventions par défaut des caractéristiques suivantes :

•	la langue des messages du serveur ;

•	la langue des noms de jour et de mois, ainsi que les abréviations correspondantes indiquées dans les fonctions SQL TO_CHAR et TO_DATE ;

•	les symboles des instances correspondantes d'AM, de PM, d'AD et de BC ;

•	la séquence de tri par défaut des caractères lorsque la clause ORDER BY est indiquée (GROUP BY utilise un type de tri binaire, à moins que cette clause ne soit mentionnée) ;

•	le sens de l'écriture ;

•	les chaînes de réponse affirmatives ou négatives.

Par exemple, si la langue est paramétrée sur Français, les messages suivants :

ORA-00942:  table or view does not exist
FRM-10043:  Cannot open file.

sont traduits comme suit :

ORA-00942: table ou vue inexistante
FRM-10043: Ouverture de fichier impossible.

Le pays indiqué définit les conventions des caractéristiques de format de nombres et de date par défaut suivantes :

•	le format de date ;

•	les séparateurs décimal et des milliers ;

•	le symbole monétaire local ;

•	le symbole monétaire ISO ;

•	le premier jour de la semaine ;

•	le symbole de crédit et de débit ;

•	l'indicateur de semaine ISO ;

•	le séparateur de listes.

Par exemple, si le pays est paramétré sur France, le séparateur décimal des nombres est une virgule.


Langues prises en charge

Abréviation	Langue
us	Anglais (Etats-Unis)
ar	Arabe
bn	Bengali
ptb	Portugais (Brésil)
bg	Bulgare
frc	Français (Canada)
ca	Catalan
hr	Croate
cs	Tchèque
dk	Danois
nl	Néerlandais
eg	Egyptien
gb	Anglais (Royaume-Uni)
et	Estonien
sf	Finlandais
f	Français
d	Allemand
din	Allemand (normes DIN)
el	Grec
iw	Hébreu
hu	Hongrois
is	Islandais
in	Indonésien
n	Italien
ja	Japonais
ko	Coréen
esa	Espagnol (Amérique latine)
lv	Letton
lt	Lituanien
ms	Malais
esm	Espagnol (Mexique)
n	Norvégien
pl	Polonais
pt	Portugais
ro	Roumain
ru	Russe
zhs	Chinois simplifié
sk	Slovaque
sl	Slovène
e	Espagnol
s	Suédois
th	Thaïlandais
zht	Chinois traditionnel
tr	Turc
uk	Ukrainien
vn	Vietnamien

Remarque : Le fait qu'une langue soit prise en charge n'implique pas nécessairement qu'une traduction soit disponible.


Pays pris en charge

Algérie	Grèce	Portugal
Amérique	Hong Kong	Qatar
Autriche	Hongrie	Roumanie
Bahreïn	Islande	Arabie saoudite
Bangladesh	Irak	Slovaquie
Brésil	Israël	Slovénie
Bulgarie	Italie	Somalie
Canada	Japon	Espagne
Catalogne	Jordanie	Soudan
Chine	Corée	Suède
CEI	Koweït	Suisse
Croatie	Lettonie	Syrie
Chypre	Liban	Taiwan
République tchèque	Libye	Thaïlande
Tchécoslovaquie	Lituanie	Pays-Bas
Danemark	Malaisie	Tunisie
Djibouti	Mauritanie	Turquie
Egypte	Mexique	Ukraine
Estonie	Maroc	Emirats arabes unis
Finlande	Norvège	Royaume-Uni
France	Oman	Vietnam
Allemagne	Pologne	Yémen


Support bidirectionnel dans Oracle Developer

  Rubriques connexes

Le support NLS des langues du Moyen-Orient et d'Afrique du Nord comprend le support bidirectionnel des langues qui s'écrivent de droite à gauche.

Le support bidirectionnel permet aux développeurs de contrôler les éléments suivants :

•	l'orientation de la mise en page, notamment l'affectation des libellés à droite des éléments, et le positionnement correct des cases à cocher et des boutons d'option ;

•	la séquence de lecture, notamment l'orientation du texte de droite à gauche, ou vice versa ;

•	l'alignement, notamment la définition du point d'origine à partir de la gauche ou de la droite ;

•	la définition de l'état initial du clavier, qui permet de contrôler la création automatique des caractères locaux ou romains lorsque l'utilisateur final saisit les données dans une application Forms (il peut remplacer ce paramètre).

Les applications bidirectionnelles peuvent utiliser non seulement la variable d'environnement NLS_LANG, mais aussi deux autres variables d'environnement :

•	DEVELOPER_NLS_LANG

•	USER_NLS_LANG

Par exemple, pour utiliser une interface en anglais américain tout en développant une application en arabe dans un environnement Windows, paramétrez ces variables d'environnement de la manière suivante :

DEVELOPER_NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256
USER_NLS_LANG=ARABIC_pays.jeudecaractères


Support bidirectionnel dans Form Builder

  Rubriques connexes

Cinq propriétés permettent de définir l'apparence des objets dans les applications bidirectionnelles : Orientation, Justification, Séquence de lecture, Etat clavier et Etat initial clavier.

Orientation est une propriété générale dotant chaque objet d'autant de fonctions que possible. Pour tous les objets, à l'exception des éléments de texte et d'affichage, elle constitue l'unique propriété bidirectionnelle ; ce paramètre contrôle les autres aspects de la fonction bidirectionnelle. (Toutefois, les éléments de la liste comprennent les propriétés Etat initial clavier et Etat clavier.)

La propriété Orientation n'est pas disponible pour les éléments de texte et d'affichage. A la place, vous pouvez paramétrer de manière spécifique les propriétés Justification, Séquence de lecture, Etat initial clavier et Etat clavier.

Vous pouvez limiter l'état du clavier à une seule langue. Par exemple, si vous paramétrez Etat clavier sur Local, l'utilisateur final ne peut pas employer d'autre langue.

Lorsque les propriétés bidirectionnelles sont définies sur Par défaut, elles héritent leurs valeurs du sens naturel d'écriture indiqué par la variable d'environnement de la langue. Dans la plupart des cas, cette solution offre la fonctionnalité voulue. Il suffit d'indiquer des propriétés bidirectionnelles pour remplacer les valeurs par défaut héritées.

L'héritage des propriétés bidirectionnelles est le suivant :

	Le paramètre par défaut dérive sa valeur de l'objet suivant
Form	Variable d'environnement de la langue
Tous les objets, et notamment : Message d'alerte, Bloc, LOV, Fenêtre et Vue-canevas	Form
Tous les éléments, et notamment : Elément texte, Elément affiché, Case à cocher, Bouton, Groupe de boutons et Elément liste	Vue-canevas

La plupart des propriétés liées à la fonction bidirectionnelle peuvent être récupérées et paramétrées par programme. Pour plus d'informations, reportez-vous à la description du sous-programme intégré correspondant. Par exemple, pour en savoir plus sur l'obtention de la valeur de la propriété Orientation pour les boutons, reportez-vous à la description de GET_ITEM_PROPERTY.


Support bidirectionnel dans Report Builder

  Rubriques connexes

Trois propriétés permettent de définir l'apparence des objets dans les applications bidirectionnelles : Justification, Orientation (pour un objet) et Orientation (pour l'état). Les propriétés bidirectionnelles sont ajoutées aux objets dans l'ordre suivant :

Module,

Objet standard,

Champ,

Objet standard externe,

Bouton,

Objet standard de grille de paramètres.

Les objets ne figurant pas dans cette liste ne requièrent pas de support bidirectionnel (par exemple, les images) ou utilisent la valeur par défaut de l'une des propriétés d'objet ci-dessus.


Support du jeu de caractères Unicode dans Oracle Developer

  Rubriques connexes

Unicode est un jeu de caractères universel permettant d'afficher un texte multilingue dans une même application. Ainsi, les multinationales peuvent développer une même application en plusieurs langues pour l'utiliser dans le monde entier.

Les marchés mondiaux requièrent un jeu de caractères satisfaisant aux critères suivants :

•	être assez simple pour être utilisé dans n'importe quel pays et permettre la création standard d'un produit dans toutes les langues ;

•	contenir tous les principaux scripts existants ;

•	prendre en charge utilisateurs et organisations multilingues ;

•	permettre l'échange d'informations via le réseau Internet mondial.

Oracle Developer prend en charge le jeu de caractères Unicode. Si vous utilisez ce dernier, vous pouvez afficher dans la même application plusieurs langues sur un octet, par exemple celles de l'Europe de l'Est et de l'Ouest, ou du Moyen-Orient (type bidirectionnel), ainsi que les langues asiatiques sur plusieurs octets, telles que le chinois, le japonais et le coréen.

Si vous employez un jeu de caractères unique pour toutes les langues, vous n'avez pas besoin d'en définir un pour chaque langue.

Par exemple, pour afficher une langue sur plusieurs octets comme le japonais, la variable d'environnement NLS_LANG doit être paramétrée de la manière suivante (pour les plates-formes Windows) :

Japan_Japanese.JA16SJIS

Pour afficher une langue sur un octet comme l'allemand, la variable d'environnement NLS_LANG doit être paramétrée de la manière suivante (pour les plates-formes Windows) :

German_Germany.WE8ISO8859P1

Naturellement, l'inconvénient de ce système est que les applications ne peuvent afficher qu'un jeu de caractères à la fois. Il n'est pas possible d'utiliser plusieurs jeux de caractères.

Le jeu de caractères Unicode vous permet de paramétrer le jeu de caractères de NLS_LANG sur UTF8 au lieu d'un jeu de caractères de langue précis. Ainsi, les caractères propres à différents jeux de caractères et langues apparaissent simultanément.

Par exemple, pour afficher un texte en japonais et en allemand, la variable d'environnement NLS_LANG doit être paramétrée de la manière suivante :

Japanese_Japan.UTF8

ou

German_Germany.UTF8

La fonction Unicode d'Oracle Developer permet au développeur et à l'utilisateur final d'afficher un texte multilingue dans une application Forms. Ce texte peut provenir du Presse-papiers ou d'une base de données dont les objets de l'interface utilisateur graphique contiennent un texte Unicode multilingue (par exemple, les libellés des boutons), ou être saisi à l'aide du clavier. Actuellement, Oracle Developer prend en charge le jeu de caractères Unicode sous Windows NT 4.0 et sous Windows 95/98 (prise en charge limitée).

Remarque : Si vous développez plusieurs applications Web, vous pouvez utiliser le jeu de caractères Unicode, car il est pris en charge par Java.


Notes concernant la configuration

  Rubriques connexes

Les serveurs UNIX peuvent prendre en charge plusieurs répertoires ORACLE_HOME (où ORACLE_HOME est le répertoire créé par et pour les programmes Oracle) et, par conséquent, différents paramètres NLS. Cela signifie qu'un même serveur UNIX peut prendre en charge plusieurs langues.

Toutefois, Windows NT ne peut prendre en charge qu'un seul répertoire ORACLE_HOME et ne peut donc être doté que d'un paramètre NLS, c'est-à-dire qu'il ne peut prendre en charge qu'une seule langue.


Prise en charge des polices Unicode

  Rubriques connexes

Pour afficher un texte Unicode multilingue, vous devez utiliser une police constituée des glyphes (ou caractères des langues à faire apparaître). Sous Windows NT et sous Windows 95/98, vous devez employer les « grandes polices » TrueType fournies par Microsoft ou la police Unicode d'un fabricant tiers. Si, lorsque vous essayez de saisir, d'afficher ou d'imprimer un texte multilingue, des caractères inattendus apparaissent, vous n'utilisez peut-être pas une grande police. Les grandes polices Microsoft disponibles sous Windows NT 4.0 sont les suivantes :

•	Arial

•	Courier New

•	Lucida Console

•	Lucida Sans Unicode

•	Times New Roman

Une police fournie par un fabricant tiers peut être employée si les grandes polices Windows ne correspondent pas à vos besoins.


Activation de la prise en charge du jeu de caractères Unicode

  Rubriques connexes

Dans Oracle Developer, pour activer la prise en charge du jeu de caractères Unicode, paramétrez la variable NLS_LANG de la manière suivante :

NLS_LANG=langue_pays.UTF8


Conversion des jeux de caractères

  Rubriques connexes

Lorsque vous créez des applications à utiliser dans plusieurs langues, il est nécessaire de tenir compte des jeux de caractères employés respectivement par les utilisateurs finals et par les développeurs. Au cours de l'exécution, la conversion au niveau des jeux de caractères est automatique ; elle a une incidence sur les performances.

Par exemple, si vous créez une application à l'aide d'un jeu de caractères et que vous l'exécutiez via un autre, vous pouvez noter que les performances sont plus faibles. En outre, si l'un des jeux de caractères ne contient pas l'équivalent d'un caractère d'un autre jeu, un caractère de substitution apparaît à la place, par exemple un point d'interrogation (?). Cependant, même si vous n'observez pas de différence notable, vous devez en tant que développeur prêter attention aux jeux de caractères que vous utilisez lors de la création d'une application pour conserver les mêmes.

Remarque : Oracle Developer ne convertit que les jeux de caractères de la même langue, tels que AR8MSWIN et AR8ISO, ou IW8MSWIN et IW8ISO.

Si vous développez des applications devant s'exécuter dans plusieurs langues, ou même dans une seule, mais avec des jeux de caractères différents, vous devez adapter votre environnement de génération à votre environnement d'exécution afin d'optimiser les performances. Pour cela :

•	Définissez le jeu de caractères le plus souvent utilisé au cours de l'exécution.

•	Créez vos applications en paramétrant la variable d'environnement de la langue sur ce jeu de caractères.

Remarque : Dans Form Builder, le même jeu de caractères est utilisé lors du développement et pendant l'exécution des applications, quel que soit celui indiqué dans l'environnement d'exécution.


Interface utilisateur Oracle Developer

  Rubriques connexes

Oracle utilise le même exécutable pour internationaliser ses programmes. En d'autres termes, vous n'avez pas besoin d'employer d'autre exécutable, par exemple f60des.exe, afin de traiter les langues européennes sur un octet ou les langues asiatiques sur plusieurs octets. Les mêmes outils peuvent être utilisés pour créer des applications dans diverses langues, dont l'anglais.

Remarque : Oracle Developer utilise le système d'exploitation Microsoft Windows pour définir les polices et méthode de saisie des diverses langues. Pour entrer et afficher un texte dans une langue, vous devez exécuter une version de Windows la prenant en charge. Par exemple, pour le thaïlandais, il s'agit de la version de Windows dans cette langue.

Lors de l'installation d'Oracle Developer, vous sélectionnez la langue des fichiers de messages à installer. Lorsque vous utilisez un composant Oracle Developer, tel que Form Builder, le fichier de messages correspondant est utilisé, selon la variable d'environnement de la langue employée, pour afficher l'interface, et notamment les éléments suivants :

•	les messages ;

•	les menus et leurs options ;

•	les boîtes de dialogue ;

•	les invites et les messages d'aide ;

•	les messages d'alerte.

Si Oracle Developer ne trouve pas de fichier de messages correspondant au paramètre linguistique choisi, il utilise par défaut les fichiers de messages en anglais américain.

Remarque : Lors de l'installation, vous ne pouvez indiquer qu'une seule langue pour installer les fichiers de messages, outre ceux en anglais américain. Si vous souhaitez ultérieurement exécuter la version d'Oracle Developer dans une autre langue, il est nécessaire de réinstaller ce programme à l'aide des fichiers de messages correspondants.

La convention de dénomination des fichiers de messages fait référence au composant Oracle Developer et à la langue concernés, au format suivant :

<id_produit><id_langue>.MSB

Par exemple, dans Form Builder :

FMDUS.MSB contient les messages par défaut (en anglais américain) de Builder.

FMGUS.MSB contient les messages par défaut (en anglais américain) de Generate.

FMFUS.MSB contient les messages par défaut (en anglais américain) de Runform.

FMFI.MSB contient les messages en italien de Runform.

FMFD.MSB contient les messages en allemand de Runform.

Pour plus d'informations sur l'installation du fichier de messages dépendants de la langue, reportez-vous au guide d'utilisation et d'installation de votre plate-forme.

Remarque : Les modules de langue supplémentaires ne sont pas compatibles en aval. Ils sont uniquement conçus pour la version d'Oracle Developer avec laquelle ils ont été fournis. Si vous disposez de versions précédentes dotées de ces modules, supprimez-les du système.


Utilisation de CONVERT pour la conversion des données

Vous pouvez utiliser la fonction SQLCONVERT pour convertir des jeux de caractères. Elle convertit la représentation binaire d'une chaîne d'un jeu de caractères vers un autre. Pour plus d'informations sur ce type de conversion, reportez-vous à Conversion des jeux de caractères.

Pour obtenir la description complète de CONVERT, reportez-vous au manuel Oracle8 SQL Reference.


Masques de format par défaut

  Exemples	  Rubriques connexes

La variable d'environnement ne définit pas seulement la langue de l'interface Oracle Developer, mais aussi l'ensemble des masques de format par défaut utilisés pour afficher les données, à moins que ces derniers ne soient remplacés par des masques de format explicites. En tant que développeur d'applications, vous disposez également d'autres caractères de masque de format NLS, si vous choisissez de remplacer les masques d'affichage par défaut.

Les masques de format par défaut associés au pays indiqué sont employés pour toute saisie de données dans Oracle Developer ou dans l'application, de façon à ce que vous puissiez changer de langue lorsque vous développez et exécutez une application, sans avoir à modifier les formats de nombres et de date.

Oracle Developer utilise notamment les masques de format par défaut :

•	dans le générateur, lorsqu'il affiche les valeurs par défaut des éléments, des plages ou des paramètres ;

•	au cours de l'exécution, si un utilisateur entre des données dans un élément texte dont le type varie en fonction du pays, tel que DATE ou NUMBER.

Pour les champs de date et de devise des applications multilingues, vous devrez décider :

•	d'agrandir ou non tous les éléments affichés (objets standard, éléments texte, ou objets d'interface, tels que les boutons et les listes de valeurs) pour que les conventions de traduction des valeurs numériques et celles propres à chaque langue tiennent dans la zone d'affichage.

•	d'utiliser les caractères NLS pour créer des masques de format spéciaux ou de conserver ceux par défaut appelés par la variable NLS_LANG, considérés comme suffisants.


Conseil
Pour les conversions de type de données implicites, PL/SQL s'attend toujours à lire des éléments au format par défaut America (par exemple, JJ-MOI-AA). Si vous utilisez un élément dont le type est propre à un pays dans PL/SQL, vous devez donc indiquer les masques de format appropriés. Oracle conseille d'utiliser TO_DATE pour traduire les éléments propres à un pays dans PL/SQL.

IF :emp.hiredate < TO_DATE(’30-12-1996’,’DD-MM-YYYY’) THEN
   ...


Caractères de masque de format

  Exemples	  Rubriques connexes

Les caractères de masque de format suivants vous permettent de remplacer les masques de format par défaut :

Caractères de masque de format de date

Caractère	Retourne
D	Chiffre correspondant au jour (1-7)
JO	Nom du jour (abrégé)
JOUR	Nom du jour (rempli de blancs jusqu'à concurrence de 9 caractères)
SS	Chiffre correspondant à la semaine, calculé par l'algorithme int((jour-jan1)/7)
SI	Chiffre correspondant à la semaine ISO
MOI	Nom du mois (abrégé)
MOIS	Nom du mois (rempli de blancs jusqu'à concurrence de 9 caractères)
MR	Nombre en chiffres romains correspondant au mois
I, IA, IAA, IAAAA	Dernier, deux derniers ou trois derniers chiffres de l'année ISO ou année ISO, respectivement
BC, AD, B.C., A.D.	Indicateur BC ou AD (avec ou sans point)
AM, PM, A.M., P.M.	Indicateur AM ou PM (avec ou sans point)
Pour plus d'informations sur l'ISO (International Standards Organization) et ses masques de format de date, reportez-vous au manuel Oracle Server SQL Reference.

Caractères de masque de format numérique

Caractère	Retourne
C	Symbole monétaire international
L	Symbole monétaire local
D	Séparateur décimal
G	Séparateur de groupe (milliers)


Tri des caractères

  Restrictions	  Exemples	  Rubriques connexes

Par convention, lorsque les caractères sont triés, la séquence de tri est définie selon la valeur numérique des caractères, définie par le système d'encodage. Ce type de tri est dit « binaire » ; il génère des résultats raisonnables pour l'alphabet anglais, car les normes ASCII et EBCDIC définissent les lettres A à Z en valeurs numériques croissantes. Remarque

Toutefois, lorsque les caractères des autres langues sont utilisés, le fait de les trier au format binaire ne permet généralement pas d'obtenir de tels résultats. Par exemple, une interrogation ORDER BY ascendante renvoie les chaînes de caractères ABC, ABZ, BCD et ÄBC, dans cet ordre, lorsqu'une valeur numérique supérieure à celle de B est affectée à Ä dans le système d'encodage des caractères.

Pour créer une séquence de tri correspondant à la séquence alphabétique des caractères d'une langue, une autre technique doit être utilisée de façon à ce que ces caractères soient triés indépendamment de leur valeur numérique dans le système d'encodage. Cette méthode, appelée « tri linguistique », consiste à remplacer les caractères par d'autres valeurs binaires faisant référence à l'ordre linguistique correct pour que le tri binaire renvoie les résultats voulus.

Caractères linguistiques spéciaux : Séquences de caractères à utiliser en tant que caractère unique pendant le tri. Ces caractères sont gérés automatiquement lorsque vous procédez à un tri linguistique. Par exemple, l'une des séquences de tri linguistiques en espagnol indique que les doublons « ch » et « ll » sont triés en tant que caractères uniques, compris respectivement entre « c » et « d », et entre « l » et « m ».

Le caractère « ß » constitue un autre exemple en allemand. Dans cette langue, cette séquence peut être triée en tant que doublon « SS », alors qu'elle l'est en tant que caractère « SZ » en anglais américain.

Ces caractères spéciaux sont également gérés lors de la conversion de majuscules en minuscules, et vice versa. Par exemple, en allemand, le symbole « ß », mis en majuscules, devient le doublon « SS ». Ces problèmes de conversion de caractères sont traités par les fonctions NLS_UPPER, NLS_LOWER et NLS_INITCAP, selon les conventions établies par la séquence de tri linguistique. (Les fonctions standard UPPER, LOWER et INITCAP ne gèrent pas ces caractères spéciaux.)

Fonction NLSSORT : Vous pouvez utiliser la fonction SQL NLSSORT pour trier des caractères. Elle remplace une chaîne de caractères par la chaîne de tri correspondante employée par la fonctionnalité de tri. Dans le cas d'un tri binaire, la chaîne de tri est la même que la chaîne d'entrée. Lorsqu'un tri linguistique est effectué, NLSSORT retourne les valeurs binaires utilisées pour remplacer la chaîne d'origine.


Remarque
En mode ASCII standard, toutes les majuscules précèdent les minuscules. Il se passe le contraire en mode EBCDIC standard : les majuscules suivent toutes les minuscules.


Tri linguistique - Limites

  Rubriques connexes

Le tri linguistique n'est pas pris en charge pour les jeux de caractères sur plusieurs octets.


Comparaison de chaînes dans une clause WHERE

  Exemples	  Rubriques connexes

Les chaînes de caractères d'une clause WHERE sont comparées sur la base de leur valeur binaire : un caractère est « supérieur à » un autre si une valeur binaire plus élevée lui est affectée dans le jeu de caractères de la base de données. En général, les comparaisons effectuées ne respectent pas les conventions alphabétiques, étant donné que la séquence de caractères définie en fonction de ces valeurs binaires risque de ne pas correspondre à la séquence alphabétique de la langue choisie. Utilisez la fonction NLSSORT, pour réaliser un tri linguistique et non binaire.


Contrôle d'une clause ORDER BY

  Rubriques connexes

Dans le cas d'une séquence de tri linguistique, NLSSORT est utilisé implicitement sur chaque élément de type caractère de la clause ORDER BY. Le système de tri (linguistique ou binaire) appliqué à cette clause est donc transparent pour l'application.

Cependant, si la fonction NLSSORT est explicitement indiquée pour un élément de type caractère dans une clause ORDER BY, la fonction NLSSORT implicite n'est pas exécutée. En d'autres termes, le remplacement linguistique via NLSSORT n'est appliqué qu'une fois, et non deux.

La fonction NLSSORT n'est généralement pas nécessaire dans une clause ORDER BY, lorsque le tri par défaut est linguistique. Cependant, lorsque ce dernier est binaire, une interrogation du type :

SELECT ENAME FROM EMP

ORDER BY ENAME

utilise un tri binaire. Pour un tri linguistique (pour l'allemand, dans l'exemple ci-dessous), employez en l'occurrence :

SELECT ENAME FROM EMP

ORDER BY NLSSORT(ENAME, 'NLS_SORT = GERMAN)


Utilisation d'ALTER SESSION

  Exemples	  Rubriques connexes

Vous pouvez utiliser la commande SQL ALTER SESSION pour remplacer les valeurs NLS par défaut. Par exemple, supposez que vous créez plusieurs paramètres, tels que la langue, le pays, etc., et qu'un utilisateur définit les valeurs correspondantes : vous pouvez modifier la session selon les valeurs choisies.

Remarque : Lors de l'exécution, le serveur exécute pour le client une commande ALTER SESSION qui utilise les valeurs indiquées dans NLS_LANG. Si NLS_LANG n'est pas défini, l'instruction ALTER SESSION n'est pas exécutée.

Dans Form Builder, vous pouvez indiquer l'un des paramètres NLS ci-dessous pour la commande ALTER SESSION. Cependant, pour Report Builder et Graphics Builder, vous ne pouvez préciser que le paramètre NLS_SORT.

Parameter	Description
NLS_LANGUAGE	Langue utilisée par le serveur pour les messages et les erreurs
NLS_TERRITORY	Pays utilisé pour les masques de date et de devise par défaut
NLS_DATE_FORMAT	Format par défaut utilisé pour les dates
NLS_DATE_LANGUAGE	Langue par défaut utilisée pour les dates
NLS_NUMERIC_CHARACTERS	Séparateur de groupes et de caractères décimaux
NLS_ISO_CURRENCY	Symbole monétaire international ISO
NLS_CURRENCY	Symbole monétaire local
NLS_SORT	Séquence de tri de caractères
NLS_CALENDAR	Calendrier en cours

Pour plus d'informations sur ces paramètres, reportez-vous au manuel Oracle8 SQL Reference.


Utilisation des paramètres NLS dans les fonctions SQL

  Rubriques connexes

Lorsque vous utilisez SQL, vous pouvez remplacer par les paramètres NLS décrits ci-dessous les paramètres NLS par défaut.

Fonction SQL	Paramètre(s) NLS
TO_DATE	NLS_DATE_LANGUAGE NLS_CALENDAR
TO_NUMBER	NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY
TO_CHAR	NLS_DATE_LANGUAGE NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY NLS_CALENDAR
NLS_UPPER	NLS_SORT
NLS_LOWER	NLS_SORT
NLS_INITCAP	NLS_SORT
NLSSORT	NLS_SORT

Pour plus d'informations sur ces paramètres, reportez-vous au manuel Oracle8 SQL Reference.


Paramètres NLS de Form Builder

  Rubriques connexes

Vous pouvez utiliser les fonctions intégrées de Form Builder pour obtenir la valeur courante des variables d'environnement NLS pour l'utiliser dans un code PL/SQL :

	DEVELOPER_NLS_LANG,	USER_NLS_LANG
Procédure interne	GET_FORM_PROPERTY	GET_APPLICATION_PROPERTY
Parameter	MODULE_NLS_LANG	USER_NLS_LANG

Comme USER_NLS_LANG et DEVELOPER_NLS_LANG adoptent par défaut la valeur de NLS_LANG, les paramètres NLS de Form Builder contiendront la valeur de NLS_LANG si l'une de ces deux variables n'est pas spécifiquement définie.

Les paramètres NLS de Form Builder ont quatre variantes pour vous permettre d'extraire soit la totalité, soit une partie de la variable d'environnement. Le tableau ci-dessous indique les quatre paramètres de la procédure interne GET_APPLICATION_PROPERTY qui retourne la variable d'environnement USER_NLS_LANG :

Parameter	Retourne
USER_NLS_LANG	L'intégralité de la variable USER_NLS_LANG
USER_NLS_LANGUAGE	La partie langue uniquement
USER_NLS_TERRITORY	La partie pays uniquement
USER_NLS_CHARACTER_SET	La partie jeu de caractères uniquement

Pour extraire la variable d'environnement DEVELOPER_NLS_LANG, appelez GET_FORM_PROPERTY en utilisant le paramètre MODULE_NLS_LANG.


Fichier de définition d'imprimante et support NLS

  Rubriques connexes

Lorsque vous utilisez des états en mode caractères, vous devez définir la largeur physique de la page sur la largeur définie dans le fichier de définition d'imprimante (fichier .PRT), moins 1 caractère. Sinon, les caractères sur plusieurs octets risquent de commencer au dernier espace d'une ligne et de continuer sur la suivante. Par exemple, lorsque la largeur physique de la page est égale à 80 caractères et que celle indiquée dans la définition de l'imprimante est la même, un caractère sur plusieurs octets peut commencer au 80e caractère. Etant donné que les caractères sur plusieurs octets ne peuvent pas être séparés, le 81e caractère doit être compris dans la ligne précédente de façon à ce que le caractère sur plusieurs octets soit complet. Pour éviter cette situation, paramétrez sur 79 la largeur physique de la page de l'état.

Les paramètres NLS suivants propres à l'arabe et à l'hébreu peuvent être définis dans le fichier de définition d'imprimante :

Paramètre	Fonction	Valeurs
nls locale	Définition des paramètres régionaux du moteur d'impression	hébreu ou arabe
nls datastorageorder	Configuration du stockage des données logiques ou visuelles	logique ou visuel
nls contextuallayout	Mise en page pré-contextuelle des imprimantes en arabe	non ou oui
nls contextualshaping	Mise en forme pré-contextuelle des imprimantes en arabe	non ou oui
nls pcharset	Indication du jeu de caractères de l'imprimante	Tout jeu de caractères

Pour plus d'informations sur les fichiers de définition d'imprimante, reportez-vous au système d'aide de Report Builder.


Traduction des applications

  Rubriques connexes

La même langue doit être utilisée pour tous les messages d'erreur et textes standard. Lorsqu'il exécute une application, l'utilisateur final visualise les messages et textes standard issus des trois sources suivantes :

•	messages d'erreur du serveur ;

•	messages d'erreur d'exécution envoyés par Oracle Developer ;

•	messages et textes standard définis en tant qu'éléments de l'application.

Le support NLS d'Oracle contrôle la traduction des éléments des deux premières sources. En tant que développeur d'applications, vous êtes responsable de la traduction des messages et textes standard de la troisième source.

En général, il est nécessaire de traduire deux types de textes propres aux applications :

•	le texte traduisible, par exemple les menus, les textes standard, les options, les messages et les messages d'aide ;

•	les chaînes des déclencheurs et des procédures, y compris les messages d'alerte et les messages définis dans les déclencheurs.

Translation Builder (générateur de traduction) vous permet de traduire dans plusieurs langues les chaînes de « texte traduisible » de l'interface utilisateur. Vous pouvez l'utiliser dans le cadre de la traduction de la plupart des applications multilingues Oracle Developer en générant un fichier binaire pour chaque langue.

Ce générateur permet de rechercher et de traduire les chaînes de l'interface utilisateur, mais ne peut pas extraire de constantes de chaîne dans les déclencheurs et les procédures PL/SQL. Le texte constant des blocs PL/SQL doit être traduit « manuellement », car il n'est pas clairement délimité, mais est souvent constitué de variables et d'extraits de chaînes.

Pour une description complète du générateur de traduction, reportez-vous au système d'aide de ce dernier.


Notes concernant le développement d'applications

  Rubriques connexes

Lorsque vous développez une application qui sera traduite, n'oubliez pas de prévoir de l'espace supplémentaire pour les objets et les libellés standard. Pour utiliser plusieurs jeux de caractères et agrandir les zones traduites, il convient en règle générale de laisser 30 % d'espace autour des champs, des bordures et des textes standard.

Par exemple :

Invite à gauche du champ	Réservez 30 % d'espace supplémentaire pour l'agrandissement de ce champ à gauche de l'invite.
Invite au-dessus du champ	Réservez 30 % d'espace supplémentaire pour l'agrandissement de ce champ à droite de l'invite.
Boutons, cases à cocher, groupes de boutons d'option et listes instantanées	Prévoyez un agrandissement de 30 %.
Titres	Fixez la taille des boîtes englobantes de façon à pouvoir agrandir le titre de 30 % à droite.
Champs en affichage seul	Prévoyez une taille de 30 % supérieure à celle requise par la langue de base.
Tous les objets	Agrandissez les objets de façon à ce que la traduction tienne. Par exemple, les boutons doivent être suffisamment grands pour contenir les libellés traduits. Vérifiez la hauteur de ces boutons de façon à y loger le plus grand caractère à utiliser. Par exemple, calculez le nombre de pixels nécessaires au rendu des caractères Kanji.


Utilisation du générateur de traduction

  Rubriques connexes

Vous pouvez utiliser ce générateur dans le cadre de la traduction de la plupart des applications multilingues Oracle Developer. Vous pouvez l'activer, puis générer un fichier binaire pour chaque langue, à moins que les utilisateurs finals de votre application ne doivent changer de langue au cours de l'exécution.

Pour ce faire, ils doivent fermer le programme, modifier la variable d'environnement de la langue, puis redémarrer l'application.

Avec le générateur de traduction, les étapes de développement de votre application sont les suivantes :

•	Créez une définition simple de l'application (.FMB ou .RDF) dans la langue source.

•	Utilisez le générateur de traduction pour extraire des chaînes à traduire, permettre la traduction dans une ou plusieurs langues, et stocker de nouveau ces chaînes dans la définition de l'application.

•	Traduisez manuellement les messages standard des bibliothèques PL/SQL.

•	Utilisez le générateur afin de créer une version binaire de l'application pour chaque langue cible.

Avantages : Le générateur de traduction est la solution la plus simple pour mettre rapidement en œuvre des applications en plusieurs langues. Il offre une efficacité maximale. Si votre application est stable, cette approche convient parfaitement.

Par exemple, si vous avez développé une application dans quatre langues et que vous avez besoin, plus tard, de modifier le libellé d'un champ, vous effectuez cette modification dans le générateur, puis vous l'enregistrez dans le fichier de définition. Vous utilisez le générateur de traduction pour traduire le nouveau libellé, vous insérez les nouveaux messages dans le fichier de définition et vous le régénérez pour obtenir un fichier binaire contenant le nouveau libellé.

Inconvénients : Si vos applications doivent prendre en charge plusieurs langues simultanément, vous devez à la place changer de langue au cours de l'exécution.


Changement de langue lors de l'exécution

  Rubriques connexes

Seules quelques applications doivent prendre en charge simultanément plusieurs langues. Par exemple, une fenêtre en anglais peut être affichée au démarrage, et l'utilisateur final peut cliquer sur un bouton de cette fenêtre pour obtenir la traduction des invites en français et revenir à l'anglais.

Si votre application requiert un changement de langue lors de l'exécution, vous pouvez inclure plusieurs langues dans une même application, à condition qu'elles partagent le même jeu de caractères, mais vous ne pouvez pas utiliser le générateur de traduction pour localiser le texte traduisible si vous remplissez dynamiquement le texte lors de l'exécution. Vous devez donc créer des structures conditionnelles (IF...THEN...ELSEIF) pour passer d'une langue à l'autre en vérifiant la valeur de la variable d'environnement NLS, à l'aide de la procédure interne GET_FORM_PROPERTY.

L'utilisation du système de changement de langue lors de l'exécution vous permet de développer votre application en plusieurs étapes :

•	Créez l'intégralité de l'application dans une langue, y compris les bibliothèques.

•	Traduisez manuellement chaque bibliothèque.

•	Créez des libellés standard en tant qu'éléments affichés de taille correcte, remplis dynamiquement lors de l'exécution.

Comme Form Builder prend en charge l'attachement de plusieurs bibliothèques, vous pouvez réserver une bibliothèque aux messages à traduire, et d'autres bibliothèques à d'autres fins.

Avantages : Le principal avantage de cette approche est qu'elle permet la prise en charge d'applications sophistiquées dans lesquelles les applications Forms peuvent être extrêmement dynamiques. Dans ce cas, cette approche évite certains problèmes de mise à jour, car vous n'avez pas à générer de fichier distinct pour chaque langue chaque fois que l'application Forms change.

Inconvénients : Cette approche est plus compliquée, car elle implique un effort considérable au niveau de la création, du remplissage et de la mise à jour d'une mémoire de messages propres à la langue utilisée, et au niveau de la traduction manuelle. Par exemple, vous pouvez écrire un déclencheur WHEN-NEW-FORM-INSTANCE pour définir les libellés de chaque bouton en extrayant d'une bibliothèque attachée les libellés corrects, en fonction de la valeur de la variable d'environnement NLS.


Utilisation des bibliothèques PL/SQL pour les chaînes de code

  Exemples	  Rubriques connexes

Bien que le générateur de traduction facilite la traduction des messages qui font partie de l'interface Builder standard, les messages affichés par programme demandent un traitement spécial. Grâce aux bibliothèques PL/SQL, il vous est possible de mettre en œuvre une structure flexible pour les messages des déclencheurs ou des procédures.

En ce qui concerne les messages propres aux applications, c'est-à-dire affichés par les sous-programmes intégrés MESSAGE ou CHANGE_ALERT_MESSAGE, ou via l'affectation d'un message à un élément affiché depuis un déclencheur ou une procédure, vous pouvez utiliser les bibliothèques PL/SQL attachables afin de réaliser une structure flexible pour les messages. La bibliothèque peut être stockée sur l'hôte, puis être attachée dynamiquement lors de l'exécution. A ce moment-là, selon le chemin de recherche utilisé, vous pouvez intégrer la bibliothèque attachée à l'application Forms. (Par exemple, une bibliothèque peut ne contenir que les messages en italien.)


Support NLS - Exemples

  Rubriques connexes 	  Tous les exemples

Comparaison de chaînes - Exemples

Masques de format - Exemples

NLS_LANG - Exemples

Bibliothèques PL/SQL - Exemples


ALTER SESSION - Exemples

  Rubriques connexes

L'instruction suivante permet de convertir les séparateurs décimal et des milliers en virgule et en point, respectivement :

ALTER SESSION
   SET NLS_NUMERIC_CHARACTERS = ',.'

Ces nouveaux caractères sont renvoyés lorsque vous utilisez les éléments de format numérique D et G :

SELECT TO_CHAR(SUM(sal), 'L999G999D99') Total FROM emp

TOTAL
--------------
   FF29.025,00

L'instruction suivante permet de convertir le symbole monétaire ISO en celui utilisé aux Etats-Unis :

ALTER SESSION
   SET NLS_ISO_CURRENCY = America

Le symbole monétaire ISO défini pour les Etats-Unis est utilisé :

SELECT TO_CHAR(SUM(sal), 'C999G999D99') Total FROM emp

TOTAL
---------------
   USD29.025,00

L'instruction suivante permet de convertir en Deutsh Marks le symbole monétaire local :

ALTER SESSION
   NLS_CURRENCY = 'DM'

Le nouveau symbole monétaire local est renvoyé lorsque vous utilisez l'élément de format numérique L :

SELECT TO_CHAR(SUM(sal), 'L999G999D99') Total FROM emp

TOTAL
--------------
   DM29.025,00


Comparaison de chaînes - Exemples

  Rubriques connexes 	  Tous les exemples

Soit une colonne (COL1) qui contient les valeurs ABC, ABZ, BCD et ÄBC dans le jeu de caractères ISO 8859/1 sur 8 bits. Si vous avez écrit l'interrogation suivante :

SELECT COL1 FROM TAB1 WHERE COL1 > 'B'

L'interrogation retourne les valeurs BCD et ÄBC, car la valeur numérique de Ä est supérieure à celle de B.

Vous pouvez effectuer des comparaisons linguistiques en utilisant NLSSORT dans la clause WHERE, de la manière suivante :

WHERE NLSSORT(colonne) opérateur NLSSORT(chaîne)

Notez que NLSSORT doit figurer de part et d'autre de l'opérateur de comparaison.

SELECT COL1 FROM TAB1 WHERE NLSSORT(COL1) > NLSSORT('B')

Si vous effectuez un tri linguistique en allemand, les chaînes commençant par Ä ne sont pas renvoyées, car ce caractère vient avant B dans l'alphabet. Si vous procédez à un tri linguistique en suédois, ces chaînes sont retournées, car Ä vient après Z dans l'alphabet.


Masques de format - Exemples

  Rubriques connexes 	  Tous les exemples

Dans les applications compatibles NLS, évitez de coder en dur une chaîne composée d'un nom de mois. Toutefois, s'il est essentiel d'utiliser un code de ce type, n'utilisez pas la procédure interne COPY. Si vous le faites, le nom de mois risque d'être incorrect, selon la langue indiquée. (Pour mentionner une date dans une bibliothèque, utilisez la variable correspondante ; la procédure COPY fonctionne correctement.)

Exemple dépendant de la langue (déconseillé) :

:date.emb := '30-DEC-96';

copy ('30-DEC-96','date.emb');

Utilisez à la place TO_DATE, comme dans l'exemple ci-dessous :

Exemple indépendant de la langue (conseillé) :

:date.emb := to_date('30-12-1996','JJ-MO-AAAA');


NLS_LANG - Exemples

  Rubriques connexes 	  Tous les exemples

Supposez que vous souhaitiez exécuter votre application en français. Elle sera utilisée en France et les données seront affichées via le jeu de caractères WE8ISO8895P1. Vous paramétrez NLS_LANG de la manière suivante :

NLS_LANG=French_France.WE8ISO8895P1

Imaginez à présent que vous souhaitiez toujours exécuter votre application en français, mais qu'elle sera cette fois utilisée en Suisse. Vous paramétrez NLS_LANG de la manière suivante :

NLS_LANG=French_Switzerland.WE8ISO8895P1

Autres exemples :

NLS_LANG=Norwegian_Norway.NDK7DEC
NLS_LANG=Norwegian_Norway.WE8ISO8895P1
NLS_LANG=Japanese_Japan.JA16SJIS
NLS_LANG=Arabic_Egypt.AR8MSWIN1256
NLS_LANG=American_America.AR8MSWIN1256
NLS_LANG=American_America.WE8ISO8859P1


Bibliothèques PL/SQL - Exemple

  Rubriques connexes 	  Tous les exemples

FUNCTION nls_appl_mesg(index_no NUMBER)

RETURN CHAR

IS

   msg CHAR(80);

BEGIN

   IF index_no = 1001 THEN

      msg := 'L''impiegato che Voi cercate non esiste...';

   ELSIF index_no = 1002 THEN

      msg := 'Lo stipendio non puo essere minore di zero.';

   ELSIF ...

   :

   ELSE

      msg := 'ERRORE: Indice messaggio inesistente.';

   END IF;

   RETURN msg;

END;

Une routine de ce type peut être utilisée chaque fois qu'une expression de type caractère est normalement valide : par exemple, pour afficher un message d'alerte d'application correctement traduit, il vous suffit d'inclure dans votre application Forms le code suivant :

Change_Alert_Message('Mon_message_erreur', nls_appl_mesg(1001));

n := Show_Alert('Mon_message_erreur');

Pour changer la langue de l'application, il suffit de remplacer la bibliothèque PL/SQL contenant la fonction nls_appl_mesg par une bibliothèque de même nom contenant la fonction nls_appl_mesg avec le texte traduit.

Si l'application doit prendre en charge simultanément plusieurs langues, la fonction ci-dessus peut accepter un paramètre supplémentaire indiquant la langue voulue, et le code contiendra alors un niveau supplémentaire de IF...THEN...ELSIF...ELSE...END IF pour la gestion des différentes langues.


Rubrique d'aide introuvable. Recherchez les rubriques connexes dans l'aide en ligne.


Objets Oracle8 - exemples

  Rubriques connexes 	   Tous les exemples

Type d'objet

Type de table

Type de tableau variable

Objet de colonne

Table d'objets

Vue d'objet


Prise en charge d'Oracle8 Server

  Rubriques connexes

Un certain nombre des nouvelles fonctions Oracle8 Server sont aussi disponibles dans Oracle Developer. Il s’agit, de manière générale, de fonctions appartenant aux catégories suivantes :

•	Extensibilité améliorée. Par exemple, les bases de données Oracle8 peuvent contenir des dizaines de téra-octets de données et peuvent prendre en charge l'accès simultané de 10 000 utilisateurs. Les tables, quant à elles, peuvent désormais comprendre jusqu’à 1 000 colonnes. Les types de données CHAR et VARCHAR2 peuvent désormais compter jusqu’à 2 000 et 4 000 octets, respectivement.

•	Efficacité et performances améliorées. Developer gère pour vous l’utilisation de ces fonctions Oracle8, vous n’avez donc pas à intervenir. Vous bénéficiez automatiquement de la vitesse et de la fiabilité offertes par l’utilisation d’Oracle8 Server pour vos données.

•	Objets volumineux (parfois appelés LOB).

•	Objets définis par l’utilisateur.

Poursuite de la prise en charge d’Oracle7

Developer continue également de prendre en charge Oracle7 Server (versions 7.3 et ultérieures).


Types de données Oracle8 pris en charge

  Rubriques connexes

Cette version d'Oracle Developer prend en charge les types de données Oracle8 suivants :

Objets volumineux (LOB)

Dans Oracle8, les programmeurs ont la possibilité de définir des objets volumineux, souvent nommés LOB. Ces objets peuvent stocker des éléments tels que du texte, des images, des sons ou de la vidéo.

Oracle Developer prend actuellement en charge les objets volumineux Oracle8 suivants :

•	BLOB (binary large object - objet volumineux binaire)

•	CLOB (single-byte character large object - objet volumineux de type caractère, sur un octet)

•	BFILE (binary file - fichier binaire), parfois appelé fichier externe.

Objets définis par l’utilisateur

Dans Oracle8, les programmeurs peuvent définir des types d’objet (appelés aussi types d’objet définis par l’utilisateur) qui sont des composés basés sur les types de données à élément unique pris en charge par Oracle8. A l’aide de ces définitions d’objet, les programmeurs peuvent alors créer divers types de tables.

Developer prend actuellement en charge les catégories d’objets Oracle8 suivantes :

•	table d’objets, où l’ensemble de la table est basé sur un type d’objet unique ;

•	objet colonne d'une table relationnelle, cette colonne étant basée sur un type d’objet ;

•	colonne REF figurant dans une table d’objets ou dans une table relationnelle, les valeurs de cette colonne étant des pointeurs désignant des lignes d'une autre table d’objets.

Nouveaux types de données scalaires

Oracle Developer prend aussi en charge le nouveau type de données FLOAT d’Oracle8. Developer traite ce type de données comme son propre type de données NUMBER.


A propos des objets Oracle8 volumineux (LOB)

Oracle Developer permet d’accéder aux types de données des objets volumineux : objets binaires (BLOB), objets de type caractère (CLOB) et fichiers binaires (BFILE).

Sur un serveur Oracle8, ces types de données peuvent stocker des objets d’un volume allant jusqu’à 4 méga-octets. Ils ont un objectif similaire à celui des types de données familiers LONG et LONG RAW d'Oracle7, mais présentent un certain nombre d'avantages supplémentaires.

Comparaison des données LOB et LONG

LOB	LONG
4 giga-octets maximum	2 giga-octets maximum
Plusieurs colonnes LOB autorisées dans une table	Une seule colonne LONG autorisée par table
Réplication prise en charge	Pas de réplication
Prise en charge de l'accès aléatoire aux données	Seul l'accès séquentiel est pris en charge
Meilleure gestion de l'espace table (seul le repère LOB est stocké)	Efficacité moindre (les données sont stockées directement dans la table)
Autorisé dans les types d'objets définis par l'utilisateur	Non autorisé
Aisément transmis aux procédures et aux appels externes	Transmission difficile
Informations sur les LOB :

Les BLOB servent à stocker des objets volumineux au format binaire. Les CLOB servent à stocker des données de type caractère. Ces deux types de données sont aussi nommés LOB internes, car leurs données sont conservées sur le serveur. Ces données interviennent dans des transactions et des contrôles d’intégrité, y compris des validations (Commit) et des annulations (Rollback).

Les données BFILE, en revanche, sont conservées hors du serveur. Le serveur ne stocke que l’adresse du fichier, telle que le système d’exploitation la reconnaît. Il en résulte que les données BFILE ne peuvent pas faire partie des transactions de base de données.

Compatibilité

Etant donné les divers avantages que présentent les LOB (voir tableau ci-dessus), il est préférable d’utiliser les données LOB plutôt que les données LONG dans toute nouvelle application.

Cependant, par souci de compatibilité en amont, les données LONG sont toujours parfaitement prises en charge.

Types de panneau

Dans un panneau, le LOB dispose habituellement d'un contrôle de type Texte, Image ou Son, selon sa nature et son utilisation.

Restrictions

•	Les données BFILE sont en lecture seule.

•	Bien que Forms tente de charger l'intégralité du BFILE ou du BLOB lorsqu'il lit cet élément à l'exécution, il est limité par la quantité de mémoire virtuelle Runtime disponible.

•	Pour les CLOB, la limite de taille est fixée à 65 534 octets dans Forms.


A propos des objets Oracle8 définis par l'utilisateur
A propos des objets Oracle8 définis par l’utilisateur

  Rubriques connexes  [image]  Exemples

Dans le cadre de la prise en charge d’Oracle8 Server, Developer vous permet d’utiliser les objets Oracle8 définis par l’utilisateur. Ces objets comprennent les tables, les objets colonne des tables relationnelles et un type d’objet colonne particulier, la colonne REF.

Tables d’objets

Dans Oracle8, les tables d'objets sont basées sur les définitions de types d’objet créées par l’utilisateur. Ces définitions sont des combinaisons dont chaque attribut ou composant est basé sur un type de données intégré Oracle8. (Une définition de type d’objet peut être basée sur une autre, mais au bout du compte, les définitions se fondent toujours sur les types de données intégrés Oracle8.)

Cela permet à Oracle Developer de traiter chaque colonne d’une table d'objets comme un élément de données distinct, de la même manière qu’il traite les colonnes d’une table relationnelle.

Objets colonne des tables relationnelles

Un programmeur de base de données peut aussi créer une colonne de table relationnelle sur la base d'une définition de type d’objet. Cela incorpore un objet composite dans la table relationnelle.

Developer divise l’objet colonne intégré d'après les éléments qui le composent et traite chacun d’entre eux comme une colonne distincte.

Ainsi, si Oracle8 Server stocke une table relationnelle à trois colonnes et que l’une de ces colonnes est un objet colonne, lui-même basé sur une définition d’objet possédant quatre parties ou attributs, Developer traite cette table comme une table à 6 colonnes (les 2 colonnes relationnelles, plus les 4 colonnes formant l’objet).

Si l’un des attributs de la définition de l’objet colonne est basé sur un autre type d’objet, cette partie est encore divisée par Developer et traitée comme une série de colonnes distinctes.

Colonnes REF

Dans une table d'objets ou une table relationnelle, une colonne peut être définie comme possédant le type REF. Une colonne REF ne contient pas directement de données, mais des pointeurs (des références) désignant une autre table d'objets, où se trouvent en réalité les données.

Cette référence est utilisée lors de l’exécution pour que l’utilisateur voie les données auxquelles renvoie la référence.


Objets Oracle8 définis par l'utilisateur - exemples
Objets Oracle8 définis par l’utilisateur - exemples

  Rubriques connexes

Pour créer des objets sur le serveur Oracle8 Server, un programmeur de base de données définit un type d’objet, puis crée un objet spécifique en fonction de cette définition. L’objet qui en résulte peut être une table d'objets ou un objet colonne d'une table relationnelle.

Exemples

Considérez les définitions suivantes. La première crée un type d’objet. La deuxième crée une table de ce type.

         CREATE TYPE  emp_type  AS OBJECT

                      (name     CHAR(30),

                       title    CHAR(20),

                       idnum    NUMBER);

         CREATE TABLE  emp  OF emp_type;

Dans l’exemple ci-dessus, vous créez une table d'objets nommée emp. Elle comporte trois colonnes, qui sont dotées du nom et du type de données fixés par les attributs de la définition du type d’objet emp_type.

L’exemple suivant porte sur un objet colonne dans une table relationnelle :

         CREATE TYPE  address_type  AS OBJECT

                      (street    VARCHAR2(40),

                       city      VARCHAR2(25),

                       state     VARCHAR2(2)

                       zip       NUMBER);

         CREATE TABLE  customers

                       (cust_id  NUMBER,

                        name     VARCHAR(40),

                        address  address_type);

Dans cet exemple, vous créez une table relationnelle appelée customers. Cette table comporte trois colonnes. Les deux premières (cust_id et name) sont des colonnes relationnelles ordinaires. La troisième (address) est un objet colonne. Elle est basée sur la définition du type d’objet address_type. Cette colonne possède la structure et les types de données définis par cette définition d’objet. Elle peut être considérée comme comportant quatre parties ou composants (rue, ville, état et code postal). Chacun de ces composants relève du type de données défini par la définition du type d’objet address_type. (Dans ce cas, il s’agit pour tous de VARCHAR2 sauf pour le code postal, dont le type de données est NUMBER).

Dans l’illustration suivante, la troisième colonne d’une table relationnelle à trois colonnes est basée sur un type d’objet possédant lui-même trois parties ou composants.

Remarquez qu’un objet Oracle8 est composé de différentes parties. Chacune de ces parties possède son propre nom et relève d’un type de données Oracle8 connu. Si l’objet est une table (en fait, une ligne dans une table d'objets), il comporte autant de colonnes ou de parties qu’il y a d’attributs dans la définition du type d’objet. Si une colonne d’une table relationnelle est basée sur un objet, chacune des parties de l’objet peut être considérée comme une colonne supplémentaire de cette table. Puisque ces parties dépendent des attributs de la définition du type d’objet, elles sont parfois appelées colonnes d'attribut.

Traitement des objets par Oracle Developer

Dans Developer, les tables d'objets sont traitées pratiquement comme les tables relationnelles. Chaque colonne peut être sélectionnée individuellement. Bien que toutes les colonnes puissent être sélectionnées, chacune d’entre elles est traitée comme un élément distinct dans l’application. La table elle-même ne possède pas d’identité particulière en tant qu’objet dans l’environnement Developer.

De même, Oracle Developer ne traite pas les objets colonne des tables relationnelles comme des entités uniques et homogènes. Il traite chacun des composants de l’objet colonne comme un élément de données distinct et indépendant. Chaque composant de l’objet colonne peut être sélectionné. Une fois sélectionné, il est traité comme un élément de données indépendant. Même lorsque tous les composants de l’objet colonne sont sélectionnés, ce dernier ne possède pas d’identité particulière en tant qu’objet au sein de l’environnement Developer.

Un nom au format NomObjetColonne_NomElément est attribué par défaut aux données sélectionnées dans un objet. Ainsi, si vous sélectionnez le composant zip de l’objet colonne address dans l’exemple ci-dessus, l'élément de données portera le nom address_zip dans l’application Developer.


A propos des données REF d'Oracle8
A propos des données REF d’Oracle8

  Rubriques connexes

REF est un nouveau type de données d’Oracle8. Il fait d’un objet colonne un pointeur désignant des données d’une autre table d'objets. La colonne REF ne contient elle-même aucune donnée.

Par exemple :

           CREATE TYPE  dept_type  AS OBJECT

                        (deptname     VARCHAR2(24),

                         deptnumber   NUMBER);

           CREATE TABLE  dept_table OF dept_type;

           CREATE TABLE  emp

                         (empname    VARCHAR2(50),

                          empnumber  NUMBER,

                          empdept    REF  dept_type);

Dans la table relationnelle emp, la colonne empdept est une colonne REF. Elle désigne un objet de type dept_type.

Types et tables

Lorsqu’une colonne REF est définie, elle identifie un type d’objet et non une table d'objets particulière. Une base de données peut contenir plusieurs tables d'objets basées sur une même définition de type d’objet. Ainsi, la définition de la colonne REF n’identifie pas les tables cibles.

Résolution du pointeur

Lors de l’initialisation de la table comportant la colonne REF, les valeurs placées dans cette colonne désignent des lignes des tables contenant réellement les données voulues. Plus tard, lors de l’exécution, les valeurs affichées dans la colonne REF sont celles désignées (et non les pointeurs).

Affichage des données REF par Developer lors du développement

Durant le développement, si vous demandez à voir une table comportant une colonne REF, Oracle Developer affiche la colonne REF sous sa forme étendue. Il affiche donc les attributs du type d’objet sur lequel pointe la définition de la colonne REF d'origine.

Dans l’exemple ci-dessus, Developer affichera la colonne REF empdept comme comportant deux composants (ou colonnes d'attribut) : deptname et deptnumber. Ces deux attributs sont ceux du type d’objet (dept_type) identifié dans la définition de la colonne REF.

Comme pour les objets colonne, Developer vous permet de sélectionner n’importe lequel des composants (ou colonnes d'attribut) désignés par la référence pour en faire des données de l’application Developer. Cependant, contrairement aux objets colonne habituels, Developer vous permet aussi de sélectionner le nom de la colonne REF pour en faire un élément manipulable dans votre application. Vous pouvez ainsi utiliser cette colonne dans votre code PL/SQL. Par défaut, la colonne REF devient une partie du canevas NULL.

Affichage des données REF pour vos utilisateurs

En tant que développeur d’applications, vous pouvez choisir la manière dont sont affichées les données désignées par la référence (REF résolue) lors de l'exécution :

•	affichage de données dans le bloc de données contenant la colonne REF (parfois appelée méthode recherche)

•	affichage de données dans le bloc de données désigné par la colonne REF (méthode maître-détail)

La première solution (affichage des données au sein du bloc de données où se trouve la colonne REF) est la plus simple. Il vous suffit de sélectionner les composants REF voulus comme éléments de votre bloc de données et lors de l’exécution, Developer et Oracle8 résoudront les références et placeront les données désignées par les références dans les éléments affichés. L’utilisateur n’a besoin de voir que ce bloc.

L’autre possibilité (affichage des données dans le bloc de données désigné) requiert l’établissement d’un lien maître-détail. Vous procédez pour cela comme pour établir un lien maître-détail entre deux blocs possédant une relation clé primaire - clé étrangère. Dans ce cas, la colonne REF crée un lien entre les deux blocs. L’utilisateur voit les deux blocs, mais les données REF n'apparaissent que dans le bloc désigné par la référence.

L’assistant Bloc de données de Form Builder peut servir à la création de cette relation maître-détail.


Icônes des objets Oracle8

Le Navigateur d’objet et les assistants de Developer utilisent des icônes pour vous aider à connaître le type des données Oracle8 auxquelles vous accédez. Ces icônes et leur signification sont indiquées ci-dessous :

             table ordinaire

             type d’objet

             vue d’objet

             table d'objets

             objet imbriqué

             table imbriquée

             objet référencé

             tableau variable

             méthode

             type inconnu

             mode pile côté serveur

             unité de programme côté serveur

             fichier

             données de type Date

             données de type Number

             données de type Character

             données de type Raw

          données de type BLOB

             données de type BFILE

             données de type CLOB

             ID de ligne

             libellé MLS


Extensibilité et performances avec Oracle8

La prise en charge d’Oracle8 par Developer vous offre un certain nombre d’améliorations en matière d’extensibilité et de performances. Ces améliorations, pour la plupart, sont automatiquement mises en oeuvre.

Par exemple, Developer vous permet d’accéder aux fonctions Oracle8 suivantes :

•	Volumes supérieurs. La base de données même, le nombre d’utilisateurs simultanés et le nombre de colonnes des tables (désormais, jusqu’à 1 000 colonnes) ont augmenté.

•	Partitionnement des tables et des index

•	Mise en mémoire cache des objets côté client

Developer a aussi été amélioré afin d’utiliser directement plusieurs autres fonctions Oracle8 permettant une amélioration des performances :

•	Pré-extraction. Forms utilise cette fonction Oracle8 (ainsi que les mécanismes de taille de tableau existants) pour réduire à la fois le nombre de passages dans la base de données et la mémoire utilisée. Cela se fait automatiquement, sans intervention de l’utilisateur.

•	Clause de valeurs de retour. Forms utilise cette nouvelle fonction DML lors des insertions et des mises à jour. La clause de valeurs de retour rend inutile le lancement d'une seconde interrogation de la base de données (pour obtenir les données mises à jour par des déclencheurs côté serveur), ce qui accélère le traitement. Les utilisateurs contrôlent cette opération à l’aide de la propriété DML Valeurs de retour.

•	Déclencheur A la place de pour la mise à jour des vues. Ce déclencheur côté serveur fournit un mécanisme permettant la mise à jour des vues relationnelles et des vues d’objet, normalement impossibles à mettre à jour.


Prise en charge de PL/SQL 8

  Rubriques connexes

Cette version d'Oracle Developer utilise PL/SQL version 8 sur le client et le serveur. Les unités de programme côté client ne prennent pas en charge les fonctionnalités Oracle8 liées à l'objet. Cependant, les unités de programmes stockées peuvent utiliser toutes les nouvelles fonctionnalités PL/SQL version 8.

L'annexe A du manuel PL/SQL User's Guide and Reference Release 8 décrit les nouvelles fonctionnalités PL/SQL version 8. Ce manuel est disponible en ligne. Choisissez Aide -> Manuels, puis recherchez le dossier des manuels de références sous Manuels en ligne.


Compatibilité avec les versions antérieures de PL/SQL

Si vous possédez des unités de programme côté client écrites en PL/SQL 1 ou PL/SQL 2, vous devez en convertir le code pour utiliser la nouvelle version. L’utilitaire de conversion PL/SQL 1 est fourni pour automatiser la mise à niveau.

Les unités de programme stockées créées à l’aide de versions antérieures fonctionnent avec le moteur PL/SQL 8 sur le serveur de base de données, mais leur compilation peut générer des erreurs. Ces erreurs surviennent parfois lorsqu’il existe une incompatibilité de syntaxe entre PL/SQL 8 et PL/SQL 2. PL/SQL 8 comporte un indicateur de compatibilité vous permettant de choisir un mode compatible PL/SQL 2, afin que le moteur PL/SQL 8 ne produise pas de telles erreurs lors de la compilation du code PL/SQL 2 sur le serveur. Le chapitre 6 du manuel Oracle8 Server Migration décrit les situations couvertes par cet indicateur de compatibilité.


Fonctions Oracle8 non encore prises en charge

  Rubriques connexes

Toutes les fonctions Oracle8 ne sont pas prises en charge par cette version des produits Oracle Developer. Les principales fonctions non prises en charge sont les suivantes :

•	Types de collecte (tables imbriquées et tableaux variables (VARRAY))

•	Procédures stockées retournant des valeurs d'objet

•	Types de données scalaires NCHAR et NVARCHAR2.

Gardez également à l’esprit que, même si Developer prend en charge PL/SQL 8, la version client de ce dernier ne prend pas encore entièrement en charge toutes les fonctions d’Oracle8 Server. (PL/SQL 8 côté serveur est entièrement pris en charge.)


Prise en charge des objets Oracle8 dans le Navigateur d'objet

Dans le Navigateur d'objet, les fonctionnalités Oracle8 permettent d'accéder aux types de données des objets ; vous pouvez ainsi programmer plus aisément en employant des données Oracle 8. Cette prise en charge des objets Oracle 8 vous permet de visualiser les types de données définis par l'utilisateur sous forme d'arborescence et de rechercher puis d'afficher les tables, les vues, les colonnes, les déclencheurs, les méthodes et les attributs associés aux types de données définis par l'utilisateur.

Le noeud Objets de base de données contient les schémas (et les objets associés) auxquels vous avez accès dans la base de données à laquelle vous êtes actuellement connecté. Lorsque vous êtes connecté à une base de données Oracle8, le Navigateur d'objet affiche les types de données définis par l'utilisateur disponibles (avec leurs attributs et leurs méthodes) dans le noeud Types de chaque schéma. Les tables, vues, colonnes et déclencheurs associés aux types de données définis par l'utilisateur sont affichés dans les noeuds Tables et Vues.

Plus précisément, les fonctionnalités Oracle8 du Navigateur d'objet vous permettent de rechercher et d'afficher :

•	les tables d'objets et les objets colonne dans le noeud Tables

•	les vues d'objet dans le noeud Vues

•	les déclencheurs A la place de des vues dans le noeud Vues

•	les types d'objet, de table et de tableau variable dans le noeud Types

•	les attributs et les méthodes de types d'objet dans le noeud Types

Des icônes servent à différencier les objets relationnels et les objets Oracle8 dans le Navigateur d'objet. Par exemple, des icônes distinctes servent à représenter les tables relationnelles normales et les tables d'objets, ou les vues normales et les vues d'objet.

Pour plus d'informations sur les types de données Oracle8 définis par l'utilisateur, consultez la documentation Oracle8.

Rubriques connexes

Noeuds Type d'objet

Noeuds Type de table

Noeuds Type de tableau variable

Noeuds Objet colonne

Noeuds Table d'objets

Noeuds Vue d'objet

Développement de toute l'arborescence

Icônes des objets Oracle8


Noeuds Type d'objet

  Exemple	  Rubriques connexes

Les types d'objet apparaissent dans le noeud Types du Navigateur d'objet. Un noeud type d'objet représente un type créé par l'instruction SQL CREATE TYPE AS OBJECT. Le type d'objet apparaît dans le Navigateur d'objet sous la forme :

nom_type_objet ( Object Type [ * ] & Body [ * ] )

Le libellé Object Type apparaît lorsqu'une instruction CREATE TYPE AS OBJECT est transmise à la base de données. Un astérisque ( * ) apparaît lorsque la spécification du type n'est pas valide ou que le type est incomplet. Un type incomplet est une pseudovariable permettant de définir des types de façon récurrente.

Le libellé Object Body apparaît lorsqu'un corps de type a été créé à l'aide de l'instruction CREATE TYPE BODY. Un astérisque ( * ) apparaît lorsque le corps de type n'est pas valide.

Quand le type et le corps de l'objet ont été créés sans erreur, le libellé Object Type & Body apparaît.

Les noeuds type d'objet sont des noeuds composites ; ils possèdent deux sous-noeuds, Attributs et Méthodes. Un noeud type d'objet ne peut être développé que s'il existe une spécification de type valide.

Les attributs d'un type d'objet sont représentés sous forme de noeuds dans le sous-noeud Attributs.

Les méthodes d'un type d'objet sont représentées sous forme de noeuds dans le sous-noeud Méthodes. Les méthodes apparaissent sous forme de procédures et de fonctions. Les libellés de méthode sont affichés dans le Navigateur d'objet sous la forme :

nom_méthode (Procedure)

et

nom_méthode (Function)

Si vous définissez pour un type d'objet une méthode d'association ou de tri, le libellé de la méthode apparaît comme suit :

nom_méthode (Map Function)

ou

nom_méthode (Order Function)

Remarque : La liste d'arguments des méthodes n'est pas affichée.


Noeud Type d'objet - exemple

  Rubriques connexes 	   Tous les exemples

L'instruction SQL suivante crée le type d'objet emp_typ.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

L'arborescence emp_typ est la suivante :


Noeuds Type de table

  Exemple	  Rubriques connexes

Les tables apparaissent dans le noeud Types du Navigateur d'objet. Un noeud type de table représente un type créé par l'instruction SQL CREATE TYPE AS TABLE. Le type de table apparaît dans le Navigateur d'objet comme suit :

nom_type_table (TABLE OF nom_sous-type_table)

Lorsque le sous-type est un type intégré, le noeud type de table ne peut pas être développé. Si le sous-type est un type d'objet ou un objet REF, les attributs de l'objet apparaissent en tant que sous-noeuds.


Noeud Type de table - exemple

  Rubriques connexes 	   Tous les exemples

Les instructions SQL suivantes créent le type d'objet emp_typ et le type de table emp_tbl.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_tbl AS TABLE OF emp_typ;

L'arborescence emp_tbl est la suivante :


Noeuds Type de tableau variable

  Exemple	  Rubriques connexes

Les types de tableau variable apparaissent dans le noeud Types du Navigateur d'objet. Un type de tableau variable correspond à un type créé par l'instruction SQL CREATE TYPE AS VARYING ARRAY. Un type de tableau variable apparaît comme suit dans le Navigateur d'objet :

nom_type_tableau_variable (VARRAY (taille) nom_sous-type_tableau_variable)

Lorsque le sous-type est un type intégré, le noeud type de tableau variable ne peut pas être développé. Si le sous-type est un type d'objet ou un objet REF, les attributs de l'objet apparaissent en tant que sous-noeuds.


Type de tableau variable - exemple

  Rubriques connexes 	   Tous les exemples

Les instructions SQL suivantes créent le type d'objet emp_typ et le type de tableau variable emp_ary.

CREATE TYPE emp_typ AS OBJECT
  (ename VARCHAR2(30), esalary NUMBER(5,2),
  MEMBER PROCEDURE raise(amount NUMBER),
  MEMBER FUNCTION get_salary RETURN NUMBER,
  MAP MEMBER FUNCTION compare RETURN NUMBER);

CREATE TYPE emp_ary AS VARRAY(7) OF emp_typ;

L'arborescence emp_ary est la suivante :


Noeuds Objet colonne

  Exemples	  Rubriques connexes

Les objets colonne apparaissent sous forme de noeuds dans le noeud Colonnes. Chaque objet porte un libellé entre parenthèses, où figurent son nom et son type. Les noeuds objet colonne sont des noeuds composites où les attributs du type apparaissent sous forme de sous-noeuds.

Les objets colonne admettent quatre sous-types : type d'objet imbriqué, type de table, type de tableau variable et type d'objet REF. Les objets colonne sont affichés comme suit dans le Navigateur d'objet :

nom_colonne (type_objet_imbriqué)

nom_colonne (nom_type_table:TABLE OF nom_sous-type_table)

nom_colonne (nom_type_tableau_variable: VARRAY(taille) OF nom_sous-type_tableau_variable)

nom_colonne (REF nom_type_référence)


Noeud Objet colonne - exemples

  Rubriques connexes 	   Tous les exemples

Dans l'exemple qui suit, la colonne emp_col de la table emp_tab est un objet imbriqué de type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TABLE emp_tab (emp_col emp_typ, dept VARCHAR2(2));

L'arborescence emp_tab est la suivante :

Dans l'exemple suivant, la colonne emps de la table dept_tab est une table imbriquée de sous-type emp_tbl. Elle comporte des lignes de type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TYPE emp_tbl AS TABLE OF emp_typ;
CREATE TABLE dept_tab (dname VARCHAR2(20), emps emp_tbl)
  NESTED TABLE emps STORE AS emps_tab;

L'arborescence dept_tab est la suivante :

Dans l'exemple suivant, la colonne emps de la table dept_tab_ary est un tableau variable de sous-type emp_ary. Il comporte des lignes de type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TYPE emp_ary AS VARRAY(7) OF emp_typ;
CREATE TABLE dept_tab_ary (dname VARCHAR2(20), emps emp_ary);

L'arborescence dept_tab_ary est la suivante :

Dans l'exemple suivant, la colonne manager de la table dept_ref est un objet référencé de type emp_typ.

CREATE TYPE emp_typ AS OBJECT (ename VARCHAR2(30), esalary NUMBER(5,2));
CREATE TABLE dept_ref (dname VARCHAR2(20), manager REF emp_typ);

L'arborescence dept_ref est la suivante :


Noeuds Table d'objets

  Exemple	  Rubriques connexes

Les tables d'objets apparaissent dans le noeud Tables du Navigateur d'objet. Un noeud table d'objets correspond à une table créée par l'instruction SQL CREATE TABLE OF. Les noeuds table d'objets sont affichés comme suit dans le Navigateur d'objet :

nom_table_objets (nom_type_objet)

Chaque noeud table d'objets possède deux sous-noeuds : Déclencheurs et Colonnes. Le sous-noeud Déclencheurs contient tous les déclencheurs associés à la table d'objets. Ces déclencheurs sont affichés de la même manière que les déclencheurs associés aux tables relationnelles normales. Le noeud Colonnes contient toutes les colonnes relationnelles et les objets colonne associés à une table d'objets donnée. Chaque colonne porte un libellé entre parenthèses, où figurent son nom et son type.


Noeud Table d'objets - exemple

  Rubriques connexes 	   Tous les exemples

Les instructions SQL suivantes créent le type d'objet person_typ et la table d'objets person_tab.

CREATE TYPE person_typ AS OBJECT
  (name VARCHAR2(30), address VARCHAR2(60));

CREATE TABLE person_tab OF person_typ;

L'arborescence person_tab est la suivante :


Noeuds Vue d'objet

  Exemple	  Rubriques connexes

Les vues d'objet apparaissent dans le noeud Vues du Navigateur d'objet. Un noeud vue d'objet correspond à une vue créée à l'aide de la clause OF type_objet. Les noeuds vue d'objet portent un libellé entre parenthèses, où figurent leur nom et leur type. Les attributs de l'objet ne sont pas affichés.

Chaque noeud vue d'objet comporte deux sous-noeuds : Déclencheurs et Colonnes. Le sous-noeud Déclencheurs contient tous les déclencheurs associés à la vue d'objet, y compris les déclencheurs A la place de. Lorsqu'un tel déclencheur est associé à une vue, son libellé apparaît comme suit :

nom_déclencheur (INSTEAD OF instructions_déclenchement)


Noeud Vue d'objet - exemple

  Rubriques connexes 	   Tous les exemples

Les instructions SQL suivantes créent une vue d'objet.

CREATE TYPE emps_typ AS OBJECT (ename VARCHAR2(30), esalary number(5,2), deptno NUMBER(2));
CREATE TABLE emps (ename VARCHAR2(30), esalary number(5,2), deptno NUMBER(2));
CREATE VIEW dev_emps OF emps_typ
  WITH OBJECT OID (ename)
  AS SELECT ename, esalary, deptno FROM emps WHERE deptno = 10;

L'arborescence de la vue d'objet dev_emps est la suivante :


Développement de tous les noeuds des objets Oracle8

  Rubriques connexes

L'opération Développer tout du Navigateur d'objet ne développe pas les noeuds de type de données et d'attribut Oracle8 de façon récurrente.

Ainsi, si un attribut manager, de type emp_typ, apparaît comme descendant d'un autre type emp_typ, l'attribut manager ne sera pas développé par la commande Développer tout.


Utilisation de l'assistant Présentation pour disposer des éléments

Pour utiliser l'assistant Présentation pour disposer des éléments :

1	Dans le Navigateur d'objet, cliquez sur le bloc de votre choix.

2	Choisissez Outils [image] Assistant Présentation pour appeler un assistant vous expliquant comment disposer des éléments.


Sélection d'un objet

Pour sélectionner un objet :

1	Dans l'Editeur de présentation, cliquez sur l'outil de sélection de la Palette d'outils.

2	Cliquez sur l'objet de votre choix.


Sélection d'objets dans une région

Pour sélectionner des objets dans une région :

1	Dans l'Editeur de présentation, cliquez sur l'outil de sélection de la Palette d'outils.

2	Cliquez à l'aide de la souris et faites-la glisser jusqu'à ce que le rectangle de sélection entoure les objets que vous voulez sélectionner.


Ajout d'un objet à la sélection en cours

Pour ajouter un objet à la sélection en cours :

1	Dans l'Editeur de présentation, cliquez sur l'outil de sélection de la Palette d'outils.

2	Appuyez sur la touche Ctrl tout en cliquant sur l'objet de votre choix.


Sélection de tous les objets

Pour sélectionner tous les objets de l'espace de travail :

1	Choisissez Editer [image] Sélectionner tout.


Désélection d'un objet

Pour désélectionner un objet :

1	Cliquez à l'extérieur de la boîte englobante de l'objet.

Remarque : Pour désélectionner un seul objet d'une sélection multiple, cliquez sur l'objet tout en maintenant la touche Majuscules enfoncée.


Déplacement d'un objet

  Rubriques connexes

Pour déplacer un objet :

1	Dans l'Editeur de présentation, cliquez sur l'outil de sélection de la Palette d'outils.

2	Cliquez sur l'objet et faites-le glisser jusqu'à l'emplacement de votre choix.

Remarque : Pour déplacer simultanément plusieurs objets, sélectionnez-les, puis cliquez sur l'un des objets sélectionnés et faites-le glisser pour déplacer tous les objets de la sélection.


Déplacement d'une sélection par incrément

  Rubriques connexes

Pour déplacer une sélection par incréments :

1	Dans l'Editeur de présentation, sélectionnez l'objet de votre choix.

2	Appuyez sur les touches de déplacement du curseur [Haut], [Bas], [Gauche] ou [Droite].

Remarque : Lorsque la grille magnétique est désactivée, les touches de déplacement du curseur déplacent la sélection en cours, pixel par pixel, dans la direction indiquée. Lorsque la grille magnétique est activée, les touches de déplacement déplacent la sélection en cours de la distance d'un point de grille. Pour définir les incréments des points magnétiques dans la boîte de dialogue Paramètres de règles, sélectionnez Format [image] Options de présentation [image] Règle.


Contraintes de déplacement

  Rubriques connexes

Pour contraindre un déplacement :

1	Dans l'Editeur de présentation, appuyez sur la touche de contrainte (Maj sur la plupart des plates-formes) tout en faisant glisser l'objet sélectionné.


Redimensionnement d'un objet

  Rubriques connexes

Pour redimensionner un objet :

1	Dans l'Editeur de présentation, cliquez sur l'objet de votre choix.

2	Redimensionnez-le en cliquant sur l'une des poignées de sélection.


Objets de même taille

Pour donner la même taille à des objets :

1	Dans l'Editeur de présentation, sélectionnez les objets de votre choix.

2	Choisissez Réorganisation [image] Définir taille objets.

3	Dans la boîte de dialogue, indiquez si vous voulez que les objets sélectionnés aient la même hauteur et/ou la même largeur que le plus petit objet sélectionné, que le plus grand objet sélectionné ou une moyenne de tous les objets sélectionnés. Si vous voulez entrer une largeur ou une hauteur spécifique, choisissez Personnalisé.

4	Cliquez sur OK pour valider les paramètres de taille.


Alignement d'un objet

Pour aligner un objet :

1	Dans l'Editeur de présentation, cliquez sur l'objet de votre choix.

2	Choisissez Réorganisation [image] Aligner objets.

3	Dans la boîte de dialogue, indiquez comment vous voulez que les objets sélectionnés soient alignés. Vous pouvez aligner un objet sur la grille. Vous pouvez aligner plusieurs objets sélectionnés sur la grille ou les uns par rapport aux autres. Vous pouvez indiquer des options d'alignement horizontal et/ou vertical.

4	Cliquez sur OK pour valider les paramètres.

Remarque : Lorsque vous avez défini des paramètres d'alignement dans la boîte de dialogue Paramètres d'alignement, vous pouvez appliquer ces paramètres à toute sélection de plusieurs objets. Pour cela, commencez par sélectionner les objets que vous voulez aligner, puis sélectionnez Réorganisation [image] Répéter alignement.


Centrage d'un objet

Pour centrer un objet :

Lorsque l'option Affichage [image] Afficher le canevas est activée, le canevas lui-même est un objet qui peut être sélectionné. Pour centrer des objets au milieu d'un canevas, procédez de la manière suivante :

1	Dans l'Editeur de présentation, cliquez sur l'objet de votre choix.

2	Choisissez Réorganisation [image] Aligner objets.

3	3.Définissez l'alignement Horizontal et Vertical à Centrer.


A propos du groupement d'objets

  Rubriques connexes

Vous pouvez sélectionner plusieurs objets pour créer un groupe qui peut alors être manipulé comme s'il s'agissait d'un seul objet. Vous pouvez, par exemple, grouper plusieurs objets, puis déplacer le groupe en bloc, sans modifier les positions relatives des objets dans le groupe.


Groupement d'objets

  Rubriques connexes

Pour grouper des objets :

1	Dans l'Editeur de présentation, sélectionnez les objets de votre choix.

2	Choisissez Réorganisation [image] Grouper.

Le nouveau groupe d'objets est automatiquement sélectionné. Vous pouvez le manipuler comme s'il s'agissait d'un seul objet. Pour séparer les objets d'un groupe, sélectionnez le groupe, puis choisissez Réorganisation [image] Séparer.

Vous pouvez sélectionner et manipuler un groupe d'objets ou les différents objets qui le composent. Par exemple, pour déplacer un groupe, positionnez l'outil de sélection sur un objet du groupe, puis cliquez à l'aide de la souris et faites-la glisser. Pour redimensionner un groupe, utilisez l'outil de sélection pour faire glisser l'une des poignées de sélection du groupe.


Regroupement d'objets

Pour regrouper un objet :

1	Dans l'Editeur de présentation, cliquez sur les objets de votre choix.

2	Choisissez Réorganisation [image] Opérations sur des groupes [image] Ajouter au groupe.

Le nouveau groupe d'objets est automatiquement sélectionné. Vous pouvez le manipuler comme s'il s'agissait d'un seul objet. Pour séparer les objets d'un groupe, sélectionnez le groupe, puis choisissez Réorganisation [image] Séparer.


A propos du chevauchement d'objets

  Rubriques connexes

Vous pouvez positionner des objets sur un canevas de telle sorte que leurs rectangles de délimitation se chevauchent. Un objet se trouvant devant un autre objet peut masquer partiellement ou totalement l'objet qu'il chevauche.

Form Builder ne gère pas de la même façon l'ordre d'empilement des éléments et des objets graphiques : lorsqu'un élément et un objet graphique se chevauchent, l'élément est placé devant l'objet graphique, quel que soit leur ordre de création. Lorsque deux objets graphiques se chevauchent, celui qui a été créé en dernier est placé devant l'autre.


Ordre d'affichage des objets se chevauchant

  Rubriques connexes

Pour réorganiser des objets graphiques se chevauchant :

1	Dans l'Editeur de présentation, cliquez sur l'objet que vous voulez réorganiser.

2	Cliquez sur le bouton Passer au premier plan ou Passer en arrière-plan de la barre d'outils.


A propos des encadrements

  Rubriques connexes

Un encadrement est un objet graphique qui apparaît sur un canevas. Les encadrements permettent de positionner les différents éléments d'un bloc.

Lorsque vous positionnez des éléments dans un encadrement, vous pouvez, par exemple, créer une présentation de type application Forms, définir la distance entre les éléments et les invites, indiquer les marges et les décalages, etc.

Les encadrements offrent un certain nombre d'avantages :

•	Un encadrement est un objet qui a des propriétés.

Lorsque vous associez un encadrement à un bloc, les éléments du bloc sont automatiquement mis en place dans l'encadrement.

•	Chaque encadrement peut être associé à un bloc.

•	Les encadrements peuvent être subdivisés en sous-classes ou être inclus dans la bibliothèque d'objets afin d'appliquer des standards d'affichage.

Vous pouvez stocker des encadrements dans la bibliothèque d'objets pour constituer une méthode d'application des standards valables pour tout un projet ou toute une organisation. Vous pouvez créer une série de "feuilles de style" pour différents types de blocs (mono-enregistrement, multi-enregistrement ou maître-détail, par exemple). Pour réutiliser un encadrement stocké dans la bibliothèque d'objets, faites-le glisser sur un canevas, puis exécutez l'assistant Présentation pour positionner un bloc existant dans ce canevas.

•	Les encadrements peuvent être manipulés dans le Navigateur d'objet, l'Editeur de présentation et la Palette de propriétés.

•	Les encadrements peuvent être visibles ou invisibles.

Si un encadrement est visible, il est affiché sous la forme d'un rectangle en relief. Le contenu d'un encadrement apparaît dans la bordure de l'encadrement.

•	L'assistant Présentation utilise les encadrements pour disposer les éléments.


A propos de la disposition d'éléments dans les encadrements

  Rubriques connexes

La disposition des éléments dans une application Forms est un processus interactif.

Au départ, vous utilisez l'assistant Présentation pour disposer les différents éléments d'un bloc. Ultérieurement, vous affinez le processus en définissant les propriétés des différents encadrements. Enfin, vous pouvez également modifier manuellement la présentation dans l'Editeur de présentation.

Notes d'utilisation

•	Lorsque vous indiquez qu'un bloc doit être disposé dans un encadrement, Form Builder dispose chaque élément de l'encadrement, à l'exception de ceux qui apparaissent sur le canevas Null.

•	Par défaut, la présentation d'un encadrement est automatiquement mise à jour chaque fois que l'encadrement est positionné ou redimensionné, ou que l'une de ses propriétés est modifiée.

Lorsque vous redimensionnez ou repositionnez un encadrement, Form Builder dispose automatiquement les objets qu'il contient soit au nouvel emplacement, soit en fonction de la nouvelle taille. N'oubliez pas qu'un encadrement n'est pas un objet conteneur, mais qu'il définit la région dans laquelle la présentation est exécutée.

•	Si vous voulez disposer manuellement les objets d'un encadrement en les faisant glisser dans l'Editeur de présentation, définissez la propriété de mise à jour de la présentation à Verrouillé. Les modifications manuelles (par glissement) ne sont possibles que lorsque la présentation est relativement stable, car ces modifications risquent d'être perdues.

•	Si vous voulez redimensionner un encadrement, définissez sa propriété Shrinkwrap à Non. Par défaut, Form Builder supprime les espaces blancs dans un encadrement.

•	Lorsque vous ajoutez un élément à un bloc déjà disposé dans un encadrement, vous devez mettre la présentation à jour pour réorganiser le nouvel élément à l'intérieur de l'encadrement.

•	Lorsque vous supprimez un élément d'un encadrement (à l'aide de l'assistant Présentation) Form Builder définit la propriété Canevas de l'élément à Null.

Restrictions

•	Un encadrement ne peut être associé qu'à un seul bloc et ne peut contenir que les éléments du bloc auquel il est associé. Un encadrement ne peut contenir des éléments de plusieurs blocs.


Création d'un encadrement

  Etape suivante	    Rubriques connexes

Pour créer un encadrement :

Choisissez Outils [image] Assistant Présentation pour afficher un assistant qui vous explique comment créer un encadrement.

Ou,

1	Dans l'Editeur de présentation, cliquez sur le bouton d'encadrement de la Palette d'outils.

2	Cliquez à l'aide de la souris et faites-la glisser pour créer un encadrement.


Disposition des éléments dans un encadrement

  Rubriques connexes

Pour disposer des éléments dans un encadrement :

Dans le Navigateur d'objet, cliquez sur le bloc de vote choix, puis choisissez Outils [image] Assistant Présentation pour appeler un assistant qui vous explique comment disposer les différents éléments dans un encadrement.

Ou,

1	Dans l'Editeur de présentation, cliquez deux fois sur l'objet d'encadrement pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation, définissez la propriété Bloc de données de présentation au nom du bloc de votre choix. Ce bloc sera disposé dans l'encadrement.


Création d'une disposition de type tabulaire dans un encadrement

 Montrez-moi	    Rubriques connexes

Pour créer une disposition de type formulaire dans un encadrement :

Choisissez Outils [image] Assistant Présentation pour afficher un assistant qui vous explique comment procéder.

Ou,

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation, définissez la propriété Style de présentation à Tabulaire.


Création d'une disposition de type formulaire dans un encadrement

 Montrez-moi	    Rubriques connexes

Pour créer une disposition de type formulaire dans un encadrement :

Choisissez Outils [image] Assistant Présentation pour afficher un assistant qui vous explique comment procéder.

Ou,

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation, définissez la propriété Style de présentation à Formulaire.


Ajout d'un élément à un encadrement

  Rubriques connexes

Pour ajouter des objets à un encadrement :

Choisissez Outils [image] Assistant Présentation pour afficher un assistant qui vous explique comment ajouter des éléments à un encadrement.

Ou,

1	Dans l'Editeur de présentation, créez l'élément de votre choix.

2	Indiquez le bloc auquel appartient le nouvel élément en choisissant un bloc dans le champ Bloc. Ce champ se trouve dans la partie supérieure de l'Editeur de présentation. Cliquez sur la liste déroulante pour afficher la liste de tous les blocs.

3	Cliquez deux fois sur l'élément pour afficher la Palette de propriétés.

4	Sous le noeud Physique, définissez la propriété Canevas au canevas approprié.

Conseil : Le canevas que vous indiquez doit être celui sur lequel apparaissent les autres éléments du bloc. Par exemple, si les éléments de BLOC1 apparaissent sur CANEVAS1, définissez la propriété CANEVAS du nouvel élément créé à CANEVAS1.

5	Dans l'Editeur de présentation, cliquez sur l'encadrement.

6	Cliquez sur le bouton de mise à jour de la présentation dans la barre d'outils.


Suppression d'un élément d'un encadrement

  Rubriques connexes

Pour supprimer un élément d'un encadrement :

Choisissez Outils [image] Assistant Présentation pour afficher un assistant qui vous explique comment supprimer des éléments d'un encadrement.

Ou,

1	Dans l'Editeur de présentation, cliquez deux fois sur l'élément de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Physique, définissez la propriété Canevas à Null.


Mise à jour de la présentation d'un encadrement

  Rubriques connexes

Pour mettre à jour la présentation d'un encadrement :

1	Dans l'Editeur de présentation, cliquez sur l'encadrement.

2	Cliquez sur le bouton de mise à jour de la présentation dans la barre d'outils.


Déplacement d'un encadrement

  Rubriques connexes

Pour déplacer un encadrement :

Dans l'Editeur de présentation, cliquez sur l'encadrement et faites-le glisser à l'emplacement de votre choix.

Remarque : Lorsque vous déplacez un encadrement, Form Builder recrée automatiquement sa présentation au nouvel emplacement si la propriété Mettre à jour présentation de l'encadrement est définie à Automatique (valeur par défaut).


Redimensionnement d'un encadrement

  Rubriques connexes

Pour redimensionner un encadrement :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Dans Cadre de présentation, paramétrez la propriété Prêt à l'emploi sur Non.

3	Dans l'Editeur de présentation, redimensionnez l'encadrement en faisant glisser l'une de ses poignées de sélection.

Lorsque vous redimensionnez un encadrement, Form Builder recrée automatiquement sa présentation, en fonction de la nouvelle taille, si la propriété Mettre à jour présentation de l'encadrement est définie à Automatique (valeur par défaut).


Suppression d'un encadrement

  Rubriques connexes

Pour supprimer un encadrement :

1	Dans l'Editeur de présentation, sélectionnez l'encadrement.

2	Choisissez Edition [image] Effacer.


Déplacement d'un élément dans un encadrement

  Rubriques connexes

Pour déplacer un élément dans un encadrement :

1	Dans l'Editeur de présentation, cliquez sur l'élément et faites-le glisser à l'emplacement de votre choix.

Conseil : Si vous affinez la présentation des éléments d'un encadrement en faisant glisser l'un d'entre eux à son nouvel emplacement, définissez la propriété Mettre à jour présentation de l'encadrement à Verrouillé, sinon vos modifications seront perdues lors de la prochaine mise à jour de la présentation de l'encadrement.


Redimensionnement d'un élément dans un encadrement

Pour redimensionner un élément dans un encadrement :

Choisissez Outils [image] Assistant Présentation pour afficher un assistant qui vous explique comment redimensionner un élément dans un encadrement.

Ou,

1	Dans l'Editeur de présentation, cliquez sur l'élément de votre choix.

2	Redimensionnez-le en cliquant sur l'une des poignées de sélection.


Alignement de tous les objets dans un encadrement

 Montrez-moi	    Rubriques connexes

Pour aligner tous les objets dans un encadrement :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation :

•	Définissez la propriété Style de présentation à Formulaire.

•	Définissez la propriété Cadre de présentation à Début, Fin, Centre, Rempli ou Colonne.


Alignement d'un seul élément dans un encadrement

  Rubriques connexes

Pour aligner un élément dans un encadrement :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation, définissez la propriété Alignement d'un objet à Début, Fin ou Centre.


Définition de la distance entre l'encadrement et ses éléments

 Montrez-moi

Pour définir la distance entre l'encadrement et ses éléments :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation :

•	Définissez la propriété Marge horizontale à la distance voulue.

•	Définissez la propriété Marge verticale à la distance voulue.


Marges horizontale et verticale


Définition de la distance entre les différents éléments d'un encadrement

 Montrez-moi

Pour définir la distance entre les objets d'un encadrement :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation :

•	Définissez la propriété Décalage d'objet horizontal à la distance voulue.

•	Définissez la propriété Décalage d'objet vertical à la distance voulue.


Décalages d'objets horizontal et vertical


Alignement d'invites dans un encadrement

 Montrez-moi

Pour aligner une invite et son élément :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation :

•	Définissez la propriété Alignement de l'invite de début à Début, Fin ou Centre,

Ou,

•	Définissez la propriété Alignement de l'invite supérieure à Début, Fin ou Centre.


Alignement de l'invite

Alignement de l'invite de début

Alignement de l'invite supérieure


Définition du décalage d'invite dans un encadrement

 Montrez-moi

Pour définir la distance entre une invite et son élément :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'encadrement de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Cadre de présentation :

•	Définissez la propriété Décalage de l'invite de début à la distance de votre choix si des invites sont attachées au début de leurs éléments.

Ou,

•	Définissez la propriété Décalage de l'invite supérieure à la distance de votre choix si des invites sont attachées en haut de leurs éléments.


Décalage de l'invite de début et de l'invite supérieure

Décalage de l'invite de début

  Décalage de l'invite supérieure


A propos des invites

  Rubriques connexes

Une invite est un libellé de texte qui apparaît à côté d'un élément et est lié à celui-ci. A chaque contrôle d'interface peut être associée une invite. Par exemple, une case à cocher contient un libellé texte, ou invite, qui s'affiche avec elle.

A la différence des textes graphiques (tels que les éléments de zone de texte), les invites sont directement liées à un élément.. Par exemple, lorsque vous déplacez un élément dans l'Editeur de présentation, Form Builder fait passer l'élément et son invite ensemble à leur nouvel emplacement.

Form Builder offre plusieurs propriétés qui vous permettent de disposer et de gérer les invites et de préciser leur aspect visuel.


Association d'une invite à un élément

  Rubriques connexes

Pour associer une invite à un élément :

1	Dans l'Editeur de présentation, sélectionnez un élément et un objet texte.

2	Cliquez sur le bouton Associer invite de la barre d'outils de cet éditeur.

Dans la Palette de propriétés, sous le noeud Invite, affichez le libellé de texte associé dans le champ de la propriété Invite.


Création d'une invite

  Rubriques connexes

Pour créer une invite :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'élément de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Invite, entrez le libellé de texte de votre choix dans le champ de propriété Invite


Définition du style d'affichage d'une invite

  Rubriques connexes

Pour définir le style d'affichage d'une invite :

1	Dans l'Editeur de présentation, cliquez deux fois l'invite de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Invite, définissez la propriété Style d'affichage de l'invite à Masqué, Premier enregistrement ou Tous les enregistrements.


Justification d'une invite

  Rubriques connexes

Pour justifier une invite :

1	Dans l'Editeur de présentation, cliquez deux fois l'invite de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Invite, définissez la propriété Justification de l'invite à Gauche, à Droite, à Centre, à Début ou à Fin.


Définition du bord d'attachement d'une invite

  Rubriques connexes

Pour définir le bord d'attachement d'une invite :

1	Dans l'Editeur de présentation, cliquez deux fois l'invite de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Invite, définissez la propriété Bord d'attachement de l'invite à Début, à Fin, à Haut ou à Bas.


Alignement d'une invite et de son élément

  Rubriques connexes

Pour définir l'alignement d'une invite et de son élément :

1	Dans l'Editeur de présentation, cliquez deux fois l'invite de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Invite, définissez la propriété Alignement d'invite à Début, à Fin ou à Centre.


Définition de la distance entre une invite et son élément

  Rubriques connexes

Pour définir la distance entre une invite et son élément :

1	Dans l'Editeur de présentation, cliquez deux fois l'invite de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Invite, définissez la propriété Décalage d'attachement de l'invite à la distance de votre choix.


Définition du décalage d'alignement d'une invite

  Rubriques connexes

Pour définir le décalage d'alignement d'une invite :

1	Dans l'Editeur de présentation, cliquez deux fois l'invite de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Invite, définissez la propriété Décalage d'alignement de l'invite à la distance de votre choix.


A propos de la mise en forme d'éléments dans l'Editeur de présentation

Lorsque vous définissez les attributs de police, de couleur et de motif des éléments dans l'Editeur de présentation, Form Builder met à jour les propriétés des éléments concernés dans la Palette de propriétés.

Comme les éléments sont rendus dans le style approprié à la plate-forme runtime, certains attributs d'élément sont prédéfinis et ne peuvent pas être définis dans l'Editeur de présentation :

•	Vous ne pouvez pas rendre des éléments transparents. L'option Pas de remplissage de la palette Couleurs de remplissage n'est valide que pour les objets graphiques ou de texte. Si vous voulez qu'un élément texte ou un élément affiché affiche uniquement du texte, définissez la propriété Relief à Aucun et donnez à la Couleur de remplissage de l'élément la couleur du canevas.

•	Vous ne pouvez pas indiquer de largeur de ligne pour les éléments. La commande Format [image] Largeur de trait n'est valide que pour les objets graphiques ou de texte. Définissez la propriété Biseau de manière à contrôler la bordure des éléments.

•	Vous ne pouvez pas indiquer de couleur de ligne pour les éléments. La palette de couleurs de ligne n'est valide que pour les objets graphiques ou de texte.

•	Vous ne pouvez pas indiquer de paramètre de biseau pour les éléments. La commande Format [image] Biseau n'est valide que pour les objets graphiques ou de texte.

Lorsque vous mettez un élément en forme dans l'Editeur de présentation, Form Builder définit implicitement la propriété Groupe d'attributs visuels de l'élément à Personnalisé. Si un élément hérite les attributs visuels d'un attribut visuel nommé, la définition de ses propriétés dans l'Editeur de présentation rompt l'association avec l'attribut visuel nommé. Si un élément hérite les attributs visuels d'une classe de propriété, la définition de ces attributs dans l'Editeur de présentation remplace les paramètres hérités.


A propos des palettes de couleurs

Les choix de couleur par défaut qui vous sont proposés dans l'Editeur de présentation et la Palette de propriétés sont dérivés de la Palette de couleurs en cours. Les palettes de couleurs peuvent être éditées, enregistrées dans le système de fichiers ou dans la base de données, et importées en cas de besoin.

La palette de couleurs par défaut a les caractéristiques suivantes :

1	Sa partie supérieure gauche comporte les 16 couleurs couramment utilisées : noir, blanc, vert, vert foncé, gris, gris foncé, cyan, cyan foncé, rouge, rouge foncé, bleu, bleu foncé, jaune, jaune foncé, magenta, magenta foncé.

2	Sa partie inférieure gauche contient 8 cellules vides dans laquelle vous pouvez placer des couleurs définies personnalisées.

3	Les 4 colonnes suivantes se composent de différentes nuances de gris. Chacune d'entre elles a pour nom 'gris<valeur>', en fonction de son pourcentage de gris. Les valeurs vont de 4 à 96, par incrément de 4. Par exemple, 'gris96', 'gris92' et 'gris4'.

4	Le reste de la palette contient des couleurs indiquées par différents pourcentages de rouge, vert et bleu (RVB) :

•	Les valeurs de pourcentage de chaque composant rouge ou vert sont : 0, 25, 50, 75, 88 ou 100

•	Les valeurs de pourcentage de chaque composant de bleu sont : 0, 50, 75, 88 ou 100.

•	Chaque couleur est appelée `r<valeur>g<valeur>b<valeur>', selon ses valeurs RVB (par exemple, la couleur composée de 100% de rouge, 88% de bleu, et 0% de vert s'appelle `r100b88g0').

•	A l'exception des cellules de couleur décrites ci-dessus, la palette se compose de cinq parties principales contenant chacune 36 couleurs, disposées 6 par 6. Ces couleurs répondent aux règles suivantes :

•	La valeur de rouge augmente lorsque les couleurs progressent de gauche à droite dans chaque partie principale.

•	La valeur de vert augmente lorsque les couleurs progressent de haut en bas dans chaque partie principale.

•	La valeur de bleu augmente lorsque les couleurs progressent de gauche à droite, toutes les couleurs de la même partie utilisant la même valeur de bleu.


Définition des attributs de couleur d'un objet

  Rubriques connexes

Pour définir les attributs de couleur d'un objet :

1	Dans l'Editeur de présentation, cliquez sur l'objet de votre choix.

2	Dans la barre d'outils de cet éditeur, cliquez sur [image] (outil Couleur de remplissage), sur [image] (outil Couleur de ligne) ou sur [image] (outil Couleur du texte) pour afficher la boîte de dialogue Couleur.

3	Cliquez sur une couleur de la palette.

4	Cliquez sur OK.

Remarque : Dans Microsoft Windows, la couleur du texte du bouton est toujours déterminée par les paramètres indiqués dans la boîte de dialogue des paramètres de couleurs du panneau de contrôle, et ne peut pas être indiquée dans l'Editeur de présentation.


Définition des attributs de motif d'un objet

  Rubriques connexes

Pour définir les attributs de motif d'un objet :

1	Dans l'Editeur de présentation, cliquez deux fois sur l'objet de votre choix afin d'afficher la Palette de propriétés.

2	Sous le noeud Couleur, cliquez deux fois sur la propriété Motif de remplissage afin d'afficher la palette de motifs de remplissage.

3	Sélectionnez un motif.


Définition des attributs de police d'un objet

  Rubriques connexes

Pour définir les attributs de police d'un objet :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône de l'objet souhaité afin d'afficher la Palette de propriétés.

2	Sous le noeud Police, paramétrez les propriétés suivantes :

•	Nom de police

•	Taille de police

•	Epaisseur de police

•	Style de police

•	Espacement de police


A propos des arborescences

  Rubriques connexes

Les données apparaissent dans une arborescence de la même manière que dans un navigateur standard, similaire à ceux utilisés dans Forms Developer.

Vous pouvez compléter une arborescence avec les valeurs d'un groupe d'enregistrements ou du texte d'une interrogation. Lors de l'exécution, vous pouvez, via un programme, ajouter, supprimer, modifier ou évaluer les éléments de cette arborescence.

La quantité de données affichées dépend du développement de chaque noeud et de la méthode utilisée pour procéder à ce développement (procédure interne ou clic de l'utilisateur). En général, l'ensemble de données est d'abord indiqué dans Form Builder ; il peut être modifié ou remplacé intégralement au cours de l'exécution.


Création d'une arborescence

 Exemples 	  Rubriques connexes

Pour créer une arborescence :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du noeud bloc souhaité.

Form Builder développe le noeud Blocs et affiche ses sous-noeuds.

2	Cliquez sur le noeud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le noeud Eléments.

4	Cliquez deux fois sur l'icône située à côté de cet élément pour afficher la Palette de propriétés.

5	Sous le noeud Général, paramétrez la propriété Type d'élément sur Arborescence.

6	Sous le noeud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.


Ajout de données à une arborescence

 Exemples 	  Rubriques connexes

Vous pouvez ajouter des données à une vue hiérarchique en procédant de l'une des manières suivantes :

•	En complétant une arborescence avec les valeurs d'un groupe d'enregistrements ou d'une interrogation via la procédure interne Populate_Tree.

•	En ajoutant des données sous le noeud souhaité d'une arborescence via la procédure interne Add_Tree_Data.

•	En modifiant les éléments d'une arborescence au cours de l'exécution à l'aide de sous-programmes intégrés.

•	En ajoutant ou en supprimant des noeuds, ainsi que les données qu'ils contiennent.

Remarque : Toutes les procédures internes sont disponibles dans le package intégré FTREE.


Ajout de noeuds à une arborescence

 Exemples 	  Rubriques connexes

Vous pouvez ajouter, un par un, des noeuds à une arborescence, ou compléter cette arborescence avec les valeurs d'un groupe d'enregistrements ou d'une interrogation.

Vous pouvez ajouter des valeurs à une arborescence via les sous-programmes intégrés suivants :

•	Add_Tree_Node

•	Delete_Tree_Node

•	Find_Tree_Node

•	Get_Tree_Node_Parent

•	Get_Tree_Node_Property

•	Get_Tree_Property

•	Get_Tree_Selection

•	Set_Tree_Node_Property

•	Set_Tree _Property

•	Set_Tree_Selection

Remarque : Si vous devez faire référence à la pseudo-racine de l'arborescence, utilisez la constante FTREE.ROOT_NODE. Toutes les procédures internes sont disponibles dans le package intégré FTREE.


Définition d'une valeur initiale pour une arborescence

  Rubriques connexes

Pour définir une valeur initiale pour une arborescence :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône située à côté de l'objet souhaité de l'arborescence pour afficher la Palette de propriétés.

2	Sous le noeud Fonctionnel, indiquez le nom du groupe d'enregistrements ou le texte d'interrogation contenant les valeurs initiales.

Remarque : Vous obtenez ainsi les valeurs initiales, mais aucun élément n'apparaît si vous n'utilisez pas la procédure interne Populate_Tree afin de compléter l'arborescence.


 Format de données utilisé pour compléter une arborescence

  Rubriques connexes

Les colonnes de groupes d'enregistrements ou d'interrogations employées pour compléter une arborescence sont les suivantes :

•	Etat initial

•	Profondeur de l'arborescence de noeuds

•	Libellé du noeud

•	Icône du noeud

•	Données

Par exemple, les données du tableau ci-dessous permettent de créer l'arborescence suivante :

  +  - Voiture

  |

  -  - Avion

     | - Boeing

     | - Boeing

Etat initial	Profondeur	Libellé	Icône	Données
-1	1	'Voiture'	''	'voiture'
0	2	'Honda'	''	'civic'
1	1	'Avion'	''	'avion'
0	2	'Boeing'	''	'747'
0	2	'Boeing'	''	'757'


Modification d'une arborescence lors de l'exécution

  Rubriques connexes

Form Builder est doté de déclencheurs qui vous permettent de répondre à des événements intervenant lorsque l'utilisateur final interagit avec l'arborescence au cours de l'exécution.

•	When-Tree-Node-Activated

•	When-Tree-Node-Expanded

•	When-Tree-Node-Selected

Lors de l'exécution, vous pouvez, par programme, ajouter, supprimer, modifier ou évaluer les éléments d'une arborescence via les sous-programmes intégrés suivants :

•	Add_Tree_Data

•	Add_Tree_Node

•	Delete_Tree_Node

•	Find_Tree_Node

•	Get_Tree_Node_Parent

•	Get_Tree_Selection

•	Populate_Group From_Tree

•	Populate_Tree

•	Set_Tree_Selection

Remarque : Toutes les procédures internes sont disponibles dans le package intégré FTREE.


Définition des propriétés des éléments d'une arborescence

  Rubriques connexes

Pour définir une propriété d'un élément d'arborescence dans Form Builder :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône située à côté de l'arborescence souhaitée.

2	Dans la Palette de propriétés, sélectionnez la propriété que vous voulez définir.

3	Définissez la propriété sélectionnée à l'option voulue.

Vous pouvez définir des propriétés pendant l'exécution à l'aide des procédures internes suivantes :

•	Get_Tree_Node_Property

•	Get_Tree_Property

•	Set_Tree_Node_Property

•	Set_Tree _Property

Remarque : Toutes les procédures internes sont disponibles dans le package intégré FTREE.


Remplissage d'une arborescence

  Rubriques connexes

Vous pouvez compléter une arborescence avec les valeurs contenues dans un groupe d'enregistrements ou dans le texte d'une interrogation via l'un des sous-programmes intégrés suivants :

•	Populate_Tree

•	Add_Tree_Data

Remarque : Toutes les procédures internes sont disponibles dans le package intégré FTREE.


Création d'une arborescence - Exemple

-- Arborescence - Exemple

--

-- La première opération consiste généralement à compléter

-- l'arborescence avec des données.

DECLARE

   htree         ITEM;

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Définit le groupe d'enregistrements et affiche les données.

   Ftree.Set_Tree_Property(htree, Ftree.RECORD_GROUP, 'record_group5');

END;

-- Développement des noeuds d'une arborescence - Exemple

--

-- Ce code permet de développer tous les noeuds d'une arborescence.

DECLARE

   htree         ITEM;

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Rechercher le noeud racine de l'arborescence.

   node  := Ftree.Find_Tree_Node(htree, '');

   -- Vérifiez tous les noeuds et développez-les s'ils sont en icône.

   WHILE NOT Ftree.ID_NULL(node) LOOP

      state := Ftree.Get_Tree_Node_Property(htree, node, Ftree.NODE_STATE);

      IF state = Ftree.COLLAPSED_NODE THEN

         Ftree.Set_Tree_Node_Property(htree, node, Ftree.NODE_STATE, Ftree.EXPANDED_NODE);

      END IF;

      node := Ftree.Find_Tree_Node(htree, '', search_root => node);

   END LOOP;

END;

-- Suppression des noeuds d'une arborescence - Exemple

--

-- Ce code supprime tous les noeuds de l'arborescence marqués comme étant sélectionnés

-- Reportez-vous à la procédure interne Ftree.Set_Tree_Selection pour obtenir la définition de « sélectionnés ».

DECLARE

   htree         ITEM;

   num_selected  NUMBER;

BEGIN

   -- Rechercher l'arborescence.

   htree := Find_Item('tree_block.htree3');

   -- Rechercher le nombre de noeuds marqués comme étant « sélectionnés ».

   num_selected := Ftree.Get_Tree_Property(htree, Ftree.SELECTION_COUNT);

   -- Vérifiez les noeuds et supprimez-les. Les noeuds étant renumérotés

   -- de façon interne, lorsque l'un d'eux est supprimé, veillez à effectuer

   -- cette vérification en sens inverse, c'est-à-dire du dernier au premier.

   FOR j IN num_selected..1 LOOP

      Ftree.Delete_Tree_Node(htree, Ftree.Get_Tree_Selection(htree, j));

   END LOOP;

END;


A propos d'ActiveX et OLE

  Rubriques connexes

OLE (Object Linking and Embedding) a été créé pour assurer la coopération d'applications distinctes présentant un document composé unique. Les documents composés lient ou incorporent un ou plusieurs documents ; ils apportent une solution à l'intégration de différents types d'objet dans un seul document. Par exemple, un module Application Forms peut être un document composé contenant des objets d'autres applications, tels que des documents de traitement de texte ou de tableur.

COM (Component Object Model), prolongement de la solution des documents composés pour services partagés étendus, a été créé sous l'appellation OLE2. OLE2 offre des fonctions d'automatisation, une technologie utilisant COM et qui comprend une interface de programmation standard. Par exemple, Microsoft Excel peut aussi bien être une boîte d'outils qu'une application utilisateur final. Le terme OLE est devenu synonyme pour la plupart des technologies utilisant COM.

Aujourd'hui, ActiveX remplace OLE comme terme utilisé pour désigner les technologies utilisant COM. OLE, encore une fois, fait référence à la liaison et à l'intégration d'objets dans des documents composés.

Les contrôles ActiveX, connus à l'origine comme contrôles OLE ou OCX, font appel aux technologies ActiveX et OLE. Un contrôle ActiveX est un composant logiciel autonome offrant une interface utilisateur et qui transmet des événements à des clients conformément aux normes définies par COM. C'est une application serveur OLE qui est entièrement incorporée dans une application avec des fonctions client OLE.


A propos de ActiveX et de OLE dans Form Builder

  Rubriques connexes

Au lieu d'une application monolithique vous offrant presque toutes les fonctions souhaitées, les objets composant et une bonne intégration vous permettent de disposer d'une application personnalisée et maniable correspondant à tous vos besoins.

Les documents de traitement de texte, les document de tableur, les boutons et les clips vidéo sont des exemples d'objets composant qui peuvent perfectionner les fonctions de votre application Forms. Au lieu de recréer des fonctionnalités existantes, vous pouvez y accéder à l'aide de ActiveX et de OLE de Form Builder. Les objets composant offrent des services spécialisés non disponibles dans Form Builder. Ils permettent de perfectionner l'application client en offrant des fonctionnalités supplémentaires intégrées.


Support d'ActiveX dans Form Builder

  Rubriques connexes

Form Builder offre un support pour les contrôles ActiveX. Les contrôles ActiveX sont des composants réutilisables qui peuvent être incorporés dans votre application Form Builder. Form Builder joue le rôle d'un conteneur de contrôle ActiveX.

Le type d'élément Contrôle ActiveX crée un conteneur pour votre contrôle ActiveX. Un contrôle ActiveX n'est pas une application distincte, mais un serveur raccordé à un conteneur ActiveX.

Nous vous conseillons d'utiliser les contrôles ActiveX dans des blocs dont la propriété Enregistrement unique est définie à Oui. Cette propriété ne s'applique pas aux blocs multi-enregistrements. Nous vous conseillons donc de définir cette propriété à Oui, car les enregistrements uniques sont immédiatement initialisés lorsque Forms Runtime commence à s'exécuter. Dans le cas d'enregistrements multiples, les différents enregistrements ne sont initialisés que lorsque l'utilisateur y passe par navigation. Sans initialisation, l'élément de contrôle ActiveX est vide, ce qui donne l'impression qu'aucun contrôle n'est disponible.

Chaque contrôle ActiveX offre un ensemble de propriétés, de méthodes et d'événements. Les propriétés définissent les attributs physiques et logiques du contrôle ActiveX, les méthodes définissent les actions que le contrôle ActiveX peut exécuter et les événements indiquent des changements d'état du contrôle ActiveX. Une application client manipule un contrôle ActiveX en entrant des valeurs dans les propriétés ou en obtenant des valeurs de ces propriétés, en appelant des méthodes qui sont souvent utilisées pour lire et définir des propriétés, en interceptant des événements et en agissant sur eux.

Les contrôles ActiveX sont un type spécial de bibliothèque dynamique. Un seul fichier ActiveX, distribué avec le suffixe .OCX, peut contenir plusieurs classes d'objets ActiveX.

Les contrôles ActiveX ne sont pas des variantes de VBX. Les contrôles VBX, exclusivement utilisables dans les applications 16 bits, ne fonctionnent pas dans des environnements 32 bits. Les contrôles ActiveX offrent des fonctionnalités semblables à celles des contrôles VBX dans un environnement 32 bits.

Etant donné que le développement de vos propres contrôles ActiveX ou serveurs OLE peut demander beaucoup de temps, nous vous conseillons d'utiliser les contrôles ActiveX et les serveurs OLE développés et distribués par des tiers. La documentation qui accompagne les contrôles ActiveX et les serveurs OLE contient des informations sur les propriétés, les méthodes et les événements.


A propos de l'ajout d'un contrôle ActiveX à votre application

  Rubriques connexes

Les contrôles ActiveX ne doivent être ajoutés qu'à des blocs mono-enregistrement. Form Builder initialise automatiquement le contrôle ActiveX lorsque celui-ci est un bloc mono-enregistrement. Lorsque vous ajoutez un contrôle ActiveX à un bloc multi-enregistrement, seul la première instance du contrôle ActiveX est initialisée au démarrage ; les autres instances restent non initialisées jusqu'à ce que vous naviguiez vers celles-ci. Les contrôles non initialisés apparaissent en blanc, donnant l'impression qu'aucun contrôle n'est disponible pour ces instances d'élément. Pour créer un bloc mono-enregistrement, définissez la propriété de bloc Nombre d'enregistrements affiché à 1, ou la propriété Nombre d'éléments affiché (pour le conteneur de contrôle ActiveX) à 1.

Les contrôles ActiveX exportent des interfaces qui contiennent des méthodes et des événements. Form Builder importe les méthodes et les événements dans PL/SQL, ce qui vous permet d'interagir avec les contrôles ActiveX dans l'environnement Form Builder natif.

Form Builder affiche les méthodes importées sous le noeud Unités de programme dans le Navigateur d'objet. Vous pouvez accéder à ces méthodes OLE depuis votre application à l'aide des packages intégrés STANDARD et OLE2.


Ajout d'un contrôle ActiveX à votre application

  Rubriques connexes

Pour ajouter un contrôle ActiveX à votre application :

1	Créez un conteneur de contrôle ActiveX.

2	Insérez un contrôle ActiveX.

3	Importez les méthodes et les événements de contrôle ActiveX souhaités.

4	Ecrivez le code PL/SQL approprié pour interagir avec le contrôle ActiveX :

•	Appelez les propriétés.

•	Appelez les méthodes.

•	Répondez aux événements.


Création d'un conteneur de contrôle ActiveX

  Etape suivante	  Rubriques connexes

Pour créer un conteneur de contrôle ActiveX :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du noeud bloc souhaité.

Form Builder développe le noeud Blocs et affiche ses sous-noeuds.

2	Cliquez sur le noeud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

4	Cliquez deux fois sur l'icône objet en regard du nouvel élément créé pour afficher la Palette de propriétés.

5	Sous le noeud Général, définissez la propriété Type d'élément sur Contrôle ActiveX.

6	Sous le noeud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.


Insertion d'un contrôle ActiveX dans une application Forms

  Etape suivante	  Rubriques connexes

Pour insérer un contrôle ActiveX dans une application Forms :

1	Dans l'Editeur de présentation, sélectionnez le conteneur de contrôle ActiveX.

2	Dans le menu instantané (cliquez sur Windows avec le bouton droit de la souris), choisissez Insérer objet pour afficher la boîte de dialogue correspondante.

3	Cliquez sur le contrôle souhaité, puis sur OK.

4	Dans l'Editeur de présentation, cliquez deux fois sur le conteneur de contrôle ActiveX pour afficher la Palette de propriétés.

5	Sous le noeud Fonctionnel :

•	Définissez la propriété Classe OLE ; chacune des classes OLE contient plusieurs contrôles.

•	Définissez les propriétés de contrôle et de conteneur souhaitées.


Import de packages de méthodes et d'événements de contrôle ActiveX

  Rubriques connexes

Pour importer des méthodes et des événements de contrôle ActiveX :

1	Choisissez Programme [image] OLE Importer pour afficher la boîte de dialogue d'import OLE.

2	Sélectionnez la classe OLE voulue, puis choisissez les méthodes et les événements OLE souhaités.

3	Cliquez sur OK.


Interaction avec un contrôle ActiveX

  Rubriques connexes

Vous pouvez interagir avec les contrôles ActiveX de nombreuses façons :

•	Définition et recherche des propriétés de contrôle ActiveX

•	Appel des méthodes de contrôle ActiveX

•	Réaction aux événements de contrôle ActiveX


Définition et recherche des propriétés de contrôle ActiveX

 Restrictions	  Rubriques connexes

Vous pouvez définir et rechercher les valeurs de propriété ActiveX à l'aide des éléments suivants :

•	syntaxe de variable de lien ;

•	fonction d'accès aux propriétés (procédures PL/SQL) ;

•	boîte de dialogue de propriétés de contrôle depuis la Palette de propriétés.


Définition et recherche des propriétés de contrôle ActiveX - Restrictions

•	:item('ActXitm').OCX.server_name.property_name n'est pas compilé si server_name n'est pas sur votre machine.

•	Pour les plates-formes autres que Microsoft Windows, le compilateur peut générer un message d'avertissement parce que les types de propriété de contrôle ActiveX ne peuvent pas être déterminés sur la plate-forme UNIX.

•	Votre application Forms ne sera pas compilée si le contrôle ActiveX exporte des noms de propriété différents pour des langages différents.


Propriétés de contrôle ActiveX - Syntaxe de variable de lien

 Exemples

Pour définir et rechercher les propriétés de contrôle ActiveX à l'aide de la syntaxe de variable de lien :

 Utilisez la syntaxe de variable de lien pour attribuer ou extraire des valeurs de propriété.

Par exemple, :item('block_name.item_name').ocx.server_name.property,

où 	block_name	est le nom du bloc de données,

item_name	le nom du contrôle ActiveX,

server_name	le nom du serveur ActiveX

property	le nom de la propriété ActiveX à accéder.


Définition des propriétés de contrôle ActiveX à l'aide de la syntaxe de variable de lien - Exemples

 Restrictions

/* Définir une propriété de contrôle ActiveX à l'aide de la syntaxe de variable de lien */

:item('ActXitem').OCX.Spindial.spindialctrl.1.Needleposition:=
:item('ActXitem').OCX.Spindial.spindialctrl.1.Needleposition + 1;

ActXitem est le nom de l'élément, Spindial.spindialctrl.1, le nom du serveur de contrôle ActiveX, et Needleposition, le nom de la propriété.

Le code suivant fonctionne également si .cursor_item de votre système est un contrôle ActiveX :
:form.cursor_item.OCX.spindial.spindialctrl.1.Needlposition :=
:form.cursor_item.OCX.spindial.spindialctrl.1.Needlposition + 1;


Propriétés de contrôle ActiveX - Fonction d'accès aux propriétés

 Exemples

Pour définir et rechercher les propriétés de contrôle ActiveX à l'aide de la fonction d'accès aux propriétés :

Utilisez la fonction d'accès aux propriétés pour rechercher la valeur d'une propriété, et les procédures d'accès aux propriétés, pour définir la valeur d'une propriété.


Définition des propriétés de contrôle ActiveX à l'aide de la fonction d'accès aux propriétés - Exemples

 Restrictions

/* Rechercher une propriété de contrôle ActiveX à l'aide de la fonction d'accès aux propriétés */

tblname varchar2;
tblname := table_pkg.TableName(:item('Oblk.Oitm').interface);

table_pkg est le nom de l'unité de programme créée à partir de OLE Importer, TableName, le nom de la fonction d'accès aux propriétés, Oblk, le nom du bloc et Oitm, le nom de l'élément.


Définition des propriétés ActiveX

 Restrictions

Pour définir les propriétés ActiveX dans la Palette de propriétés :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet en regard de l'élément de contrôle ActiveX pour afficher la Palette de propriétés.

2	Cliquez sur la propriété Propriétés de contrôle.

La boîte de dialogue correspondante s'affiche.

3	Définissez les propriétés de contrôle en conséquence.

4	Cliquez sur OK.


Appel des méthodes de contrôle ActiveX

 Exemples	     Rubriques connexes

Vous pouvez accéder aux méthodes fournies par un contrôle ActiveX à l'aide des unités de programme générées à partir de OLE Importer. Appelez l'une des méthodes fournies dans les packages proposés sous le noeud Unités de programme.

Remarque : Certains serveurs OLE, comme Microsoft Excel utilisent des données de type variant. Comme un grand nombre de méthodes concernant ces serveurs particuliers nécessitent l'utilisation de données de type variant, le package intégré STANDARD comporte les procédures et les fonctions permettant d'exécuter la conversion nécessaire. La durée de vie et la portée d'un type variant sont limitées à un déclencheur ; l'espace occupé en mémoire par les données de type variant est libéré lorsqu'un déclencheur prend fin. Cependant, vous pouvez prolonger la durée de vie et la portée des données de type variant en définissant à TRUE le paramètre persistent de To_Variant() et en attribuant le résultat à une variable globale. Vous devez détruire explicitement les données globales de type variant en utilisant Destroy_Variant(). De même, les objets OLE créés par Create_OleObj() sont de portée globale (le paramètre persistent est par défaut défini à TRUE). Vous devez appeler explicitement Release_Obj() pour libérer des objets globaux.


Appel des méthodes de contrôle ActiveX - Exemples

Exemple 1

/* Rechercher une valeur de cellule pour un contrôle ActiveX pour une feuille de calcul à l'aide de la méthode GetCellByColRow fournie dans le package SpreadTable. */

DECLARE
Cur_Row number;
Cur_Col number;
OLEObj OleObj;

BEGIN
Cur_Row:=SpreadTable.CurrentRow(:ITEM('BLK.ITM').interface);
Cur_Col:=SpreadTable.CurrentCol(:ITEM('BLK.ITM').interface);
OLEObj:=SpreadTable.GetCellByColRow(:ITEM('BLK.ITM').interface,
                                        Cur_Col,
                                        Cur_Row);
END;


Réaction aux événements de contrôle ActiveX

 Exemples	     Rubriques connexes

Les contrôles ActiveX appellent des événements. Form Builder affiche ces événements dans le package d'événements créé à partir de l'importateur OLE. Les événements sont définis par le contrôle ActiveX. Chaque événement est associé à une procédure PL/SQL définie dans le package d'événements. Les noms donnés aux procédures dépendent d'une représentation numérique interne définie par le contrôle. Lorsque le contrôle active un événement, le code de la procédure est automatiquement exécuté. C'est vous qui devez fournir le code permettant de réagir à l'événement. Entrez directement ce code dans le corps de package d'événements et compilez le package.

Toutes les procédures d'événement sont restreintes, c'est-à-dire que la procédure go_item ne peut pas être appelée à partir du code de procédure. Cependant, dans certains cas, un même événement peut s'appliquer à plusieurs éléments et une procédure go_item est nécessaire - ce cas est le cas non restreint. Vous devez alors appeler le déclencheur On-Dispatch-Trigger (au niveau bloc ou application Forms) et DISPATCH_EVENT(RESTRICTED_ALLOWED). Il n'est pas nécessaire d'appeler explicitement la procédure d'événement, car elle sera automatiquement appelée à la suite du code du déclencheur On-Dispatch.

Remarque : Les événements d'initialisation pour contrôles ActiveX ne s'activent pas dans Forms Runtime. Ces événements sont volontairement désactivés. Vous pouvez toutefois utiliser when-new-item-instance ou when-new-record-instance à la place des événements d'initialisation natifs du contrôle.

Lorsqu'un contrôle ActiveX déclenche un événement, Forms Runtime peut réagir de deux façons différentes : par appel direct de la procédure restreinte appropriée, fournie par l'un quelconque des packages d'événements disponibles sous le noeud Unités de programme, ou par appel du déclencheur ON-DISPATCH-EVENT.

Les noms de procédure sont déterminés par une valeur numérique interne qui représente l'événement correspondant. La procédure restreinte produite par un événement a une interface de programmation d'application de type :

PROCEDURE /*Click*/ event4294966696(interface OleObj);

La procédure est créée et vous devez fournir les différentes opérations à exécuter dans cette procédure. Notez que les procédures s'exécutent en mode restreint.

Lorsque vous appelez la procédure d'événements en utilisant le déclencheur ON-DISPATCH-EVENT, vous pouvez définir explicitement si la procédure doit s'exécuter en mode restreint ou non restreint en appelant FORMS4W.DISPATCH_EVENT. Lors de la définition d'une procédure restreinte, aucun des paramètres OUT n'est pris en compte.


Réaction aux événements de contrôle ActiveX - Exemples

Exemple 1

/*

La procédure d'événement sera appelée directement pour augmenter la valeur d'un bloc stocké dans un champ lorsqu'un clic de la souris sera détecté.
*/
PROCEDURE /*Click*/ event4294966696(ocxitem)
BEGIN
:SYSTEM.TRIGGER_ITEM := ocxitem;
:block.value := :block.value + 1;
END;

Exemple 2

/*

déclencheur ON-DISPATCH-EVENT
*/
BEGIN
IF SYSTEM.CUSTOM_ITEM_EVENT = 4294966696 THEN
/*lorsque l'événement se produit, laissez-le s'appliquer à différents éléments */.
FORMS4W.DISPATCH_EVENT(RESTRICTED_ALLOWED);
ELSE
/*exécutez le déclencheur par défaut, qui ne permet	pas d'application à d'autre élément */
FORMS4W.DISPATCH_EVENT(RESTRICTED_UNALLOWED);
ENDIF;
END;


Gestion de l'exception FORMS_OLE_FAILURE

 Exemples	     Rubriques connexes

La détection d'une défaillance dans la gestion d'une méthode de contrôle ActiveX déclenche soit l'apparition d'un message FRM, soit la génération de l'exception FORMS_OLE_FAILURE. Lorsque l'exception FORMS_OLE_FAILURE est générée, vous pouvez obtenir un complément d'information sur la cause de l'exception en appelant la procédure interne LAST_OLE_EXCEPTION.


Gestion de l'exception FORMS_OLE_FAILURE - Exemples

Exemple

/*

Gérer l'exception générée à la suite de l'appel de Var_To_Number(To_Variant('Jane'));
Le système génère une exception, car Jane n'est pas une valeur numérique.
*/
DECLARE
ExceptNum number;

BEGIN
ExceptNum := LAST_OLE_EXCEPTION('Excel',
'Range Method Fail',
'Excel.hlp',
110);
END;


Enregistrement des contrôles ActiveX

  Rubriques connexes

Vous devez enregistrer tous les contrôles ActiveX. Si vous installez un contrôle ActiveX en utilisant le programme d'installation fourni avec ce contrôle, l'enregistrement sera pris en charge probablement par le programme d'installation.

Pour l'enregistrement manuel des contrôles ActiveX, utilisez regActiveX32.exe ou regsvr32.exe fournis avec les outils de développement de Microsoft et par les fournisseurs de contrôles ActiveX.

Support de fichier

La plupart des contrôles ActiveX doivent avoir une bibliothèque DLL de support, comme la bibliothèque runtime Foundation Class de Microsoft, mfc40.dll. La bibliothèque DLL doit être dans le répertoire \WINDOWS\SYSTEM ou dans le chemin de recherche. Si elle est périmée ou manquante, votre contrôle ActiveX ne s'enregistrera pas correctement. La plupart des fournisseurs de contrôle ActiveX sérieux fournissent une documentation sur la version et le nom des bibliothèques DLL à utiliser ; il arrive même que certains d'entre eux les fournissent et les installent avec les contrôles ActiveX.

Déplacement de fichiers de contrôle ActiveX

Lors de l'installation, les répertoires dans lesquels le contrôle ActiveX est installé sont enregistrés dans la base de registres Windows de Windows 95 et Windows NT, pour que le contrôle ActiveX soit visible dans votre environnement de développement. Si vous transférez le contrôle ActiveX dans un autre répertoire, ou si vous renommez le répertoire, les informations figurant dans le registre ne sont plus valides. Si vous jugez nécessaire de déplacer le contrôle ActiveX ou de renommer son répertoire, utilisez les utilitaires regsrv32.exe ou regActiveX.exe fournis avec la plupart des produits de développement Microsoft pour ré-enregistrer le contrôle ActiveX à son nouvel emplacement.


Déploiement de contrôles ActiveX dans votre application

  Rubriques connexes

Le déploiement d'une application qui utilise un contrôle ActiveX lors de l'exécution demande le déploiement du contrôle ActiveX. Vous devez enregistrer le contrôle ActiveX sur la machine d'exécution. Les bibliothèques DLL de support doivent être copiés aux emplacements appropriés (dossier WINDOWS\SYSTEM, dossier WINDOWS ou dossier figurant dans le chemin de recherche DLL).

Les contrôles ActiveX, qu'ils soient distribués par des fournisseurs tiers ou livrés avec les outils de développement de l'application, peuvent impliquer le paiement de redevances supplémentaires ou l'obtention de licences supplémentaires avant la distribution du contrôle ActiveX.


Support OLE dans Form Builder

  Rubriques connexes

Form Builder fournit un support pour OLE en jouant le rôle d'un conteneur OLE, et en prenant en charge les documents de composant et l'automatisation OLE. Le type d'élément de conteneur OLE crée un conteneur pour votre objet OLE.

En tant qu'application de conteneur OLE, Form Builder offre les fonctions suivantes :

•	Incorporation et liaison d'objets serveur OLE à des conteneurs de Form Builder.

•	Activation sur objets incorporés de contenus incorporés dans des conteneurs OLE de Form Builder.

•	Accès par programme à des objets, propriétés et méthodes OLE via le support d'automatisation OLE depuis PL/SQL.

•	Stockage transparent d'objets OLE dans une base de données dans des colonnes de type LONG RAW.

Un conteneur OLE est un élément dans Form Builder. Un objet OLE est lié ou incorporé dans un conteneur OLE. Les objets OLE peuvent être des éléments de source de données ou des éléments de contrôle.

Form Builder prend en charge l'activation sur objets incorporés OLE, qui permet d'accéder à des menus et à des barres d'outils depuis les applications serveur OLE afin d'éditer des objets OLE incorporés dans une session Form Builder.

Form Builder prend également en charge l'automatisation OLE. A l'aide de PL/SQL, vous pouvez appeler des commandes et des fonctions fournies par les serveurs OLE prenant en charge l'automatisation OLE.

A partir de Form Builder, vous pouvez enregistrer des objets OLE dans une base de données, ainsi que des objets OLE d'interrogation depuis une base de données. Les objets OLE sont enregistrés dans la base de données sous forme de colonnes de type LONG RAW. Lorsque des objets liés sont enregistrés, seules l'image et les informations de liaison sont conservées dans la base de données. Le contenu d'un objet lié reste dans le fichier source lié. L'enregistrement d'un objet incorporé conserve tout son contenu dans la base de données.

Exemple d'utilisation de OLE dans Form Builder : une application intégrant des documents Microsoft Word à un module Application Forms. Cette intégration vous permet d'accéder à la fois aux fonctions de Form Builder et de Microsoft Word. Vous pouvez mettre le document Microsoft Word en forme à l'aide des fonctions de traitement de texte de Microsoft Word ainsi qu'utiliser toutes les fonctions de Form Builder pour l'affichage et la manipulation des données de la base de données.

Les caractéristiques d'un objet OLE dans Form Builder dépendent des propriétés du conteneur OLE qui déterminent le mode d'activation, d'affichage et de manipulation des objets.


A propos des objets incorporés et des objets liés

  Rubriques connexes

Une application serveur OLE crée des objets OLE incorporés ou liés dans une application conteneur OLE ; les conteneurs stockent et affichent des objets OLE. Les applications peuvent être des applications serveur OLE, des applications conteneur OLE ou les deux. Form Builder est une application conteneur OLE, et and Microsoft Word, un exemple d'application serveur OLE.

Un objet OLE incorporé est créé par une application serveur OLE et est intégré dans un module Application Forms de Form Builder. Il est stocké comme partie d'un module Application Forms ou comme colonne de type LONG RAW dans une base de données. Les objets incorporés peuvent être interrogés comme des éléments conteneur OLE.

Exemple d'incorporation d'objet : insertion d'une feuille de calcul dans un conteneur OLE d'un module Application Forms. La feuille de calcul est stockée comme partie du module Application Forms ou comme colonne de type LONG RAW dans une base de données ; aucun fichier source distinct ne contient la feuille de calcul.

Un objet OLE lié est créé par une application serveur OLE. Il est stocké dans un fichier source distinct, créé depuis une application serveur OLE. Une image de l'objet lié et des informations sur l'emplacement du fichier source de cet objet sont stockées dans un module Application Forms ou dans une colonne de type LONG RAW d'une base de données. Le contenu d'un objet lié n'est pas stocké comme partie d'un module Application Forms ni comme colonne de type LONG RAW dans une base de données ; il est conservé dans un fichier distinct, appelé fichier source lié.

Exemple de liaison d'objet lié : liaison d'un document de traitement de texte dans un module Application Forms. Une image du document apparaît dans le conteneur OLE du module Application Forms, et l'emplacement du document est stocké comme partie du module Application Forms ou comme colonne de type LONG RAW dans une base de données.


A propos des serveurs et des conteneurs OLE

  Rubriques connexes

Les serveurs OLE, les conteneurs OLE ou les deux sont des applications qui peuvent prendre en charge OLE. Une application serveur OLE crée des objets OLE incorporés ou liés dans des conteneurs OLE. Exemples d'application serveur OLE : Microsoft Word et Microsoft Excel.

Contrairement aux applications serveur OLE, les applications conteneur OLE ne créent pas de documents à incorporer ou à lier. Les applications conteneur OLE ne font que donner un emplacement pour le stockage, l'affichage et la manipulation des objets créés par les applications serveur OLE. Form Builder est un exemple d'une application conteneur OLE.

Un grand nombre des options disponibles pour manipuler un objet OLE dans une application conteneur OLE sont déterminées par l'application serveur OLE. Par exemple, les options de menu OLE instantané, également appelées verbes OLE, sont contenues dans l'application serveur OLE. Les informations figurant dans la base de registres, telles que les classes d'objets disponibles pour liaison et intégration, dépendent également de l'application serveur OLE.


A propos de la base de registres

  Rubriques connexes

Les applications serveur OLE peuvent créer de nombreuses classes d'objets. Les classes d'objets que peut créer un serveur OLE sont installées dans une base de registres.

La base de registres stocke un ensemble de classes catégorisant les objets OLE. Les informations contenues dans la base de registres déterminent les classes d'objets disponibles pour incorporation ou liaison dans des conteneurs OLE. Les applications serveur OLE exportent un ensemble de classes qui deviennent membres de la base de registres. Chaque ordinateur a une base de registres unique. Si la base de registres n'existe pas lorsqu'une application serveur OLE est installée, le système la crée.

Une seule application serveur OLE peut ajouter de nombreuses classes OLE à la base de registres. L'ajout de classes à la base de registres est transparent et se produit lors de l'installation d'une application serveur OLE. Par exemple, lors de l'installation de Microsoft Excel, plusieurs classes sont ajoutées à la base de registres, notamment : Excel Application, Excel Application 5, Excel Chart, Excel Sheet, ExcelMacrosheet et ExcelWorkSheet.


A propos des types d'activation OLE

  Rubriques connexes

Un objet OLE est activé à partir d'un conteneur OLE Form Builder par activation sur objets incorporés ou par activation sur objets liés. L'activation d'un objet OLE permet d'accéder aux fonctions de l'application serveur OLE à l'origine de l'objet OLE. L'activation sur objets incorporés et l'activation sur objets liés sont possibles si l'application serveur OLE à l'origine de l'objet OLE est accessible.

L'activation sur objets incorporés et l'activation sur objets liés dépendent aussi des valeurs des propriétés d'activation OLE du conteneur OLE. Les valeurs des propriétés d'activation OLE sont indiquées dans Form Builder. Si l'application serveur OLE est accessible, les valeurs des propriétés d'activation du conteneur OLE déterminent si l'activation d'un objet OLE incorporé est une activation sur objets incorporés ou une activation sur objets liés. Les objets liés peuvent être activés uniquement par activation sur objets liés ; l'activation sur objets incorporés ne s'applique pas aux objets liés, même si la propriété Activation sur objets incorporés OLE est définie à Oui. L'activation d'un objet OLE est possible dans Form Builder et au cours de Forms Runtime.


A propos de l'activation sur objets incorporés

  Rubriques connexes

L'activation sur objets incorporés se produit lorsqu'un conteneur OLE et son objet incorporé restent en place après avoir été activés. Form Builder reste présent autour du conteneur OLE. L'activation sur objets incorporés est disponible pour les objets incorporés, mais pas pour les objets liés.

Lorsqu'un objet est activé, il apparaît dans un cadre hachuré. Pour désactiver l'activation sur objets incorporés, cliquez en dehors du cadre hachuré.

Au cours de l'activation sur objets incorporés, certaines options de menu de l'application serveur OLE remplacent les options de menu de Form Builder. Si la fenêtre contenant le conteneur OLE dispose d'une barre d'outils, l'activation sur objets incorporés remplace aussi la barre d'outils de Form Builder par celle de la barre d'outils de l'application serveur OLE. Le remplacement des options de menu et des barres d'outils donne accès à des fonctions disponibles à partir de l'application serveur OLE. Les options de menu et les barres d'outils de Form Builder réapparaissent lorsque vous désactivez l'activation sur objets incorporés.


A propos de l'activation sur objets liés

  Rubriques connexes

L'activation sur objets liés se produit lorsque l'objet OLE apparaît dans une fenêtre séparée, ouverte par l'application serveur OLE concernée. Parce que l'application serveur OLE s'ouvre avec ses propres fenêtres, les options de menu et les barres d'outils de Form Builder ne sont pas touchés par l'activation. L'activation sur objets liés est disponible pour les objets incorporés comme pour les objets liés.

Lorsqu'un objet OLE est activé, l'application serveur OLE d'origine de l'objet est lancée et l'objet apparaît dans une fenêtre séparée de l'application serveur OLE. Cette fenêtre séparée présente les options de menu et les barres d'outils de l'application serveur OLE. Pour désactiver l'activation sur objets liés, vous devez explicitement quitter l'application serveur OLE.

Lorsque le contenu d'un fichier source lié est modifié avec activation sur objets liés, un objet lié peut être mis à jour manuellement ou automatiquement. La mise à jour manuelle nécessite une instruction explicite pour qu'un objet reflète les modifications du fichier source lié. Les mises à jour automatiques se produisent dès que vous modifiez le fichier source lié.


A propos de l'automatisation OLE

 Exemples	     Rubriques connexes

L'automatisation OLE permet à une application serveur OLE d'exposer un ensemble de commandes et de fonctions qui peuvent être appelées à partir d'une application conteneur OLE. L'automatisation OLE offre à une application conteneur OLE un moyen d'utiliser les fonctions d'une application serveur OLE pour manipuler un objet OLE à partir de l'environnement du conteneur OLE.

Dans Form Builder, vous pouvez utiliser PL/SQL pour accéder à toute commande ou fonction exposée par une application serveur OLE. Le package STANDARD offre une API PL/SQL pour créer, manipuler et lire les commandes et les fonctions.


A propos de l'automatisation OLE - Exemples

Exemple 1

/*

Définir la valeur d'une seule cellule dans Microsoft Excel à l'aide des méthodes PL/SQL générées automatiquement.
*/

DECLARE
/* Créer une variable de type variant. */
Variant OleVar;

BEGIN
/* Rechercher la plage de cellules que vous voulez utiliser. */
Variant := EXCEL_WORKSHEET.ole_Range(
                              :CTRL.interface,
                               To_Variant('A1'));

/* Définir la cellule A1 pour qu'elle contienne 20. */
EXCEL_RANGE.Value(
           Var_to_Obj(Variant),
           To_Variant('20'));
END;

Exemple 2

/*

Extraire la valeur d'une plage de cellules dans Microsoft Excel pour remplir une table PL/SQL. La table PL/SQL peut être utilisée comme source de données de bloc.
*/

DECLARE
TYPE myrec IS RECORD (
    x varchar2(10),
    y varchar2(10),
    z varchar2(10));

TYPE mytable is TABLE OF myrec
    INDEX BY BINARY_INTEGER;

TableXYZ mytable;
Range OleVar;
Value OleVar;

BEGIN
/* Rechercher la plage de cellules que vous voulez utiliser.*/
Range := EXCEL_WORKSHEET.ole_Range(
                            :CTRL.interface,
                            To_Variant('A1:C3'));

/* Lire la valeur des cellules comprises entre A1 et C3. */
Value := EXCEL_RANGE.Value(Var_to_Obj(Range));

/* Remplir la table PL/SQL ; il est possible d'accéder aux valeurs des cellules en utilisant une syntaxe PL/SQL de type TableXYZ(1).x, TableXYZ(1).y, TableXYZ(2).x, TableXYZ(2).y, etc. */
Var_to_Table(Value,TableXYZ);
END;

Exemple 3

/*

Remplir une feuille de calcul Microsoft Excel en extrayant des valeurs d'une table.
*/

DECLARE
TYPE myrec IS RECORD (
    x varchar2(10),
    y varchar2(10),
    z varchar2(10));

TYPE mytable is TABLE OF myrec
    INDEX BY BINARY_INTEGER;

TableXYZ mytable;
TableVals OleVar;

BEGIN
/* Convertir la table PL/SQL en données de type variant. */
TableVals := To_Variant(TableXYZ);

/* Définir la feuille de calcul Microsoft Excel pour qu'elle contienne les valeurs de la table PL/SQL */
Excel_Range.Value(Var_to_Obj(TableVals),TableVals);
END;

Exemple 4

/*

Remplir un bloc en utilisant une feuille de calcul Microsoft Excel. Le bloc doit être fondé sur la procédure stockée ci-dessous.
*/

/* Cet exemple présuppose que la plage de cellules indiquée est valide. */

PROCEDURE Excel_to_Block(tablename mytable,
                         excel_range_spec varchar)
DECLARE
Range OleVar;
Value OleVar;

BEGIN
/* Rechercher la plage de cellules que vous voulez utiliser */
Range := Excel_Worksheet.Ole_Range(
                    :excel.interface,
                    To_Variant(excel_range_spec));

/* Lire la valeur des cellules comprises dans la plage indiquée par excel_range_spec */
Value := Excel_Range.Value(Var_to_Obj(Range));

/* Remplir la table PL/SQL en utilisant les valeurs de la feuille de calcul Microsoft Excel. */
Var_to_Table(Value,tablename);
END;


A propos de l'incorporation ou de la liaison d'objets OLE

  Rubriques connexes

Le choix entre l'incorporation ou la liaison dépend de la fréquence des mises à jour de l'objet OLE, de la façon dont il est partagé, de la méthode d'accès à son document source et s'il existe des contraintes de stockage.

Choisissez l'incorporation de fichiers lorsque :

•	L'objet à incorporer ne doit pas nécessairement être la version la plus récente parce que la mise à jour est effectuée à partir d'un module Application Forms et non pas dans un document isolé.

•	L'objet ne doit pas être incorporé dans plusieurs documents afin que les changements soient nécessaires uniquement dans logiciel incorporé dans le module Application Forms et nulle part ailleurs.

•	Le document source n'est pas accessible si l'objet est lié. Dans ce cas, un seul module Application Forms doit être maintenu et non pas un module application Forms en plus du document source.

•	La taille du module Application Forms n'est pas un problème : avec l'incorporation, la taille du module augmente approximativement de la taille de l'objet incorporé.

Choisissez la liaison de fichiers lorsque :

•	L'objet à lier doit être la version la plus récente des données parce la mise à jour est effectuée en dehors du module Application Forms sur un document isolé.

•	L'objet doit figurer dans plusieurs documents, afin que les modifications soient reflétées dans plusieurs modules Applications Forms et autres documents.

•	Le document source est toujours accessible si l'objet est lié.

•	La taille du module Application Forms est un problème : avec la liaison, contrairement à l'incorporation, la taille du module application Forms n'augmente pas de la taille de l'objet.


A propos de OLE dans Form Builder

  Rubriques connexes

Bien que les objets OLE soient actifs dans Form Builder et Forms Runtime, les valeurs de la propriété de conteneur OLE déterminent les fonctionnalités OLE lors de la conception et de l'exécution.

Dans Form Builder, vous déterminez les critères d'activation, de représentation et de fonctionnement de l'objet OLE en définissant les propriétés de conteneur OLE. Par exemple, lorsque la propriété Afficher menu OLE instantané a pour valeur Oui, le menu OLE instantané est une option dans Form Builder et dans Forms Runtime. Le menu OLE instantané s'affiche lorsque vous appuyez sur le bouton droit de la souris tandis que le curseur se trouve dans le conteneur OLE. Lorsque la propriété Afficher menu OLE instantané a pour valeur Non, le menu OLE instantané n'est pas une option dans Forms Runtime. Le menu OLE instantané offre un ensemble d'opérations que vous pouvez utiliser avec les objets OLE.

Dans Form Builder, vous pouvez restreindre les classes d'objets d'incorporation et de liaison d'un conteneur OLE à l'exécution. Par exemple, si vous précisez que la classe d'objets d'un conteneur OLE est restreinte à la classe ExcelWorkSheet, seule une feuille de calcul Microsoft Excel peut être un objet OLE du conteneur OLE. Si aucune restriction de classe d'objets n'est indiquée, tout objet OLE catégorisé comme classe d'objets dans la base de registres est un objet OLE potentiel dans le conteneur OLE.

Lorsqu'un conteneur OLE est créé, les propriétés associées à ce conteneur prennent initialement leurs valeurs par défaut. Les propriétés de conteneur OLE sont divisées en trois groupes de propriétés :

•	Propriétés d'activation

Type d'activation OLE

Activation sur objets incorporés OLE

Support OLE intérieur-extérieur

•	Propriétés de menu OLE instantané

Options de menu OLE instantané

Afficher menu OLE instantané

•	Propriétés de contenu OLE

Classe OLE

Type de redimensionnement OLE

Aspect du contenu OLE

Types de contenu OLE

Afficher type de contenu OLE

Les propriétés d'activation indiquent si l'édition d'un objet OLE est réalisée par activation sur objets incorporés ou par activation sur objets liés. Les propriétés de menu OLE instantané déterminent si un menu OLE instantané est disponible et quelles options y figurent. Les propriétés du contenu OLE précisent les conditions requises pour un objet OLE dans un conteneur OLE.

Vous pouvez insérer manuellement des objets OLE dans un conteneur OLE à partir de Form Builder. L'objet OLE que vous insérez dans un conteneur OLE adhère aux propriétés du conteneur OLE. L'insertion d'un objet OLE dans un conteneur OLE à partir de Form Builder initialise le conteneur OLE. L'initialisation d'un conteneur OLE détermine le contenu initial du conteneur OLE au cours de Forms Runtime. Au cours de Forms Runtime, toute interrogation d'application Forms à partir d'une colonne de type LONG RAW de la base de données pour remplir le conteneur remplace le contenu utilisé à des fins d'initialisation.


A propos de OLE dans Forms Runtime

  Rubriques connexes

L'affichage et la manipulation d'un objet dans Forms Runtime sont déterminées par les propriétés de conteneur OLE définies dans Form Builder. Les attributs d'exécution comprennent le type d'activation, les options de menu instantané et les propriétés de contenu OLE.

La propriété Aspect du contenu OLE détermine le type d'affichage de l'objet. Par exemple, lorsque la propriété Aspect du contenu OLE a pour valeur Icône, tout objet OLE inséré dans le conteneur OLE apparaît sous forme d'icône.

Au cours de Forms Runtime, vous pouvez insérer manuellement un objet OLE dans un conteneur OLE (si les propriétés de l'élément le permettent) interroger la base de données pour un objet OLE pour remplir le conteneur OLE. Lorsque vous insérez manuellement un objet OLE au cours de Forms Runtime, l'objet OLE apparaît dans le conteneur OLE jusqu'à la suppression de la prochaine interrogation d'enregistrements. L'objet OLE que vous insérez dans un conteneur OLE adhère aux propriétés de conteneur OLE. Pour toute interrogation d'enregistrements ultérieure, le conteneur OLE apparaît dans l'état défini dans Form Builder ou rempli avec un objet OLE de la base de données.

Vous pouvez aussi interroger la base de données pour un objet OLE pour remplir un conteneur OLE. Chaque consultation d'enregistrement remplit dans le conteneur OLE un objet OLE de la base de données. L'interrogation de la base de données pour un objet OLE est possible uniquement pour un élément conteneur OLE. Dans la base de données, le type de données d'un objet est OLE LONG RAW. Lorsqu'il est interrogé, un objet OLE est affiché en fonction des valeurs des propriétés de conteneur OLE. De la même façon, les opérations permises sur l'objet OLE dépendent des valeurs des propriétés de conteneur OLE. Les propriétés d'un conteneur OLE ne sont pas enregistrées avec l'objet OLE.


Données de type variant OLE

Le tableau suivant répertorie les données de type variant OLE et affiche l'identificateur VT-TYPE équivalent de Forms Developer.

Données de type variant définies pour OLE	Interprétation dans Forms Developer
VT_BLOB	VT_UNKNOWN
VT_BLOB_OBJECT	VT_UNKNOWN
VT_BOOL	Boolean
VT_BSTR	String
VT_BYREF	16384. Peut être ajouté à tout type ci-dessous pour indiquer "pointeur sur"
VT_CARRAY	- non pris en charge
VT_CF	- non pris en charge
VT_CLSID	- non pris en charge
VT_CY	- non pris en charge
VT_DATE	Date
VT_DISPATCH	Pointeur d'objet OLE capable d'appeler l'automatisation OLE
VT_EMPTY	Membre non initialisé
VT_ERROR	Champ Erreur
VT_FILETIME	VT_DATE
VT_HRESULT	VT_ERROR
VT_INT	Integer
VT_I1	Nombre entier signé d'un octet
VT_I2	Nombre entier signé de deux octets
VT_I4	Nombre entier signé de quatre octets
VT_I8	- non pris en charge
VT_LPSTR	VT_BSTR
VT_LPWSTR	VT_BSTR
VT_NULL	Null
VT_PTR	Pointeur sans type
VT_R4	Nombre à virgule flottante de quatre octets
VT_R8	Nombre à virgule flottante de huit octets
VT_STORAGE	VT_UNKNOWN
VT_STORED_OBJECT	VT_UNKNOWN
VT_STREAM	VT_UNKNOWN
VT_STREAMED_OBJECT	VT_UNKNOWN
VT_UINT	Nombre entier non signé de quatre octets
VT_UI1	Nombre entier non signé d'un octet
VT_UI2	Nombre entier non signé de deux octets
VT_UI4	Nombre entier non signé de quatre octets
VT_UNKNOWN	Pointeur d'objet OLE
VT_USERDEFINED	Données avec type
VT_VARIANT	Tout type


Types de tableau pour le support OLE

  Rubriques connexes

Type ou sous-type de tableau	Définition
VT_TYPE	Sous-type de forme PLS_INTEGER. Pour plus d'informations, reportez-vous à Données de type variant OLE.
OLE_SAFEARRAYBOUND	Enregistrement comportant deux champs : • count PLS_INTEGER. Décompte correspond au nombre d'éléments du tableau. • lbound PLS_INTEGER. La valeur par défaut de lbound est de 1.
OLE_SAFEARRAYBOUNDS	Table contenant des enregistrements de type OLE_SAFEARRAYBOUND. L'accès à la table est INDEX BY BINARY_INTEGER. Ce type de table est utilisé dans les fonctions CREATE_VAR et GET_VAR_BOUNDS.
ITEMS_IN_BLOCK	Table sous forme VARCHAR2(30). L'accès à la table est INDEX BY BINARY_INTEGER.


Caractéristiques pour les tableaux OLE

  Examples	  Related Topics

De nombreuses procédures internes fonctionnant avec les tableaux OLE contiennent un paramètre qui indique les parties du tableau à utiliser. Ce paramètre est appelé arrspec dans la section qui traite de ces procédures internes.

Si vous n'incluez aucun paramètre arrspec, tout le tableau est traité.

Syntaxe

Le paramètre peut comporter plusieurs sous-paramètres, qui correspondent aux dimensions du tableau OLE :

'nième dimension,…  3ème dimension, 2ème dimension, 1ère dimension'

Le paramètre arrspec est codé sous la forme d'une chaîne de caractères du type VARCHAR2. Cette chaîne doit être placée entre apostrophes, et les sous-paramètres doivent être séparés par des virgules et des espaces (remarquez que les sous-paramètres doivent être classés par ordre positionnel).

Indiquez le nombre de sous-paramètres nécessaires pour identifier la partie du tableau à sélectionner.

Les sous-paramètres qui identifient des instances précises d'une dimension doivent être des constantes entières.

Les sous-paramètres des 2ème et 1ère dimensions peuvent également correspondre aux mots-clés ROW et COLUMN. Dans la position 2ème dimension, ROW indique que toutes les lignes doivent être sélectionnées. Dans la position 1ère dimension, COLUMN indique que toutes les colonnes doivent être sélectionnées.

La valeur d'arrspec '7, 3' sélectionne la 3ème dimension d'instance de la 7ème ligne.

La valeur d'arrspec '7, COLUMN' sélectionne la totalité de la 7ème ligne (toutes les colonnes de la 7ème ligne).

La valeur d'arrspec '2, 6, 9' sélectionne le 2ème sous-élément de la 9ème colonne de la 6ème ligne.

La valeur d'arrspec '5' sélectionne le 5ème élément d'un tableau à une dimension.

Contrôle du motif de remplissage

Lorsqu'une fonction déplace des données entre un tableau OLE et un tableau PL/SQL, le traitement est généralement effectué ligne à ligne. Toutefois, vous pouvez indiquer un autre type d'association en utilisant les mots-clés COLUMN et ROW du sous-paramètre d'une manière précise.

Comme indiqué auparavant, lorsque vous utilisez ces mots-clés dans leur position standard dans la liste des sous-paramètres, ils indiquent que toutes les instances de cette dimension doivent être sélectionnées. Toutefois, vous pouvez également les utiliser hors de leur position standard pour indiquer un motif de remplissage différent pour la dimension de cette position.

Dans ce cas, la position relative du mot-clé COLUMN dans la liste des sous-paramètres identifie une dimension du tableau et indique que cette dernière doit être placée dans la dimension de colonne du tableau récepteur. De même, le mot-clé ROW indique que toute dimension de tableau correspondant à la position relative de son sous-paramètre doit être placée dans la dimension de ligne du tableau récepteur.

Par exemple, dans le paramètre arrspec 'COLUMN, ROW', le mot-clé COLUMN correspond à la position 2ème dimension (position de la ligne) et le mot-clé ROW à la position 1ère dimension (position de la colonne). Ce paramètre déplace la 2ème dimension du tableau (ses lignes) dans les colonnes du tableau récepteur et la première dimension du tableau (ses colonnes) dans les lignes du tableau récepteur.

Tailles de tableau

La taille du tableau récepteur PL/SQL doit suffire à contenir les données du tableau sélectionné, en particulier si les colonnes subissent une rotation pour devenir des lignes.


Caractéristiques pour les tableaux OLE - Plus d'exemples

Vous pouvez également réaliser des sélections et des manipulations plus complexes.

Par exemple, pour sélectionner tous les 4èmes sous-éléments de toutes les colonnes dans la 5ème ligne, utilisez le paramètre arrspec '4, 5, COLUMN' ou '4, 5, ROW'. Le chiffre 4 désigne la 4ème instance de la 3ème dimension du tableau (dimension appelée ici sous-éléments). Le chiffre 5 désigne la 5ème instance de la 2ème dimension (c'est-à-dire la 5ème ligne). Le mot-clé COLUMN ou ROW indique deux choses. Premièrement, que l'intégralité du contenu de la première dimension du tableau (ses colonnes) doit être sélectionné. Deuxièmement, il indique la position ou l'orientation de réception de la colonne dans le tableau.

Si vous indiquez '4, 5, COLUMN', l'association standard est utilisée. Dans ce cas, le 4ème sous-élément de chaque colonne dans la 5ème ligne du tableau est déplacé vers la position du 4ème sous-élément de chaque colonne dans la 5ème ligne du tableau récepteur. Aucune réorientation n'est effectuée.

De même, si vous indiquez '4, 5, ROW', le 4ème sous-élément de chaque colonne dans la 5ème ligne du tableau est sélectionné. Cependant, les données sont déplacées vers la première position de chaque ligne du tableau récepteur car vous avez indiqué le mot-clé ROW pour la position de colonne dans la liste des sous-paramètres. (Plus précisément, elles sont déplacées vers la position du 4ème sous-élément de chaque position de première colonne pour le nombre de lignes nécessaires à la réception du nombre initial de colonnes du tableau.)


Ajout d'un objet OLE à votre application

  Rubriques connexes

Pour ajouter un objet OLE à votre application :

1	Créez un conteneur OLE.

2	Incorporez ou Liez l'objet OLE.

3	Importez les méthodes et les propriétés OLE.

4	Ecrivez le code PL/SQL afin d'interagir avec les méthodes d'automatisation OLE.


Création d'un conteneur OLE

Etape suivante 	  Rubriques connexes

Pour créer un conteneur OLE :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus [image] en regard du noeud bloc souhaité.

Form Builder développe le noeud Blocs et affiche ses sous-noeuds.

2	Cliquez sur le noeud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le noeud Eléments.

4	Cliquez deux fois sur l'icône objet en regard du nouvel élément créé pour afficher la Palette de propriétés.

5	Sous le noeud Général, définissez la propriété Type d'élément à Conteneur OLE.

6	Sous le noeud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément à l'exécution, vous devez lui attribuer un canevas.


A propos de l'incorporation d'un objet OLE

Etape suivante 	  Rubriques connexes

Un objet OLE que vous insérez manuellement dans un conteneur OLE à partir de Form Builder initialise le conteneur OLE pour Forms Runtime. Si vous insérez manuellement un objet OLE au cours de Forms Runtime, l'objet OLE apparaît dans le conteneur OLE jusqu'à ce que l'enregistrement soit supprimé. Pour les consultations d'enregistrements suivants, le conteneur OLE apparaît dans l'état défini dans Form Builder ou chargé avec un objet OLE de la base de données.

L'accès à l'option Insérer objet du menu OLE instantané est nécessaire pour insérer manuellement un objet OLE dans un conteneur OLE. Créez un objet OLE à insérer dans un conteneur OLE, ou incorporez un objet OLE à partir d'un fichier existant.


Incorporation d'un nouvel objet OLE

  Rubriques connexes

Pour incorporer un nouvel objet OLE :

1	Créez un conteneur OLE en définissant la propriété Types de contenu OLE à Tous ou Incorporé.

Assurez-vous que la propriété Afficher menu OLE instantané est définie à Oui et que l'option Insérer objet de Options de menu OLE instantané est définie à Afficher ou Activer.

2	Dans l'Editeur de présentation, déplacez le curseur de souris sur le conteneur OLE, puis accédez au menu OLE instantané (en cliquant sur la plate-forme Microsoft Windows avec le bouton droit de la souris). Dans ce menu, choisissez Insérer objet.

La boîte de dialogue d'insertion d'objet s'affiche.

3	Dans la boîte de dialogue d'insertion d'objet, cliquez sur Créer nouvel objet.

4	Choisissez un type d'objet dans la liste Type d'objet.

5	Cliquez sur OK.

L'application serveur OLE démarre.

6	Créez l'objet dans l'application serveur OLE.

7	Quittez l'application serveur OLE.


Incorporation d'un objet OLE d'un fichier existant

  Rubriques connexes

Pour incorporer un objet d'un fichier existant :

1	Créez un conteneur OLE en définissant la propriété Types de contenu OLE à Tous ou Incorporé.

Assurez-vous que la propriété Afficher menu OLE instantané est définie à Oui et que l'option Insérer objet de Options de menu OLE instantané est définie à Afficher ou Activer.

2	Dans l'Editeur de présentation, déplacez le curseur de souris sur le conteneur OLE, puis accédez au menu OLE instantané (en cliquant sur la plate-forme Microsoft Windows avec le bouton droit de la souris). Dans ce menu, choisissez Insérer objet.

La boîte de dialogue d'insertion d'objet s'affiche.

3	Dans la boîte de dialogue d'insertion d'objet, cliquez sur Créer depuis fichier.

4	Indiquez le nom de fichier de l'objet à incorporer.

Vous pouvez utiliser l'option Parcourir pour localiser le fichier. Le cas échéant, cliquez sur OK dans la boîte de dialogue correspondante après avoir sélectionné un fichier.

5	Après avoir déterminé le nom du fichier, cliquez sur OK dans la boîte de dialogue d'insertion d'objet.


Liaison d'un objet OLE

  Etape suivante	  Restrictions 	  Rubriques connexes

Pour lier un objet :

1	Créez un conteneur OLE en définissant la propriété Types de contenu OLE à Tous ou Incorporé.

Assurez-vous que la propriété Afficher menu OLE instantané est définie à Oui et que l'option Insérer objet de Options de menu OLE instantané est définie à Afficher ou Activer.

2	Dans l'Editeur de présentation, déplacez le curseur de souris sur le conteneur OLE, puis accédez au menu OLE instantané (en cliquant sur la plate-forme Microsoft Windows avec le bouton droit de la souris). Dans ce menu, choisissez Insérer objet.

La boîte de dialogue d'insertion d'objet s'affiche.

3	Dans la boîte de dialogue d'insertion d'objet, cliquez sur Créer depuis fichier.

4	Indiquez le nom de fichier de l'objet à lier.

Vous pouvez utiliser l'option Parcourir pour localiser le fichier. Le cas échéant, cliquez sur OK dans la boîte de dialogue correspondante après avoir sélectionné un fichier.

5	Dans la boîte de dialogue d'insertion d'objet, cochez la case Lier.

6	Cliquez sur OK.


Liaison d'un objet OLE - Restrictions

Les objets liés contenant des informations sur l'emplacement d'un objet OLE, vous ne pouvez lier que les objets OLE provenant de fichiers existants. Vous ne pouvez créer aucun objet lorsque vous tentez d'établir un lien, car l'emplacement des nouveaux objets n'a pas encore été défini.


A propos de l'affichage d'un objet OLE

  Rubriques connexes

Vous pouvez afficher un objet OLE sous une des formes suivantes :

•	le contenu de l'objet OLE tel qu'il apparaît dans le serveur OLE

•	une icône représentant l'application serveur OLE à l'origine de l'objet

•	une représentation miniature de l'objet OLE

Indiquez l'option d'affichage via la propriété Aspect du contenu OLE ou choisissez Afficher sous forme d'icône dans la boîte de dialogue d'insertion d'objet du menu OLE instantané. Lorsque vous sélectionnez Afficher sous forme d'icône, une icône apparaît dans le conteneur OLE pour représenter l'objet incorporé ou lié. Afficher sous forme d'icône remplace la valeur de la propriété Aspect du contenu OLE.


Affichage d'un objet sous forme d'icône à l'aide de l'option Afficher sous forme d'icône

  Rubriques connexes

Pour afficher un objet sous forme d'icône :

1	Créez un conteneur OLE.

2	A partir de la boîte de dialogue d'insertion d'objet, déterminez l'objet à incorporer ou à lier.

3	Cochez la case Afficher sous forme d'icône.

Lorsque vous sélectionnez Afficher sous forme d'icône, l'icône en cours qui représente l'application serveur OLE à l'origine de l'objet à insérer est affichée dans la boîte de dialogue d'insertion d'objet. Vous pouvez changer d'icône en sélectionnant Changer icône.

La boîte de dialogue de changement d'icône présente l'icône en cours et l'icône par défaut. Vous pouvez changer ces deux sélections d'icônes en sélectionnent l'icône souhaitée. Des icônes différentes sont stockées dans des fichiers différents. Après avoir sélectionné une icône, cliquez sur OK à partir de la boîte de dialogue de changement d'icône.

4	Cliquez sur OK.


A propos de l'édition d'un objet OLE

  Rubriques connexes

Editez un objet incorporé ou lié en l'activant. Cela se traduit par le lancement de l'application concernée.

Si l'application serveur OLE n'est pas disponible sur votre ordinateur pour éditer l'objet incorporé ou lié, vous pouvez convertir l'objet, temporairement ou définitivement, sous un autre format.

Lorsqu'un objet incorporé est modifié dans Form Builder, les changements sont immédiatement reflétés dans le module Application Forms parce que les objets incorporés sont stockés dans l'application Forms.

Lorsque le fichier source d'un objet lié est modifié, l'objet lié est mis à jour automatiquement ou manuellement. La mise à jour automatique reflète immédiatement les modifications d'un objet OLE. La mise à jour manuelle nécessite la sélection de Mettre à jour maintenant de la boîte de dialogue de liaison, après la modification d'un document.

Le choix de la mise à jour manuelle ou automatique s'effectue dans la boîte de dialogue de liaisons. Cette boîte de dialogue vous permet d'ouvrir un fichier source lié pour édition, de changer les liens pour lier un objet OLE à un autre fichier source ou de supprimer complètement les liens. Lorsque les liens sont rompus, seule demeure dans le conteneur OLE une image figée de l'objet OLE ; aucune information relative à l'emplacement du fichier source lié n'est conservée.


Mise à jour automatique d'un objet lié

  Rubriques connexes

Pour mettre à jour automatiquement un objet lié :

1	Dans l'Editeur de présentation, cliquez sur le conteneur OLE.

Vérifiez que la propriété Afficher menu OLE instantané a pour valeur Oui et que l'option Liaisons du menu OLE instantané a pour valeurs Afficher et Activer.

2	Déplacez le curseur de la souris sur le conteneur OLE et accédez au menu instantané OLE (en cliquant sur la plate-forme Microsoft Windows à l'aide du bouton droit de la souris), puis choisissez Liaisons.

La boîte de dialogue de liaisons s'affiche. Elle présente l'option en cours pour le fichier source lié sélectionné.

3	Sélectionnez le bouton d'option Automatique en regard de Mise à jour.

4	Cliquez sur Fermer.


Ouverture d'un fichier source lié OLE

  Rubriques connexes

Pour ouvrir un fichier source lié depuis la boîte de dialogue de liaisons :

1	Dans l'Editeur de présentation, cliquez sur le conteneur OLE.

Vérifiez que la propriété Afficher menu OLE instantané a pour valeur Oui et que l'option Liaisons du menu OLE instantané a pour valeurs Afficher et Activer.

2	Déplacez le curseur de la souris sur le conteneur OLE et accédez au menu instantané OLE (en cliquant sur la plate-forme Microsoft Windows à l'aide du bouton droit de la souris), puis choisissez Liaisons.

La boîte de dialogue de liaisons apparaît. La boîte de dialogue de liaisons affiche les liens au fichier source.

3	Sélectionnez un lien vers un fichier source.

4	Cliquez sur Ouvrir source.

L'application serveur OLE à l'origine du fichier source lié démarre.

5	Editez le fichier source lié.

6	Quittez l'application serveur OLE pour enregistrer vos modifications et retournez à Form Builder.


Modification d'un lien OLE existant

  Rubriques connexes

Pour modifier un lien existant d'un fichier source lié à un autre :

1	Dans l'Editeur de présentation, cliquez sur le conteneur OLE.

Vérifiez que la propriété Afficher menu OLE instantané a pour valeur Oui et que l'option Liaisons du menu OLE instantané a pour valeurs Afficher et Activer.

2	Déplacez le curseur de la souris sur le conteneur OLE et accédez au menu instantané OLE (en cliquant sur la plate-forme Microsoft Windows à l'aide du bouton droit de la souris), puis choisissez Liaisons.

La boîte de dialogue de liaisons s'affiche. Elle présente les liens aux fichiers source.

3	Choisissez un lien à un fichier source, puis cliquez sur Modifier source.

La boîte de dialogue de modification de source s'affiche.

4	Sélectionnez un autre fichier source lié.

5	Cliquez sur OK pour établir un nouveau lien.

6	Cliquez sur Fermer.


Rupture d'un lien vers un fichier source lié

  Rubriques connexes

Pour rompre un lien à un fichier source lié :

1	Dans l'Editeur de présentation, cliquez sur le conteneur OLE.

Vérifiez que la propriété Afficher menu OLE instantané a pour valeur Oui et que l'option Liaisons du menu OLE instantané a pour valeurs Afficher et Activer.

2	Déplacez le curseur de la souris sur le conteneur OLE et accédez au menu instantané OLE (en cliquant sur la plate-forme Microsoft Windows à l'aide du bouton droit de la souris), puis choisissez Liaisons.

La boîte de dialogue de liaisons s'affiche. Elle présente les liens aux fichiers source.

3	Choisissez un lien à un fichier source, puis cliquez sur Rompre lien. Le lien est supprimé de la boîte de dialogue de liaisons.

4	Cliquez sur Fermer.


A propos de la conversion d'un objet OLE

  Rubriques connexes

Convertissez un objet OLE d'un format dans un autre pour modifier l'objet OLE lorsque l'application serveur OLE à l'origine de l'objet n'est plus disponible.

L'option de conversion est disponible dans le sous-menu Objet du menu OLE instantané. Convertissez l'objet dans un nouveau format de façon permanente ou de façon temporaire pour l'éditer.

Comme les fichiers source d'objets liés ne font pas partie d'un module Application Forms, vous ne pouvez pas convertir dans Form Builder des objets liés d'un format dans un autre. Vous ne pouvez effectuer une conversion que du niveau source.


Conversion d'un objet OLE incorporé

Pour convertir un objet OLE incorporé :

1	Dans l'Editeur de présentation, cliquez sur le conteneur OLE.

Vérifiez que la propriété Afficher menu OLE instantané a pour valeur Oui et que l'option Liaisons du menu OLE instantané a pour valeurs Afficher et Activer.

2	Une fois le curseur de la souris sur le conteneur OLE, accédez au menu instantané OLE (en cliquant sur Windows avec le bouton droit de la souris), puis choisissez Objet [image] Convertir.

La boîte de dialogue de conversion apparaît ; elle présente le type d'objet en cours et les options de conversion.

3	Sélectionnez un type d'objet de conversion.

4	Choisissez soit Convertir vers soit Activer comme. Convertir vers modifie de façon permanente le format de l'objet vers le type d'objet sélectionné. Activer comme est une conversion temporaire qui offre une méthode d'édition ou de visualisation d'un objet lorsqu'une application serveur OLE est indisponible.

5	Cliquez sur OK.


Importation des interfaces de bibliothèque OLE

  Rubriques connexes

Pour importer les méthodes OLE :

1	Choisissez Programme [image] Importer interfaces de bibliothèque OLE.

La boîte de dialogue Importer interfaces de bibliothèque OLE apparaît.

2	Sélectionnez une classe OLE.

Les packages de méthodes et d'événements s'affichent pour la classe OLE sélectionnée.

3	Maintenez la touche Ctrl enfoncée et cliquez sur les packages de méthodes souhaités.

4	Cochez la case Méthodes pour importer les méthodes.

5	Cochez la case Propriétés pour importer les fonctions d'accès de recherche et de définition pour les propriétés.

6	Cliquez sur OK.

Dans le Navigateur d'objet, notez les nouveaux packages créés sous le noeud Unités de programme.

Remarque : Les objets OLE exportent des interfaces qui détaillent des méthodes que Form Builder importe en PL/SQL. Vous pouvez interagir avec les objets OLE dans l'environnement natif de Form Builder.


Interaction avec des objets OLE

  Rubriques connexes

Vous pouvez interagir avec des objets OLE de deux façons :

•	Définir et rechercher des propriétés OLE.

•	Appeler des méthodes OLE.


Définition et recherche des propriétés OLE

 Restrictions	 Exemples	     Rubriques connexes

Vous pouvez définir et rechercher des valeurs de propriété OLE de deux façons :

•	A l'aide de la syntaxe de variable de lien.

•	A l'aide des fonctions d'accès aux propriétés (procédures PL/SQL).

Pour définir et rechercher les propriétés OLE à l'aide de la syntaxe de variable de lien :

Utilisez la syntaxe de variable de lien :item('block_name.item_name').ocx.server_name.property pour attribuer ou extraire des valeurs de propriété, où block_name est le nom du bloc de données, item_name, le nom du contrôle ActiveX, server_name, le nom du serveur ActiveX et property, le nom de la propriété ActiveX à accéder.

Pour définir et rechercher les propriétés OLE à l'aide de la fonction d'accès aux propriétés :

Utilisez les fonctions d'accès aux propriétés pour rechercher une valeur de propriété, et les procédures d'accès aux propriétés, pour définir une valeur de propriété.


Définition et recherche des propriétés OLE - Exemples

 Restrictions

Exemple 1

/* Définir une propriété OLE à l'aide de la syntaxe de variable de lien */

:item('OLEitem').OCX.SpreadSheet.CellForeGroundColor:=
:item('OLEitem').OCX.SpreadSheet.CellForeGroundColor + 1;

OLEitem est le nom de l'élément, SpreadSheet, le nom du serveur de contrôle OLE et CellForeGroundColor, le nom de la propriété.

Exemple 2

/* Définir une propriété OLE à l'aide de la fonction d'accès aux propriétés */

Variant OleVar;
Variant := EXCEL_WORKSHEET.ole_Range(:CTRL.interface,
To_variant('A1'));

EXCEL_WORKSHEET est le nom du package créé à partir de OLE Importer. OLE_RANGE est le nom de la fonction d'accès aux propriétés.


Définition et recherche des propriétés OLE - Restrictions sur les exemples

•	:item('OLEitm').OCX.server_name.property_name n'est pas compilé si server_name n'est pas sur votre machine.

•	Pour les plates-formes autres que Microsoft Windows, le compilateur peut générer un message d'avertissement parce que les types de propriété OLE ne peuvent pas être déterminés sur la plate-forme UNIX.

•	Votre application Forms ne sera pas compilée si l'objet OLE exporte des noms de propriété différents pour des langages différents.

•	La propriété OLE à laquelle vous accédez ne peut pas être une donnée de type variant.


A propos de l'appel des méthodes d'automatisation OLE

 Exemples	     Rubriques connexes

Accédez aux méthodes fournies par un objet OLE à l'aide des unités de programme générées à partir de OLE Importer. Appelez l'une des méthodes fournies dans les packages proposés sous le noeud Unités de programme.

Remarque : Certains serveurs OLE, comme Microsoft Excel utilisent des données de type variant. Comme un grand nombre de méthodes concernant ces serveurs particuliers nécessitent l'utilisation de données de type variant, le package intégré STANDARD comporte les procédures et les fonctions permettant d'exécuter la conversion nécessaire. La durée de vie et la portée d'un type variant sont limitées à un déclencheur ; l'espace occupé en mémoire par les données de type variant est libéré lorsqu'un déclencheur prend fin. Cependant, vous pouvez prolonger la durée de vie et la portée des données de type variant en définissant à TRUE le paramètre persistent de To_Variant() et en attribuant le résultat à une variable globale. Vous devez détruire explicitement les données globales de type variant en utilisant Destroy_Variant(). De même, les objets OLE créés par Create_OleObj() sont de portée globale (le paramètre persistent est par défaut défini à TRUE). Vous devez appeler explicitement Release_Obj() pour libérer des objets globaux.


Appel des méthodes d'automatisation OLE - Exemples

Exemple 1

/*

Définir la valeur d'une seule cellule dans Microsoft Excel à l'aide des méthodes PL/SQL générées automatiquement.
*/

DECLARE
/* Créer une variable de type variant. */
Variant OleVar;

BEGIN
/* Rechercher la plage de cellules que vous voulez utiliser. */
Variant := EXCEL_WORKSHEET.ole_Range(
                              :CTRL.interface,
                               To_Variant('A1'));

/* Définir la cellule A1 pour qu'elle contienne 20. */
EXCEL_RANGE.Value(
           Var_to_Obj(Variant),
           To_Variant('20'));
END;


A propos de Open API

  Rubriques connexes

Open API de Form Builder est une fonction avancée pour développeurs C/C++ qui ont une connaissance approfondie des objets Form et leurs relations.

Form Builder offre une interface de programmation d'applications ouverte qui permet de créer ou de modifier des modules Application Forms (fichiers .fmb). Cette interface de programmation d'applications ouverte (Open API) offre la puissance et la souplesse nécessaires à la création ou à la modification de modules Application Forms dans un environnement non interactif. Il est conçu pour le programmeur travaillant en C/C++.


A propos des fichiers d'en-tête Open API

  Rubriques connexes

L'interface de programmation d'applications ouverte (Open API) se trouve dans un ensemble de fichiers d'en-tête en C. Il y a un fichier d'en-tête en C par type d'objet. Les types d'objet de Form Builder, et les fichiers d'en-tête correspondants, sont les suivants :

Bibliothèques attachées	d2falb.h
Alerte	d2falt.h
Bloc	d2fblk.h
Canevas	d2fcnv.h
Argument de source de données	d2fdsa.h
Source de données	d2fdsc.h
Editeur	d2fedt.h
Module Application Forms	d2ffmd.h
Paramètre d'application Forms	d2ffpm.h
Objet graphique	d2fgra.h
Elément	d2fitm.h
Correspondance de colonnes de LOV 	d2flcm.h
LOV	d2flov.h
Module menu	d2fmmd.h
Elément menu	d2fmni.h
Menu	d2fmnu.h
Paramètre de menu	d2fmpm.h
Objet générique	d2fob.h
Groupe d'objets	d2fobg.h
Fils de groupe d'objets	d2fogc.h
Bibliothèque d'objets	d2folb.h
Onglet Bibliothèque d'objets	d2folt.h
Unité de programme	d2fpgu.h
Classe de propriété	d2fppc.h
Propriété	d2fpr.h
Groupe d'enregistrements	d2frcg.h
Spécification de colonne de groupes d'enregistrements	d2frcs.h
Bouton d'option	d2frdb.h
Relation	d2frel.h
Etat	d2frpt.h
Page onglet	d2ftbp.h
Déclencheur	d2ftrg.h
Attribut visuel	d2fvat.h
Fenêtre	d2fwin.h

Groupe de fichiers d'en-tête en C qui ne correspondent pas à des objets Form Builder spécifiques, mais qui contiennent des informations sur l'utilisation de Open API :

Fonctions de manipulation de contexte API	d2fctx.h
Listes de tous les objets et de toutes les propriétés	d2fdef.h
Utilitaires de manipulation de propriétés	d2fpr.h
Erreurs	d2ferr.h
Types ORACLE natifs	oratypes.h


A propos des objets et des relations Open API

  Rubriques connexes

Les objets et les relations Form Builder sont représentés schématiquement ci-dessous.


Propriétés Open API par objet

  Rubriques connexes

Un objet Open API de Form Builder comprend une série de propriétés Open API.

Propriétés API par objet

Alertes

Bibliothèques attachées

Blocs

Canevas

Arguments de source de données

Colonnes de source de données

Editeurs

Modules Application Forms

Paramètres d'application Forms

Graphique

Eléments

Correspondance de colonnes d'application Forms

Liste de valeurs

Objets menu

Modules Menu

Eléments menu

Paramètres de menu

Objets (objets génériques)

Groupes d'objets

Fils de groupe d'objets

Bibliothèques d'objets

Unités de programme

Classes de propriété

Boutons d'option

Groupes d'enregistrements

Spécification de colonne de groupes d'enregistrements

Objets relation

Objets état

Pages onglet

Déclencheurs

Attributs visuels

Fenêtres


Propriétés API d'objet alerte

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_ALT_MSG	Message
D2FP_ALT_STY	Style d'alerte
D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_BTN_1_LBL	Libellé Bouton 1
D2FP_BTN_2_LBL	Libellé Bouton 2
D2FP_BTN_3_LBL	Libellé Bouton 3
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_DFLT_ALT_BTN	Bouton d'alerte par défaut
D2FP_FILL_PAT	Motif de remplissage
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_FORE_COLOR	Couleur d'arrière-plan
D2FP_LANG_DIR	Direction de langue
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_TITLE	Titre
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_WHITE_ON_BLACK	D2FP_WHITE_ON_BLACK


Propriétés API d'objet bibliothèque attachée

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_LIB_LOC	Emplacement de bibliothèque PL/SQL
D2FP_LIB_SRC	Source de bibliothèque PL/SQL
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_PREVIOUS	D2FP_PREVIOUS


Propriétés API d'objet bloc

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_BLK_DESCRIPTION	Description de bloc de données
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_DB_BLOCK	Bloc de base de données
D2FP_DEL_ALLOWED	Suppression autorisée
D2FP_DEL_PROC_NAM	Supprimer nom de procédure
D2FP_DML_ARY_SIZ	Taille de tableau DML
D2FP_DML_DAT_NAM	Nom de cible de données DML
D2FP_DML_DAT_TYP	Type de cible de données DML
D2FP_ENFRC_COL_SECURITY	Imposer sécurité sur colonne
D2FP_ENFRC_PRMRY_KEY	Imposer clé primaire
D2FP_FILL_PAT	Motif de remplissage
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_FORE_COLOR	Couleur de premier plan
D2FP_INSRT_ALLOWED	Insertion autorisée
D2FP_INSRT_PROC_NAM	Insérer le nom de procédure
D2FP_ITEM	D2FP_ITEM
D2FP_KEY_MODE	Mode clé
D2FP_LANG_DIR	Direction de langue
D2FP_LOCK_MODE	Mode de verrouillage
D2FP_LOCK_PROC_NAM	Nom de procédure de verrouillage
D2FP_LST_IN_BLK_MNU	Répertorié dans le menu Bloc
D2FP_MAX_QRY_TIME	Durée maximum d'interrogation
D2FP_MAX_RECS_FETCHED	Nombre maximum d'enregistrements extraits
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NAVIGATION_STY	Type de navigation
D2FP_NEXT	D2FP_NEXT
D2FP_NXT_NAVIGATION_BLK_OBJ	D2FP_NXT_NAVIGATION_BLK_OBJ
D2FP_NXT_NAVIGATION_BLK_NAM	Bloc de navigation suivant
D2FP_OPT_HINT	Optimizer Hint
D2FP_ORDER_BY_CLAUSE	Clause ORDER BY
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PRECOMP_SUMM	D2FP_PRECOMP_SUMM
D2FP_PREV_NAVIGATION_BLK_NAM	Bloc de navigation précédent
D2FP_PREV_NAVIGATION_BLK_OBJ	D2FP_PREV_NAVIGATION_BLK_OBJ
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_QRY_ALL_RECS	Interroger tous les enregistrements
D2FP_QRY_ALLOWED	Interrogation autorisée
D2FP_QRY_DAT_SRC_NAM	Nom de source de données d'interrogation
D2FP_QRY_DAT_SRC_TYP	Type de source de données d'interrogation
D2FP_REC _ORNT	Orientation
D2FP_REC_VAT_GRP_NAM	Groupe d'attributs visuels de l'enregistrement en cours
D2FP_REC_VAT_GRP_OBJ	D2FP_REC_VAT_GRP_OBJ
D2FP_RECS_BUFFERED_COUNT	Nombre d'enregistrements en tampon
D2FP_RECS_DISP_COUNT	Nombre d'enregistrements affiché
D2FP_RECS_FETCHED_COUNT	Enregistrements à extraire
D2FP_REL	D2FP_REL
D2FP_REV_DIR	Inverser direction
D2FP_SCRLBR_CNV_NAM	Canevas à barre de défilement
D2FP_SCRLBR_CNV_OBJ	D2FP_SCRLBR_CNV_OBJ
D2FP_SCRLBR_HGT	Hauteur de barre de défilement
D2FP_SCRLBR_ORNT	Sens de la barre de défilement
D2FP_SCRLBR_TBP_NAM	Page onglet de barre de défilement
D2FP_SCRLBR_TBP_OBJ	D2FP_SCRLBR_TBP_OBJ
D2FP_SCRLBR_WID	Largeur de barre de défilement
D2FP_SCRLBR_X_POS	Position X de la barre de défilement
D2FP_SCRLBR_Y_POS	Position Y de la barre de défilement
D2FP_SHOW_SCRLBR	Afficher barre de défilement
D2FP_SNGL_REC	Enregistrement unique
D2FP_SOURCE	D2FP_SOURCE
D2FP_TRIGGER	D2FP_TRIGGER
D2FP_UPDT_ALLOWED	Mise à jour autorisée
D2FP_UPDT_CHANGED_COLS	Mettre à jour colonnes modifiées seulement
D2FP_UPDT_PROC_NAM	Mettre à jour nom de procédure
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_WHERE_CLAUSE	Clause WHERE
D2FP_WHITE_ON_BLACK	Blanc sur noir


Propriétés API d'objet canevas

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_BEVEL	Relief
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_CNV_TYP	Type de canevas
D2FP_COMMENT	Commentaires
D2FP_FILL_PAT	Motif de remplissage
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_FORE_COLOR	Couleur de premier plan
D2FP_GRAPHIC	D2FP_GRAPHIC
D2FP_HEIGHT	Largeur/Hauteur
D2FP_LANG_DIR	Direction de langue
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_POPUP_MNU_NAM	Menu instantané
D2FP_POPUP_MNU_OBJ	D2FP_POPUP_MNU_OBJ
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_RAISE_ON_ENT	Afficher au premier plan sur saisie
D2FP_SHOW_HORIZ_SCRLBR	Afficher barre de défilement horizontale
D2FP_SHOW_VERT_SCROLL	Afficher barre de défilement verticale
D2FP_SOURCE	D2FP_SOURCE
D2FP_TAB_ATT_EDGE	Bord d'attachement d'onglet
D2FP_TAB_PAGE	Page onglet
D2FP_TAB_STY	Style d'onglet
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VISIBLE	Visible
D2FP_VPRT_HGT	Hauteur de la lucarne
D2FP_VPRT_WID	Largeur de la lucarne
D2FP_VPRT_X_POS	Position X de la lucarne
D2FP_VPRT_X_POS_ON_CNV	Position X de la lucarne sur le canevas
D2FP_VPRT_Y_POS	Position Y de la lucarne
D2FP_VPRT_Y_POS_ON_CNV	Position Y de la lucarne sur le canevas
D2FP_WHITE_ON_BLACK	Blanc sur noir
D2FP_WIDTH	Largeur/Hauteur
D2FP_WND_NAM	Fenêtre
D2FP_WND_OBJ	D2FP_WND_OBJ


Propriétés API d'objet argument de source de données

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_DSA_MODE	D2FP_DSA_MODE
D2FP_DSA_NAM	D2FP_DSA_NAM
D2FP_DSA_TYP	D2FP_DSA_TYP
D2FP_DSA_TYPE_NAM	D2FP_DSA_TYP_NAM
D2FP_DSA_VAL	D2FP_DSA_VAL
D2FP_NEXT	D2FP_NEXT
D2FP_PREVIOUS	D2FP_PREVIOUS


Propriétés API d'objet colonne de source de données

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_DSC_LEN	D2FP_DSC_LEN
D2FP_DSC_MANDATORY	D2FP_DSC_MANDATORY
D2FP_DSC_NAM	D2FP_DSC_NAM
D2FP_DSC_PRECISION	D2FP_DSC_PRECISION
D2FP_DSC_SCALE	D2FP_DSC_SCALE
D2FP_DSC_TYP	D2FP_DSC_TYPE
D2FP_NEXT	D2FP_NEXT
D2FP_PREVIOUS	D2FP_PREVIOUS


Propriétés API d'objet éditeur

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_BTM_TTL	Titre de bas de page
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_FILL_PAT	Motif de remplissage
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_FORE_COLOR	Couleur de premier plan
D2FP_HEIGHT	Largeur/Hauteur
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SHOW_HORZ_SCRLBR	Afficher barre de défilement horizontale
D2FP_SHOW_VERT_SCRLBR	Afficher barre de défilement verticale
D2FP_SOURCE	D2FP_SOURCE
D2FP_TITLE	Titre
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_WHITE_ON_BLACK	Blanc sur noir
D2FP_WIDTH	Largeur/Hauteur
D2FP_WRAP_STY	Type de césure
D2FP_X_POS	Position Y/Position Y
D2FP_Y_POS	Position X/Position Y


Propriétés API d'objet module Application Forms

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_ALERT	D2FP_ALERT
D2FP_ATT_LIB	D2FP_ATT_LIB
D2FP_BLOCK	D2FP_BLOCK
D2FP_CANEVAS	D2FP_CANEVAS
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_CONSOLE_WIN	Fenêtre de commande
D2FP_CRSR_MODE	Mode de curseur
D2FP_EDITOR	Editeur
D2FP_FORM_PARAM	D2FP_FORM_PARAM
D2FP_FRST_NAVIGATION_BLK_NAM	Premier bloc de navigation
D2FP_FRST_NAVIGATION_BLK_OBJ	D2FP_FIRST_NAVIGATION_BLK_OBJ
D2FP_HORZ_TLBR_CNV	Canevas à barre d'outils horizontale
D2FP_INIT_MNU	Menu initial
D2FP_INTERACTION_MODE	Mode d'interaction
D2FP_ISOLATION_MODE	Mode d'isolement
D2FP_LANG_DIR	Direction de langue
D2FP_LOV	Liste de valeurs
D2FP_MAX_QRY_TIME	Durée maximum d'interrogation
D2FP_MAX_RECS_FETCHED	Nombre maximum d'enregistrements extraits
D2FP_MENU	D2FP_MENU
D2FP_MNU_MOD	Module Menu
D2FP_MNU_ROLE	Rôles du module Menu
D2FP_MNU_SRC	Source du menu
D2FP_MNU_STY	Type de menu
D2FP_MOUSE_NAVIGATION_LMT	Limite de navigation à la souris
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OBJ_GRP	D2FP_OBJ_GRP
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PROG_UNIT	D2FP_PROG_UNIT
D2FP_PROP_CLASS	Classe de propriété
D2FP_REC_GRP	Groupe d'enregistrements
D2FP_REC_VAT_GRP_NAM	Groupe d'attributs visuels d'enregistrement en cours
D2FP_REC_VAT_GRP_OBJ	D2FP_REC_VAT_GRP_OBJ
D2FP_REPORT	D2FP_REPORT
D2FP_SVPNT_MODE	Mode savepoint
D2FP_TITLE	Titre
D2FP_TRIGGER	D2FP_TRIGGER
D2FP_USE_3D_CNTRLS	Utiliser contrôles 3D
D2FP_VALIDATION_UNIT	Unité de validation
D2FP_VERT_TLBR_CNV	Canevas à barre d'outils verticale
D2FP_VIS_ATTR	D2FP_VIS_ATTR
D2FP_FENETRE	Fenêtre


Propriétés API d'objet paramètre d'application Forms

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_MAX_LEN	Longueur maximum
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PARAM_DAT_TYPE	Type de données de paramètre
D2FP_PARAM_INIT_VAL	Valeur initiale de paramètre
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


Propriétés API d'objet graphique

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_ALLOW_EXPANSION	Autoriser développement
D2FP_ALLOW_MLT_LIN_PRMPTS	Autoriser invites multilignes
D2FP_ALLOW_STRT_ATT_PRMPTS	Autoriser invites de début attachées
D2FP_ALLOW_TOP_ATT_PRMPTS	Autoriser invites supérieures attachées
D2FP_ARROW_STY	Style de flèche
D2FP_BEVEL	Relief
D2FP_CAP_STY	Style de bord d'objet
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_CLIP_HGT	Hauteur du rectangle de découpe
D2FP_CLIP_WID	Largeur du rectangle de découpe
D2FP_CLIP_X_POS	Origine X du rectangle de découpe
D2FP_CLIP_Y_POS	Origine Y du rectangle de découpe
D2FP_CLOSED	Indicateur de polygone/Fermeture d'arc
D2FP_CORNER_RADIUS_X	Origine X du rayon de l'angle du rectangle arrondi
D2FP_CORNER_RADIUS_Y	Origine Y du rayon de l'angle du rectangle arrondi
D2FP_CSTM_SPCING	Espacement personnalisé d'objet texte
D2FP_DASH_STY	Style de tiret pour bord d'objet
D2FP_DISP_QLTY	Qualité de l'affichage
D2FP_DIST_BTWN_RECS	Distance entre enregistrements
D2FP_DITHER	Image de trame de graphique
D2FP_EDGE_BACK_COLOR	Couleur d'arrière-plan de bord d'objet
D2FP_EDGE_FORE_COLOR	Couleur de premier plan de bord d'objet
D2FP_END_ANGLE	Angle de fin
D2FP_FIXED_BOUNDING_BX	Taille fixe de la boîte englobante de l'objet
D2FP_FONT_SCALEABLE	Taille en points proportionnelle à l'objet
D2FP_FRAME_ALIGN	Alignement de cadre
D2FP_FRAME_TTL	Titre de cadre
D2FP_FRAME_TTL_ALIGN	Alignement de titre de cadre
D2FP_FRAME_TTL_BACK_COLOR	Couleur d'arrière-plan de titre de cadre
D2FP_FRAME_TTL_FILL_PAT	Motif de remplissage de titre de cadre
D2FP_FRAME_TTL_FONT_NAM	Nom de police de titre de cadre
D2FP_FRAME_TTL_FONT_SIZ	Taille de police de titre de cadre
D2FP_FRAME_TTL_FONT_SPCING	Espacement de police de titre de cadre
D2FP_FRAME_TTL_FONT_STY	Style de police de titre de cadre
D2FP_FRAME_TTL_FONT_WGHT	Epaisseur de police de titre de cadre
D2FP_FRAME_TTL_FORE_COLOR	Couleur de premier plan de titre de cadre
D2FP_FRAME_TTL_OFST	Décalage de titre de cadre
D2FP_FRAME_TTL_SPCING	Espacement de titre de cadre
D2FP_FRAME_TTL_VAT_NAM	Groupe d'attributs visuels de titre de cadre
D2FP_FRAME_TTL_VAT_OBJ	D2FP_FRAME_TTL_VAT_OBJ
D2FP_GRA_DIST_BTWN_RECS	Distance de graphique entre enregistrements
D2FP_GRA_FONT_NAM	Nom de police graphique
D2FP_GRA_FONT_SIZ	Taille de police graphique
D2FP_GRA_FONT_STY	Style de police graphique
D2FP_GRA_TEXT	Texte graphique
D2FP_GRAPHIC	D2FP_GRAPHIC
D2FP_GRAPHICS_TYP	Type d'objet graphique
D2FP_HEIGHT	Largeur/Hauteur
D2FP_HORZ_JST	Justification horizontale d'objet texte
D2FP_HORZ_MARGN	Marge horizontale
D2FP_HORZ_OBJ_OFST	Décalage d'objet horizontal
D2FP_HORZ_ORGN	Position horizontale par rapport à l'origine
D2FP_INVISIBLE	Texte invisible
D2FP_JOIN_STY	Style de jointure de bord d'objet
D2FP_LANG_DIR	Direction de langue
D2FP_LAYOUT_DATA_BLK_NAM	Bloc de données de présentation
D2FP_LAYOUT_STY	Style de présentation
D2FP_LIN_SPCING	Espacement de trait
D2FP_LIN_WID	Largeur de trait
D2FP_MAX_OBJS	Nombre maximum d'objets par ligne
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_POINT	Taille de police
D2FP_RECS_DISP_COUNT	Nombre d'enregistrements affiché
D2FP_ROTATION_ANGLE	Angle de rotation
D2FP_SCRLBR_ALIGN	Alignement de barre de défilement
D2FP_SCRLBR_WID	Largeur de barre de défilement
D2FP_SHRINKWRAP	Comprimer
D2FP_SNGL_OBJ_ALIGN	Alignement d'un objet
D2FP_SOURCE	D2FP_SOURCE
D2FP_STRT_ANGLE	Angle de début
D2FP_STRT_PRMPT_ALIGN	Alignement de l'invite de début
D2FP_STRT_PRMPT_OFST	Décalage de l'invite de début
D2FP_TBP_NAM	D2FP_TBP_NAM
D2FP_TBP_OBJ	D2FP_TBP_OBJ
D2FP_TOP_PRMPT_ALIGN	Alignement de l'invite supérieure
D2FP_TOP_PRMPT_OFST	Décalage de l'invite supérieure
D2FP_TTL_READING_ORDR	Séquence de lecture de titre de cadre
D2FP_UPDT_LAYOUT	Mettre à jour présentation
D2FP_VERT_FILL	Remplissage vertical
D2FP_VERT_JST	Justification verticale
D2FP_VERT_MARGN	Marge verticale
D2FP_VERT_OBJ_OFST	Décalage d'objet vertical
D2FP_VERT_ORGN	Position verticale par rapport à l'origine
D2FP_WIDTH	Largeur/Hauteur
D2FP_WRAP_TXT	Renvoi à la ligne
D2FP_X_POS	Position X/Position Y
D2FP_Y_POS	Position X/Position Y


Propriétés API d'objet élément

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_ACCESS_KEY	Clé d'accès
D2FP_AUDIO_CHNNLS	Canaux audio
D2FP_AUTO_HINT	Affichage automatique des messages d'aide
D2FP_AUTO_SKP	Saut auto
D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_BEVEL_STY	Relief
D2FP_CALC_MODE	Mode de calcul
D2FP_CASE_INSENSITIVE_QRY	Interrogation sans distinction maj/min
D2FP_CASE_RSTRCTION	Respecter maj/min
D2FP_CHK_BX_OTHER_VALS	Case à cocher Correspondance d'autres valeurs
D2FP_CHKED_VAL	Coché
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_CMPRSSION_QLTY	Qualité de la compression
D2FP_CNV_NAM	Canevas
D2FP_CNV_OBJ	D2FP_CNV_OBJ
D2FP_COL_NAM	Nom de colonne
D2FP_COMM_MODE	Mode de communication
D2FP_COMMENT	Commentaires
D2FP_COMPRESS	Comprimer
D2FP_CONCEAL_DATA	Masquer données
D2FP_COPY_VAL_FROM_ITM	Copier valeur de l'élément
D2FP_DAT_SRC_BLK	Bloc de source de données
D2FP_DAT_SRC_X_AXS	Axe X de source de données
D2FP_DAT_SRC_Y_AXS	Axe Y de source de données
D2FP_DAT_TYP	Type de données
D2FP_DB_ITM	Elément de base de données
D2FP_DFLT_BTN	Bouton par défaut
D2FP_DISP_QLTY	Qualité de l'affichage
D2FP_DIST_BTWN_RECS	Distance entre enregistrements
D2FP_EDT_NAM	Editeur
D2FP_EDT_OBJ	D2FP_EDT_OBJ
D2FP_EDT_X_POS	Position X de l'éditeur, Position Y de l'éditeur
D2FP_EDT_Y_POS	Position X de l'éditeur, Position Y de l'éditeur
D2FP_ENABLED	Activé
D2FP_EXEC_MODE	Mode d'exécution
D2FP_FILL_PAT	Motif de remplissage
D2FP_FIXED_LEN	Longueur fixe
D2FP_FLNAM	Nom de fichier
D2FP_FMT_MSK	Masque de format
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_FORE_COLOR	Couleur de premier plan
D2FP_FORMULA	Formule
D2FP_HEIGHT	Largeur/Hauteur
D2FP_HIGHEST_ALLOWED_VAL	Valeur maximum autorisée/Valeur minimum autorisée
D2FP_HINT	Conseil
D2FP_ICON_FLNAM	Nom de fichier d'icône
D2FP_ICONIC	Icône
D2FP_IMG_DPTH	Profondeur d'image
D2FP_IMG_FMT	Format d'image
D2FP_INIT_KBRD_DIR	Orientation initiale du clavier
D2FP_INIT_VAL	Valeur initiale
D2FP_INSRT_ALLOWED	Insertion autorisée
D2FP_ITM_TYP	Type d'élément
D2FP_ITMS_DISP	Nombre d'éléments affiché
D2FP_JUSTIFICATION	Justification
D2FP_KBRD_NAVIGABLE	Navigation autorisée au clavier
D2FP_KEEP_CRSR_POS	Conserver position du curseur
D2FP_LABEL	Libellé
D2FP_LANG_DIR	Direction de langue
D2FP_LOCK_REC	Verrouiller l'enregistrement
D2FP_LOV_NAM	Position X de la liste
D2FP_LOV_OBJ	D2FP_LOV_OBJ
D2FP_LOV_X_POS	Liste de valeurs
D2FP_LOV_Y_POS	Position Y de la listeLOVPOSITY
D2FP_LOWEST_ALLOWED_VAL	Valeur maximum autorisée/Valeur minimum autorisée
D2FP_LST_ELEMENT_COUNT	Décompte des éléments de liste
D2FP_LST_STY	Style de liste
D2FP_MAX_LEN	Longueur maximum
D2FP_MLT_LIN	Multiligne
D2FP_MODULE	D2FP_MODULE
D2FP_MOUSE_NAVIGATE	Navigation à la souris
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_NXT_NAVIGATION_ITM_OBJ	D2FP_NXT_NAVIGATION_ITM_OBJ
D2FP_NXT_NAVIGATION_ITM_NAM	Elément de navigation suivant
D2FP_ACTIVEX_CLASS	Classe OLE
D2FP_ACTIVEX_VAL_PROP	Propriétés de contrôle
D2FP_OLE_ACT_STY	Type d'activation OLE
D2FP_OLE_CLASS	Classe OLE
D2FP_OLE_IN_PLACE_ACT	Activation sur objets incorporés OLE
D2FP_OLE_INSD_OUT_SUPPORT	OLE Inside-Out Support
D2FP_OLE_POPUP_MNU_ITMS	Options de menu instantané OLE
D2FP_OLE_RESIZ_STY	Type de redimensionnement OLE
D2FP_OLE_SHOW_POP_UP_MNU	Afficher menu OLE instantané
D2FP_OLE_SHOW_TNNT_TYP	Afficher type de contenu OLE
D2FP_OLE_TNNT_ASPCT	Aspect du contenu OLE
D2FP_OLE_TNNT_TYP	Type de contenu OLE
D2FP_OTHER_VALS	Correspondance d'autres valeurs
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_POPUP_MNU_NAM	Menu instantané
D2FP_POPUP_MNU_OBJ	D2FP_POPUP_MNU_OBJ
D2FP_POPUP_VA_OBJ	D2FP_POPUP_VA_OBJ
D2FP_PREV_NAVIGATION_ITM_NAM	Nom d'élément de navigation précédent
D2FP_PREV_NAVIGATION_ITM_OBJ	D2FP_PREV_NAVIGATION_ITM_OBJ
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRMPT	Invite
D2FP_PRMPT_ALIGN	Alignement de l'invite
D2FP_PRMPT_ALIGN_OFST	Décalage d'alignement de l'invite
D2FP_PRMPT_ATT_EDGE	Bord d'attachement de l'invite
D2FP_PRMPT_ATT_OFST	Décalage d'attachement de l'invite
D2FP_PRMPT_BACK_COLOR	Couleur d'arrière-plan de l'invite
D2FP_PRMPT_DISP_STY	Type d'affichage de l'invite
D2FP_PRMPT_FILL_PAT	Motif de remplissage de l'invite
D2FP_PRMPT_FONT_NAM	Nom de police de l'invite
D2FP_PRMPT_FONT_SIZ	Taille de police de l'invite
D2FP_PRMPT_FONT_SPCING	Espacement de police de l'invite
D2FP_PRMPT_FONT_STY	Style de police de l'invite
D2FP_PRMPT_FONT_WGHT	Epaisseur de police de l'invite
D2FP_PRMPT_FORE_COLOR	Couleur de premier plan de l'invite
D2FP_PRMPT_JST	Justification de l'invite
D2FP_PRMPT_READING_ORDR	Séquence de lecture de l'invite
D2FP_PRMPT_VAT_NAM	Groupe d'attributs visuels de l'invite
D2FP_PRMPT_VAT_OBJ	D2FP_PRMPT_VAT_OBJ
D2FP_PRMRY_KEY	Clé primaire
D2FP_QRY_ALLOWED	Interrogation autorisée
D2FP_QRY_LEN	Longueur d'interrogation
D2FP_QRY_ONLY	Interrogation seulement
D2FP_RAD_BUT	D2FP_RAD_BUT
D2FP_READING_ORDR	Séquence de lecture
D2FP_REC_VAT_GRP_NAM	Groupe d'attributs visuels de l'enregistrement en cours
D2FP_REC_VAT_GRP_OBJ	D2FP_REC_VAT_GRP_OBJ
D2FP_RENDERED	Rendu
D2FP_REQUIRED	Obligatoire
D2FP_SHOW_FAST_FWD	Afficher bouton Avance rapide
D2FP_SHOW_HORZ_SCRLBR	Afficher barre de défilement horizontale
D2FP_SHOW_PALETTE	Afficher palette
D2FP_SHOW_PLAY	Afficher bouton Lecture
D2FP_SHOW_REC	Afficher bouton Enregistrement
D2FP_SHOW_REWIND	Afficher bouton Retour rapide
D2FP_SHOW_SLIDER	Afficher règle
D2FP_SHOW_TIME	Show Time Indicator
D2FP_SHOW_VERT_SCRLBR	Afficher barre de défilement verticale
D2FP_SHOW_VOLUME	Afficher réglage du volume
D2FP_SIZING_STY	Style de dimensionnement
D2FP_SND_FMT	Format son
D2FP_SND_QLTY	Qualité du son
D2FP_SOURCE	D2FP_SOURCE
D2FP_SUMM_BLK_NAM	Bloc récapitulatif
D2FP_SUMM_FUNC	Fonction récapitulative
D2FP_SUMM_ITM_NAM	Elément récapitulatif
D2FP_SYNC_ITM_NAM	Synchronisation avec option
D2FP_SYNC_ITM_OBJ	D2FP_SYNC_ITM_OBJ
D2FP_TBP_NAM	D2FP_TBP_NAM
D2FP_TBP_OBJ	D2FP_TBP_OBJ
D2FP_TOOLTIP	Bulle d'information
D2FP_TOOLTIP_VAT_GRP	Groupe d'attributs visuels de bulle d'information
D2FP_TRIGGER	D2FP_TRIGGER
D2FP_UNCHKED_VAL	Valeur lorsque non coché
D2FP_UPDT_ALLOWED	Mise à jour autorisée
D2FP_UPDT_COMMIT	Update Commit
D2FP_UPDT_IF_NULL	Mise à jour seulement si Null
D2FP_UPDT_QRY	Update Query
D2FP_VALIDATE_FROM_LIST	Valider à partir de la liste
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VISIBLE	Visible
D2FP_WHITE_ON_BLACK	Blanc sur noir
D2FP_WIDTH	Largeur/Hauteur
D2FP_WRAP_STY	Type de césure
D2FP_X_POS	Position X/Position Y
D2FP_Y_POS	Position X/Position Y


Propriétés API d'objet correspondance de colonnes de LOV

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_DISP_WID	Afficher largeur
D2FP_NAME	Nom
D2FP_RTRN_ITM	Elément récepteur
D2FP_TITLE	Titre


Propriétés API d'objet liste de valeurs (LOV)

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_AUTO_COL_WID	Largeur automatique de colonne
D2FP_AUTO_DISP	Affichage automatique
D2FP_AUTO_POS	Position automatique
D2FP_AUTO_RFRSH	Régénération automatique
D2FP_AUTO_SKP	Saut automatique
D2FP_AUTO_SLCT	Sélection automatique
D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COL_MAP	Correspondance de colonnes
D2FP_COMMENT	Commentaires
D2FP_FILL_PAT	Motif de remplissage
D2FP_FLTR_BEFORE_DISP	Filtrer avant afficher
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de policeFONTWGT
D2FP_FORE_COLOR	Couleur de premier plan
D2FP_HEIGHT	Largeur/Hauteur
D2FP_LANG_DIR	Direction de langue
D2FP_LST_TYP	Type de liste
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OLD_LOV_TXT	Ancien texte LOV
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_REC_GRP_NAM	Groupe d'enregistrements
D2FP_REC_GRP_OBJ	D2FP_REC_GRP_OBJ
D2FP_SOURCE	D2FP_SOURCE
D2FP_TITLE	Titre
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_WHITE_ON_BLACK	Blanc sur noir
D2FP_WIDTH	Largeur/Hauteur
D2FP_X_POS	Position X/Position Y
D2FP_Y_POS	Position X/Position Y


Propriétés API d'objet menu

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_BTM_TTL	Titre de bas de page
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_MNU_ITM	Type d'option de menu
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_SUB_TTL	Sous-titre
D2FP_TEAR_OFF_MNU	Menu détachable
D2FP_TITLE	Titre


Propriétés API d'objet module Menu

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_ATT_LIB	D2FP_ATT_LIB
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_MAIN_MNU	Menu principal
D2FP_MENU	D2FP_MENU
D2FP_MNU_DESCRIPTION	Description de menu
D2FP_MNU_DRCTRY	Répertoire de menu
D2FP_MNU_FLNAM	Nom de fichier de menu
D2FP_NAME	Nom
D2FP_OBJ_GRP	D2FP_OBJ_GRP
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PROP_CLASS	Classe de propriété
D2FP_SHARE_LIB	Partager bibliothèque avec une application Forms
D2FP_SHORT_NAM	Nom abrégé
D2FP_STRTUP_CODE	Code de démarrage
D2FP_USE_SECURITY	Sécurité


Propriétés API d'objet élément de menu

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COM_TXT	Texte de commande
D2FP_COM_TYP	Type de commande
D2FP_COMMENT	Commentaires
D2FP_DISP_NO_PRIV	Afficher sans privilège
D2FP_ENABLED	Activé
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_HINT	Conseil
D2FP_HLP_DESCRIPTION	Aide
D2FP_ICON_FLNAM	Nom de fichier d'icône
D2FP_ICON_IN_MNU	Icône
D2FP_KBRD_ACC	Raccourci-clavier
D2FP_LABEL	Libellé
D2FP_MAGIC_ITM	Elément de menu magique
D2FP_MNU_ITM_CODE	D2FP_MNU_ITM_CODE
D2FP_MNU_ITM_RAD_GRP	Groupe de boutons associé à l'option de menu
D2FP_MNU_ITM_TYP	Type d'option de menu
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_SUB_MNU_NAM	D2FP_SUB_MNU_NAM
D2FP_SUB_MNU_OBJ	D2FP_SUB_MNU_OBJ
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VISIBLE	Visible
D2FP_VSBL_IN_HORZ_MNU_TLBR	Visible dans la barre d'outils de menu horizontale/verticale
D2FP_VSBL_IN_MENU	Visible dans le menu
D2FP_VSBL_IN_VERT_MNU_TLBR	Visible dans la barre d'outils de menu horizontale/verticale


Propriétés API d'objet paramètre de menu

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_ASSOC_MENUS_COUNT	D2FP_ASSOC_MENUS_COUNT
D2FP_ASSOC_MNUS	Menus associés
D2FP_CASE_RSTRCTION	Respecter maj/min
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_CONCEAL_DATA	Masquer données
D2FP_FIXED_LEN	Longueur fixe
D2FP_HINT	Conseil
D2FP_LABEL	Libellé
D2FP_MAX_LEN	Longueur maximum
D2FP_MNU_PARAM_INIT_VAL	Valeur initiale de paramètre de menu
D2FP_NAME	Nom
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_REQUIRED	Obligatoire


Propriétés API d'objet (objet générique)

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_ACCESS_KEY
Clé d'accès
D2FP_ALERT
D2FP_ALERT
D2FP_ALLOW_EXPANSION
Autoriser développement
D2FP_ALLOW_MLT_LIN_PRMPTS
Autoriser invites multilignes
D2FP_ALLOW_STRT_ATT_PRMPTS
Autoriser invites de début attachées
D2FP_ALLOW_TOP_ATT_PRMPTS
Autoriser invites supérieures attachées
D2FP_ALT_MSG
Message
D2FP_ALT_STY
Style d'alerte
D2FP_ARROW_STY
Style de flèche
D2FP_ASSOC_MENUS_COUNT
D2FP_ASSOC_MENUS_COUNT
D2FP_ASSOC_MNUS
Menus associés
D2FP_ATT_LIB
D2FP_ATT_LIB
D2FP_AUDIO_CHNNLS
Canaux audio
D2FP_AUTO_COL_WID
Largeur automatique de colonne
D2FP_AUTO_DISP
Affichage automatique
D2FP_AUTO_HINT
Affichage automatique des messages d'aide
D2FP_AUTO_POS
Position automatique
D2FP_AUTO_QRY
Interrogation automatique
D2FP_AUTO_RFRSH
Régénération automatique
D2FP_AUTO_SKP
Saut automatique
D2FP_AUTO_SLCT
Sélection automatique
D2FP_BACK_COLOR
Couleur d'arrière-plan
D2FP_BEVEL
Relief
D2FP_BTN_1_LBL
Libellé Bouton 1
D2FP_BTN_2_LBL
Libellé Bouton 2
D2FP_BTN_3_LBL
Libellé Bouton 3
D2FP_CALC_MODE
Mode de calcul
D2FP_CANEVAS
D2FP_CANEVAS
D2FP_CAP_STY
Style de bord d'objet
D2FP_CASE_INSENSITIVE_QRY
Interrogation sans distinction maj/min
D2FP_CASE_RSTRCTION
Respecter maj/min
D2FP_CHK_BX_OTHER_VALS
Case à cocher Correspondance d'autres valeurs
D2FP_CHKED_VAL
Coché
D2FP_CLIENT_INFO
D2FP_CLIENT_INFO
D2FP_CLIP_HGT
Hauteur du rectangle de découpe
D2FP_CLIP_WID
Largeur du rectangle de découpe
D2FP_CLIP_X_POS
Origine X du rectangle de découpe
D2FP_CLIP_Y_POS
Origine Y du rectangle de découpe
D2FP_CLOSED
Indicateur de polygone/Fermeture d'arc
D2FP_CLS_ALLOWED
Fermeture autorisée
D2FP_CMPRSSION_QLTY
Qualité de la compression
D2FP_CNV_NAM
Canevas
D2FP_CNV_OBJ
D2FP_CNV_OBJ
D2FP_CNV_TYP
Type de canevas
D2FP_COL_DAT_TYP
D2FP_COL_DAT_TYP
D2FP_COL_MAP
Correspondance de colonnes
D2FP_COL_NAM
Nom de colonne
D2FP_COL_SPEC
Spécifications de colonne
D2FP_COL_VALS_COUNT
D2FP_COL_VALS_COUNT
D2FP_COM_TXT
Texte de commande
D2FP_COM_TYP
Type de commande
D2FP_COMM_MODE
Mode de communication
D2FP_COMMENT
Commentaires
D2FP_COMPRESS
Comprimer
D2FP_CONCEAL_DATA
Masquer données
D2FP_CONSOLE_WIN
Fenêtre de commande
D2FP_COPY_VAL_FROM_ITM
Copier valeur de l'élément
D2FP_CORNER_RADIUS_X
Origine X du rayon de l'angle du rectangle arrondi
D2FP_CORNER_RADIUS_Y
Origine Y du rayon de l'angle du rectangle arrondi
D2FP_CRSR_MODE
Mode curseur
D2FP_CSTM_SPCING
Espacement personnalisé pour objet texte
D2FP_DASH_STY
Style de tiret pour bord d'objet
D2FP_DAT_SRC_BLK
Bloc de source de données
D2FP_DAT_SRC_X_AXS
Axe X de source de données
D2FP_DAT_SRC_Y_AXS
Axe Y de source de données
D2FP_DAT_TYP
Type de données
D2FP_DB_BLOCK
Bloc de base de données
D2FP_DB_ITM
Elément de base de données
D2FP_DEFERRED
Différé
D2FP_DEL_ALLOWED
Bloc de base de données
D2FP_DEL_PROC_NAM
Supprimer nom de procédure
D2FP_DEL_REC
Supporter comportement de l'enregistrement
D2FP_DETAIL_BLK
Bloc détail
D2FP_DFLT_ALT_BTN
Bouton d'alerte par défaut
D2FP_DFLT_BTN
Bouton par défaut
D2FP_DISP_IN_KBRD_HLP
Display in Keyboard Help
D2FP_DISP_NO_PRIV
Afficher sans privilège
D2FP_DISP_QLTY
Qualité de l'affichage
D2FP_DISP_WID
Afficher largeur
D2FP_DIST_BTWN_RECS
Distance entre enregistrements
D2FP_DITHER
Image de trame de graphique
D2FP_DML_ARY_SIZ
Taille de tableau DML
D2FP_DML_DAT_NAM
Nom de cible de données DML
D2FP_DML_DAT_TYP
Type de cible de données DML
D2FP_DSA_MODE
D2FP_DSA_MODE
D2FP_DSA_NAM
D2FP_DSA_NAM
D2FP_DSA_TYP
D2FP_DSA_TYP
D2FP_DSA_TYPE_NAM
D2FP_DSA_TYP_NAM
D2FP_DSA_VAL
D2FP_DSA_VAL
D2FP_DSC_LEN
D2FP_DSC_LEN
D2FP_DSC_MANDATORY
D2FP_DSC_MANDATORY
D2FP_DSC_NAM
D2FP_DSC_NAM
D2FP_DSC_PRECISION
D2FP_DSC_PRECISION
D2FP_DSC_SCALE
D2FP_DSC_SCALE
D2FP_DSC_TYP
D2FP_DSC_TYP
D2FP_EDGE_BACK_COLOR
Couleur d'arrière-plan de bord d'objet
D2FP_EDGE_FORE_COLOR
Couleur de premier plan de bord d'objet
D2FP_EDITOR
Editeur
D2FP_EDT_NAM
Editeur
D2FP_EDT_OBJ
D2FP_EDT_OBJ
D2FP_EDT_X_POS
Position X de l'éditeur, Position Y de l'éditeur
D2FP_EDT_Y_POS
Position X de l'éditeur, Position Y de l'éditeur
D2FP_ENABLED
Activé
D2FP_END_ANGLE
Angle de fin
D2FP_ENFRC_COL_SECURITY
Imposer sécurité sur colonne
D2FP_ENFRC_PRMRY_KEY
Imposer clé primaire
D2FP_EXEC_HIERARCHY
Type d'exécution
D2FP_EXEC_MODE
Mode d'exécution
D2FP_FILL_PAT
Motif de remplissage
D2FP_FIRE_IN_QRY
Activer en mode Saisie interrogation
D2FP_FIXED_BOUNDING_BX
Taille fixe de la boîte englobante de l'objet
D2FP_FIXED_LEN
Longueur fixe
D2FP_FLNAM
Nom de fichier
D2FP_FLTR_BEFORE_DISP
Filtrer avant afficher
D2FP_FMT_MSK
Masque de format
D2FP_FONT_NAM
Nom de police
D2FP_FONT_SCALEABLE
Taille en points proportionnelle à l'objet
D2FP_FONT_SIZE
Taille de police
D2FP_FONT_SPCING
Espacement de police
D2FP_FONT_STY
Style de police
D2FP_FONT_WGHT
Epaisseur de police
D2FP_FORE_COLOR
Couleur de premier plan
D2FP_FORM_PARAM
D2FP_FORM_PARAM
D2FP_FORMULA
Formule
D2FP_FRAME_ALIGN
Alignement de cadre
D2FP_FRAME_TTL
Titre de cadre
D2FP_FRAME_TTL_ALIGN
Alignement de titre de cadre
D2FP_FRAME_TTL_BACK_COLOR
Couleur d'arrière-plan de titre de cadre
D2FP_FRAME_TTL_FILL_PAT
Motif de remplissage de titre de cadre
D2FP_FRAME_TTL_FONT_NAM
Nom de police de titre de cadre
D2FP_FRAME_TTL_FONT_SIZ
Taille de police de titre de cadre
D2FP_FRAME_TTL_FONT_SPCING
Espacement de police de titre de cadre
D2FP_FRAME_TTL_FONT_STY
Style de police de titre de cadre
D2FP_FRAME_TTL_FONT_WGHT
Epaisseur de police de titre de cadre
D2FP_FRAME_TTL_FORE_COLOR
Couleur de premier plan de titre de cadre
D2FP_FRAME_TTL_OFST
Décalage de titre de cadre
D2FP_FRAME_TTL_SPCING
Espacement de titre de cadre
D2FP_FRAME_TTL_VAT_NAM
Groupe d'attributs visuels de titre de cadre
D2FP_FRAME_TTL_VAT_OBJ
D2FP_FRAME_TTL_VAT_OBJ
D2FP_FRST_NAVIGATION_BLK_NAM
Premier bloc de navigation
D2FP_FRST_NAVIGATION_BLK_OBJ
D2FP_FIRST_NAVIGATION_BLK_OBJ
D2FP_GRA_FONT_NAM
Nom de police graphique
D2FP_GRA_FONT_SIZ
Taille de police graphique
D2FP_GRA_FONT_STY
Style de police graphique
D2FP_GRA_TEXT
Texte graphique
D2FP_GRAPHIC
D2FP_GRAPHIC
D2FP_GRAPHICS_TYP
Type d'objet graphique
D2FP_HEIGHT
Largeur/Hauteur
D2FP_HIDE_ON_EXIT
Masquer sur sortie
D2FP_HIGHEST_ALLOWED_VAL
Valeur maximum autorisée/Valeur minimum autorisée
D2FP_HINT
Conseil
D2FP_HLP_DESCRIPTION
Aide
D2FP_HORZ_JST
Justification horizontale d'objet texte
D2FP_HORZ_MARGN
Marge horizontale
D2FP_HORZ_OBJ_OFST
Décalage d'objet horizontal
D2FP_HORZ_ORGN
Position horizontale par rapport à l'origine
D2FP_HORZ_TLBR_CNV
Canevas à barre d'outils horizontale
D2FP_HTB_CNV_NAME
Canevas à barre d'outils horizontale
D2FP_ICON_FLNAM
Nom de fichier d'icône
D2FP_ICON_IN_MNU
Icône
D2FP_ICONIC
Icône
D2FP_IMG_DPTH
Profondeur d'image
D2FP_IMG_FMT
Format d'image
D2FP_INHRT_MNU
Menu hérité
D2FP_INIT_KBRD_DIR
Etat initial clavier
D2FP_INIT_MNU
Menu initial
D2FP_INIT_VAL
Valeur initiale
D2FP_INSRT_ALLOWED
Insertion autorisée
D2FP_INSRT_PROC_NAM
Insérer le nom de procédure
D2FP_INTERACTION_MODE
Mode d'interaction
D2FP_ISOLATION_MODE
Mode d'isolation
D2FP_ITEM
D2FP_ITEM
D2FP_ITM_TYP
Type d'élément
D2FP_ITMS_DISP
Nombre d'éléments affiché
D2FP_JOIN_COND
Condition de jointure
D2FP_JOIN_STY
Style de jointure de bord d'objet
D2FP_JUSTIFICATION
Justification
D2FP_KBRD_ACC
Raccourci-clavier
D2FP_KBRD_HLP_TXT
Description de l'aide sur les touches
D2FP_KBRD_NAVIGABLE
Navigation autorisée au clavier
D2FP_KBRD_STATE
Etat clavier
D2FP_KEEP_CRSR_POS
Conserver position du curseur
D2FP_KEY_MODE
Mode clé
D2FP_LABEL
Libellé
D2FP_LANG_DIR
Direction de langue
D2FP_LAYOUT_DATA_BLK_NAM
Bloc de données de présentation
D2FP_LAYOUT_STY
Style de présentation
D2FP_LIB_LOC
Emplacement de la bibliothèque PL/SQL
D2FP_LIB_SRC
Source de bibliothèque PL/SQL
D2FP_LIN_SPCING
Espacement de trait
D2FP_LIN_WID
Largeur de trait
D2FP_LOCK_MODE
Mode de verrouillage
D2FP_LOCK_PROC_NAM
Verrouiller le nom de procédure
D2FP_LOCK_REC
Verrouiller l'enregistrement
D2FP_LOV
Liste de valeurs
D2FP_LOV_NAM
Position X de la liste
D2FP_LOV_OBJ
D2FP_LOV_OBJ
D2FP_LOV_X_POS
Liste de valeurs
D2FP_LOV_Y_POS
Position Y de la liste
D2FP_LOWEST_ALLOWED_VAL
Valeur maximum autorisée/Valeur minimum autorisée
D2FP_LST_ELEMENT_COUNT
Décompte des éléments de liste
D2FP_LST_IN_BLK_MNU
Répertorié dans le menu Bloc
D2FP_LST_STY
Style de liste
D2FP_LST_TYP
Type de liste
D2FP_MAGIC_ITM
Elément de menu magique
D2FP_MAIN_MNU
Menu principal
D2FP_MAX_LEN
Longueur maximum
D2FP_MAX_OBJS
Nombre maximum d'objets par ligne
D2FP_MAX_QRY_TIME
Durée maximum d'interrogation
D2FP_MAX_RECS_FETCHED
Nombre maximum d'enregistrements extraits
D2FP_MAXIMIZE_ALLOWED
Agrandissement autorisé
D2FP_MENU
D2FP_MENU
D2FP_MINIMIZE_ALLOWED
Réduction autorisée
D2FP_MINIMIZE_TTL
Réduire titre
D2FP_MLT_LIN
Multiligne
D2FP_MNU_DESCRIPTION
Description de menu
D2FP_MNU_DRCTRY
Répertoire de menu
D2FP_MNU_FLNAM
Nom de fichier de menu
D2FP_MNU_ITM
Type d'option de menu
D2FP_MNU_ITM_CODE
D2FP_MNU_ITM_CODE
D2FP_MNU_ITM_RAD_GRP
Groupe de boutons associé à l'option de menu
D2FP_MNU_ITM_TYP
Type d'option de menu
D2FP_MNU_MOD
Module Menu
D2FP_MNU_PARAM
D2FP_MNU_PARAM
D2FP_MNU_PARAM_INIT_VAL
Valeur initiale de paramètre de menu
D2FP_MNU_ROLE
Rôles du module Menu
D2FP_MNU_SRC
Source du menu
D2FP_MNU_STY
Type de menu
D2FP_MODAL
Modal
D2FP_MODULE
D2FP_MODULE
D2FP_MOUSE_NAVIGATE
Navigation à la souris
D2FP_MOUSE_NAVIGATION_LMT
Limite de navigation à la souris
D2FP_MV_ALLOWED
Déplacement autorisé
D2FP_NAME
Nom
D2FP_NAVIGATION_STY
Type de navigation
D2FP_NEXT
D2FP_NEXT
D2FP_NXT_NAVIGATION_BLK_OBJ
D2FP_NXT_NAVIGATION_BLK_OBJ
D2FP_NXT_NAVIGATION_BLK_NAM
Bloc de navigation suivant
D2FP_NXT_NAVIGATION_ITM_OBJ
D2FP_NXT_NAVIGATION_ITM_OBJ
D2FP_NXT_NAVIGATION_ITM_NAM
Elément de navigation suivant
D2FP_OBJ_GRP
D2FP_OBJ_GRP
D2FP_OBJ_GRP_CHILD_REAL_OBJ
D2FP_OBJ_GRP_CHILD_REAL_OBJ
D2FP_ACTIVEX_CLASS
Classe OLE
D2FP_ACTIVEX_VAL_PROP
Propriétés de contrôle
D2FP_OG_CHILD
D2FP_OG_CHILD
D2FP_OLD_LOV_TXT
Ancien texte LOV
D2FP_OLE_ACT_STY
Type d'activation OLE
D2FP_OLE_CLASS
Classe OLE
D2FP_OLE_IN_PLACE_ACT
Activation sur objets incorporés OLE
D2FP_OLE_INSD_OUT_SUPPORT
OLE Inside-Out Support
D2FP_OLE_POPUP_MNU_ITMS
Options de menu instantané OLE
D2FP_OLE_RESIZ_STY
Type de redimensionnement OLE
D2FP_OLE_SHOW_POP_UP_MNU
Afficher menu OLE instantané
D2FP_OLE_SHOW_TNNT_TYP
Afficher type de contenu OLE
D2FP_OLE_TNNT_ASPCT
Aspect du contenu OLE
D2FP_OLE_TNNT_TYP
Type de contenu OLE
D2FP_OPT_HINT
Optimizer Hint
D2FP_ORDER_BY_CLAUSE
Clause ORDER BY
D2FP_OTHER_VALS
Correspondance d'autres valeurs
D2FP_OWNER
D2FP_OWNER
D2FP_PAR_FLNAM
D2FP_PAR_FLNAM
D2FP_PAR_FLPATH
D2FP_PAR_FLPATH
D2FP_PAR_MODSTR
D2FP_PAR_MODSTR
D2FP_PAR_MODTYP
D2FP_PAR_MODTYPE
D2FP_PAR_MODULE
D2FP_PAR_MODULE
D2FP_PAR_NAM
D2FP_PAR_NAME
D2FP_PARAM_DAT_TYP
Type de données de paramètre
D2FP_PARAM_INIT_VAL
Valeur initiale de paramètre
D2FP_PGU_TXT
D2FP_PGU_TXT
D2FP_POPUP_MNU_NAM
Menu instantané
D2FP_POPUP_MNU_OBJ
D2FP_POPUP_MNU_OBJ
D2FP_POPUP_VA_OBJ
D2FP_POPUP_VA_OBJ
D2FP_PRECOMP_SUMM
D2FP_PRECOMP_SUMM
D2FP_PREV_NAVIGATION_BLK_NAM
Bloc de navigation précédent
D2FP_PREV_NAVIGATION_BLK_OBJ
D2FP_PREV_NAVIGATION_BLK_OBJ
D2FP_PREV_NAVIGATION_ITM_NAM
Nom d'élément de navigation précédent
D2FP_PREV_NAVIGATION_ITM_OBJ
D2FP_PREV_NAVIGATION_ITM_OBJ
D2FP_PREVIOUS
D2FP_PREVIOUS
D2FP_PRMPT
Invite
D2FP_PRMPT_ALIGN
Alignement de l'invite
D2FP_PRMPT_ALIGN_OFST
Décalage d'alignement de l'invite
D2FP_PRMPT_ATT_EDGE
Bord d'attachement de l'invite
D2FP_PRMPT_ATT_OFST
Décalage d'attachement de l'invite
D2FP_PRMPT_BACK_COLOR
Couleur d'arrière-plan de l'invite
D2FP_PRMPT_DISP_STY
Type d'affichage de l'invite
D2FP_PRMPT_FILL_PAT
Motif de remplissage de l'invite
D2FP_PRMPT_FONT_NAM
Nom de police de l'invite
D2FP_PRMPT_FONT_SIZ
Taille de police de l'invite
D2FP_PRMPT_FONT_SPCING
Espacement de police de l'invite
D2FP_PRMPT_FONT_STY
Style de police de l'invite
D2FP_PRMPT_FONT_WGHT
Epaisseur de police de l'invite
D2FP_PRMPT_FORE_COLOR
Couleur de premier plan de l'invite
D2FP_PRMPT_JST
Justification de l'invite
D2FP_PRMPT_READING_ORDR
Séquence de lecture de l'invite
D2FP_PRMPT_VAT_NAM
Groupe d'attributs visuels de l'invite
D2FP_PRMPT_VAT_OBJ
D2FP_PRMPT_VAT_OBJ
D2FP_PRMRY_CNV
Canevas primaire
D2FP_PRMRY_KEY
Clé primaire
D2FP_PROG_UNIT
D2FP_PROG_UNIT
D2FP_PROP_CLASS
Classe de propriété
D2FP_PRVNT_MSTRLESS_OPS
Empêcher opérations sans maître
D2FP_QRY_ALL_RECS
Interroger tous les enregistrements
D2FP_QRY_ALLOWED
Interrogation autorisée
D2FP_QRY_DAT_SRC_NAM
Nom de source de données d'interrogation
D2FP_QRY_DAT_SRC_TYP
Type de source de données d'interrogation
D2FP_QRY_LEN
Longueur d'interrogation
D2FP_QRY_ONLY
Interrogation seulement
D2FP_RAD_BUT
D2FP_RAD_BUT
D2FP_RAISE_ON_ENT
Afficher au premier plan sur saisie
D2FP_RDB_VAL
Valeur de bouton d'option
D2FP_READING_ORDR
Séquence de lecture
D2FP_REC_GRP
Groupe d'enregistrements
D2FP_REC_GRP_FETCH_SIZ
D2FP_REC_GRP_FETCH_SIZ
D2FP_REC_GRP_NAM
Groupe d'enregistrements
D2FP_REC_GRP_OBJ
D2FP_REC_GRP_OBJ
D2FP_REC_GRP_QRY
Interrogation associée au groupe d'enregistrements
D2FP_REC_GRP_TYP
Type de groupe d'enregistrements
D2FP_REC_ORNT
Sens des enregistrements
D2FP_REC_VAT_GRP_NAM
Groupe d'attributs visuels de l'enregistrement en cours
D2FP_REC_VAT_GRP_OBJ
D2FP_REC_VAT_GRP_OBJ
D2FP_RECS_BUFFERED_COUNT
Nombre d'enregistrements en tampon
D2FP_RECS_DISP_COUNT
Nombre d'enregistrements affiché
D2FP_RECS_FETCHED_COUNT
Records_to_Fetch
D2FP_REL
D2FP_REL
D2FP_RENDERED
Rendu
D2FP_REPORT
D2FP_REPORT
D2FP_REQUIRED
Obligatoire
D2FP_RESIZE_ALLOWED
Redimensionnement autorisé
D2FP_REV_DIR
Inverser direction
D2FP_ROTATION_ANGLE
Angle de rotation
D2FP_RPT_DESTINATION_FMT
Format de destination d'état
D2FP_RPT_DESTINATION_NAM
Nom de destination d'état
D2FP_RPT_DESTINATION_TYP
Type de destination d'état
D2FP_RPT_PARAMS
Autres paramètres d'état
D2FP_RPT_SRVR
Serveur Report
D2FP_RTRN_ITM
Elément récepteur
D2FP_SCRLBR_ALIGN
Alignement de barre de défilement
D2FP_SCRLBR_CNV_NAM
Canevas à barre de défilement
D2FP_SCRLBR_CNV_OBJ
D2FP_SCRLBR_CNV_OBJ
D2FP_SCRLBR_HGT
Hauteur de barre de défilement
D2FP_SCRLBR_ORNT
Sens de la barre de défilement
D2FP_SCRLBR_TBP_NAM
Page onglet de barre de défilement
D2FP_SCRLBR_TBP_OBJ
D2FP_SCRLBR_TBP_OBJ
D2FP_SCRLBR_WID
Largeur de barre de défilement
D2FP_SCRLBR_X_POS
Position X de la barre de défilement
D2FP_SCRLBR_Y_POS
Position Y de la barre de défilement
D2FP_SHARE_LIB
Partager bibliothèque avec une application Forms
D2FP_SHORT_NAM
Nom abrégé
D2FP_SHOW_FAST_FWD
Afficher bouton Avance rapide
D2FP_SHOW_HORZ_SCRLBR
Afficher barre de défilement horizontale
D2FP_SHOW_PALETTE
Afficher palette
D2FP_SHOW_PLAY
Afficher bouton Lecture
D2FP_SHOW_REC
Afficher bouton Enregistrement
D2FP_SHOW_REWIND
Afficher bouton Retour rapide
D2FP_SHOW_SCRLBR
Afficher barre de défilement
D2FP_SHOW_SLIDER
Afficher règle
D2FP_SHOW_TIME
Show Time Indicator
D2FP_SHOW_VERT_SCRLBR
Afficher barre de défilement verticale
D2FP_SHOW_VOLUME
Afficher réglage du volume
D2FP_SHRINKWRAP
Comprimer
D2FP_SIZING_STY
Style de dimensionnement
D2FP_SND_FMT
Format son
D2FP_SND_QLTY
Qualité du son
D2FP_SNGL_OBJ_ALIGN
Alignement d'un objet
D2FP_SNGL_REC
Enregistrement unique
D2FP_SOURCE
D2FP_SOURCE
D2FP_STRT_ANGLE
Angle de début
D2FP_STRT_PRMPT_ALIGN
Alignement de l'invite de début
D2FP_STRT_PRMPT_OFST
Décalage de l'invite de début
D2FP_STRTUP_CODE
Code de démarrage
D2FP_SUB_MNU_NAM
D2FP_SUB_MNU_NAM
D2FP_SUB_MNU_OBJ
D2FP_SUB_MNU_OBJ
D2FP_SUB_TTL
Sous-titre
D2FP_SUMM_BLK_NAM
Bloc récapitulatif
D2FP_SUMM_FUNC
Fonction récapitulative
D2FP_SUMM_ITM_NAM
Elément récapitulatif
D2FP_SVPNT_MODE
Mode savepoint
D2FP_SYNC_ITM_NAM
Synchronisation avec option
D2FP_SYNC_ITM_OBJ
D2FP_SYNC_ITM_OBJ
D2FP_TAB_ATT_EDGE
Bord d'attachement d'onglet
D2FP_TAB_PAGE
Page onglet
D2FP_TAB_STY
Style d'onglet
D2FP_TBP_NAM
D2FP_TBP_NAM
D2FP_TBP_OBJ
D2FP_TBP_OBJ
D2FP_TEAR_OFF_MNU
Menu détachable
D2FP_TITLE
Titre
D2FP_TOOLTIP
Bulle d'information
D2FP_TOOLTIP_VAT_GRP
Groupe d'attributs visuels de bulle d'information
D2FP_TOP_PRMPT_ALIGN
Alignement de l'invite supérieure
D2FP_TOP_PRMPT_OFST
Décalage de l'invite supérieure
D2FP_TRG_STY
Style de déclencheur
D2FP_TRG_TXT
Texte de déclencheur
D2FP_TRG_TYP
Type de déclencheur
D2FP_TRIGGER
D2FP_TRIGGER
D2FP_TTL_READING_ORDR
Séquence de lecture de titre de cadre
D2FP_UNCHKED_VAL
Valeur lorsque non coché
D2FP_UPDT_ALLOWED
Mise à jour autorisée
D2FP_UPDT_CHANGED_COLS
Mettre à jour colonnes modifiées seulement
D2FP_UPDT_COMMIT
Update Commit
D2FP_UPDT_IF_NULL
Mise à jour seulement si Null
D2FP_UPDT_LAYOUT
Mettre à jour présentation
D2FP_UPDT_PROC_NAM
Mettre à jour nom de procédure
D2FP_UPDT_QRY
Update Query
D2FP_USE_SECURITY
Sécurité
D2FP_USE_3D_CNTRLS
Utiliser contrôles 3D
D2FP_VALIDATE_FROM_LIST
Valider à partir de la liste
D2FP_VALIDATION_UNIT
Unité de validation
D2FP_VAT_NAM
Groupe d'attributs visuels
D2FP_VAT_OBJ
D2FP_VAT_OBJ
D2FP_VAT_TYP
D2FP_VAT_TYP
D2FP_VERT_FILL
Remplissage vertical
D2FP_VERT_JST
Justification verticale
D2FP_VERT_MARGN
Marge verticale
D2FP_VERT_OBJ_OFST
Décalage d'objet vertical
D2FP_VERT_ORGN
Position verticale par rapport à l'origine
D2FP_VERT_TLBR_CNV
Canevas à barre d'outils verticale
D2FP_VIS_ATTR
D2FP_VIS_ATTR
D2FP_VISIBLE
Visible
D2FP_VPRT_HGT
Hauteur de la lucarne
D2FP_VPRT_WID
Largeur de la lucarne
D2FP_VPRT_X_POS
Position X de la lucarne
D2FP_VPRT_X_POS_ON_CNV
Position X de la lucarne sur le canevas
D2FP_VPRT_Y_POS
Position Y de la lucarne
D2FP_VPRT_Y_POS_ON_CNV
Position Y de la lucarne sur le canevas
D2FP_VSBL_IN_HORZ_MNU_TLBR
Visible dans la barre d'outils de menu horizontale/verticale
D2FP_VSBL_IN_MENU
Visible dans le menu
D2FP_VSBL_IN_VERT_MNU_TLBR
Visible dans la barre d'outils de menu horizontale/verticale
D2FP_VTB_CNV_NAME
Canevas à barre d'outils verticale
D2FP_WHERE_CLAUSE
Clause WHERE
D2FP_WHITE_ON_BLACK
Blanc sur noir
D2FP_WIDTH
Largeur/Hauteur
D2FP_WIN_STY
Type de fenêtre
D2FP_FENETRE
Fenêtre
D2FP_WND_NAM
Fenêtre
D2FP_WND_OBJ
D2FP_WND_OBJ
D2FP_WRAP_STY
Type de césure
D2FP_WRAP_TXT
Renvoi à la ligne


Propriétés API de groupes d'objets

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_MODULE	D2FP_MODULE
D2FP_NEXT	D2FP_NEXT
D2FP_OG_CHILD	D2FP_OG_CHILD
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


Propriétés API de fils de groupe d'objets

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OBJ_GRP_CHILD_REAL_OBJ	D2FP_OBJ_GRP_CHILD_REAL_OBJ
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


Propriétés API de bibliothèque d'objets

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OBJ_COUNT	D2FP_OBJ_COUNT
D2FP_OBJ_LIB_TAB	D2FP_OBJ_LIB_TAB
D2FP_PREVIOUS	D2FP_PREVIOUS


Propriétés API d'unité de programme

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PGU_TXT	D2FP_PGU_TXT
D2FP_PGU_TYP	D2FP_PGU_TYP
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


Propriétés API de classe de propriété

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_TRIGGER	D2FP_TRIGGER


Propriétés API de bouton d'option

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_ACCESS_KEY	Clé d'accès
D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_DIST_BTWN_RECS	Distance entre enregistrements
D2FP_ENABLED	Activé
D2FP_FILL_PAT	Motif de remplissage
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_FORE_COLOR	Couleur de premier plan
D2FP_HEIGHT	Largeur/Hauteur
D2FP_LABEL	Libellé
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRMPT	Invite
D2FP_PRMPT_ALIGN	Alignement de l'invite
D2FP_PRMPT_ALIGN_OFST	Décalage d'alignement de l'invite
D2FP_PRMPT_ATT_EDGE	Bord d'attachement de l'invite
D2FP_PRMPT_ATT_OFST	Décalage d'attachement de l'invite
D2FP_PRMPT_BACK_COLOR	Couleur d'arrière-plan de l'invite
D2FP_PRMPT_DISP_STY	Type d'affichage de l'invite
D2FP_PRMPT_FILL_PAT	Motif de remplissage de l'invite
D2FP_PRMPT_FONT_NAM	Nom de police de l'invite
D2FP_PRMPT_FONT_SIZ	Taille de police de l'invite
D2FP_PRMPT_FONT_SPCING	Espacement de police de l'invite
D2FP_PRMPT_FONT_STY	Style de police de l'invite
D2FP_PRMPT_FONT_WGHT	Epaisseur de police de l'invite
D2FP_PRMPT_FORE_COLOR	Couleur de premier plan de l'invite
D2FP_PRMPT_JST	Justification de l'invite
D2FP_PRMPT_READING_ORDR	Séquence de lecture de l'invite
D2FP_PRMPT_VAT_NAM	Groupe d'attributs visuels de l'invite
D2FP_PRMPT_VAT_OBJ	D2FP_PRMPT_VAT_OBJ
D2FP_RDB_VAL	Valeur de bouton d'option
D2FP_SOURCE	D2FP_SOURCE
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VISIBLE	Visible
D2FP_WHITE_ON_BLACK	Blanc sur noir
D2FP_WIDTH	Largeur/Hauteur
D2FP_X_POS	Position X/Position Y
D2FP_Y_POS	Position X/Position Y


Propriétés API d'objet groupe d'enregistrements

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COL_SPEC	Spécifications de colonne
D2FP_COMMENT	Commentaires
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_REC_GRP_FETCH_SIZ	D2FP_REC_GRP_FETCH_SIZ
D2FP_REC_GRP_QRY	Interrogation associée au groupe d'enregistrements
D2FP_REC_GRP_TYP	Type de groupe d'enregistrements
D2FP_SOURCE	D2FP_SOURCE


Propriétés API de spécification de colonne de groupes d'enregistrements

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COL_DAT_TYP	D2FP_COL_DAT_TYP
D2FP_COL_VALS_COUNT	D2FP_COL_VALS_COUNT
D2FP_MAX_LEN	Longueur maximum
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_PREVIOUS	D2FP_PREVIOUS


Propriétés API d'objet relation

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_AUTO_QRY	Interrogation automatique
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_DEFERRED	Différé
D2FP_DEL_REC	Supporter comportement de l'enregistrement
D2FP_DETAIL_BLK	Bloc détail
D2FP_JOIN_COND	Condition de jointure
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRVNT_MSTRLESS_OPS	Empêcher opérations sans maître
D2FP_SOURCE	D2FP_SOURCE


Propriétés API d'objet état

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMM_MODE	Mode de communication
D2FP_COMMENT	Commentaires
D2FP_DAT_SRC_BLK	Bloc de source de données
D2FP_EXEC_MODE	Mode d'exécution
D2FP_FLNAM	Nom de fichier
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_RPT_DESTINATION_FMT	Format de destination d'état
D2FP_RPT_DESTINATION_NAM	Nom de destination d'état
D2FP_RPT_DESTINATION_TYP	Type de destination d'état
D2FP_RPT_PARAMS	Autres paramètres d'état
D2FP_RPT_SRVR	Serveur Report
D2FP_SOURCE	D2FP_SOURCE


Propriétés API d'objet page onglet

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_GRAPHIC	D2FP_GRAPHIC
D2FP_LABEL	Libellé
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE


Propriétés API d'objet déclencheur

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_COMMENT	Commentaires
D2FP_DISP_IN_KBRD_HLP	Display in Keyboard Help
D2FP_EXEC_HIERARCHY	Type d'exécution
D2FP_FIRE_IN_QRY	Activer en mode Saisie interrogation
D2FP_KBRD_HLP_TXT	Description de l'aide sur les touches
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_SOURCE	D2FP_SOURCE
D2FP_TRG_STY	Style de déclencheur
D2FP_TRG_TXT	Texte de déclencheur
D2FP_TRG_TYP	Type de déclencheur


Propriétés API d'objet attribut visuel

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_FILL_PAT	Motif de remplissage
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_FORE_COLOR	Couleur de premier plan
D2FP_MODULE	D2FP_MODULE
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRMPT_BACK_COLOR	Couleur d'arrière-plan de l'invite
D2FP_PRMPT_FILL_PAT	Motif de remplissage de l'invite
D2FP_PRMPT_FONT_NAM	Nom de police de l'invite
D2FP_PRMPT_FONT_SIZ	Taille de police de l'invite
D2FP_PRMPT_FONT_SPCING	Espacement de police de l'invite
D2FP_PRMPT_FONT_STY	Style de police de l'invite
D2FP_PRMPT_FONT_WGHT	Epaisseur de police de l'invite
D2FP_PRMPT_FORE_COLOR	Couleur de premier plan de l'invite
D2FP_SOURCE	D2FP_SOURCE
D2FP_VAT_TYP	D2FP_VAT_TYP
D2FP_WHITE_ON_BLACK	Blanc sur noir


Propriétés API d'objet fenêtre

  Rubriques connexes

La colonne de gauche contient les propriétés qui apparaissent dans les fichiers d'en-tête de Open API et la colonne de droite, le nom de propriété correspondante dans l'interface Form Builder.

D2FP_BACK_COLOR	Couleur d'arrière-plan
D2FP_BEVEL	Relief
D2FP_CLIENT_INFO	D2FP_CLIENT_INFO
D2FP_CLS_ALLOWED	FERMETURE AUTORISEE
D2FP_COMMENT	Commentaires
D2FP_FILL_PAT	Motif de remplissage
D2FP_FONT_NAM	Nom de police
D2FP_FONT_SIZE	Taille de police
D2FP_FONT_SPCING	Espacement de police
D2FP_FONT_STY	Style de police
D2FP_FONT_WGHT	Epaisseur de police
D2FP_FORE_COLOR	Couleur de premier plan
D2FP_HEIGHT	Largeur/Hauteur
D2FP_HIDE_ON_EXIT	Masquer sur sortie
D2FP_HTB_CNV_NAME	Canevas à barre d'outils horizontale
D2FP_ICON_FLNAM	Nom de fichier d'icône
D2FP_INHRT_MNU	Menu hérité
D2FP_LANG_DIR	Direction de langue
D2FP_MAXIMIZE_ALLOWED	Agrandissement autorisé
D2FP_MINIMIZE_ALLOWED	Réduction autorisée
D2FP_MINIMIZE_TTL	Réduire titre
D2FP_MODAL	Modal
D2FP_MODULE	D2FP_MODULE
D2FP_MV_ALLOWED	Déplacement autorisé
D2FP_NAME	Nom
D2FP_NEXT	D2FP_NEXT
D2FP_OWNER	D2FP_OWNER
D2FP_PAR_FLNAM	D2FP_PAR_FLNAM
D2FP_PAR_FLPATH	D2FP_PAR_FLPATH
D2FP_PAR_MODSTR	D2FP_PAR_MODSTR
D2FP_PAR_MODTYP	D2FP_PAR_MODTYPE
D2FP_PAR_MODULE	D2FP_PAR_MODULE
D2FP_PAR_NAM	D2FP_PAR_NAME
D2FP_PREVIOUS	D2FP_PREVIOUS
D2FP_PRMRY_CNV	Canevas primaire
D2FP_RESIZE_ALLOWED	Redimensionnement autorisé
D2FP_SHOW_HORZ_SCRLBR	Afficher barre de défilement horizontale
D2FP_SHOW_VERT_SCRLBR	Afficher barre de défilement verticale
D2FP_SOURCE	D2FP_SOURCE
D2FP_TITLE	Titre
D2FP_VAT_NAM	Groupe d'attributs visuels
D2FP_VAT_OBJ	D2FP_VAT_OBJ
D2FP_VTB_CNV_NAME	Canevas à barre d'outils verticale
D2FP_WHITE_ON_BLACK	Blanc sur noir
D2FP_WIDTH	Largeur/Hauteur
D2FP_WIN_STY	Type de fenêtre
D2FP_X_POS	Position X/Position Y
D2FP_Y_POS	Position X/Position Y


Objets Open API

  Rubriques connexes

Objets API

Alertes

Bibliothèques attachées

Blocs

Canevas

Arguments de source de données

Colonnes de source de données

Editeurs

Modules Application Forms

Paramètres d'application Forms

Graphique

Eléments

Correspondance de colonnes d'application Forms

Liste de valeurs

Objets menu

Modules Menu

Eléments menu

Paramètres de menu

Objets (objets génériques)

Groupes d'objets

Fils de groupe d'objets

Bibliothèques d'objets

Unités de programme

Classes de propriété

Boutons d'option

Groupes d'enregistrements

Spécification de colonne de groupes d'enregistrements

Objets relation

Objets état

Pages onglet

Déclencheurs

Attributs visuels

Fenêtres


objet alerte, API;
Objet alerte

 Rubriques connexes

Cet objet est une fenêtre modale qui affiche un message indiquant à l'utilisateur une condition propre à l'application.


Objet bibliothèque attachée

  Rubriques connexes

Cet objet est un module Bibliothèque en lecture seule qui représente un ensemble de sous-programmes comprenant des packages, des fonctions et des procédures nommées par l'utilisateur, qui peuvent être appelés à partir d'autres modules de l'application.


Objet bloc

  Rubriques connexes

Cet objet représente un conteneur logique permettant de grouper des objets en relation en une unité fonctionnelle pour le stockage, l'affichage et la manipulation des enregistrements. Seuls les objets élément figurant dans un bloc sont visibles dans l'interface de l'application.


Objet canevas

  Rubriques connexes

Cet objet représente une entité d'arrière-plan sur laquelle vous placez des éléments d'interface comme des cases à cocher, des groupes de boutons d'option et des éléments texte. Les objets canevas sont de quatre types : Intégral, Empilé, Barre d'outils horizontale et Barre d'outils verticale.


D2FP_CLIENT_INFO

D2FP_CLIENT_INFO est utilisée par le client pour attacher des données complémentaires à des objets Form Builder. Notez que ces données, utilisées par le client, ne sont pas enregistrées dans le fichier .fmb ; D2FP_CLIENT_INFO n'est pas définie dans les instanciations ultérieures de Form Builder.


D2FP_MODULE

D2FP_MODULE est utilisée pour retourner l'identificateur d'un objet module - une application Forms, une bibliothèque d'objets ou un menu.


D2FP_NEXT

D2FP_NEXT est utilisée pour retourner l'identificateur du prochain objet de la liste, qui est de même type. Par exemple, D2FP_NEXT permet d'obtenir l'identificateur du prochain objet alerte. Si cet objet est le dernier de la liste, D2FP_NEXT retourne NULL.


D2FP_OWNER

D2FP_OWNER est utilisée pour retourner l'identificateur du propriétaire de l'objet. Par exemple, D2FP_OWNER retourne un identificateur du bloc propriétaire d'un élément, car un bloc possède un élément.


D2FP_PREVIOUS

D2FP_PREVIOUS est utilisée pour retourner l'identificateur de l'objet précédent de la liste, qui est de même type. Pour un objet alerte, D2FP_PREVIOUS retourne l'identificateur du précédent objet alerte. Si cet objet est le premier de la liste, D2FP_PREVIOUS retourne NULL.


D2FP_SOURCE

D2FP_SOURCE est utilisée pour retourner l'identificateur de l'objet source. Cette propriété ne s'applique qu'aux objets sous-classés.


D2FP_VAT_OBJ

D2FP_VAT_OBJ est utilisée pour retourner l'identificateur des objets groupe d'attributs visuels.


D2FP_PAR_FLNAM

D2FP_PAR_FLNAM est utilisée pour retourner le nom de fichier de l'objet père. Cette propriété ne s'applique qu'aux objets sous-classés.


D2FP_PAR_FLPATH

D2FP_PAR_FLPATH est utilisée pour retourner les chemins d'accès aux fichiers de l'objet père. Cette propriété ne s'applique qu'aux objets sous-classés.


D2FP_PAR_MODSTR

D2FP_PAR_MODSTR est utilisée pour retourner la chaîne de module de l'objet père. Cette propriété ne s'applique qu'aux objets sous-classés.


D2FP_PAR_MODTYP

D2FP_PAR_MODTYP est utilisée pour retourner le type de module de l'objet père. Cette propriété ne s'applique qu'aux objets sous-classés.


D2FP_PAR_MODULE

D2FP_PAR_MODULE est utilisée pour retourner le module de l'objet père. Cette propriété ne s'applique qu'aux objets sous-classés.


D2FP_PAR_NAM

D2FP_PAR_NAM est utilisée pour retourner le nom de l'objet père. Cette propriété ne s'applique qu'aux objets sous-classés.


D2FP_LIB_LOC

D2FP_LIB_LOC est utilisée pour retourner l'emplacement physique de la bibliothèque PL/SQL.


D2FP_LIB_SRC

D2FP_LIB_SRC est utilisée pour retourner la source de la bibliothèque PL/SQL.


D2FP_PRECOMP_SUMM

2FP_PRECOMP_SUMM est utilisée pour retourner la somme d'un élément calculé.


D2FP_NXT_NAVIGATION_BLK_OBJ

D2FP_NXT_NAVIGATION_BLK_OBJ est utilisée pour retourner l'identificateur de l'objet connu comme bloc de navigation suivant, ou bloc ayant le numéro de séquence suivant.


D2FP_PREV_NAVIGATION_BLK_OBJ

D2FP_PREV_NAVIGATION_BLK_OBJ est utilisée pour retourner l'identificateur de l'objet connu comme bloc de navigation précédent.


D2FP_NXT_NAVIGATION_ITM_OBJ

D2FP_NXT_NAVIGATION_ITM_OBJ est utilisée pour retourner l'identificateur de l'objet connu comme bloc de navigation suivant.


D2FP_PREV_NAVIGATION_ITM_OBJ

D2FP_PREV_NAVIGATION_ITM_OBJ est utilisée pour retourner l'identificateur de l'objet connu comme bloc de navigation précédent, ou bloc ayant le numéro de séquence précédent.


D2FP_REC_VAT_GRP_OBJ

D2FP_REC_VAT_GRP_OBJ est utilisée pour retourner l'identificateur de l'objet groupe d'attributs visuels de l'enregistrement en cours.


D2FP_REL

D2FP_REL est utilisée pour retourner l'identificateur de la liste des objets relation.


D2FP_SCRLBR_CNV_OBJ

D2FP_SCRLBR_CNV_OBJ est l'identificateur de la liste des objets canevas à barre de défilement.


D2FP_SCRLBR_TBP_OBJ

D2FP_SCRLBR_TBP_OBJ est l'identificateur de la liste d'objets page onglet à barre de défilement.


D2FP_TRIGGER

D2FP_TRIGGER est utilisée pour retourner l'identificateur de la liste des objets déclencheur.


D2FP_GRAPHIC

D2FP_GRAPHIC est utilisée pour retourner l'identificateur de la liste des objets graphiques.


D2FP_POPUP_MNU_OBJ

D2FP_POP_MENU_OBJ est utilisée pour retourner l'identificateur de la liste des objets menu instantané.


D2FP_WND_OBJ

D2FP_WND_OBJ est utilisée pour retourner l'identificateur de la liste des objets fenêtre.


D2FP_DSA_MODE

D2FP_DSA_MODE est utilisée pour retourner le mode —IN, OUT, dans OUT—d'un argument de source de données.


D2FP_DSA_NAM

D2FP_DSA_NAM est utilisée pour retourner le nom d'un argument de source de données.


D2FP_DSA_TYP

D2FP_DSA_TYP est utilisée pour retourner le type de données d'un argument de source de données.


D2FP_DSA_TYP_NAM

D2FP_DSA_TYP_NAM est utilisée pour retourner le nom d'un type d'argument de source de données.


D2FP_DSA_VAL

D2FP_DSA_VAL est utilisée pour retourner la valeur d'un argument de source de données.


D2FP_DSC_LEN

D2FP_DSC_LEN est utilisée pour retourner la longueur d'une colonne de source de données.


D2FP_DSC_MANDATORY

D2FP_DSC_MANDATORY est utilisée pour retourner une valeur indiquant si une colonne de source de données est obligatoire.


D2FP_DSC_NAM

D2FP_DSC_NAM est utilisée pour retourner le nom d'une colonne de source de données.


D2FP_DSC_PRECISION

D2FP_DSC_PRECISION est utilisée pour retourner la précision d'une colonne de source de données.


D2FP_DSC_SCALE

D2FP_DSC_SCALE est utilisée pour retourner l'échelle d'une colonne de source de données.


D2FP_DSC_TYPE

D2FP_DSC_TYPE est utilisée pour retourner le type de données d'une colonne de source de données.


D2FP_ALERT

D2FP_ALERT est utilisée pour retourner l'identificateur de la liste d'objets alerte.


D2FP_ATT_LIB

D2FP_ATT_LIB est utilisée pour retourner l'identificateur de la liste d'objets bibliothèque attachée.


D2FP_BLOCK

D2FP_BLOCK est utilisée pour retourner l'identificateur de la liste d'objets bloc.


D2FP_CANEVAS

D2FP_CANEVAS est utilisée pour retourner l'identificateur de la liste d'objets canevas.


D2FP_FORM_PARAM

D2FP_FORM_PARAM est utilisée pour retourner l'identificateur de la liste d'objets élément.


D2FP_FIRST_NAVIGATION_BLK_OBJ

D2FP_FIRST_NAVIGATION_BLK_OBJ est utilisée pour retourner l'identificateur du premier objet bloc de navigation autorisée.


D2FP_MENU

D2FP_MENU est utilisée pour retourner l'identificateur de la liste d'objets menu.


D2FP_PROG_UNIT

D2FP_PROG_UNIT est utilisé pour retourner l'identificateur de la liste d'objets unité de programme.


D2FP_REPORT

D2FP_REPORT est utilisée pour retourner l'identificateur de la liste d'objets état.


D2FP_OBJ_GRP

D2FP_OBJ_GRP est utilisée pour retourner l'identificateur de la liste d'objets groupe d'objets.


D2FP_VIS_ATTR

D2FP_VIS_ATTR est utilisée pour retourner l'identificateur de la liste d'objets attribut visuel.


D2FP_OBJ_COUNT

D2FP_OBJ_COUNT est utilisée pour retourner le nombre d'objets d'une bibliothèque d'objets.


D2FP_OBJ_LIB_TAB

D2FP_OBJ_LIB_TAB est utilisée pour retourner l'identificateur de la liste d'onglets de bibliothèque d'objets.


D2FP_ITEM

D2FP_ITEM est utilisée pour retourner l'identificateur de la liste d'objets élément.


D2FP_FRAME_TTL_VAT_OBJ

D2FP_FRAM_TTL_VAT_OBJ est utilisée pour retourner l'identificateur de la liste d'objets attribut visuel de titre de cadre.


D2FP_TBP_OBJ

D2FP_TBP_OBJ est utilisée pour retourner l'identificateur de la liste d'objets page onglet.


D2FP_CNV_OBJ

D2FP_CNV_OBJ est utilisée pour retourner l'identificateur de la liste d'objets canevas.


D2FP_EDT_OBJ

D2FP_EDT_OBJ est utilisée pour retourner l'identificateur de la liste d'objets éditeur.


D2FP_LOV_OBJ

D2FP_LOV_OBJ est utilisée pour retourner l'identificateur de la liste d'objets LOV.


D2FP_POPUP_VA_OBJ

D2FP_POPUP_VA_OBJ est utilisée pour retourner l'identificateur de la liste d'objets attribut visuel instantané.


D2FP_PRMPT_VAT_OBJ

D2FP_PRMPT_VAT_OBJ est utilisée pour retourner l'identificateur de la liste d'objets attribut visuel d'invite.


D2FP_SYNC_ITM_OBJ

D2FP_SYNC_ITM_OBJ est utilisée pour retourner l'identificateur de la liste d'objets élément de synchronisation.


D2FP_REC_GRP_OBJ

D2FP_REC_GRP_OBJ est utilisée pour retourner l'identificateur de la liste d'objets groupe d'enregistrements.


D2FP_LIST_ELEMENT_COUNT

D2FP_LIST_ELEMENT_COUNT est utilisée pour retourner le nombre d'éléments d'un objet élément de liste.


D2FP_RAD_BUT

D2FP_RAD_BUT est utilisée pour retourner l'identificateur de la liste de boutons d'option.


D2FP_MNU_ITM_CODE

D2FP_MENU_ITM_CODE est utilisée pour retourner l'identificateur de code source d'élément de menu.


D2FP_SUB_MNU_NAM

D2FP_SUB_MNU_NAM est utilisée pour retourner le nom d'un sous-menu.


D2FP_SUB_MNU_OBJ

D2FP_SUB_MNU_OBJ est utilisée pour retourner l'identificateur de la liste des sous-menus.


D2FP_VAT_TYP

D2FP_VAT_TYP est utilisée pour retourner le type d'attribut visuel.


D2FP_COL_VALS_COUNT

D2FP_COL_VALS_COUNT est utilisée pour retourner le nombre de valeurs associées aux noms de colonne dans l'objet spécification de colonne.


D2FP_COL_DAT_TYP

D2FP_COL_DAT_TYP est utilisée pour retourner la propriété de type de données de l'objet spécification de colonne.


D2FP_PGU_TXT

D2FP_PGU_TXT est utilisée pour retourner le texte de l'unité de programme.


D2FP_PGU_TYP

D2FP_PGU_TYP est utilisée pour retourner le type de l'unité de programme.


D2FP_OBJ_GRP_CHILD_REAL_OBJ

D2FP_OBJ_GRP_CHILD_REAL_OBJ est utilisée pour retourner l'identificateur de l'objet réel du fils de groupe d'objets.


D2FP_ASSOC_MENUS_COUNT

D2FP_ASSOC_MENUS_COUNT est utilisée pour retourner le nombre de menus associés.


D2FP_OG_CHILD

D2FP_OG_CHILD est utilisée pour retourner un identificateur du premier fils du groupe d'objets.


D2FP_MNU_PARAM

D2FP_MNU_PARAM est utilisée pour retourner un identificateur du premier paramètre de menu.


Objet argument de source de données

  Rubriques connexes

Cet objet indique les noms, les types de données et les valeurs des arguments qui doivent être transmis à une procédure en vue d'une interrogation de données.


Objet colonne de source de données

  Rubriques connexes

Cet objet indique les noms et les types de données des colonnes associées à la source de données d'interrogation du bloc.


Objet éditeur

  Rubriques connexes

Cet objet permet à l'utilisateur d'éditer du texte. Les objets éditeur sont de trois types : éditeur par défaut, éditeur système et éditeur nommé par l'utilisateur.


Objet module Application Forms

  Rubriques connexes

Cet objet représente un ensemble d'objets et de routines de code. Les objets que vous pouvez définir dans un module Application Forms comprennent notamment : des fenêtres, des éléments texte (champs), des cases à cocher, des boutons, des messsages d'alerte, des listes de valeurs et des blocs de code PL/SQL appelés déclencheurs.


Objet paramètre d'application Forms

  Rubriques connexes

Cet objet permet de définir facilement les valeurs des entrées nécessaires à une application Forms lors de son démarrage. Les paramètres d'application Forms sont des variables de type CHAR, NUMBER ou DATE que vous définissez lors de la conception.


Objet graphique

  Rubriques connexes

Cet objet représente un ensemble d'objets graphiques standard qui peuvent être placés sur un objet canevas. Vous pouvez créer les objets graphiques suivants : rectangles, ellipses, polygones, rectangles arrondis, objets de texte standard, lignes, arcs, lignes polygonales et objets standard en forme libre (objets dessinés à main levée).


Objet élément

  Rubriques connexes

Cet objet affiche des informations qui permettent l'interaction entre les utilisateurs et votre application. Les objets élément comprennent les types suivants : zone de composant JavaBean, bouton, élément graphique, case à cocher, élément affiché, image, élément de liste, conteneur OLE, groupe de boutons d'option, élément texte, zone utilisateur et contrôle VBX.


Objet correspondance de colonnes de LOV

  Rubriques connexes

Cet objet représente les différentes colonnes d'un objet liste de valeurs (LOV). Une fois que vous avez créé un objet LOV, vous devez créer un objet de correspondance de colonnes de LOV (au moyen de d2flcmcr_Create()) pour chaque colonne de l'objet LOV.


Objet liste de valeurs (LOV)

  Rubriques connexes

Cet objet représente une structure interne de données de Form Builder de type colonne/ligne, semblable à celle d'une table de base de données.

Un objet LOV est une fenêtre instantanée défilante qui offre à l'utilisateur une liste de sélection monocolonne ou multicolonne.


Objet menu

  Rubriques connexes

Cet objet indique la chaîne qui apparaît dans la ligne de message lorsque l'utilisateur passe au menu, pour les applications s'exécutant en mode caractère dans les styles d'affichage de menu à barres et de menu déroulant. En affichage plein écran, cet objet représente la chaîne qui identifie le module Menu. Chaque application Forms utilise l'un des objets menu suivants : un menu par défaut intégré dans chaque application Forms, un menu personnalisé que vous pouvez définir sous la forme d'un module séparé que vous attachez ensuite à votre application Forms en vue de son exécution runtime, ou aucun menu.


Objet module Menu

  Rubriques connexes

Cet objet représente un ensemble de menus (un menu principal et un nombre donné d'objets sous-menu) et des commandes d'élément de menu dont l'ensemble constitue un menu d'application.


Objet élément de menu

  Rubriques connexes

Cet objet indique le type d'élément de menu : simple, case à cocher, magique, bouton d'option ou séparateur.


Objet paramètre de menu

  Rubriques connexes

Cet objet représente le nom du ou des menus du module auxquels le paramètre est associé. Lorsque l'utilisateur passe à un menu auquel un paramètre est associé, Form Builder lui demande d'entrer une valeur dans la boîte de dialogue de saisie de valeurs de paramètre.


Objet (objet générique)

  Rubriques connexes

Cet objet vous permet de faire passer par programme toutes les modifications à tous les objets associés d'une application Forms spécifique.


Objet groupe d'objets

  Rubriques connexes

Cet objet est un conteneur d'un groupe d'objets. Vous définissez un groupe d'objets lorsque vous voulez packager des objets en relation, afin de pouvoir les copier ou les sous-classer dans un autre module.

Les groupes d'objets permettent de réunir des objets dans des blocs de construction de niveau supérieur, qui peuvent être utilisés dans d'autres parties d'une application et dans des projets de développement ultérieurs.


Objet fils de groupe d'objets

  Rubriques connexes

Cet objet représente un objet fils d'un conteneur de groupes d'objets.


Objet bibliothèque d'objets

  Rubriques connexes

Cet objet simplifie la réutilisation des objets et l'application de normes au sein du département Développement.

Vous pouvez utiliser la bibliothèque d'objets pour créer, stocker, tenir à jour et distribuer des objets standard et des objets réutilisables.

En outre, les bibliothèques d'objets vous permettent de créer rapidement des applications en faisant glisser des objets prédéfinis pour les insérer dans votre application Forms.


Objet unité de programme

  Rubriques connexes

Cet objet représente une procédure ou une fonction PL/SQL nommée que vous écrivez dans un module Bibliothèque, un module Application Forms ou un module Menu. Bien que les objets déclencheur soient le principal outil pour ajouter un contrôle par programme à une application Form Builder, cet objet complète les objets déclencheur en vous permettant de réutiliser du code sans devoir l'entrer dans plusieurs déclencheurs.


Objet classe de propriété

  Rubriques connexes

Cet objet est un objet nommé qui contient une liste de propriétés et les définitions qui leur sont associées. Une fois que vous avez créé une classe de propriété, vous pouvez l'utiliser pour d'autres objets dont chacun peut hériter les définitions de toute propriété de la classe appropriée à cet objet.


Objet bouton d'option

  Rubriques connexes

Cet objet représente une option exclusive, affichée dans un contrôle d'interface de groupe de boutons d'option. Cet objet peut être dimensionné, positionné et mis en forme indépendamment des autres objets bouton d'option.


Objet groupe d'enregistrements

  Rubriques connexes

Cet objet représente une structure interne de données Form Builder, de type colonne/ligne semblable à celle d'une table de base de données. Cependant, à la différence des tables de base de données, les groupes d'enregistrements sont des objets distincts qui appartiennent au module Application Forms dans lequel ils sont définis. Un objet de groupe d'enregistrements peut avoir un nombre quelconque de colonnes de type CHAR, LONG, NUMBER ou DATE, à condition que le nombre total de colonnes ne soit pas supérieur à 64 Ko. Les noms de colonne des groupes d'enregistrements ne peuvent pas avoir plus de 30 caractères de long.


Objet spécification de colonnes de groupe d'enregistrements

  Rubriques connexes

Cet objet représente les différentes colonnes d'un objet groupe d'enregistrements. Une fois que vous avez créé un objet groupe d'enregistrements, vous devez créer un objet spécification de colonnes de groupe d'enregistrements (à l'aide de d2frcscr_Create()) pour chaque colonne de l'objet groupe d'enregistrements.


Objet relation

  Rubriques connexes

Cet objet logique indique la relation entre un bloc maître et un bloc détail correspondant. Dans le Navigateur d'objet, l'objet relation apparaît sous le bloc maître de la relation.

Lorsque vous créez une relation, Form Builder génère les déclencheurs et les procédures PL/SQL nécessaires à l'application de la coordination entre les blocs maîtres et les blocs détails. Le code généré par Form Builder dépend de la façon dont vous définissez les propriétés de la relation.


Objet état

  Rubriques connexes

Cet objet représente un module Etat créé à l'aide de Oracle Report Builder.


objet page onglet;
Objet page onglet

  Rubriques connexes

Cet objet affiche un sous-ensemble des informations figurant dans le canevas à onglet. Un canevas à onglet vous permet de grouper et d'afficher un nombre important d'informations sur un objet canevas dynamique. Un canevas à onglet peut contenir un ou plusieurs objets page onglet.


Objet déclencheur

  Rubriques connexes

Cet objet représente un bloc de code que vous écrivez pour ajouter des fonctions à une application par défaut. Chaque objet déclencheur a un nom et contient une ou plusieurs instructions PL/SQL. Un objet déclencheur intègre le code PL/SQL, pour que vous puissiez l'associer à un événement. Il l'exécute et le tient à jour comme un objet distinct.


Objet attribut visuel

  Rubriques connexes

Cet objet représente un attribut visuel nommé, qui doit être appliqué à un objet lors de l'exécution. Un attribut visuel définit un ensemble d'attributs de police, de couleur et de motif qui déterminent l'aspect d'un objet.


Objet fenêtre

  Rubriques connexes

Cet objet indique la fenêtre dans laquelle l'objet canevas est affiché lors de l'exécution.


A propos des fonctions Open API classées par objets

 Rubriques connexes

La présente section décrit les fonctions qui apparaissent dans les fichiers d'en-tête d'Open API. Les fonctions sont classées en fonction de l'objet Open API d'application Forms associé. Chaque fonction comprend la liste de ses arguments et une brève description.

Pour avoir une description complète des différents codes de retour de fonction Open API, reportez-vous à la section "A propos des codes de retour des fonctions Open API".

Fonctions API classées par objets

Alertes

Bibliothèques attachées

Blocs

Canevas

Arguments de source de données

Colonnes de source de données

Editeurs

Modules Application Forms

Paramètres d'application Forms

Graphique

Eléments

Correspondance de colonnes d'application Forms

Liste de valeurs

Objets menu

Modules Menu

Eléments menu

Paramètres de menu

Objets (objets génériques)

Groupes d'objets

Fils de groupe d'objets

Bibliothèques d'objets

Unités de programme

Classes de propriété

Boutons d'option

Groupes d'enregistrements

Spécification de colonne de groupes d'enregistrements

Objets relation

Objets état

Pages onglet

Déclencheurs

Attributs visuels

Fenêtres


Fonctions de l'objet alerte

  Rubriques connexes

La présente section décrit les fonctions de l'objet alerte de Open API de Form Builder.

d2faltcr_Create( d2fctx *pd2fctx, d2fob *parent, d2falt **ppd2falt, text *name ) ;

Cette fonction crée un objet alerte. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet alerte dans parent, un identificateur pour que la fonction stocke le nouvel objet alerte dans ppd2falt et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_D2FS_SUCCESS si elle peut créer le nouvel objet alerte et le stocker dans ppd2falt.

d2faltde_Destroy( d2fctx *pd2fctx, d2falt *pd2falt ) ;

Cette fonction détruit l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet alerte que vous voulez détruire dans pd2falt.

d2faltdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2alt *pd2falt_src, d2falt **ppd2falt_dst, text *new_name ) ;

Cette fonction duplique l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le nouveau père dans new_parent, la source de l'alerte dans pd2falt_src, un identificateur pour que la fonction stocke la destination de l'alerte dans ppd2falt_dst et un pointeur au nom du nouvel objet alerte (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet alerte indiqué et le stocker à l'emplacement ppd2falt_dst.

d2faltgb_GetBoolProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, le numéro de propriété dans pnum et un pointeur à pprp pour stocker la valeur de la propriété booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2faltgn_GetNumProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, le numéro de propriété dans pnum et un pointeur à pprp pour stocker la valeur de la propriété numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2faltgt_GetTextProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, le numéro de propriété dans pnum et un identificateur du tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'objet alerte indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2faltgo_GetObjectProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, un numéro de propriété dans pnum et un identificateur de pprp pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la valeur de la propriété d'objet voulue dans pprp.

d2faltgp_GetBlobProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2faltsb_SetBoolProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, le numéro de propriété dans pnum et la valeur de la propriété booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2faltsn_SetNumProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, le numéro de propriété dans pnum et la valeur de la propriété numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2faltst_SetTextProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, le numéro de propriété dans pnum et un pointeur à la valeur du texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2faltso_SetObjectProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de l'objet alerte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, un numéro de propriété dans pnum et un pointeur à la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2faltsp_SetBlobProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2falthp_HasProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum ) ;

Cette fonction interroge l'objet alerte indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2faltip_InheritProp( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum ) ;

Cette fonction active l'objet alerte indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2faltii_IspropInherited( d2fctx *pd2fctx, d2falt *pd2falt, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2faltsc_SubClass( d2fctx *pd2fctx, d2falt *pd2falt, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet alerte indiqué (pd2falt) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet alerte dans pd2falt, un pointeur à l'objet père dans parent et un indicateur booléen pour indiquer si la fonction enregistre le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2faltis_IsSubclassed	( d2fctx *pd2fctx, d2falt *pd2falt ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet alerte dans pd2falt.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet bibliothèque attachée

  Rubriques connexes

La présente section décrit les fonctions de l'objet bibliothèque attachée de Open API de Form Builder.

d2falbat_Attach( d2fctx *pd2fctx, d2fob *parent, d2falb **ppd2falb, boolean db, text *name ) ;

Cette fonction attache la bibliothèque indiquée à une base de données (application Forms, menu ou bibliothèque PL/SQL, par exemple) ou au système de fichiers. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'endroit où vous voulez attacher la bibliothèque dans parent et un identificateur de la bibliothèque de retour attachée dans ppd2falb, un indicateur booléen pour indiquer si la bibliothèque réside dans une base de données ou un système de fichiers dans db et un pointeur au nom de la bibliothèque dans name.

Si vous définissez db à TRUE, Forms API recherche la bibliothèque indiquée (dont le nom a été transmis dans name) dans une base de données. Si db est défini à FALSE, la bibliothèque réside dans un système de fichiers, et Forms API recherche la bibliothèque indiquée dans le système de fichiers, puis l'attache. Par exemple, si vous voulez attacher une bibliothèque à un module Application Forms et que la bibliothèque réside dans le système de fichiers, définissez db à FALSE.

d2falbdt_Detach( d2fctx *pd2fctx, d2falb *pd2falb ) ;

Cette fonction détache la bibliothèque indiquée d'une base de données ou d'un système de fichiers. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à la bibliothèque attachée dans ppd2falb.

d2falbgb_GetBoolProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour la bibliothèque attachée indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falb, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur de la propriété booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2falbgn_GetNumProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour la bibliothèque attachée indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falt, le numéro de propriété dans pnum et un pointeur dans pprp pour stocker la valeur de la propriété numérique extraite.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2falbgt_GetTextProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour la bibliothèque attachée indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falt, le numéro de propriété dans pnum et un identificateur de tableau de caractères pour que la fonction stocke la valeur de la propriété de texte (pprp).

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de la bibliothèque attachée indiquée dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2falbgo_GetObjectProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de la bibliothèque attachée indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falb, un numéro de propriété dans pnum, et un identificateur de pprp pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2falbgp_GetBlobProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'dentificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falb, un numéro de propriété dans pnum et un identificateur de pprp pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2falbsb_SetBoolProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de la bibliothèque attachée indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falb, le numéro de propriété dans pnum et la valeur de la propriété booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne indiquée à l'aide de la valeur que vous indiquez dans prp.

d2falbsn_SetNumProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété de numéro de bibliothèque attachée indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falb, le numéro de propriété dans pnum et la valeur de la propriété numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique indiquée à l'aide de la valeur que vous indiquez dans prp.

d2falbst_SetTextProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de bibliothèque attachée indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falb, le numéro de propriété dans pnum et un pointeur à la valeur de la propriété de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2falbso_SetObjectProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de bibliothèque attachée indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falb, un numéro de propriété dans pnum et un pointeur à la valeur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2falbsp_SetBlobProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet de la bibliothèque attachée dans pd2falb, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2falbhp_HasProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum ) ;

Cette fonction interroge la bibliothèque attachée indiquée à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque attachée dans pd2falb et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2falbip_InheritProp( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum ) ;

Cette fonction active la bibliothèque attachée indiquée pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet de la bibliothèque attachée dans pd2falt et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2falbii_IspropInherited( d2fctx *pd2fctx, d2falb *pd2falb, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet de la bibliothèque attachée dans pd2falb et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet bloc

  Rubriques connexes

La présente section décrit les fonctions de l'objet canevas de Open API de Form Builder.

d2fblkcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fblk **ppd2fblk, text *name ) ;

Cette fonction crée un bloc. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet bloc dans parent, un identificateur pour que la fonction stocke le nouvel objet bloc dans ppd2fblk et un pointeur à name, pour le nom du nouvel objet.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouveau bloc dans ppd2fblk.

d2fblkde_Destroy( d2fctx *pd2fctx, d2fblk *pd2fblk ) ;

Cette fonction détruit le bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet bloc que vous voulez détruire dans pd2fblk.

d2fblkdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2blk *pd2fblk_src, d2fblk **ppd2fblk_dst, text *new_name ) ;

Cette fonction duplique le bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source du bloc dans pd2fblk_src, un identificateur de la fonction permettant de stocker la destination dans ppd2fblk_dst et un pointeur au nom du nouveau bloc (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer le bloc indiqué et le stocker à l'emplacement ppd2fblk_dst.

d2fblkco_CompileObj( d2fctx *pd2fctx, d2fblk *pd2fblk ) ;

Cette fonction compile tout le code PL/SQL associé au bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2fblk.

Par exemple, vous pouvez utiliser cette fonction pour compiler tous les objets déclencheurs attachés à un bloc et tous les objets déclencheurs attachés à tous les objets élément d'un bloc.

d2fblkgb_GetBoolProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour le bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur de la propriété booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fblkgn_GetNumProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour le bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur de la propriété numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fblkgt_GetTextProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour le bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, le numéro de propriété dans pnum et un identificateur de tableau de caractères pour que la fonction stocke la valeur de la propriété de texte dans pprp.

Cette fonction retourne D2FS_SUCCESS si elle introduit dans le tableau fourni une copie de la valeur de la propriété de texte pour le bloc indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fblkgo_GetObjectProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet du bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fblkgp_GetBlobProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet bloc dans pd2fblk, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fblksb_SetBoolProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne du bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fblksn_SetNumProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété du numéro de bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fblkst_SetTextProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte du bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, le numéro de propriété dans pnum et un pointeur à la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fblkso_SetObjectProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété du bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, un numéro de propriété dans pnum et un pointeur à la valeur de la propriété d'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fblksp_SetBlobProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet bloc dans pd2fblk, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fblkhp_HasProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum ) ;

Cette fonction recherche la propriété indiquée dans le bloc indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fblkip_InheritProp( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum ) ;

Cette fonction active le bloc indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet bloc dans pd2fblk et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fblkii_IspropInherited( d2fctx *pd2fctx, d2fblk *pd2fblk, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet bloc dans pd2fblk et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fblksc_SubClass( d2fctx *pd2fctx, d2fblk *pd2fblk, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_YES si le bloc indiqué (pd2fblk) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bloc dans pd2fblk, un pointeur à l'objet père dans parent et un indicateur booléen pour indiquer si la fonction enregistre le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fblkis_IsSubclassed	( d2fctx *pd2fctx, d2fblk *pd2fblk ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet bloc dans pd2fblk.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet canevas

  Rubriques connexes

La présente section décrit les fonctions de l'objet canevas de Open API de Form Builder.

d2fcnvcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fcnv **ppd2fcnv, text *name ) ;

Cette fonction crée un canevas. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet canevas dans parent, un identificateur pour que la fonction stocke le nouvel objet canevas dans ppd2fcnv et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouveau canevas dans ppd2fcnv.

d2fcnvde_Destroy( d2fctx *pd2fctx, d2fcnv *pd2fcnv ) ;

Cette fonction détruit le canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur au canevas que vous voulez détruire dans pd2fcnv.

d2fcnvdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2cnv *pd2fcnv_src, d2fcnv **ppd2fcnv_dst, text *new_name ) ;

Cette fonction duplique le canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source du canevas dans pd2fcnv_src, un identificateur pour que la fonction stocke la destination dans ppd2fcnv_dst et un pointeur au nom du nouvel objet (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer le canevas indiqué et le stocker à l'emplacement ppd2fcnv_dst.

d2fcnvco_CompileObj( d2fctx *pd2fctx, d2fcnv *pd2fcnv ) ;

Cette fonction compile tout le code PL/SQL associé au canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2fcnv.

Par exemple, vous pouvez utiliser cette fonction pour compiler tous les objets déclencheurs attachés à un canevas et tous les objets déclencheurs attachés à tous les objets élément d'un canevas.

d2fcnvgb_GetBoolProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour le canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au canevas dans pd2fcnv, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur de la propriété booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fcnvgn_GetNumProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour le canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au canevas dans pd2fcnv, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur de la propriété numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fcnvgt_GetTextProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour le canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au canevas dans pd2fcnv, le numéro de propriété dans pnum et un identificateur de tableau de caractères pour que la fonction stocke la valeur de la propriété de texte dans pprp.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau indiqué une copie de la valeur de la propriété de texte du canevas indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fcnvgo_GetObjectProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet du canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au canevas dans pd2fcnv, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fcnvgp_GetBlobProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur fourni par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet canevas dans pd2fcnv, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fcnvsb_SetBoolProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne du canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le canevas dans pd2fcnv, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fcnvsn_SetNumProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique du canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le canevas dans pd2fcnv, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fcnvst_SetTextProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte du canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le canevas dans pd2fcnv, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fcnvso_SetObjectProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété du canevas indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le canevas dans pd2fcnv, un numéro de propriété dans pnum et un identificateur de la propriété d'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fcnvsp_SetBlobProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet canevas dans pd2fcnv, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fcnvhp_HasProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum ) ;

Cette fonction interroge le canevas indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, le canevas dans pd2fcnv et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fcnvip_InheritProp( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum ) ;

Cette fonction active le canevas indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet canevas dans pd2fcnv et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fcnvii_IspropInherited( d2fctx *pd2fctx, d2fcnv *pd2fcnv, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet canevas dans pd2fcnv et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fcnvsc_SubClass( d2fctx *pd2fctx, d2fcnv *pd2fcnv, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si le canevas indiqué (pd2fcnv) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au canevas dans pd2fcnv, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fcnvis_IsSubclassed	( d2fctx *pd2fctx, d2fcnv *pd2fcnv ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet canevas dans pd2fcnv.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet contexte

  Rubriques connexes

La présente section décrit les fonctions de l'objet contexte de Open API de Form Builder.

d2fctxcr_Create( d2fctx **pd2fctx, d2fctxa *d2fctx_attr ) ;

Cette fonction crée le contexte. Vous indiquez un identificateur pour que Forms API stocke le nouveau contexte dans pd2fctx et un pointeur à la structure d'attributs dans pd2fctx_attr.

Pour créer ce contexte, vous devez définir la structure réelle d'attributs (d2fctxa) ci-dessous :

   typedef struct d2fctxa

   {

       ub4 mask_d2fctxa ;

       dvoid *cdata_d2fctxa ;    /* Données client   */

       d2fmalc d2fmalc_d2fctxa ;

       d2fmfre d2fmfre_d2fctxa ;

       d2fmrlc d2fmrlc_d2fctxa ;

   } d2fctxa ;

d2fctxde_Destroy( d2fctx *pd2fctx ) ;

Cette fonction détruit le contexte indiqué. Vous indiquez un pointeur au contexte dans pd2fctx.

Notez que vous devez appeler cette fonction en dernier, lorsque vous avez fini d'utiliser Forms API.

d2fctxsa_SetAttributes( d2fctx *pd2fctx, d2fctxa *pd2fctx_attr ) ;

Cette fonction définit les attributs indiqués dans votre structure d'attributs. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à la structure d'attributs dans pd2fctx_attr.

Notez que vous pouvez toujours utiliser cette fonction lorsque vous devez transmettre des données client ou des rappels mémoire.

d2fctxga_GetAttributes( d2fctx *pd2fctx, d2fctxa *pd2fctx_attr ) ;

Cette fonction extrait les attributs indiqués de votre structure d'attributs. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à la structure d'attributs dans pd2fctx_attr.

Notez que vous pouvez toujours utiliser cette fonction lorsque vous devez extraire des données client ou des rappels mémoire.

d2fctxcn_Connect( d2fctx *pd2fctx, text *con_str, dvoid *phstdef ) ;

Cette fonction vous connecte à la base de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx , un pointeur à la chaîne de connexion dans con_str et, en option, un pointeur hstdef (phstdef).

Notez que l'argument phstdef est fourni pour les utilisateurs avancés qui veulent partager une connexion activée par hstdef (la structure hstdef est externalisée par l'API PL/SQL) au lieu de créer une seconde connexion qui risquerait de ralentir les performances. Le pointeur hstdef contient des informations sur la connexion à la base de données. Si vous définissez phstdef à NULL, Forms API crée une connexion à la base de données que vous indiquez dans con_str ; sinon, la fonction vérifie que la connexion hstdef est valide, puis utilise le pointeur hstdef pour créer la connexion à la base de données. Si le pointeur pstdef n'est pas valide ou n'est pas connecté, le système retourne une erreur. La plupart des utilisateurs devront transmettre un pointeur NULL pour l'argument phstdef.

d2fctxdc_Disconnect( d2fctx *pd2fctx ) ;

Cette fonction vous déconnecte de la base de données en cours.

d2fctxbv_BuilderVersion( d2fctx *pd2fctx, number *version ) ;

Cette fonction retourne la version de Forms Designer en cours. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur au numéro de version dans version.


Fonctions de l'objet argument de source de données

  Rubriques connexes

La présente section décrit les fonctions de l'objet argument de source de données de Open API de Form Builder.

d2fdsacr_Create( d2fctx *pd2fctx, d2fob *parent, d2fdsa **ppd2fdsa, text *name ) ;

Cette fonction crée un argument de source de données. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel argument de source de données dans parent, un identificateur pour que la fonction stocke le nouvel objet argument de source de données dans ppd2fdsa et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer et stocker un nouvel argument de source de données dans ppd2fdsa.

d2fdsade_Destroy( d2fctx *pd2fctx, d2fdsa *pd2fdsa ) ;

Cette fonction détruit l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'argument de source de données que vous voulez détruire dans pd2fdsa.

d2fdsadu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2dsa *pd2fdsa_src, d2fdsa **ppd2fdsa_dst, text *new_name ) ;

Cette fonction duplique l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'argument de source de données dans pd2fdsa_src, un identificateur pour que la fonction stocke la destination dans ppd2fdsa_dst et un pointeur au nom du nouvel argument de source de données (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'argument de source de données indiqué et le stocker à l'emplacement ppd2fdsa_dst.

d2fdsagb_GetBoolProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fdsagn_GetNumProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fdsagt_GetTextProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa, le numéro de propriété dans pnum et un identificateur de tableau de caractères pour que la fonction stocke la valeur de la propriété de texte dans pprp.

Cette fonction retourne D2FS_SUCCESS si elle stocke dans le tableau fourni une copie de la valeur de la propriété de texte pour l'argument de source de données indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fdsago_GetObjectProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fdsagp_GetBlobProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet argument de source de données dans pd2fdsa, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fdsasb_SetBoolProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fdsasn_SetNumProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fdsast_SetTextProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa, le numéro de propriété dans pnum et un identificateur de la valeur du texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fdsaso_SetObjectProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de l'argument de source de données indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa, un numéro de propriété dans pnum et un identificateur de la propriété d'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fdsasp_SetBlobProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet argument de source de données dans pd2fdsa, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fdsahp_HasProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum ) ;

Cette fonction interroge l'argument de source de données indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'argument de source de données dans pd2fdsa et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fdsaip_InheritProp( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum ) ;

Cette fonction active l'argument de source de données indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet argument de source de données dans pd2fdsa et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fdsaii_IspropInherited( d2fctx *pd2fctx, d2fdsa *pd2fdsa, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet argument de source de données dans pd2fdsa et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet colonne de source de données

  Rubriques connexes

La présente section décrit les fonctions de l'objet colonne de source de données de Open API de Form Builder.

d2fdsccr_Create( d2fctx *pd2fctx, d2fob *parent, d2fdsc **ppd2fdsc, text *name ) ;

Cette fonction crée une colonne de source de données. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet colonne de source de données dans parent et un identificateur pour que la fonction stocke le nouvel objet dans ppd2fdsc et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer une nouvelle colonne de source de données dans ppd2fdsc.

d2fdscde_Destroy( d2fctx *pd2fctx, d2fdsc *pd2fdsc ) ;

Cette fonction détruit la colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à la colonne de source de données que vous voulez détruire dans pd2fdsc.

d2fdscdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2dsc *pd2fdsc_src, d2fdsc **ppd2fdsc_dst, text *new_name ) ;

Cette fonction duplique la colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de colonne de source de données dans pd2fdsc_src, un identificateur pour que la fonction stocke la destination dans ppd2fdsc_dst et un pointeur pour le nom de la nouvelle colonne de source de données (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer la colonne de source de données indiquée et la stocker à l'emplacement ppd2fdsc_dst.

d2fdscgb_GetBoolProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour la colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fdscgn_GetNumProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour la colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fdscgt_GetTextProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour la colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de la colonne de source de données indiquée dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fdscgo_GetObjectProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de la colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fdscgp_GetBlobProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet colonne de source de données dans pd2fdsc, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fdscsb_SetBoolProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fdscsn_SetNumProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fdscst_SetTextProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de la colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fdscso_SetObjectProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de la colonne de source de données indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc, un numéro de propriété dans pnum et un identificateur de la propriété d'objetdans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fdscsp_SetBlobProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum, dvoid *prp ) ;

Cette fonction définit la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet colonne de source de données dans pd2fdsc, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fdschp_HasProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum ) ;

Cette fonction interroge la colonne de source de données indiquée, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la colonne de source de données dans pd2fdsc et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fdscip_InheritProp( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum ) ;

Cette fonction active la colonne de source de données indiquée, pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet colonne de source de données dans pd2fdsc et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fdscii_IspropInherited( d2fctx *pd2fctx, d2fdsc *pd2fdsc, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet colonne de source de données dans pd2fdsc et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet éditeur

  Rubriques connexes

La présente section décrit les fonctions de l'objet éditeur de Open API de Form Builder.

d2fedtcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fedt **ppd2fedt, text *name ) ;

Cette fonction crée un éditeur. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet éditeur dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fedt et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel éditeur dans ppd2fedt.

d2fedtde_Destroy( d2fctx *pd2fctx, d2fedt *pd2fedt ) ;

Cette fonction détruit l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'éditeur que vous voulez détruire dans pd2fedt.

d2fedtdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2edt *pd2fedt_src, d2fedt **ppd2fedt_dst, text *new_name ) ;

Cette fonction duplique l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'éditeur pd2fedt_src, un identificateur pour que la fonction stocke la destination dans ppd2fedt_dst et un pointeur au nom du nouvel éditeur (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'éditeur indiqué et le stocker à l'emplacement ppd2fedt_dst.

d2fedtgb_GetBoolProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fedtgn_GetNumProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fedtgt_GetTextProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt, le numéro de propriété dans pnum et un pointeur à un tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de l'éditeur indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fedtgo_GetObjectProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet pour l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fedtgp_GetBlobProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet éditeur dans pd2fedt, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fedtsb_SetBoolProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne pour l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fedtsn_SetNumProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique pour l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fedtst_SetTextProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte pour l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt, le numéro de propriété dans pnum et un identificateur de la valeur du texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fedtso_SetObjectProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de l'éditeur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt, un numéro de propriété dans pnum et un identificateur de la propriété d'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fedtsp_SetBlobProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet éditeur dans pd2fedt, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fedthp_HasProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum ) ;

Cette fonction interroge l'éditeur indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'éditeur dans pd2fedt et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fedtip_InheritProp( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum ) ;

Cette fonction active l'éditeur indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet éditeur dans pd2fedt et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fedtii_IspropInherited( d2fctx *pd2fctx, d2fedt *pd2fedt, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet éditeur dans pd2fedt et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fedtsc_SubClass( d2fctx *pd2fctx, d2fedt *pd2fedt, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'éditeur indiqué (pd2fedt) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'éditeur dans pd2fedt, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fedtis_IsSubclassed	( d2fctx *pd2fctx, d2fedt *pd2fedt ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet éditeur dans pd2fedt.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet module Application Forms

  Rubriques connexes

La présente section décrit les fonctions de l'objet module Aplication Forms de Open API de Form Builder.

d2ffmdcr_Create( d2fctx *pd2fctx, d2fob *parent, d2ffmd **ppd2ffmd, text *name ) ;

Cette fonction crée un module Application Forms. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père de l'objet module Application Forms dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2ffmd et le nom du nouvel objet dans name.

d2ffmdde_Destroy( d2fctx *pd2fctx, d2ffmd *pd2ffmd ) ;

Cette fonction détruit le module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur au module Application Forms que vous voulez détruire dans pd2ffmd.

d2ffmddl_Delete( d2fctx *pd2fctx, text *name, boolean db ) ;

Cette fonction supprime le module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à une chaîne de texte pour le nom du module Application Forms et un indicateur booléen pour indiquer si le module Application Forms doit être supprimé d'une base de données (par exemple, une bibliothèque ouverte, un module Application Forms, ou un module menu) dans db.

SI db a la valeur TRUE, Forms API considère que vous voulez supprimer le module Application Forms indiqué d'une base de données ; si db a la valeur FALSE, Forms API recherche dans le système de fichiers le module Application Forms indiqué, puis le supprime.

d2ffmddu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2fmd *pd2ffmd_src, d2ffmd **ppd2ffmd_dst, text *new_name ) ;

Cette fonction duplique le module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source du module Application Forms dans pd2ffmd_src, un identificateur pour que la fonction stocke la destination dans ppd2ffmd_dst et un pointeur pour le nom du nouveau module Application Forms (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer le module Application Forms indiqué et le stocker à l'emplacement ppd2ffmd_dst.

d2ffmdco_CompileObj ( d2fctx *pd2fctx, d2ffmd *pd2ffmd ) ;

Cette fonction compile tout le code PL/SQL associé au module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2ffmd.

Par exemple, vous pouvez utiliser cette fonction pour compiler tous les objets déclencheur attachés à un module Application Forms et tous les objets déclencheur attachés à tous les objets élément d'un module Application Forms.

d2ffmdcf_CompileFile( d2fctx *pd2fctx, d2ffmd *pd2ffmd ) ;

Cette fonction compile un fichier .fmb et crée un fichier .fmx généré. Vous indiquez le contexte (pd2fctx) et un pointeur à un objet module Application Forms (pd2ffmd).

d2ffmdld_Load ( d2fctx *pd2fctx, d2ffmd **ppd2ffmd, text *formname, boolean db ) ;

Cette fonction charge le module Application Forms indiqué. Vous indiquez le contexte (pd2fctx), un identificateur d'un pointeur pour la fonction à utiliser pour stocker le module Application Forms (ppd2ffmd), le nom du module Application Forms (formname) et un indicateur booléen (db) pour indiquer si le module Application Forms est dans une base de données.

Si db a la valeur TRUE, Forms API recherche le module Application Forms indiqué dans la base de données. Notez que pour que cette opération puisse être exécutée, vous devez être connecté à une base de données. Vous devez appeler d2fctx_Connect() avant de charger un module Application Forms à partir d'une base de données.

d2ffmdsv_Save ( d2fctx *pd2fctx, d2ffmd *pd2ffmd, text *formname, boolean db ) ;

Cette fonction enregistre le module Application Forms indiqué. Vous indiquez le contexte (pd2fctx), un pointeur au module Application Forms (pd2ffmd), le nom du module Application Forms indiqué (formname) et un indicateur booléen (db) qui indique si le module Application Forms doit être enregistré dans une base de données.

Si db a la valeur TRUE, Forms API enregistre le module Application Forms indiqué dans la base de données. Notez que pour que cette opération puisse être exécutée, vous devez être connecté à une base de données. Vous devez appeler d2fctx_Connect() avant d'enregistrer un module Application Forms dans une base de données.

Notez que si vous voulez enregistrer le module Application Forms sous le nom par défaut (c'est-à-dire le nom fourni lors de la création), vous devez transmettre NULL comme chaîne de texte dans formname. Si vous voulez enregistrer le module Application Forms sous un autre nom, transmettez cette chaîne de texte dans formname.

d2ffmdfv_FileVersion ( d2fctx *pd2fctx, text *formname, boolean db, number *version ) ;

Cette fonction retourne la version du module Application Forms. Vous indiquez le contexte (pd2fctx), le nom du module Application Forms (formname), un indicateur booléen (db) pour indiquer que le module Application Forms est dans une base de données ou dans le système de fichiers et un pointeur à la version retournée par la fonction (version).

Notez que vous devez appeler cette fonction avant d'appeler la fonction d2ffmdld_Load(), car la version de fichier changera une fois que vous aurez chargé le module Application Forms.

d2ffmdgb_GetBoolProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour le module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2ffmdgn_GetNumProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour le module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2ffmdgt_GetTextProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour le module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de lapropriété de texte du module Application Forms indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2ffmdgo_GetObjectProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet du module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2ffmdgp_GetBlobProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet module Application Forms dans pd2ffmd, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2ffmdsb_SetBoolProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne du module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2ffmdsn_SetNumProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique du module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2ffmdst_SetTextProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte du module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2ffmdso_SetObjectProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété du module Application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd, un numéro de propriété dans pnum et un identificateur de la propriété d'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2ffmdsp_SetBlobProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet module Application Forms dans pd2ffmd, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2ffmdhp_HasProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum ) ;

Cette fonction interroge le module Application Forms indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, le module Application Forms dans pd2ffmd et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ffmdip_InheritProp( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum ) ;

Cette fonction active le module Application Forms indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet module Application Forms dans pd2ffmd et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ffmdii_IspropInherited( d2fctx *pd2fctx, d2ffmd *pd2ffmd, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet module Application Forms dans pd2ffmd et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet paramètre d'application Forms

  Rubriques connexes

La présente section décrit les fonctions de l'objet paramètre d'application Forms de Open API de Form Builder.

d2ffpmcr_Create( d2fctx *pd2fctx, d2fob *parent, d2ffpm **ppd2ffpm, text *name ) ;

Cette fonction crée un objet paramètre d'application Forms. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet paramètre d'application Forms dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2ffpm et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet paramètre d'application Forms dans ppd2ffpm.

d2ffpmde_Destroy( d2fctx *pd2fctx, d2ffpm *pd2ffpm ) ;

Cette fonction détruit l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet paramètre d'application Forms que vous voulez détruire dans pd2ffpm.

d2ffpmdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2fpm *pd2ffpm_src, d2ffpm **ppd2ffpm_dst, text *new_name ) ;

Cette fonction duplique l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet paramètre d'application Forms dans pd2ffpm_src, un identificateur pour que la fonction stocke la destination dans ppd2ffpm_dst et un pointeur au nom du nouvel objet paramètre d'application Forms (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet paramètre d'application Forms indiqué et le stocker à l'emplacement ppd2ffpm_dst.

d2ffpmgb_GetBoolProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2ffpmgn_GetNumProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2ffpmgt_GetTextProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de l'objet paramètre d'application Forms indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2ffpmgo_GetObjectProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2ffpmgp_GetBlobProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre d'application Forms dans pd2ffpm, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2ffpmsb_SetBoolProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2ffpmsn_SetNumProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2ffpmst_SetTextProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm, le numéro de propriété dans pnum et un identificateur de la valeur du texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2ffpmso_SetObjectProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objet du paramètre d'application Forms indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm, un numéro de propriété dans pnum et un identificateur de la propriété d'objetdans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2ffpmsp_SetBlobProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre d'application Forms dans pd2ffpm, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2ffpmhp_HasProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum ) ;

Cette fonction interroge l'objet paramètre d'application Forms indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre d'application Forms dans pd2ffpm et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ffpmip_InheritProp( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum ) ;

Cette fonction active l'objet paramètre d'application Forms indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre d'application Forms dans pd2ffpm et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ffpmii_IspropInherited( d2fctx *pd2fctx, d2ffpm *pd2ffpm, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre d'application Forms dans pd2ffpm et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ffpmsc_SubClass( d2fctx *pd2fctx, d2ffpm *pd2ffpm, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet paramètre d'application Forms indiqué (pd2ffpm) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre d'application Forms dans pd2ffpm, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2ffpmis_IsSubclassed	( d2fctx *pd2fctx, d2ffpm *pd2ffpm ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet paramètre d'application Forms dans pd2ffpm.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet graphique

  Rubriques connexes

La présente section décrit les fonctions de l'objet graphique de Open API de Form Builder.

d2fgracr_Create( d2fctx *pd2fctx, d2fob *parent, d2fgra **ppd2fgra, text *name ) ;

Cette fonction crée un objet graphique. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet graphique dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fgra et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet graphique dans ppd2fgra.

d2fgrade_Destroy( d2fctx *pd2fctx, d2fgra *pd2fgra ) ;

Cette fonction détruit l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet graphique que vous voulez détruire dans pd2fgra.

d2fgradu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2gra *pd2fgra_src, d2fgra **ppd2fgra_dst, text *new_name ) ;

Cette fonction duplique l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet graphique dans pd2fgra_src, un identificateur pour que la fonction stocke la destination dans ppd2fgra_dst et un pointeur au nom du nouvel objet graphique (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet graphique indiqué et le stocker à l'emplacement ppd2fgra_dst.

d2fgragb_GetBoolProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fgragn_GetNumProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fgragt_GetTextProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de l'objet graphique indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fgrago_GetObjectProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fgragp_GetBlobProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet graphique dans pd2fgra, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fgrasb_SetBoolProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fgrasn_SetNumProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fgrast_SetTextProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fgraso_SetObjectProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, dvoid *prp ) ;

Cette fonction définit la propriété d'objetde l'objet graphique indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fgrasp_SetBlobProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet graphique dans pd2fgra, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fgrahp_HasProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum ) ;

Cette fonction interroge l'objet graphique indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet graphique dans pd2fgra et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fgraip_InheritProp( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum ) ;

Cette fonction active l'objet graphique indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet graphique dans pd2fgra et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fgraii_IspropInherited( d2fctx *pd2fctx, d2fgra *pd2fgra, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet graphique dans pd2fgra et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fgrasc_SubClass( d2fctx *pd2fctx, d2fgra *pd2fgra, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet graphique indiqué (pd2fgra) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet graphique dans pd2fgra, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fgrais_IsSubclassed	( d2fctx *pd2fctx, d2fgra *pd2fgra ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet graphique dans pd2fgra.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet élément

  Rubriques connexes

La présente section décrit les fonctions de l'objet élément de Open API de Form Builder.

d2fitmcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fitm **ppd2fitm, text *name ) ;

Cette fonction crée un objet élément. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet élément dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fitm et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel élément dans ppd2fitm.

d2fitmde_Destroy( d2fctx *pd2fctx, d2fitm *pd2fitm ) ;

Cette fonction détruit l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'élément que vous voulez détruire dans pd2fitm.

d2fitmdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2itm *pd2fitm_src, d2fitm **ppd2fitm_dst, text *new_name ) ;

Cette fonction duplique l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'élément dans pd2fitm_src, un identificateur pour que la fonction stocke la destination dans ppd2fitm_dst et un pointeur au nom du nouvel élément (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'élément indiqué et le stocker à l'emplacement ppd2fitm_dst.

d2fitmco_CompileObj( d2fctx *pd2fctx, d2fitm *pd2fitm ) ;

Cette fonction compile tout le code PL/SQL associé à l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2fitm.

Par exemple, vous pouvez utiliser cette fonction pour compiler tous les objets déclencheur attachés à un élément.

d2fitmile_InsertListElem( d2fctx *pd2fctx, d2fitm *pd2fitm, number index, text *label, text *value ) ;

Cette fonction insère l'élément indiqué et la valeur qui lui est associée dans la liste. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément dans pd2fitm, l'index de l'élément liste (dans la liste des éléments) dans index, un pointeur au nom de l'élément liste dans label et un pointeur à la valeur de l'élément liste dans value.

Notez que cette fonction n'est valide que pour les objets élément de type "Elément liste".

Cette fonction retourne D2FS_SUCCESS si elle insère dans la liste l'élément indiqué.

d2fitmile_DeleteListElem( d2fctx *pd2fctx, d2fitm *pd2fitm, number index ) ;

Cette fonction supprime de la liste l'élément indiqué et la valeur qui lui est associée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément dans pd2fitm et l'index de l'élément liste dans la liste d'éléments de index.

Notez que cette fonction n'est valide que pour les objets élément de type "Elément liste".

Cette fonction retourne D2FS_SUCCESS si elle supprime de la liste l'élément liste indiqué.

d2fitmile_GetListElem( d2fctx *pd2fctx, d2fitm *pd2fitm, number index, text **label, text **value ) ;

Cette fonction extrait le nom et la valeur de l'élément liste indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément dans pd2fitm, l'index de l'élément liste dans la liste des éléments dans index, un identificateur d'un pointeur pour le nom de l'élément liste dans label et un identificateur d'un pointeur pour la valeur de l'élément liste dans value.

Notez que cette fonction n'est valide que pour les objets élément de type "Elément liste".

Cette fonction retourne D2FS_SUCCESS si elle stocke le nom et la valeur de l'élément liste indiqué dans, respectivement, label et text.

d2fitmgb_GetBoolProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fitmgn_GetNumProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fitmgt_GetTextProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm, le numéro de propriété dans pnum et un pointeur à un tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de l'élément indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fitmgo_GetObjectProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fitmgp_GetBlobProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément dans pd2fitm, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fitmsb_SetBoolProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fitmsn_SetNumProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fitmst_SetTextProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de type texte de l'élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fitmso_SetObjectProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété élément indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fitmsp_SetBlobProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément dans pd2fitm, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fitmhp_HasProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum ) ;

Cette fonction interroge l'élément indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément dans pd2fitm et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fitmip_InheritProp( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum ) ;

Cette fonction active l'élément indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément dans pd2fitm et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fitmii_IspropInherited( d2fctx *pd2fctx, d2fitm *pd2fitm, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément dans pd2fitm et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fitmsc_SubClass( d2fctx *pd2fctx, d2fitm *pd2fitm, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'élément indiqué (pd2fitm) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'élément dans pd2fitm, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fitmis_IsSubclassed	( d2fctx *pd2fctx, d2fitm *pd2fitm ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet élément dans pd2fitm.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet correspondance de colonnes de LOV

  Rubriques connexes

La présente section décrit les fonctions de l'objet correspondance de colonnes de LOV de Open API de Form Builder.

d2flcmcr_Create( d2fctx *pd2fctx, d2fob *parent, d2flcm **ppd2flcm, text *name ) ;

Cette fonction crée un objet correspondance de colonnes de LOV. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet correspondance de colonnes de LOV dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2flcm et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer une nouvelle correspondance de colonnes de LOV dans ppd2flcm.

d2flcmde_Destroy( d2fctx *pd2fctx, d2flcm *pd2flcm ) ;

Cette fonction détruit la correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet correspondance de colonnes de LOV que vous voulez détruire dans pd2flcm.

d2flcmdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2lcm *pd2flcm_src, d2flcm **ppd2flcm_dst, text *new_name ) ;

Cette fonction duplique la correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de correspondance de colonnes de LOV dans pd2flcm_src, un identificateur pour que la fonction stocke la destination dans ppd2flcm_dst et un pointeur au nom de la nouvelle correspondance de colonnes de LOV (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer la correspondance de colonnes de LOV indiquée et la stocker à l'emplacement ppd2flcm_dst.

d2flcmgb_GetBoolProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour la correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2flcmgn_GetNumProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour la correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2flcmgt_GetTextProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour la correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de l'objet correspondance de colonnes de LOV indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2flcmgo_GetObjectProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de la correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2flcmgp_GetBlobProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet correspondance de colonnes de LOV dans pd2flcm, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2flcmsb_SetBoolProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne pour la correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2flcmsn_SetNumProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique pour l'objet correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2flcmst_SetTextProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2flcmso_SetObjectProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété pour la correspondance de colonnes de LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm, un numéro de propriété dans pnum et un identificateur de la propriété d'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2flcmsp_SetBlobProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet correspondance de colonnes de LOV dans pd2flcm, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2flcmhp_HasProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum ) ;

Cette fonction interroge l'objet correspondance de colonnes de LOV indiquée, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la correspondance de colonnes de LOV dans pd2flcm et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2flcmip_InheritProp( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum ) ;

Cette fonction active la correspondance de colonnes de LOV indiquée pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet correspondance de colonnes de LOV dans pd2flcm et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2flcmii_IspropInherited( d2fctx *pd2fctx, d2flcm *pd2flcm, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet correspondance de colonnes de LOV dans pd2flcm et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet liste de valeurs (LOV)

  Rubriques connexes

La présente section décrit les fonctions de l'objet liste de valeurs (LOV) de Open API de Form Builder.

d2flovcr_Create( d2fctx *pd2fctx, d2fob *parent, d2flov **ppd2flov, text *name ) ;

Cette fonction crée une liste de valeurs (LOV). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet LOV dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2flov et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer une nouvelle LOV dans ppd2flov.

d2flovde_Destroy( d2fctx *pd2fctx, d2flov *pd2flov ) ;

Cette fonction détruit la liste de valeurs (LOV) indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet LOV que vous voulez détruire dans pd2flov.

d2flovdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2lov *pd2flov_src, d2flov **ppd2flov_dst, text *new_name ) ;

Cette fonction duplique la liste de valeurs (LOV) indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de la LOV dans pd2flov_src, un identificateur pour que la fonction stocke la destination dans ppd2flov_dst et un pointeur au nom de la nouvelle LOV dans (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer la LOV indiquée et la stocker à l'emplacement ppd2fitm_dst.

d2flovgb_GetBoolProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour la liste de valeurs (LOV) indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2flovgn_GetNumProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour la liste de valeurs (LOV) indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2flovgt_GetTextProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour la liste de valeurs (LOV) indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de la LOV indiquée dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2flovgo_GetObjectProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de la liste de valeurs (LOV) indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2flovgp_GetBlobProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet liste de valeurs (LOV) dans pd2flov, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2flovsb_SetBoolProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de la LOV indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2flovsn_SetNumProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet liste de valeurs (LOV) indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2flovst_SetTextProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet liste de valeurs (LOV) indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov, le numéro de propriété dans pnum et un pointeur à la valeur du texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2flovso_SetObjectProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, dvoid *prp ) ;

Cette fonction définit la propriété de l'objet liste de valeurs (LOV) indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov, un numéro de propriété dans pnum et un pointeur à la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2flovsp_SetBlobProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet liste de valeurs (LOV) dans pd2flov, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2flovhp_HasProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum ) ;

Cette fonction interroge la liste de valeurs (LOV) indiquée, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2flovip_InheritProp( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum ) ;

Cette fonction active la liste de valeurs (LOV) indiquée pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la LOV dans pd2flov et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2flovii_IspropInherited( d2fctx *pd2fctx, d2flov *pd2flov, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet LOV dans pd2flov et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2flovsc_SubClass( d2fctx *pd2fctx, d2flov *pd2flov, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si la liste de valeurs (LOV) indiquée (pd2flov) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet liste de valeurs dans pd2flov, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2flovis_IsSubclassed	( d2fctx *pd2fctx, d2flov *pd2flov ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet liste de valeurs (LOV) dans pd2flov.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet menu

  Rubriques connexes

La présente section décrit les fonctions de l'objet menu de Open API de Form Builder.

d2fmnucr_Create( d2fctx *pd2fctx, d2fob *parent, d2fmnu **ppd2fmnu, text *name ) ;

Cette fonction crée un menu. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet menu dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fmnu et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouveau menu dans ppd2fmnu.

d2fmnude_Destroy( d2fctx *pd2fctx, d2fmnu *pd2fmnu ) ;

Cette fonction détruit le menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur au menu que vous voulez détruire dans pd2fmnu.

d2fmnudu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2mnu *pd2fmnu_src, d2fmnu **ppd2fmnu_dst, text *new_name ) ;

Cette fonction duplique le menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source du menu dans pd2fmnu_src, un identificateur pour que la fonction stocke la destination dans ppd2fmnu_dst et un pointeur pour le nom du nouveau menu (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer le menu indiqué et le stocker à l'emplacement ppd2fmnu_dst.

d2fmnugb_GetBoolProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour le menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fmnugn_GetNumProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour le menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fmnugt_GetTextProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour le menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour le menu indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fmnugo_GetObjectProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet du menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fmnugp_GetBlobProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet menu dans pd2fmnu, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fmnusb_SetBoolProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fmnusn_SetNumProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fmnust_SetTextProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fmnuso_SetObjectProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objetmenu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fmnusp_SetBlobProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet menu dans pd2fmnu, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fmnuhp_HasProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum ) ;

Cette fonction interroge le menu indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, le menu dans pd2fmnu et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmnuip_InheritProp( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum ) ;

Cette fonction active le menu indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au menu dans pd2fmnu et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmnuii_IspropInherited( d2fctx *pd2fctx, d2fmnu *pd2fmnu, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au menu objet dans pd2fmnu et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmnusc_SubClass( d2fctx *pd2fctx, d2fmnu *pd2fmnu, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si le menu indiqué (pd2fmnu) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au menu dans pd2fmnu, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fmnuis_IsSubclassed( d2fctx *pd2fctx, d2fmnu *pd2fmnu ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet menu dans pd2fmnu.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet module Menu

  Rubriques connexes

La présente section décrit les fonctions de l'objet module Menu de Open API de Form Builder.

d2fmmdcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fmmd **ppd2fmmd, text *name ) ;

Cette fonction crée un module Menu. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet module Menu dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fmmd et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouveau module Menu dans ppd2fmmd.

d2fmmdde_Destroy( d2fctx *pd2fctx, d2fmmd *pd2fmmd ) ;

Cette fonction détruit le module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur au module Menu que vous voulez détruire dans pd2fmmd.

d2fmmddl_Delete( d2fctx *pd2fctx, text *name, boolean db ) ;

Cette fonction supprime le module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le nom du module Menu dans name et un indicateur booléen pour indiquer si le module Menu appartient à une base de données dans db.

SI db a la valeur TRUE, Forms API considère que vous voulez supprimer le module Menu indiqué (dont le nom est transmis dans name) d'une base de données. Si db a la valeur FALSE, le module Menu appartient à un système de fichiers et Forms API recherche dans le système de fichiers le module Menu indiqué, puis le supprime.

d2fmmddu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2mmd *pd2fmmd_src, d2fmmd **ppd2fmmd_dst, text *new_name ) ;

Cette fonction duplique le module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source du module Menu dans pd2fmmd_, un identificateur pour que la fonction stocke la destination dans ppd2fmmd_dst et un pointeur pour le nom du nouveau module Menu (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer le module Menu indiqué et le stocker à l'emplacement ppd2fmmd_dst.

d2fmmdco_CompileObj( d2fctx *pd2fctx, d2fmmd *pd2fmmd ) ;

Cette fonction compile tout le code PL/SQL associé au module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2fmmd.

Par exemple, vous pouvez utiliser cette fonction pour compiler tous les objets déclencheur attachés à un module Menu et tous les objets déclencheur attachés à tous les objets élément d'un module Menu.

d2fmmdcf_CompileFile( d2fctx *pd2fctx, d2fmmd *pd2fmmd ) ;

Cette fonction compile un fichier FMB et crée un fichier FMX généré. Vous indiquez le contexte (pd2fctx) et un pointeur à un module Menu (pd2fmmd).

d2fmmdld_Load( d2fctx *pd2fctx, d2fmmd **ppd2fmmd, text *menuname, boolean db ) ;

Cette fonction charge le module Menu indiqué. Vous indiquez le contexte (pd2fctx), un identificateur d'un pointeur pour la fonction à utiliser pour stocker le module Menu (ppd2fmmd), le nom du module Menu (menuname) et un indicateur booléen (db) pour indiquer si le module Menu est dans une base de données.

Si db a la valeur TRUE, Forms API recherche le module Menu indiqué dans la base de données. Notez que, pour que cette opération puisse être exécutée, vous devez être connecté à une base de données. Vous devez appeler d2fctx_Connect() avant de charger un module Menu à partir d'une base de données.

d2fmmdsv_Save( d2fctx *pd2fctx, d2fmmd *pd2fmmd, text *menuname, boolean db ) ;

Cette fonction enregistre le module Menu indiqué. Vous indiquez le contexte (pd2fctx), un pointeur au module Menu (pd2fmmd), le nom du module Menu indiqué (menuname)et un indicateur booléen (db) qui indique si le module Menu doit être enregistré dans une base de données

Si db a la valeur TRUE, Forms API enregistre le module Menu indiqué dans la base de données. Notez que, pour que cette opération puisse être exécutée, vous devez être connecté à une base de données. Vous devez appeler d2fctx_Connect()avant de charger un module Menu à partir d'une base de données.

Si vous voulez enregistrer le module Menu sous le nom par défaut (c'est-à-dire sous le nom fourni lors de la création), vous devez transmettre NULL comme chaîne de texte dans menuname. Si vous voulez enregistrer le module Menu sous un autre nom, transmettez cette chaîne de texte dans menuname.

d2fmmdfv_FileVersion( d2fctx *pd2fctx, text *menuname, boolean db, number version ) ;

Cette fonction retourne la version du module Menu indiqué. Vous indiquez le contexte (pd2fctx), le nom du module Menu (menuname), un indicateur booléen (db) pour indiquer que le module Menu est dans une base de données ou dans le système de fichiers et un pointeur à la version retournée par la fonction (version).

Notez que vous devez appeler cette fonction avant d'appeler la fonction d2fmmdld_Load(), car la version de fichier changera une fois que vous aurez chargé le module Menu.

d2fmmdar_AddRole( d2fctx *pd2fctx, d2fmmd *pd2fmmd, number index, text *role_name ) ;

Cette fonction ajoute un "rôle" de sécurité au module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au module Menu dans pd2fmmd, l'index dans la liste des rôles où Forms API stockera ce rôle dans index et le nom du rôle à ajouter à la liste dans role_name.

Les rôles "AddRole", "RemoveRole" et "GetRole" vous permettent d'indiquer les rôles de sécurité qui ont accès à un module Menu particulier.

Notez que vous pouvez utiliser le Forms API D2FP_ROLE_COUNT pour extraire le nombre de rôles pour un module Menu spécifique.

Notez que si vous n'indiquez pas les rôles de module Menu au niveau module, vous ne pourrez pas y accéder au niveau élément de menu.

d2fmmdrr_RemoveRole( d2fctx *pd2fctx, d2fmmd *pd2fmmd, number index ) ;

Cette fonction supprime le rôle de sécurité indiqué du module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au module Menu dans pd2fmmd et l'index dans la liste des rôles où Forms API supprimera ce rôle dans index.

Les rôles "AddRole", "RemoveRole" et "GetRole" vous permettent d'indiquer les rôles de sécurité qui ont accès à un module Menu particulier.

Notez que vous pouvez utiliser le Forms API D2FP_ROLE_COUNT pour extraire le nombre de rôles pour un module Menu spécifique.

Notez que si vous n'indiquez pas les rôles de module Menu au niveau module, vous ne pourrez pas y accéder au niveau élément de menu.

d2fmmdgr_GetRole( d2fctx *pd2fctx, pd2fmmd *pd2fmmd, number index, text **role_name ) ;

Cette fonction extrait le rôle de sécurité indiqué d'un module Menu. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au module Menu dans pd2fmmd, l'index dans la liste des rôles que Forms API utilise pour extraire ce rôle dans index et un identificateur pour que la fonction stocke le nom du rôle dans role_name.

Les rôles "AddRole", "RemoveRole" et "GetRole" vous permettent d'indiquer les rôles de sécurité qui ont accès à un module Menu particulier.

Notez que vous pouvez utiliser le Forms API D2FP_ROLE_COUNT pour extraire le nombre de rôles pour un module Menu spécifique.

Notez que si vous n'indiquez pas les rôles de module Menu au niveau module, vous ne pourrez pas y accéder au niveau élément de menu.

d2fmmdgb_GetBoolProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour le module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fmmdgn_GetNumProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour le module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fmmdgt_GetTextProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour le module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour le module Menu indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fmmdgo_GetObjectProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet du module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fmmdgp_GetBlobProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet module Menu dans pd2fmmd, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fmmdsb_SetBoolProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne du module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fmmdsn_SetNumProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique du module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fmmdst_SetTextProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte du module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fmmdso_SetObjectProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété du module Menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fmmdsp_SetBlobProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet module Menu dans pd2fmmd, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fmmdhp_HasProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum ) ;

Cette fonction interroge le module Menu indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, le module Menu dans pd2fmmd et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmmdip_InheritProp( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum ) ;

Cette fonction active le module Menu indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au module Menu dans pd2fmmd et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmmdii_IspropInherited( d2fctx *pd2fctx, d2fmmd *pd2fmmd, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au module Menu objet dans pd2fmmd et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet élément de menu

  Rubriques connexes

La présente section décrit les fonctions de l'objet élément de menu de Open API de Form Builder.

d2fmnicr_Create( d2fctx *pd2fctx, d2fob *parent, d2fmni **ppd2fmni, text *name ) ;

Cette fonction crée un élément de menu. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet élément de menu dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fmni et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel élément de menu dans ppd2fmni.

d2fmnide_Destroy( d2fctx *pd2fctx, d2fmni *pd2fmni ) ;

Cette fonction détruit l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'élément de menu que vous voulez détruire dans pd2fmni.

d2fmnidu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2mni *pd2fmni_src, d2fmni **ppd2fmni_dst, text *new_name ) ;

Cette fonction duplique l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'élément de menu dans pd2fmni_src, un identificateur pour que la fonction stocke la destination dans ppd2fmni_dst et un pointeur pour le nom du nouvel élément de menu (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'élément de menu indiqué et le stocker à l'emplacement ppd2fmni_dst.

d2fmnico_CompileObj( d2fctx *pd2fctx, d2fmni *pd2fmni ) ;

Cette fonction compile tout le code PL/SQL associé à l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2fmni.

Par exemple, vous pouvez utiliser cette fonction pour compiler tous les objets déclencheur attachés à un élément de menu.

d2fmnild_Load( d2fctx *pd2fctx, d2fmni **ppd2fmni, text *menuname, boolean db ) ;

Cette fonction charge l'élément de menu indiqué. Vous indiquez le contexte (pd2fctx), un identificateur d'un pointeur pour la fonction à utiliser pour stocker l'élément de menu (ppd2fmni), le nom de l'élément de menu (menuname) et un indicateur booléen (db) pour indiquer si l'élément de menu est dans une base de données.

Si db a la valeur TRUE, Forms API recherche l'élément de menu indiqué dans la base de données. Notez que pour que cette opération puisse être exécutée, vous devez être connecté à une base de données. Vous devez appeler d2fctx_Connect()avant de charger un élément de menu à partir d'une base de données.

d2fmniar_AddRole( d2fctx *pd2fctx, d2fmni *pd2fmni, number index, text *role_name ) ;

Cette fonction ajoute un "rôle" de sécurité à l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'élément de menu dans pd2fmni, l'index dans la liste des rôles où Forms API stockera ce rôle dans dans index et le nom du rôle à ajouter à la liste dans role_name.

Les fonctions "AddRole", "RemoveRole" et "GetRole" vous permettent d'indiquer les rôles de sécurité qui ont accès à un élément de menu particulier.

Notez que vous pouvez utiliser la propriété Forms API D2FB_ROLE_COUNT pour extraire le nombre de rôles pour un élément de menu spécifique.

Notez que si vous n'indiquez pas les rôles de module Menu au niveau module, vous ne pourrez pas y accéder au niveau élément de menu.

d2fmnirr_RemoveRole( d2fctx *pd2fctx, d2fmni *pd2fmni, number index ) ;

Cette fonction supprime le "rôle" de sécurité indiqué de l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au module Menu dans pd2fmni et l'index dans la liste des rôles où Forms API supprimera ce rôle dans index.

Les fonctions "AddRole", "RemoveRole" et "GetRole" vous permettent d'indiquer les rôles de sécurité qui ont accès à un élément de menu particulier.

Notez que vous pouvez utiliser la propriété Forms API D2FB_ROLE_COUNT pour extraire le nombre de rôles pour un élément de menu spécifique.

Notez que si vous n'indiquez pas les rôles de module Menu au niveau module, vous ne pourrez pas y accéder au niveau élément de menu.

d2fmnigr_GetRole( d2fctx *pd2fctx, pd2fmni *pd2fmni, number index, text **role_name ) ;

Cette fonction extrait le rôle de sécurité indiqué d'un élément de menu. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au module Menu dans pd2fmni, l'index dans la liste des rôles que Forms API utilise pour extraire ce rôle dans index et un identificateur pour que la fonction stocke le nom du rôle dans role_name.

Les fonctions "AddRole", "RemoveRole" et "GetRole" vous permettent d'indiquer les rôles de sécurité qui ont accès à un élément de menu particulier.

Notez que vous pouvez utiliser la propriété Forms API D2FB_ROLE_COUNT pour extraire le nombre de rôles pour un élément de menu spécifique.

Notez que si vous n'indiquez pas les rôles de module Menu au niveau module, vous ne pourrez pas y accéder au niveau élément de menu.

d2fmnigb_GetBoolProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fmnign_GetNumProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fmnigt_GetTextProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'élément de menu indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fmnigo_GetObjectProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fmnigp_GetBlobProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément de menu dans pd2fmni, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fmnisb_SetBoolProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fmnisn_SetNumProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fmnist_SetTextProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fmniso_SetObjectProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de l'élément de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fmnisp_SetBlobProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet élément de menu dans pd2fmni, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fmnihp_HasProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum ) ;

Cette fonction interroge l'élément de menu indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'élément de menu dans pd2fmni et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmniip_InheritProp( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum ) ;

Cette fonction active l'élément de menu indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'élément objet menu dans pd2fmni et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmniii_IspropInherited( d2fctx *pd2fctx, d2fmni *pd2fmni, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'élément objet menu dans pd2fmni et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmmisc_SubClass( d2fctx *pd2fctx, d2fmmi *pd2fmmi, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'élément de menu indiqué (pd2fmmi) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'élément de menu dans pd2fmni, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fmmiis_IsSubclassed	( d2fctx *pd2fctx, d2fmmi *pd2fmni ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet menu dans pd2fmnu.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet paramètre de menu

  Rubriques connexes

La présente section décrit les fonctions de l'objet paramètre de menu de Open API de Form Builder.

d2fmpmcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fmpm **ppd2fmpm, text *name ) ;

Cette fonction crée un objet paramètre de menu. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet paramètre de menu dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fmpm et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet paramètre de menu dans ppd2fmpm.

d2fmpmde_Destroy( d2fctx *pd2fctx, d2fmpm *pd2fmpm ) ;

Cette fonction détruit l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet paramètre de menu que vous voulez détruire dans pd2fmpm.

d2fmpmdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2mpm *pd2fmpm_src, d2fmpm **ppd2fmpm_dst, text *new_name ) ;

Cette fonction duplique l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet paramètre de menu dans pd2fmpm_src, un identificateur pour que la fonction stocke la destination dans ppd2fmpm_dst et un pointeur pour le nom du nouvel objet paramètre de menu (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet paramètre de menu indiqué et le stocker à l'emplacement ppd2fmpm_dst.

d2fmpmaam_AddAssocMenu( d2fctx *pd2fctx, d2fmpm *pd2fmpm, number index, text *menu_name) ;

Cette fonction ajoute le menu associé à l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, l'index dans la liste de menus où Forms API stocke ce menu associé dans index et le nom du menu à ajouter à la liste dans menu_name.

Notez que vous pouvez utiliser Forms API D2FP_ASSOC_MENU_COUNT pour extraire le nombre des menus associés pour un objet paramètre de menu spécifique.

d2fmpmram_RemoveAssocMenu( d2fctx *pd2fctx, d2fmpm *pd2fmpm, number index ) ;

Cette fonction supprime le menu associé de l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm et l'index dans la liste de menus où Forms API troue et supprime ce menu associé dans index.

Notez que vous pouvez utiliser Forms API D2FP_ASSOC_MENU_COUNT pour extraire le nombre des menus associés pour un objet paramètre de menu spécifique.

d2fmpmgam_GetAssocMenu( d2fctx *pd2fctx, d2fmpm *pd2fmpm, number index, text **menu_name ) ;

Cette fonction extrait le menu associé pour l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, l'index dans la liste des menus où Forms API trouve ce menu associé dans index et un identificateur de menu_name pour que la fonction stocke le nom du menu à extraire.

Notez que vous pouvez utiliser Forms API D2FP_ASSOC_MENU_COUNT pour extraire le nombre des menus associés pour un objet paramètre de menu spécifique.

d2fmpmgb_GetBoolProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fmpmgn_GetNumProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour le paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fmpmgt_GetTextProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, le numéro de propriété dans pnum et un pointeur à un tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour le l'objet paramètre de menu indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fmpmgo_GetObjectProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fmpmgp_GetBlobProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre de menu dans pd2fmpm, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fmpmsb_SetBoolProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne du paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fmpmsn_SetNumProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fmpmst_SetTextProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fmpmso_SetObjectProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, dvoid *prp ) ;

Cette fonction définit la propriété de type objet de l'objet paramètre de menu indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fmpmsp_SetBlobProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre de menu dans pd2fmpm, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fmpmhp_HasProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum ) ;

Cette fonction interroge l'objet paramètre de menu indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet paramètre de menu dans pd2fmpm et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmpmip_InheritProp( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum ) ;

Cette fonction active l'objet paramètre de menu indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre de menu dans pd2fmpm et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmpmii_IspropInherited( d2fctx *pd2fctx, d2fmpm *pd2fmpm, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre de menu dans pd2fmpm et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fmpmsc_SubClass( d2fctx *pd2fctx, d2fmpm *pd2fmpm, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet paramètre de menu indiqué (pd2fmpm) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet paramètre de menu dans pd2fmpm, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fmpmis_IsSubclassed	( d2fctx *pd2fctx, d2fmpm *pd2fmpm ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet paramètre de menu dans pd2fmpm.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions d'objet (objet générique)

  Rubriques connexes

La présente section décrit les fonctions de l'objet (objet générique) de Open API de Form Builder.

d2fobfo_FindObj( d2fctx *pd2fctx, d2fob *owner, text *name, d2fotyp objtyp, d2fob **ppd2fob ) ;

Cette fonction retourne l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la propriété de l'objet père dans parent, un pointeur à une chaîne de texte pour le nom de l'objet indiqué dans name, le type d'objet dans objtyp et un identificateur pour que la fonction retourne l'objet dans ppd2fob.

Par exemple, si vous cherchez un objet déclencheur particulier sous un bloc, vous devez trasnmettre le bloc comme père, le nom de l'objet déclencheur spécifique, et D2FFO_TRIGGER (l'objet type).

d2fobmv_Move( d2fctx *pd2fctx, d2fob *pd2fob, d2fob *pd2fob_nxt ) ;

Cette fonction déplace l'objet indiqué autour de la liste d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet dans pd2fob et l'objet qui doit suivre directement cet objet (une fois déplacé) dans pd2fob_nxt.

Notez que si vous voulez classer l'objet indiqué au début de la liste, transmettez le premier objet dans pd2fob_nxt ; si vous voulez placer l'objet à la fin de la liste, définissez pd2fob_nxt à NULL.

d2fobgb_GetBoolProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet indiqué (objet générique). Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fobgn_GetNumProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fobgt_GetTextProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de l'objet indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fobgo_GetObjectProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fobgp_GetBlobProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet indiqué dans pd2fob, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fobsb_SetBoolProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fobsn_SetNumProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fobst_SetTextProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fobso_SetObjectProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objet indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fobsp_SetBlobProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet indiqué dans pd2fob, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fobhp_HasProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum ) ;

Cette fonction interroge l'objet indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet dans pd2fob et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fobip_InheritProp( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum ) ;

Cette fonction active l'objet indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la propriété de l'objet dans pd2fob et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fobii_IspropInherited( d2fctx *pd2fctx, d2fob *pd2fob, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la propriété de l'objet dans pd2fob et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fobsc_SubClass( d2fctx *pd2fctx, d2fob *pd2fob, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet indiqué (pd2fob) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la propriété de l'objet dans pd2fob, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fobis_IsSubclassed	( d2fctx *pd2fctx, d2fob *pd2fob ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet indiqué dans pd2fob.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fobqt_QueryType( d2fctx *pd2fctx, d2fob *pd2fob, d2fotyp *objtyp ) ;

Cette fonction retourne D2FS_SUCCESS si le type d'objet indiqué existe et stocke l'objet dans pd2fob. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur pour l'objet retourné (pd2fob)et un pointeur pour le type d'objet indiqué type (objtyp).

Cette fonction est particulièrement utile si vous avez une fonction transversale qui traverse tous vos objets dans une application Forms, car elle vous permet d'accéder à tous les objets réels contenus dans cette application.


Fonctions de l'objet groupe d'objets

  Rubriques connexes

La présente section décrit les fonctions de l'objet groupe d'objets de Open API de Form Builder.

d2fobgcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fobg **ppd2fobg, text *name ) ;

Cette fonction crée un groupe d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet groupe d'objets dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fobg et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouveau groupe d'objets dans ppd2fobg.

d2fobgde_Destroy( d2fctx *pd2fctx, d2fobg *pd2fobg ) ;

Cette fonction détruit le groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur au groupe d'objets que vous voulez détruire dans pd2fobg.

d2fobgdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2obg *pd2fobg_src, d2fobg **ppd2fobg_dst, text *new_name ) ;

Cette fonction duplique le groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source du groupe d'objets dans pd2fobg_src, un identificateur pour que la fonction stocke la destination dans ppd2fobg_dst et un pointeur pour le nom du nouveau groupe d'objets (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer le groupe d'objets indiqué et le stocker à l'emplacement ppd2fobg_dst.

d2fobggb_GetBoolProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour le groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fobggn_GetNumProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour le groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fobggt_GetTextProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour le groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte du groupe d'objets indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fobggo_GetObjectProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet du groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fobggp_GetBlobProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au groupe d'objets dans pd2fobg, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fobgsb_SetBoolProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne du groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fobgsn_SetNumProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique du groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fobgst_SetTextProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte du groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fobgso_SetObjectProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété du groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fobgsp_SetBlobProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au groupe d'objets indiqué dans pd2fobg, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fobghp_HasProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum ) ;

Cette fonction interroge le groupe d'objets indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, le groupe d'objets dans pd2fobg et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fobgip_InheritProp( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum ) ;

Cette fonction active le groupe d'objets indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la propriété du groupe d'objets dans pd2fobg et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fobgii_IspropInherited( d2fctx *pd2fctx, d2fobg *pd2fobg, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la propriété du groupe d'objets dans pd2fobg et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fobgsc_SubClass( d2fctx *pd2fctx, d2fong *pd2fobg, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si le groupe d'objets indiqué (pd2fobg) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la propriété du groupe d'objets dans pd2fobg, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fobgis_IsSubclassed	( d2fctx *pd2fctx, d2fobg *pd2fobg ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur au groupe d'objets indiqué dans pd2fobg.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet fils de groupe d'objets

  Rubriques connexes

La présente section décrit les fonctions de l'objet fils de groupe d'objets de Open API de Form Builder.

d2fogcgcr_Create( d2fctx *pd2fctx, d2fogc *parent, d2fogc **ppd2fogc, text *name ) ;

Cette fonction crée un fils de groupe d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouveau fils de groupe d'objets dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fogc et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouveau groupe d'objets dans ppd2fogcg.

d2fogcgde_Destroy( d2fctx *pd2fctx, d2fogc *pd2fogc ) ;

Cette fonction détruit le fils de groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à la propriété fils de groupe d'objets que vous voulez détruire dans pd2fogc.

d2fogcgdu_Duplicate( d2fctx *pd2fctx, d2fogc *new_parent, d2ogc *pd2fogc_src, d2fogc **ppd2fogc_dst, text *new_name ) ;

Cette fonction duplique le fils de groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet fils de groupe d'objets dans pd2fogc_src, un identificateur pour que la fonction stocke la destination dans ppd2fogc_dst et un pointeur pour le nom du nouveau fils de groupe d'objets (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet fils de groupe d'objets et le stocker à l'emplacement ppd2fogcg_dst.

d2fogcggb_GetBoolProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour le fils de groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le fils de groupe d'objets dans pd2fogc, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fogcggn_GetNumProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet fils de groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fils de groupe d'objets dans pd2fogc, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fogcggt_GetTextProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet fils de groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fils de groupe d'objets dans pd2fogc, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte de l'objet fils de groupe d'objets dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fogcggo_GetObjectProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet fils de groupe d'objets indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fils de groupe d'objets dans pd2fogc, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fogcggp_GetBlobProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet fils de groupe d'objets dans pd2fogc, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fogcgsb_SetBoolProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet fils de groupe d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fils de groupe d'objets dans pd2fogc, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fogcgsn_SetNumProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet fils de groupe d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fils de groupe d'objets dans pd2fogc, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fogcgst_SetTextProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet fils de groupe d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fils de groupe d'objets dans pd2fogc, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fogcgso_SetObjectProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, dvoid *prp ) ;

Cette fonction définit la propriété d'objetde l'objet fils de groupe d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fils de groupe d'objets dans pd2fogc, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fogcgsp_SetBlobProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet fils de groupe d'objets dans pd2fogc, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fogcghp_HasProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum ) ;

Cette fonction interroge l'objet fils de groupe d'objets indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fils de groupe d'objets dans pd2fogc et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fogcgip_InheritProp( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum ) ;

Cette fonction active l'objet fils de groupe d'objets indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la propriété de l'objet fils de groupe d'objets dans pd2fogc et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fogcgii_IspropInherited( d2fctx *pd2fctx, d2fogc *pd2fogc, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet fils de groupe d'objets dans pd2fogc et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet bibliothèque d'objets

  Rubriques connexes

La présente section décrit les fonctions de l'objet bibliothèque d'objets de Open API de Form Builder.

d2folbcr_Create( d2fctx *pd2fctx, d2fob *parent, d2folb **ppd2folb, text *name ) ;

Cette fonction crée une bibliothèque d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet bibliothèque d'objets dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2folb et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer une nouvelle bibliothèque d'objets dans ppd2folb.

d2folbde_Destroy( d2fctx *pd2fctx, d2folb *pd2folb ) ;

Cette fonction détruit la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à la bibliothèque d'objets que vous voulez détruire dans pd2folb.

d2folbdl_Delete( d2fctx *pd2fctx, text *name, boolean db ) ;

Cette fonction supprime la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à une chaîne de texte pour le nom de la bibliothèque d'objets dans name et un indicateur booléen pour indiquer si la bibliothèque d'objets doit être supprimée d'une base de données (par exemple, une bibliothèque ouverte, un module applications Forms ou un menu Module) dans db.

Si db a la valeur TRUE, Forms API considère que vous voulez supprimer d'une base de données la bibliothèque d'objets indiquée ; si db a la valeur FALSE, Forms API recherche la bibliothèque d'objets indiquée dans le système de fichiers, puis la supprime.

d2folbdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2olb *pd2folb_src, d2folb **ppd2folb_dst, text *new_name ) ;

Cette fonction duplique la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de la bibliothèque d'objets dans pd2folb_src, un identificateur pour que la fonction stocke la destination dans ppd2folb_dst et un pointeur pour le nom de la nouvelle bibliothèque d'objets (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer la bibliothèque d'objets indiquée et la stocker à l'emplacement ppd2folb_dst.

d2folbao_AddObj( d2fctx *pd2fctx, d2folb *pd2folb, d2folt *pd2folt, d2fob *pd2fob, d2fob **ppd2fob, boolean replace ) ;

Cette fonction ajoute une copie de l'objet indiqué à une bibliothèque d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque d'objets dans pd2folb, un pointeur à l'objet page onglet dans pd2folt, un pointeur à l'objet que vous voulez ajouter à la bibliothèque d'objets dans pd2fob, un identificateur pour que la fonction retourne le nouvel objet dans ppd2fob et un indicateur booléen, replace, pour indiquer ce que la fonction doit faire s'il existe déjà un objet portant ce nom.

S'il existe déjà un objet de ce type et portant ce nom, et si vous définissez replace à TRUE, la fonction remplace l'objet existant par le nouvel objet ; si replace est défini à FALSE, la fonction retourne une erreur (D2FS_OBJNOTUNIQUE).

d2folbro_RemoveObj( d2fctx *pd2fctx, d2folb *po2olb, d2fob *pd2fob ) ;

Cette fonction supprime l'objet indiqué d'une bibliothèque d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque d'objets dans pd2folb et un pointeur à l'objet que vous voulez supprimer de la bibliothèque d'objets dans pd2fob.

d2folbf2_Findobjbypos( d2fctx *pd2fctx, d2folb *pd2folb, number pos, d2fob **ppret_obj) ;

Cette fonction retourne la position de l'objet indiqué dans la bibliothèque d'objets. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à une bibliothèque d'objets dans pd2folb, l'emplacement de l'objet dans la bibliothèque d'objets dans pos et un identificateur de l'objet retourné dans ppret_obj.

Notez que vous pouvez utiliser la propriété Forms API D2FP_OBJ_COUNT pour extraire le nombre d'objets associés pour une bibliothèque d'objets spécifique.

d2folbld_Load( d2fctx *pd2fctx, d2folb **pd2folb, text *olibname, boolean db ) ;

Cette fonction charge la bibliothèque d'objets indiquée. Vous indiquez le contexte (pd2fctx), un identificateur d'un pointeur que la fonction utilisera pour stocker la bibliothèque d'objets (ppd2folb), le nom de la bibliothèque d'objets (olibname) et un indicateur booléen (db) pour indiquer si la bibliothèque d'objets est dans une base de données.

Si vous définissez db à TRUE, Forms API recherche la bibliothèque d'objets indiquée dans la base de données. Notez que cette opération ne peut être exécutée que si vous êtes connecté à une base de données. Vous devez appeler l d2fctx_Connect() avant de charger une bibliothèque d'objets d'une base de données.

d2folbsv_Save( d2fctx *pd2fctx, d2folb *pd2folb, text *olibname, boolean db ) ;

Cette fonction enregistre la bibliothèque d'objets indiquée. Vous indiquez le contexte (pd2fctx), un pointeur à la bibliothèque d'objets (pd2folb), le nom de la bibliothèque d'objets indiquée (olibname) et un indicateur booléen (db) qui indique si la bibliothèque d'objets doit être enregistrée dans une base de données.

Si vous définissez db à TRUE, Forms API enregistre la bibliothèque d'objets indiquée dans la base de données. Notez que cette opération ne peut être exécutée que si vous êtes connecté à une base de données. Vous devez appeler d2fctx_Connect() avant d'enregistrer une bibliothèque d'objets dans une base de données.

Si vous voulez enregistrer la bibliothèque d'objets sous le nom par défaut (le nom fourni lors de la création), vous devez transmettre NULL comme chaîne de texte dans olibname. Si vous voulez enregistrer la bibliothèque d'objets sous un autre nom, transmettez cette chaîne de texte dans olibname.

d2folbfv_FileVersion( d2fctx *pd2fctx, text *olibname, boolean db, number *version ) ;

Cette fonction retourne la version du fichier. Vous indiquez le contexte (pd2fctx), le nom de la bibliothèque d'objets (olibname), un indicateur booléen (db) pour indiquer si la bibliothèque d'objets est dans une base de données ou dans le système de fichiers et un pointeur pour la version retournée par la fonction (version).

Notez que vous devez appeler cette fonction avant d'appeler la fonction d2folbld_Load(), car la version de fichier changera une fois que vous aurez chargé la bibliothèque d'objets.

d2folbgb_GetBoolProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2folbgn_GetNumProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2folbgt_GetTextProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour la bibliothèque d'objets indiquée dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2folbgo_GetObjectProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2folbgp_GetBlobProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque d'objets dans pd2folb, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2folbsb_SetBoolProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2folbsn_SetNumProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2folbst_SetTextProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de la bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2folbso_SetObjectProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété bibliothèque d'objets indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2folbsp_SetBlobProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque d'objets indiquée dans pd2folb, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2folbhp_HasProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum ) ;

Cette fonction interroge la bibliothèque d'objets indiquée , à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2folbip_InheritProp( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum ) ;

Cette fonction active la bibliothèque d'objets indiquée pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la bibliothèque d'objets dans pd2folb et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2folbii_IspropInherited( d2fctx *pd2fctx, d2folb *pd2folb, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet bibliothèque d'objets dans pd2folb et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2folbss_SetSmartclass( d2fctx *pd2fctx, d2folb *pd2folb, d2fob *pd2fob, boolean state) ;

Cette fonction définit la bibliothèque d'objets indiquée sous la forme d'un membre d'une smart class. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à un objet de bibliothèque d'objets dans pd2folb, un pointeur à l'objet qui doit devenir membre d'une smart class dans pd2fob et un indicateur booléen dans state pour indiquer à Forms API si l'objet indiqué doit être défini comme membre d'une smart class. Si state est défini à TRUE, Forms API marque l'objet indiqué comme un membre d'une smart class ; si state est défini à FALSE, Forms API définit l'objet comme n'étant pas membre de la smart class.

d2folbis_IsSmartclassed( d2fctx *pd2fctx, d2folb *pd2folb, d2fob *pd2fob ) ;

Cette fonction retourne D2FS_YES si l'objet indiqué (pd2fob) est une smart class. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb et l'objet dans pd2fob.

d2folbsd_SetDesc ( d2fctx *pd2fctx, d2folb *pd2folb, d2fob *pd2fob, text *desc ) ;

Cette fonction retourne D2FS_SUCCESS si Forms API définit la description abrégée de l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, l'objet dans pd2fob et un pointeur à la description abrégée réelle dans desc.

d2folbgd_GetDesc ( d2fctx *pd2fctx, d2folb *pd2folb, d2fob *pd2fob, text **desc ) ;

Cette fonction retourne D2FS_SUCCESS si Forms API extrait la description abrégée de l'objet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, la bibliothèque d'objets dans pd2folb, l'objet dans pd2fob et un identificateur pour que la fonction retourne la description abrégée dans desc.


Fonctions de l'objet unité de programme

  Rubriques connexes

La présente section décrit les fonctions de l'objet unité de programme de Open API de Form Builder.

d2fpgucr_Create( d2fctx *pd2fctx, d2fob *parent, d2fpgu **ppd2fpgu, text *name ) ;

Cette fonction crée une unité de programme. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet unité de programme dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fpgu et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer une nouvelle unité de programme dans ppd2fpgu.

d2fpgude_Destroy( d2fctx *pd2fctx, d2fpgu *pd2fpgu ) ;

Cette fonction détruit l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'unité de programme que vous voulez détruire dans pd2fpgu.

d2fpgudu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2pgu *pd2fpgu_src, d2fpgu **ppd2fpgu_dst, text *new_name ) ;

Cette fonction duplique l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'unité de programme dans pd2fpgu_src, un identificateur pour que la fonction stocke la destination dans ppd2fpgu_dst et un pointeur pour le nom de la nouvelle unité de programme (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'unité de programme indiquée et la stocker à l'emplacement ppd2fpgu_dst.

d2fpguco_CompileObj ( d2fctx *pd2fctx, d2fpgu *pd2fpgu ) ;

Cette fonction compile tout le code PL/SQL associé à l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2fpgu.

Par exemple, vous pouvez utiliser cette fonction pour compiler tous les objets déclencheur attachés à une unité de programme et tous les objets déclencheur attachés à tous les objets élément dans une unité de programme.

d2fpgugb_GetBoolProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fpgugn_GetNumProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fpgugt_GetTextProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'unité de programme indiquée dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fpgugo_GetObjectProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fpgugp_GetBlobProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet unité de programme dans pd2fpgu, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fpgusb_SetBoolProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fpgusn_SetNumProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fpgust_SetTextProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fpguso_SetObjectProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de l'unité de programme indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fpgusp_SetBlobProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet unité de programme dans pd2fpgu, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fpguhp_HasProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum ) ;

Cette fonction interroge l'unité de programme indiquée , à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'unité de programme dans pd2fpgu et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fpguip_InheritProp( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum ) ;

Cette fonction active l'unité de programme indiquée pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'unité de programme objet dans pd2fpgu et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fpguii_IspropInherited( d2fctx *pd2fctx, d2fpgu *pd2fpgu, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'unité de programme objet dans pd2fpgu et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fpgusc_SubClass( d2fctx *pd2fctx, d2fpgu *pd2fpgu, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'unité de programme indiquée (pd2fpgu) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'unité de programme dans pd2fpgu, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fpguis_IsSubclassed	( d2fctx *pd2fctx, d2fpgu *pd2fpgu ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'unité de programme objet dans pd2fpgu.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet classe de propriété

  Rubriques connexes

La présente section décrit les fonctions de l'objet classe de propriété de Open API de Form Builder.

d2fppccr_Create( d2fctx *pd2fctx, d2fob *parent, d2fppc **ppd2fppc, text *name ) ;

Cette fonction crée un objet classe de propriété. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet classe de propriété dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fppc et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer une nouvelle classe de propriété dans ppd2fppc.

d2fppcde_Destroy( d2fctx *pd2fctx, d2fppc *pd2fppc ) ;

Cette fonction détruit la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à la classe de propriété que vous voulez détruire dans pd2fppc.

d2fppcdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2ppc *pd2fppc_src, d2fppc **ppd2fppc_dst, text *new_name ) ;

Cette fonction duplique la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de la classe de propriété dans pd2fppc_src, un identificateur pour que la fonction stocke la destination dans ppd2fppc_dst et un pointeur pour le nom de la nouvelle classe de propriété (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer la classe de propriété indiquée et la stocker à l'emplacement ppd2fppc_dst.

d2fppcrp_RemoveProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum ) ;

Cette fonction supprime la propriété indiquée de la classe de propriété. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc et le numéro de la propriété à supprimer dans pnum.

Cette fonction retourne D2FS_SUCCESS si la propriété indiquée a été supprimée.

d2fppcgb_GetBoolProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fppcgn_GetNumProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fppcgt_GetTextProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc, le numéro de propriété dans pnum et un pointeur à un tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour la classe de propriété indiquée dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fppcgo_GetObjectProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fppcgp_GetBlobProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet classe de propriété dans pd2fppc, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fppcsb_SetBoolProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fppcsn_SetNumProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fppcst_SetTextProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc, le numéro de propriété dans pnum et un identificateur de la valeur du texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fppcso_SetObjectProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de la classe de propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fppcsp_SetBlobProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet classe de propriété dans pd2fppc, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fppchp_HasProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum ) ;

Cette fonction interroge la classe de propriété indiquée, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la classe de propriété dans pd2fppc et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fppcip_InheritProp( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum ) ;

Cette fonction active la classe de propriété indiquée pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la classe de propriété dans pd2fppc et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fppcii_IspropInherited( d2fctx *pd2fctx, d2fppc *pd2fppc, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet classe de propriété dans pd2fppc et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fppcsc_SubClass( d2fctx *pd2fctx, d2fppc *pd2fppc, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si la classe de propriété indiquée (pd2fppc) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la classe de propriété dans pd2fppc, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fppcis_IsSubclassed	( d2fctx *pd2fctx, d2fppc *pd2fppc ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet classe de propriété dans pd2fppc.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet bouton d'option

  Rubriques connexes

La présente section décrit les fonctions de l'objet bouton d'option de Open API de Form Builder.

d2frdbcr_Create( d2fctx *pd2fctx, d2fob *parent, d2frdb **ppd2frdb, text *name ) ;

Cette fonction crée un objet bouton d'option. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet bouton d'option dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2frdb et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouveau bouton d'option dans ppd2frdb.

d2frdbde_Destroy( d2fctx *pd2fctx, d2frdb *pd2frdb ) ;

Cette fonction détruit le bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet bouton d'option que vous voulez détruire dans pd2frdb.

d2frdbdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rdb *pd2frdb_src, d2frdb **ppd2frdb_dst, text *new_name ) ;

Cette fonction duplique le bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source du bouton d'option dans pd2frdb_src, un identificateur pour que la fonction stocke la destination dans ppd2frdb_dst et un pointeur pour le nom du nouveau bouton d'option (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer le bouton d'option indiqué et le stocker à l'emplacement ppd2frdb_dst.

d2frdbgb_GetBoolProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour le bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2frdbgn_GetNumProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour le bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2frdbgt_GetTextProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour le bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb, le numéro de propriété dans pnum et un pointeur à un tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour le bouton d'option indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2frdbgo_GetObjectProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet du bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2frdbgp_GetBlobProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet bouton d'option dans pd2frdb, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2frdbsb_SetBoolProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne du bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2frdbsn_SetNumProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique du bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2frdbst_SetTextProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte du bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2frdbso_SetObjectProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété du bouton d'option indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2frdbsp_SetBlobProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet bouton d'option dans pd2frdb, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2frdbhp_HasProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum ) ;

Cette fonction interroge le bouton d'option indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, le bouton d'option dans pd2frdb et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frdbip_InheritProp( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum ) ;

Cette fonction active le bouton d'option indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bouton d'option dans pd2frdb et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frdbii_IspropInherited( d2fctx *pd2fctx, d2frdb *pd2frdb, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet bouton d'option dans pd2frdb et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frdbsc_SubClass( d2fctx *pd2fctx, d2frdb *pd2frdb, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si le bouton d'option indiqué (pd2frdb) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au bouton d'option dans pd2frdb, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2frdbis_IsSubclassed	( d2fctx *pd2fctx, d2frdb *pd2frdb ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet bouton d'option dans pd2frdb.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet groupe d'enregistrements

  Rubriques connexes

La présente section décrit les fonctions de l'objet groupe d'enregistrements de Open API de Form Builder.

d2frcgcr_Create( d2fctx *pd2fctx, d2fob *parent, d2frcg **ppd2frcg, text *name ) ;

Cette fonction crée un objet groupe d'enregistrements. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet groupe d'enregistrements dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2frcg et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet groupe d'enregistrements dans ppd2frcg.

d2frcgde_Destroy( d2fctx *pd2fctx, d2frcg *pd2frcg ) ;

Cette fonction détruit l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet groupe d'enregistrements que vous voulez détruire dans pd2frcg.

d2frcgdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rcg *pd2frcg_src, d2frcg **ppd2frcg_dst, text *new_name ) ;

Cette fonction duplique l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet groupe d'enregistrements dans pd2frcg_src, un identificateur pour que la fonction stocke la destination dans ppd2frcg_dst et un pointeur pour le nom du nouvel objet groupe d'enregistrements (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet groupe d'enregistrements indiqué et le stocker à l'emplacement ppd2frcg_dst.

d2frcggb_GetBoolProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2frcggn_GetNumProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2frcggt_GetTextProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'objet groupe d'enregistrements indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2frcggo_GetObjectProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2frcggp_GetBlobProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet groupe d'enregistrements dans pd2frcg, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2frcgsb_SetBoolProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2frcgsn_SetNumProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2frcgst_SetTextProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2frcgso_SetObjectProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objet du groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2frcgsp_SetBlobProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet groupe d'enregistrements dans pd2frcg, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2frcghp_HasProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum ) ;

Cette fonction interroge l'objet groupe d'enregistrements indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet groupe d'enregistrements dans pd2frcg et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frcgip_InheritProp( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum ) ;

Cette fonction active l'objet groupe d'enregistrements indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet groupe d'enregistrements dans pd2frcg et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frcgii_IspropInherited( d2fctx *pd2fctx, d2frcg *pd2frcg, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet groupe d'enregistrements dans pd2frcg et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frcgsc_SubClass( d2fctx *pd2fctx, d2frcg *pd2frcg, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet groupe d'enregistrements indiqué (pd2frcg) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet groupe d'enregistrements dans pd2frcg, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2frcgis_IsSubclassed	( d2fctx *pd2fctx, d2frcg *pd2frcg ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet groupe d'enregistrements dans pd2frcg.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet spécification de colonne de groupes d'enregistrements

  Rubriques connexes

La présente section décrit les fonctions de l'objet spécification de colonne de groupes d'enregistrements de Open API de Form Builder.

d2frcscr_Create( d2fctx *pd2fctx, d2fob *parent, d2frcs **ppd2frcs, text *name ) ;

Cette fonction crée une spécification de colonne de groupes d'enregistrements. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet spécification de colonne de groupes d'enregistrements dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2frcs et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer une nouvelle spécification de colonne de groupes d'enregistrements dans ppd2frcs.

d2frcsde_Destroy( d2fctx *pd2fctx, d2frcs *pd2frcs ) ;

Cette fonction détruit la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à la spécification de colonne de groupes d'enregistrements que vous voulez détruire dans pd2frcs.

d2frcsdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rcs *pd2frcs_src, d2frcs **ppd2frcs_dst, text *new_name ) ;

Cette fonction duplique la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de la spécification de colonne de groupes d'enregistrements dans pd2frcs_src, un identificateur pour que la fonction stocke la destination dans ppd2frcs_dst et un pointeur pour le nom de la nouvelle spécification de colonne de groupes d'enregistrements (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer la spécification de colonne de groupes d'enregistrements et la stocker à l'emplacement ppd2frcs_dst.

d2frcsir_InsertRow( d2fctx *pd2fctx, d2frcs *pd2frcs, number index, text *dat ) ;

Cette fonction insère une ligne dans l'objet spécification de groupe d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet spécification de colonne de groupes d'enregistrements dans pd2frcs, l'index dans la liste des lignes où la fonction doit insérer la ligne dans index et un pointeur aux données dans dat.

Notez que vous devez commencer par créer un objet groupe d'enregistrements, puis un nouvel objet colonne de groupe d'enregistrements pour pouvoir insérer des lignes dans cette valeur de colonne associée.

Notez que vous pouvez utiliser la propriété Forms API D2FP_COL_VALS_COUNT pour extraire le nombre de colonnes pour une spécification de colonne de groupes d'enregistrements.

d2frcsdr_DeleteRow( d2fctx *pd2fctx, d2frcs *pd2frcs, number index ) ;

Cette fonction supprime la ligne indiquée de l'objet spécification de colonnede groupes d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet spécification de colonne de groupes d'enregistrements dans pd2frcs et l'index dans la liste des lignes où la fonction doit supprimer la ligne dans index.

Notez que vous pouvez utiliser la propriété Forms API D2FP_COL_VALS_COUNT pour extraire le nombre de colonnes pour une spécification de colonne de groupes d'enregistrements.

d2frcsgr_GetRow( d2fctx *pd2fctx, d2frcs *pd2frcs, number index, text **dat ) ;

Cette fonction extrait une ligne de l'objet spécification de colonne de groupes d'enregistrements indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet spécification de colonne de groupes d'enregistrements dans pd2frcs, l'index dans la liste des lignes où la fonction doit extraire la ligne dans index et l'identificateur pour que la fonction retourne la ligne dans dat.

Notez que vous pouvez utiliser la propriété Forms API D2FP_COL_VALS_COUNT pour extraire le nombre de colonnes pour une spécification de colonne de groupes d'enregistrements.

d2frcsgb_GetBoolProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2frcsgn_GetNumProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2frcsgt_GetTextProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour la spécification de colonne de groupes d'enregistrements indiquée dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2frcsgo_GetObjectProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2frcsgp_GetBlobProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la spécification de colonne de groupes d'enregistrements objet dans pd2frcs, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2frcssb_SetBoolProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2frcssn_SetNumProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2frcsst_SetTextProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2frcsso_SetObjectProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objetde la spécification de colonne de groupes d'enregistrements indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2frcssp_SetBlobProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet spécification de colonne de groupes d'enregistrements dans pd2frcs, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2frcshp_HasProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum ) ;

Cette fonction interroge la spécification de colonne de groupes d'enregistrements indiquée, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la spécification de colonne de groupes d'enregistrements dans pd2frcs et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frcsip_InheritProp( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum ) ;

Cette fonction active la spécification de colonne de groupes d'enregistrements indiquée pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet spécification de colonne de groupes d'enregistrements dans pd2frcs et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frcsii_IspropInherited( d2fctx *pd2fctx, d2frcs *pd2frcs, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet spécification de colonne de groupes d'enregistrements dans pd2frcs et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet relation

  Rubriques connexes

La présente section décrit les fonctions de l'objet relation de Open API de Form Builder.

d2frelcr_Create( d2fctx *pd2fctx, d2fob *parent, d2frel **ppd2frel, text *name ) ;

Cette fonction crée un objet relation. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet relation dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2frel et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer une nouvelle relation dans ppd2frel.

d2frelde_Destroy( d2fctx *pd2fctx, d2frel *pd2frel ) ;

Cette fonction détruit la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet relation que vous voulez détruire dans pd2frel.

d2frelup_Update( d2fctx *pd2fctx, d2frel *pd2frel ) ;

Cette fonction met à jour l'objet relation indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet relation dans pd2frel.

Avec les objets Applications Forms classiques, vous commencez par créer un objet, puis vous définissez et extrayez ses propriétés. Les objets relation demandent une étape supplémentaire d'instanciation, après leur création. Avec les objets relation, vous commencez par les créer, puis vous définissez les propriétés spécifiques de l'objet relation, et enfin, vous appelez la fonction de mise à jour. Si vous n'appelez pas cette fonction, l'objet relation n'est pas complet, et le comportement n'est pas défini. L'objet relation existe ensuite dans un état " instable " (si vous tentez de l'utiliser, Forms API retourne une erreur).

d2freldu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rel *pd2frel_src, d2frel **ppd2frel_dst, text *new_name ) ;

Cette fonction duplique la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de la relation dans pd2frel_src, un identificateur pour que la fonction stocke la destination dans ppd2frel_dst et un pointeur pour le nom de la nouvelle relation (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer la relation indiquée et la stocker à l'emplacement ppd2frel_dst.

d2frelgb_GetBoolProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2frelgn_GetNumProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2frelgt_GetTextProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel, le numéro de propriété dans pnum et un pointeur à un tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour la relation indiquée dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2frelgo_GetObjectProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2frelgp_GetBlobProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet relation dans pd2frel, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2frelsb_SetBoolProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2frelsn_SetNumProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2frelst_SetTextProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2frelso_SetObjectProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de la relation indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2frelsp_SetBlobProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet relation dans pd2frel, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2frelhp_HasProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum ) ;

Cette fonction interroge la relation indiquée, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, la relation dans pd2frel et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frelip_InheritProp( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum ) ;

Cette fonction active la relation indiquée pour qu'elle hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet relation dans pd2frel et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frelii_IspropInherited( d2fctx *pd2fctx, d2frel *pd2frel, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet relation dans pd2frel et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet état

  Rubriques connexes

La présente section décrit les fonctions de l'objet état de Open API de Form Builder.

d2frptcr_Create( d2fctx *pd2fctx, d2fob *parent, d2frpt **ppd2frpt, text *name ) ;

Cette fonction crée un objet état. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet état dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2frpt et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet état dans ppd2frpt.

d2frptde_Destroy( d2fctx *pd2fctx, d2frpt *pd2frpt ) ;

Cette fonction détruit l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet état que vous voulez détruire dans pd2frpt.

d2frptdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2rpt *pd2frpt_src, d2frpt **ppd2frpt_dst, text *new_name ) ;

Cette fonction duplique l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet état dans pd2frpt_src, un identificateur pour que la fonction stocke la destination dans ppd2frpt_dst et un pointeur pour le nom du nouvel objet état (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet état indiqué et le stocker à l'emplacement ppd2frpt_dst.

d2frptgb_GetBoolProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2frptgn_GetNumProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2frptgt_GetTextProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'objet état indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2frptgo_GetObjectProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2frptgp_GetBlobProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet état dans pd2frpt, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2frptsb_SetBoolProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2frptsn_SetNumProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2frptst_SetTextProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de type texte de l'objet état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2frptso_SetObjectProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objetde l'état indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2frptsp_SetBlobProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet état dans pd2frpt, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2frpthp_HasProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum ) ;

Cette fonction interroge l'objet état indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet état dans pd2frpt et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frptip_InheritProp( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum ) ;

Cette fonction active l'objet état indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet état dans pd2frpt et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frptii_IspropInherited( d2fctx *pd2fctx, d2frpt *pd2frpt, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet état dans pd2frpt et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2frptsc_SubClass( d2fctx *pd2fctx, d2frpt *pd2frpt, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet état indiqué (pd2frpt) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'état dans pd2frpt, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2frptis_IsSubclassed	( d2fctx *pd2fctx, d2frpt *pd2frpt ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet état dans pd2frpt.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet page onglet

  Rubriques connexes

La présente section décrit les fonctions de l'objet page onglet de Open API de Form Builder.

d2ftbpcr_Create( d2fctx *pd2fctx, d2fob *parent, d2ftbp **ppd2ftbp, text *name ) ;

Cette fonction crée un objet page onglet. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet page onglet dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2ftbp et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet page onglet dans ppd2ftbp.

d2ftbpde_Destroy( d2fctx *pd2fctx, d2ftbp *pd2ftbp ) ;

Cette fonction détruit l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet page onglet que vous voulez détruire dans pd2ftbp.

d2ftbpdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2tbp *pd2ftbp_src, d2ftbp **ppd2ftbp_dst, text *new_name ) ;

Cette fonction duplique l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet page onglet dans pd2ftbp_src, un identificateur pour que la fonction stocke la destination dans ppd2ftbp_dst et un pointeur pour le nom du nouvel objet page onglet (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet page onglet indiqué et le stocker à l'emplacement ppd2ftbp_dst.

d2ftbpgb_GetBoolProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2ftbpgn_GetNumProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2ftbpgt_GetTextProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'objet page onglet indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2ftbpgo_GetObjectProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2ftbpgp_GetBlobProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet page onglet dans pd2ftbp, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2ftbpsb_SetBoolProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2ftbpsn_SetNumProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2ftbpst_SetTextProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2ftbpso_SetObjectProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objetde l'objet page onglet indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2ftbpsp_SetBlobProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet page onglet dans pd2ftbp, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2ftbphp_HasProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum ) ;

Cette fonction interroge l'objet page onglet indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet page onglet dans pd2ftbp et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ftbpip_InheritProp( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum ) ;

Cette fonction active l'objet page onglet indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet page onglet dans pd2ftbp et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ftbpii_IspropInherited( d2fctx *pd2fctx, d2ftbp *pd2ftbp, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet page onglet dans pd2ftbp et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ftbpsc_SubClass( d2fctx *pd2fctx, d2ftbp *pd2ftbp, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet page onglet indiqué (pd2ftbp) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet page onglet dans pd2ftbp, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2ftbpis_IsSubclassed	( d2fctx *pd2fctx, d2ftbp *pd2ftbp ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet page onglet dans pd2ftbp.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet déclencheur

  Rubriques connexes

La présente section décrit les fonctions de l'objet déclencheur de Open API de Form Builder.

d2ftrgcr_Create( d2fctx *pd2fctx, d2fob *parent, d2ftrg **ppd2ftrg, text *name ) ;

Cette fonction crée un objet déclencheur. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet déclencheur dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2ftrg et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet déclencheur dans ppd2ftrg.

d2ftrgde_Destroy( d2fctx *pd2fctx, d2ftrg *pd2ftrg ) ;

Cette fonction détruit l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet déclencheur que vous voulez détruire dans pd2ftrg.

d2ftrgdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2trg *pd2ftrg_src, d2ftrg **ppd2ftrg_dst, text *new_name ) ;

Cette fonction duplique l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet déclencheur dans pd2ftrg_src, un identificateur pour que la fonction stocke la destination dans ppd2ftrg_dst et un pointeur pour le nom du nouvel objet déclencheur (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet déclencheur indiqué et le stocker à l'emplacement ppd2ftrg_dst.

d2ftrgco_CompileObj( d2fctx *pd2fctx, d2ftrg *pdftrg) ;

Cette fonction compile tout le code PL/SQL associé à l'objet déclencheur indiqué (pdftrg). Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2ftrg.

d2ftrggb_GetBoolProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2ftrggn_GetNumProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2ftrggt_GetTextProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp, pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'objet déclencheur indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2ftrggo_GetObjectProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2ftrggp_GetBlobProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet déclencheur dans pd2ftrg, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2ftrgsb_SetBoolProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2ftrgsn_SetNumProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2ftrgst_SetTextProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2ftrgso_SetObjectProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété de l'objet déclencheur indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2ftrgsp_SetBlobProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet déclencheur dans pd2ftrg, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2ftrghp_HasProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum ) ;

Cette fonction interroge l'objet déclencheur indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet déclencheur dans pd2ftrg et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ftrgip_InheritProp( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum ) ;

Cette fonction active l'objet déclencheur indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet déclencheur dans pd2ftrg et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ftrgii_IspropInherited( d2fctx *pd2fctx, d2ftrg *pd2ftrg, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet déclencheur dans pd2ftrg et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2ftrgsc_SubClass( d2fctx *pd2fctx, d2ftrg *pd2ftrg, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet déclencheur indiqué (pd2ftrg) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet déclencheur dans pd2ftrg, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2ftrgis_IsSubclassed	( d2fctx *pd2fctx, d2ftrg *pd2ftrg ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet déclencheur dans pd2ftrg.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet attribut visuel

  Rubriques connexes

La présente section décrit les fonctions de l'objet attribut visuel de Open API de Form Builder.

d2fvatcr_Create( d2fctx *pd2fctx, d2fob *parent, d2fvat **ppd2fvat, text *name ) ;

Cette fonction crée un objet attribut visuel. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet attribut visuel dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fvat et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet attribut visuel dans ppd2fvat.

d2fvatde_Destroy( d2fctx *pd2fctx, d2fvat *pd2fvat ) ;

Cette fonction détruit l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet attribut visuel que vous voulez détruire dans pd2fvat.

d2fvatdu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2vat *pd2fvat_src, d2fvat **ppd2fvat_dst, text *new_name ) ;

Cette fonction duplique l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet attribut visuel dans pd2fvat_src, un identificateur pour que la fonction stocke la destination dans ppd2fvat_dst et un pointeur pour le nom du nouvel objet attribut visuel (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet attribut visuel indiqué et le stocker à l'emplacement ppd2fvat_dst.

d2fvatco_CompileObj( d2fctx *pd2fctx, d2fvat *pdfvat) ;

Cette fonction compile tout le code PL/SQL associé à l'objet attribut visuel indiqué (pd2fvat). Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2fvat.

d2fvatgb_GetBoolProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fvatgn_GetNumProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fvatgt_GetTextProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété de texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'objet attribut visuel indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fvatgo_GetObjectProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété d'objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fvatgp_GetBlobProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet attribut visuel dans pd2fvat, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fvatsb_SetBoolProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fvatsn_SetNumProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fvatst_SetTextProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fvatso_SetObjectProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objet attribut visuel indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fvatsp_SetBlobProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet attribut visuel dans pd2fvat, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fvathp_HasProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum ) ;

Cette fonction interroge l'objet attribut visuel indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet attribut visuel dans pd2fvat et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fvatip_InheritProp( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum ) ;

Cette fonction active l'objet attribut visuel indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet attribut visuel dans pd2fvat et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fvatii_IspropInherited( d2fctx *pd2fctx, d2fvat *pd2fvat, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet attribut visuel dans pd2fvat et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fvatsc_SubClass( d2fctx *pd2fctx, d2fvat *pd2fvat, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet attribut visuel indiqué (pd2fvat) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet attribut visuel dans pd2fvat, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fvatis_IsSubclassed	( d2fctx *pd2fctx, d2fvat *pd2fvat ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet attribut visuel dans pd2fvat.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


Fonctions de l'objet fenêtre

  Rubriques connexes

La présente section décrit les fonctions de l'objet fenêtre de Open API de Form Builder.

d2fwincr_Create( d2fctx *pd2fctx, d2fob *parent, d2fwin **ppd2fwin, text *name ) ;

Cette fonction crée un objet fenêtre. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au père du nouvel objet fenêtre dans parent, un identificateur pour que la fonction stocke le nouvel objet dans ppd2fwin et le nom du nouvel objet dans name.

Cette fonction retourne D2FS_SUCCESS si elle peut créer un nouvel objet fenêtre dans ppd2fwin.

d2fwinde_Destroy( d2fctx *pd2fctx, d2fwin *pd2fwin ) ;

Cette fonction détruit l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet fenêtre que vous voulez détruire dans pd2fwin.

d2fwindu_Duplicate( d2fctx *pd2fctx, d2fob *new_parent, d2win *pd2fwin_src, d2fwin **ppd2fwin_dst, text *new_name ) ;

Cette fonction duplique l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur au nouveau père dans new_parent, un pointeur à la source de l'objet fenêtre dans pd2fwin_src, un identificateur pour que la fonction stocke la destination dans ppd2fwin_dst et un pointeur pour le nom du nouvel objet fenêtre (new_name).

Cette fonction retourne D2FS_SUCCESS si elle peut dupliquer l'objet fenêtre indiqué et le stocker à l'emplacement ppd2fwin_dst.

d2fwinco_CompileObj( d2fctx *pd2fctx, d2fwin *pdfwin) ;

Cette fonction compile tout le code PL/SQL associé à l'objet fenêtre indiqué (pd2fwin). Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet que vous voulez compiler dans pd2fwin.

Par exemple, vous pouvez utiliser cette fonction pour compiler tous les objets déclencheurs attachés à une fenêtre et tous les objets déclencheur attachés à tous les objets élément dans une fenêtre.

d2fwingb_GetBoolProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, boolean *pprp ) ;

Cette fonction extrait une propriété de type booléen pour l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur booléenne.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété booléenne dans pprp.

d2fwingn_GetNumProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, number *pprp ) ;

Cette fonction extrait une propriété de type numérique (une constante scalaire réelle) pour l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin, le numéro de propriété dans pnum et un pointeur à pprp, pour stocker la valeur numérique.

Cette fonction retourne D2FS_SUCCESS si elle stocke la valeur de la propriété numérique dans pprp.

d2fwingt_GetTextProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, text **pprp ) ;

Cette fonction extrait une propriété de type texte pour l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin, le numéro de propriété dans pnum et un identificateur de tableau de caractères dans pprp pour que la fonction stocke la valeur de la propriété texte.

Cette fonction retourne D2FS_SUCCESS si elle entre dans le tableau fourni une copie de la valeur de la propriété de texte pour l'objet fenêtre indiqué dans pprp.

Notez que le client doit libérer le texte retourné par cette fonction.

d2fwingo_GetObjectProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait une propriété de type objet de l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction stocke la valeur de la propriété objet.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété d'objet voulue dans pprp.

d2fwingp_GetBlobProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, dvoid **pprp ) ;

Cette fonction extrait la valeur de l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet fenêtre dans pd2fwin, un numéro de propriété dans pnum et un identificateur de pprp, pour que la fonction permette d'accéder à la valeur indiquée par le client.

Cette fonction retourne D2FS_SUCCESS si elle stocke un identificateur de la propriété indiquée par le client dans pprp.

d2fwinsb_SetBoolProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, boolean prp ) ;

Cette fonction définit la valeur de la propriété booléenne de l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin, le numéro de propriété dans pnum et la valeur booléenne dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété booléenne à l'aide de la valeur que vous indiquez dans prp.

d2fwinsn_SetNumProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, number prp ) ;

Cette fonction définit la valeur de la propriété numérique de l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin, le numéro de propriété dans pnum et la valeur numérique dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété numérique à l'aide de la valeur que vous indiquez dans prp.

d2fwinst_SetTextProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, text *prp ) ;

Cette fonction définit la valeur de la propriété de texte de l'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin, le numéro de propriété dans pnum et un identificateur de la valeur de texte dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété du texte indiqué à l'aide de la valeur stockée dans prp.

d2fwinso_SetObjectProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'objet de la propriété d'objet fenêtre indiqué. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin, un numéro de propriété dans pnum et un identificateur de la propriété de l'objet dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit la propriété de l'objet indiqué à l'aide de la valeur stockée dans prp.

d2fwinsp_SetBlobProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum, dvoid *prp ) ;

Cette fonction définit l'identificateur indiqué par le client. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet fenêtre dans pd2fwin, un numéro de propriété dans pnum et un pointeur à la valeur indiquée par le client dans prp.

Cette fonction retourne D2FS_SUCCESS si elle définit l'identificateur indiqué par le client à l'aide de la valeur stockée dans prp.

d2fwinhp_HasProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum ) ;

Cette fonction interroge l'objet fenêtre indiqué, à la recherche de la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, l'objet fenêtre dans pd2fwin et un numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fwinip_InheritProp( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum ) ;

Cette fonction active l'objet fenêtre indiqué pour qu'il hérite la propriété indiquée. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet fenêtre dans pd2fwin et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet a, ou non, été modifié pour hériter la propriété indiquée ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fwinii_IspropInherited( d2fctx *pd2fctx, d2fwin *pd2fwin, ub2 pnum ) ;

Cette fonction vérifie que la propriété de l'objet indiqué est héritée, telle quelle, de l'objet père. Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à l'objet fenêtre dans pd2fwin et le numéro de propriété dans pnum.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que la propriété est, ou non, héritée du père de l'objet indiqué ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".

d2fwinsc_SubClass( d2fctx *pd2fctx, d2fwin *pd2fwin, d2fob *parent, boolean keep_path) ;

Cette fonction retourne D2FS_SUCCESS si l'objet fenêtre indiqué (pd2fwin) devient une sous-classe du père indiqué (parent). Vous indiquez un pointeur au contexte dans pd2fctx, un pointeur à la fenêtre dans pd2fwin, un pointeur à l'objet père dans parent et un indicateur booléen pour enregistrer le chemin d'accès à l'objet père dans keep_path.

Notez que Forms API utilise l'argument booléen keep_path pour enregistrer les informations sur le chemin d'accès réel. Il est conseillé de ne pas définir keep_path à TRUE, car cette information risque d'être perdue si vous changez de machine. Si keep_path est défini à TRUE, Forms API enregistre le chemin réel dans le fichier .fmb. Cela étant, la prochaine fois que l'application Forms sera chargée, selon la façon dont le chemin d'accès à la variable d'environnement Forms 4.5 ou 5.0 est défini, Forms API recherchera l'application Forms père dans l'un des répertoires indiqués, définis par la variable d'environnement.

d2fwinis_IsSubclassed	( d2fctx *pd2fctx, d2fwin *pd2fwin ) ;

Cette fonction vérifie que l'objet indiqué est une sous-classe d'un autre objet. Vous indiquez un pointeur au contexte dans pd2fctx et un pointeur à l'objet fenêtre dans pd2fwin.

Si la fonction réussit, elle retourne D2FS_YES ou D2FS_NO, selon que l'objet indiqué est, ou non, une sous-classe d'un autre objet ; sinon, la fonction peut retourner un certain nombre de valeurs possibles, selon le contexte. Pour connaître la liste complète des valeurs de retour Open Forms API valides, reportez-vous à la section " A propos des codes de retour de fonction Open API ".


A propos des codes de retour de fonction Open API

  Rubriques connexes

La présente section décrit les différents codes de retour de fonction de Open API de Form Builder.

D2FS_SUCCESS

Ce code de retour indique que l'opération a réussi.

D2FS_FAIL

Ce code de retour indique que l'opération a échoué.

D2FS_YES

Ce code de retour indique que l'opération a retourné "YES".

D2FS_NO

Ce code de retour indique que l'opération a retourné "NO".

D2FS_BADARG

Ce code de retour indique que l'un des arguments est erroné.

D2FS_BADCONTEXT

Ce code de retour indique qu'un contexte erroné a été fourni.

D2FS_BADPROP

Ce code de retour indique que la propriété indiquée est erronée.

D2FS_BADTYPE

Ce code de retour indique que le type d'objet est inconnu.

D2FS_DONTHAVE

Ce code de retour indique que l'objet n'a pas la propriété indiquée.

D2FS_GENFAILED

Ce code de retour indique que la génération a échoué.

D2FS_INVALIDDATA

Ce code de retour indique que les données transmises ne sont pas valides.

D2FS_INVALIDINDEX

Ce code de retour indique que l'index n'est pas valide.

D2FS_NOMEMORY

Ce code de retour indique que vous n'avez pas assez de mémoire.

D2FS_NOINSTANCEHANDLE

Ce code de retour indique que l'initialisation a échoué à cause de la réception d'un identificateur d'instance NULL.

Notez que ce code de retour ne s'applique qu'aux plates-formes Microsoft Windows.

D2FS_NOMSGFILE

Ce code de retour indique que le fichier de messages indiqué est introuvable.

D2FS_NOTCONNECTED

Ce code de retour indique que vous n'êtes pas connecté à une base de données.

D2FS_NOTIMPLEMENTED

Ce code de retour indique que l'opération n'est pas disponible à l'heure actuelle.

D2FS_NOTTRANSMODE

Ce code de retour indique que la fonction ne peut être appelée qu'en mode traduction.

D2FS_NULLCONTAINER

Ce code de retour indique que l'opération a retourné un pointeur NULL à l'objet.

D2FS_NULLDATA

Ce code de retour indique que des données NULL ont été transmises à la fonction.

D2FS_NULLOBJ

Ce code de retour indique que l'opération a retourné un objet NULL.

D2FS_NULLPROPERTY

Ce code de retour indique que l'opération a retourné une propriété NULL.

D2FS_OBJNOTFOUND

Ce code de retour indique que l'objet indiqué n'a pas été trouvé.

D2FS_OBJNOTUNIQUE

Ce code de retour indique que l'opération a échoué parce que l'objet en cours de création/stockage n'était pas unique. Il existe déjà un objet portant ce nom.

D2FS_TYPEMISMATCH

Ce code de retour indique que le type que vous avez transmis ne correspond pas à l'objet réel.

D2FS_WARN

Ce code de retour indique que l'opération a partiellement échoué, mais que l'erreur n'était pas fatale.

D2FS_WRONGOBJ

Ce code de retour indique que vous avez fourni un objet inattendu.

D2FS_WRONGPARENT

Ce code de retour indique que vous avez indiqué un père inattendu.


Macros Open API classées par objets

  Rubriques connexes

La présente section décrit les macros telles qu'elles figurent dans les fichiers d'en-tête de Open API de Form Builder. Les fonctions sont classées sur l'objet Open API de l'application Forms associée. Chaque macro comprend la liste des arguments et une brève description.

Macros API par objets

Alertes

Bibliothèques attachées

Blocs

Canevas

Arguments de source de données

Colonnes de source de données

Editeurs

Modules Application Forms

Paramètres d'application Forms

Graphique

Eléments

Correspondance de colonnes d'application Forms

Liste de valeurs

Objets menu

Modules Menu

Eléments menu

Paramètres de menu

Objets (objets génériques)

Groupes d'objets

Fils de groupe d'objets

Bibliothèques d'objets

Unités de programme

Classes de propriété

Boutons d'option

Groupes d'enregistrements

Spécification de colonne de groupes d'enregistrements

Objets relation

Objets état

Pages onglet

Déclencheurs

Attributs visuels

Fenêtres


Macros d'objet alerte

  Rubriques connexes

La présente section décrit les macros de l'objet alerte de Open API de Form Builder.

d2faltg_alt_msg( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ALT_MSG de l'objet alerte sous forme de type texte.

d2faltg_alt_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ALT_STY de l'objet alerte sous forme de type numérique.

d2faltg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'objet alerte sous forme de type texte.

d2faltg_btn_1_lbl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bouton 1 de l'objet alerte sous forme de type texte.

d2faltg_btn_2_lbl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bouton 2 de l'objet alerte sous forme de type texte.

d2faltg_btn_3_lbl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bouton 3 de l'objet alerte sous forme de type texte.

d2faltg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet alerte sous forme d'un pointeur de type dvoid.

d2faltg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet alerte sous forme de type texte.

d2faltg_dflt_alt_btn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bouton d'alerte par défaut de l'objet alerte sous forme de type numérique.

d2faltg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'objet alerte sous forme de type texte.

d2faltg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'objet alerte sous forme de type texte.

d2faltg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'objet alerte sous forme de type numérique.

d2faltg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'objet alerte sous forme de type numérique.

d2faltg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de l'objet alerte sous forme de type numérique.

d2faltg_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'objet alerte sous forme de type numérique.

d2faltg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'objet alerte sous forme de type texte.

d2faltg_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Direction de langue de l'objet alerte sous forme de type numérique.

d2faltg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet alerte sous forme de type objet.

d2faltg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet alerte sous forme de type texte.

d2faltg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet alerte sous forme de type objet.

d2faltg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet alerte sous forme de type objet.

d2faltg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet alerte sous forme de type texte.

d2faltg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet alerte sous forme de type texte.

d2faltg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet alerte sous forme de type numérique.

d2faltg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet alerte sous forme de type numérique.

d2faltg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet alerte sous forme de type texte.

d2faltg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet alerte sous forme de type texte.

d2faltg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet alerte sous forme de type objet.

d2faltg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet alerte sous forme de type objet.

d2faltg_title( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de l'objet alerte sous forme de type texte.

d2faltg_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'objet alerte sous forme de type texte.

d2faltg_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ de l'objet alerte sous forme de type objet.

d2faltg_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_WHITE_ON_BLACK de l'objet alerte sous forme de type booléen.

d2falts_alt_msg( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Message d'alerte de l'objet alerte.

d2falts_alt_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de l'objet alerte.

d2falts_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'objet alerte.

d2falts_btn_1_lbl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bouton 1 de l'objet alerte.

d2falts_btn_2_lbl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bouton 2 de l'objet alerte.

d2falts_btn_3_lbl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bouton 3 de l'objet alerte.

d2falts_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet alerte.

d2falts_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet alerte.

d2falts_dflt_alt_btn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bouton d'alerte par défaut de l'objet alerte.

d2falts_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'objet alerte.

d2falts_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'objet alerte.

d2falts_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'objet alerte.

d2falts_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'objet alerte.

d2falts_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'objet alerte.

d2falts_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'objet alerte.

d2falts_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'objet alerte.

d2falts_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Direction de langue de l'objet alerte.

d2falts_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet alerte.

d2falts_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet alerte.

d2falts_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet alerte.

d2falts_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet alerte.

d2falts_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet alerte.

d2falts_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet alerte.

d2falts_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet alerte.

d2falts_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet alerte.

d2falts_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet alerte.

d2falts_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet alerte.

d2falts_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet alerte.

d2falts_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet alerte.

d2falts_title( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de l'objet alerte.

d2falts_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'objet alerte.

d2falts_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ de l'objet alerte.

d2falts_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Blanc sur noir de l'objet alerte.


Macros d'objet bibliothèque attachée

  Rubriques connexes

La présente section décrit les macros de l'objet bibliothèque attachée de Open API de Form Builder.

d2falbg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de la bibliothèque attachée sous forme de pointeur de type dvoid.

d2falbg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de la bibliothèque attachée sous forme de type texte.

d2falbg_lib_loc( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Emplacement de la bibliothèque PL/SQL de la bibliothèque attachée sous forme de type texte.

d2falbg_lib_src( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Source de bibliothèque PL/SQL de la bibliothèque attachée sous forme de type numérique.

d2falbg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de la bibliothèque attachée sous forme de type texte.

d2falbg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de la bibliothèque attachée sous forme de type objet.

d2falbg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de la bibliothèque attachée sous forme de type objet.

d2falbs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de la bibliothèque attachée.

d2falbs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de la bibliothèque attachée.


Macros d'objet bloc

  Rubriques connexes

La présente section décrit les macros de l'objet bloc de Open API de Form Builder.

d2fblkg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan du bloc sous forme de type texte.

d2fblkg_blk_description( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Description de bloc de données du bloc sous forme de type texte.

d2fblkg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO du bloc sous forme de pointeur de type dvoid.

d2fblkg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires du bloc sous forme de type texte.

d2fblkg_db_blk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de base de données du bloc sous forme de type booléen.

d2fblkg_del_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Suppression autorisée du bloc sous forme de type booléen.

d2fblkg_del_dat_src_arg( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Supprimer argument de source de données du bloc sous forme de type objet.

d2fblkg_del_dat_src_col( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Supprimer colonne de source de données du bloc sous forme de type objet.

d2fblkg_del_proc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Supprimer le nom de procédure du bloc sous forme de type texte.

d2fblkg_dml_ary_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de tableau DML du bloc sous forme de type numérique.

d2fblkg_dml_dat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de cible de données DML du bloc sous forme de type texte.

d2fblkg_dml_dat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de cible de données DML du bloc sous forme de type numérique.

d2fblkg_enfrc_col_security( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Imposer sécurité sur colonne du bloc sous forme de type booléen.

d2fblkg_enfrc_prmry_key( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Imposer clé primaire du bloc sous forme de type booléen.

d2fblkg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage du bloc sous forme de type texte.

d2fblkg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police du bloc sous forme de type texte.

d2fblkg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police du bloc sous forme de type numérique.

d2fblkg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police du bloc sous forme de type numérique.

d2fblkg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police du bloc sous forme de type numérique.

d2fblkg_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police du bloc sous forme de type numérique.

d2fblkg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan du bloc sous forme de type texte.

d2fblkg_ins_dat_src_arg( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INS_DAT_SRC_ARG du bloc sous forme de type objet.

d2fblkg_ins_dat_src_col( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INS_DAT_SRC_COL du bloc sous forme de type objet.

d2fblkg_insrt_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Insertion autorisée du bloc sous forme de type booléen.

d2fblkg_insrt_proc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Insérer le nom de procédure du bloc sous forme de type texte.

d2fblkg_item( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ITEM du bloc sous forme de type objet.

d2fblkg_key_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode clé du bloc sous forme de type numérique.

d2fblkg_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Direction de langue du bloc sous forme de type numérique.

d2fblkg_lock_dat_src( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Verrouiller la source de données du bloc sous forme de type objet.

d2fblkg_lock_dat_src_col( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Verrouiller la colonne de source de données du bloc sous forme de type objet.

d2fblkg_lock_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode de verrouillage du bloc sous forme de type numérique.

d2fblkg_lock_proc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Verrouiller le nom de procédure du bloc sous forme de type texte.

d2fblkg_lst_in_blk_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Répertorié dans le menu Bloc du bloc sous forme de type booléen.

d2fblkg_max_qry_time( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Durée maximum d'interrogation du bloc sous forme de type numérique.

d2fblkg_max_recs_fetched( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MAX_RECORDS_FETCHED du bloc sous forme de type numérique.

d2fblkg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE du bloc sous forme de type objet.

d2fblkg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom du bloc sous forme de type texte.

d2fblkg_navigation_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de navigation du bloc sous forme de type numérique.

d2fblkg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT du bloc sous forme de type objet.

d2fblkg_nxt_navigation_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NXT_NAVIGATION_BLK_OBJ du bloc sous forme de type texte.

d2fblkg_nxt_navigation_blk_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de navigation suivant du bloc sous forme de type objet.

d2fblkg_opt_hint( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Optimizer Hint du bloc sous forme de type texte.

d2fblkg_ordr_by_clause( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clause ORDER BY du bloc sous forme de type texte.

d2fblkg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER du bloc sous forme de type objet.

d2fblkg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM du bloc sous forme de type texte.

d2fblkg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH du bloc sous forme de type texte.

d2fblkg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR du bloc sous forme de type numérique.

d2fblkg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODTYPE du bloc sous forme de type numérique.

d2fblkg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE du bloc sous forme de type texte.

d2fblkg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAME du bloc sous forme de type texte.

d2fblkg_precomp_summ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRECOMP_SUMMNO du bloc sous forme de type booléen.

d2fblkg_prev_navigation_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de navigation précédent du bloc sous forme de type texte.

d2fblkg_prev_navigation_blk_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREV_NAVIGATION_BLK_OBJ du bloc sous forme de type objet.

d2fblkg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS du bloc sous forme de type objet.

d2fblkg_qry_all_recs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interroger tous les enregistrements du bloc sous forme de type booléen.

d2fblkg_qry_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation autorisée du bloc sous forme de type booléen.

d2fblkg_qry_dat_src_arg( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de source de données d'interrogation du bloc sous forme de type objet.

d2fblkg_qry_dat_src_col( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Colonne de source de données d'interrogation du bloc sous forme de type objet.

d2fblkg_qry_dat_src_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de source de données d'interrogation du bloc sous forme de type texte.

d2fblkg_qry_dat_src_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de source de données d'interrogation du bloc sous forme de type numérique.

d2fblkg_rec_ornt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sens des enregistrements du bloc sous forme de type numérique.

d2fblkg_rec_vat_grp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'enregistrement en cours du bloc sous forme de type texte.

d2fblkg_rec_vat_grp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_VAT_GRP_OBJ du bloc sous forme de type objet.

d2fblkg_recs_buffered_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre d'enregistrements en tampon du bloc sous forme de type numérique.

d2fblkg_recs_disp_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre d'enregistrements affiché du bloc sous forme de type numérique.

d2fblkg_recs_fetched_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RECS_FETCHED_COUNT du bloc sous forme de type numérique.

d2fblkg_rel( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REL du bloc sous forme de type objet.

d2fblkg_rev_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Inverser direction du bloc sous forme de type booléen.

d2fblkg_scrlbr_cnv_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas à barre de défilement du bloc sous forme de type texte.

d2fblkg_scrlbr_cnv_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SCRLBR_CNV_OBJ du bloc sous forme de type objet.

d2fblkg_scrlbr_hgt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Hauteur de barre de défilement du bloc sous forme de type numérique.

d2fblkg_srclbr_ornt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sens de la barre de défilement du bloc sous forme de type numérique.

d2fblkg_scrlbr_tbp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Page onglet de barre de défilement du bloc sous forme de type texte.

d2fblkg_scrlbr_tbp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SCRLBR_TSP_OBJ du bloc sous forme de type objet.

d2fblkg_scrlbr_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur de barre de défilement du bloc sous forme de type numérique.

d2fblkg_scrlbr_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de la barre de défilement du bloc sous forme de type numérique.

d2fblkg_scrlbr_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position Y de la barre de défilement du bloc sous forme de type numérique.

d2fblkg_show_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement du bloc sous forme de type booléen.

d2fblkg_sngl_rec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Enregistrement unique du bloc sous forme de type booléen.

d2fblkg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE du bloc sous forme de type objet.

d2fblkg_trigger( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TRIGGER du bloc sous forme de type objet.

d2fblkg_upd_dat_src_arg( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour argument de source de données du bloc sous forme de type objet.

d2fblkg_upd_dat_src_col( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour colonne de source de données du bloc sous forme de type objet.

d2fblkg_updt_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mise à jour autorisée du bloc sous forme de type booléen.

d2fblkg_updt_changed_cols( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour colonnes modifiées seulement du bloc sous forme de type booléen.

d2fblkg_updt_proc_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour nom de procédure du bloc sous forme de type texte.

d2fblkg_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels du bloc sous forme de type texte.

d2fblkg_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ du bloc sous forme de type objet.

d2fblkg_where_clause( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clause WHERE du bloc sous forme de type texte.

d2fblkg_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Blanc sur noir du bloc sous forme de type booléen.

d2fblks_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan du bloc.

d2fblks_blk_description( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Description de bloc de données du bloc.

d2fblks_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO du bloc.

d2fblks_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires du bloc.

d2fblks_db_blk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de base de données du bloc.

d2fblks_del_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Suppression autorisée du bloc.

d2fblks_del_dat_src_arg( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Supprimer argument de source de données du bloc.

d2fblks_del_dat_src_col( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Supprimer colonne de source de données du bloc.

d2fblks_del_proc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Supprimer le nom de procédure du bloc.

d2fblks_dml_ary_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de tableau DML du bloc.

d2fblks_dml_dat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de cible de données DML du bloc.

d2fblks_dml_dat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de cible de données DML du bloc.

d2fblks_enfrc_col_security( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Imposer sécurité sur colonne du bloc.

d2fblks_enfrc_prmry_key( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Imposer clé primaire du bloc.

d2fblks_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage du bloc.

d2fblks_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police du bloc.

d2fblks_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police du bloc.

d2fblks_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police du bloc.

d2fblks_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police du bloc.

d2fblks_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police du bloc.

d2fblks_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan du bloc.

d2fblks_ins_dat_src_arg( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INS_DAT_SRC_ARG du bloc.

d2fblks_ins_dat_src_col( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INS_DAT_SRC_COL du bloc.

d2fblks_insrt_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Insertion autorisée du bloc.

d2fblks_insrt_proc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Insérer le nom de procédure du bloc.

d2fblks_item( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ITEM du bloc.

d2fblks_key_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode clé du bloc.

d2fblks_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Direction de langue du bloc.

d2fblks_lock_dat_src( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Verrouiller la source de données du bloc.

d2fblks_lock_dat_src_col( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Verrouiller la colonne de source de données du bloc.

d2fblks_lock_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode de verrouillage du bloc.

d2fblks_lock_proc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Verrouiller le nom de procédure du bloc.

d2fblks_lst_in_blk_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Répertorié dans le menu Bloc du bloc.

d2fblks_max_qry_time( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Durée maximum d'interrogation du bloc.

d2fblks_max_recs_fetched( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre maximum d'enregistrements extraits du bloc.

d2fblks_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE du bloc.

d2fblks_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom du bloc.

d2fblks_navigation_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de navigation du bloc.

d2fblks_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT du bloc.

d2fblks_nxt_navigation_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NXT_NAVIGATION_BLK_OBJ du bloc.

d2fblks_nxt_navigation_blk_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de navigation suivant du bloc.

d2fblks_opt_hint( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Optimizer Hint du bloc.

d2fblks_ordr_by_clause( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Clause ORDER BY du bloc.

d2fblks_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER du bloc.

d2fblks_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM du bloc.

d2fblks_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH du bloc.

d2fblks_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR du bloc.

d2fblks_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODTYPE du bloc.

d2fblks_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE du bloc.

d2fblks_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAME du bloc.

d2fblks_precomp_summ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PRECOMP_SUMMNO du bloc.

d2fblks_prev_navigation_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de navigation précédent du bloc.

d2fblks_prev_navigation_blk_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREV_NAVIGATION_BLK_OBJ du bloc.

d2fblks_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS du bloc.

d2fblks_qry_all_recs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interroger tous les enregistrements du bloc.

d2fblks_qry_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation autorisée du bloc.

d2fblks_qry_dat_src_arg( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de source de données d'interrogation du bloc.

d2fblks_qry_dat_src_col( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Colonne de source de données d'interrogation du bloc.

d2fblks_qry_dat_src_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de source de données d'interrogation du bloc.

d2fblks_qry_dat_src_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de source de données d'interrogation du bloc.

d2fblks_rec_ornt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sens des enregistrements du bloc.

d2fblks_rec_vat_grp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'enregistrement en cours du bloc.

d2fblks_rec_vat_grp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_VAT_GRP_OBJ du bloc.

d2fblks_recs_buffered_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre d'enregistrements en tampon du bloc.

d2fblks_recs_disp_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre d'enregistrements affiché du bloc.

d2fblks_recs_fetched_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RECS_FETCHED_COUNT du bloc.

d2fblks_rel( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REL du bloc.

d2fblks_rev_dir( ctx, obj, val ) ;

Cette macro définit la valeur de Inverser direction du bloc.

d2fblks_scrlbr_cnv_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas à barre de défilement du bloc.

d2fblks_scrlbr_cnv_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SCRLBR_CNV_OBJ du bloc.

d2fblks_scrlbr_hgt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Hauteur de barre de défilement du bloc.

d2fblks_srclbr_ornt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sens de la barre de défilement du bloc.

d2fblks_scrlbr_tbp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Page onglet de barre de défilement du bloc.

d2fblks_scrlbr_tbp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SCRLBR_TSP_OBJ du bloc.

d2fblks_scrlbr_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur de barre de défilement du bloc.

d2fblks_scrlbr_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de la barre de défilement du bloc.

d2fblks_scrlbr_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position Y de la barre de défilement du bloc.

d2fblks_show_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement du bloc.

d2fblks_sngl_rec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Enregistrement unique du bloc.

d2fblks_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE du bloc.

d2fblks_trigger( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TRIGGER du bloc.

d2fblks_upd_dat_src_arg( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour argument de source de données du bloc.

d2fblks_upd_dat_src_col( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour colonne de source de données du bloc.

d2fblks_updt_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mise à jour autorisée du bloc.

d2fblks_updt_changed_cols( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour colonnes modifiées seulement du bloc.

d2fblks_updt_proc_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour nom de procédure du bloc.

d2fblks_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels du bloc.

d2fblks_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ du bloc.

d2fblks_where_clause( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Clause WHERE du bloc.

d2fblks_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Blanc sur noir du bloc.


Macros d'objet canevas

  Rubriques connexes

La présente section décrit les macros de l'objet canevas de Open API de Form Builder.

d2fcnvg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan du canevas sous forme de type texte.

d2fcnvg_bevel( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Relief du canevas sous forme de type numérique.

d2fcnvg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO du canevas sous forme d'un pointeur de type dvoid.

d2fcnvg_cnv_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de canevas sous forme de type numérique.

d2fcnvg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires du canevas sous forme de type texte.

d2fcnvg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage du canevas sous forme de type texte.

d2fcnvg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police du canevas sous forme de type texte.

d2fcnvg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police du canevas sous forme de type numérique.

d2fcnvg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police du canevas sous forme de type numérique.

d2fcnvg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police du canevas sous forme de type numérique.

d2fcnvg_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police du canevas sous forme de type numérique.

d2fcnvg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan du canevas sous forme de type texte.

d2fcnvg_graphic( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_GRAPHIC du canevas sous forme de type objet.

d2fcnvg_height( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur sous forme de type numérique.

d2fcnvg_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Direction de langue du canevas sous forme de type numérique.

d2fcnvg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE du canevas sous forme de type objet.

d2fcnvg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom du canevas sous forme de type texte.

d2fcnvg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT du canevas sous forme de type objet.

d2fcnvg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER du canevas sous forme de type objet.

d2fcnvg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM du canevas sous forme de type texte.

d2fcnvg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH du canevas sous forme de type texte.

d2fcnvg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR du canevas sous forme de type numérique.

d2fcnvg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYPE du canevas sous forme de type numérique.

d2fcnvg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE du canevas sous forme de type texte.

d2fcnvg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAME du canevas sous forme de type texte.

d2fcnvg_popup_mnu_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu instantané du canevas sous forme de type texte.

d2fcnvg_popup_mnu_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_POPUP_MNU_OBJ du canevas sous forme de type texte.

d2fcnvg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS du canevas sous forme de type objet.

d2fcnvg_raise_on_ent( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher au premier plan sur saisie du canevas sous forme de type booléen.

d2fcnvg_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement horizontale du canevas sous forme de type booléen.

d2fcnvg_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement verticale du canevas sous forme de type booléen.

d2fcnvg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE du canevas sous forme de type objet.

d2fcnvg_tab_att_edge( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bord d'attachement d'onglet du canevas sous forme de type numérique.

d2fcnvg_tab_page( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Page onglet du canevas sous forme de type objet.

d2fcnvg_tab_style( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style d'onglet du canevas sous forme de type numérique.

d2fcnvg_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels du canevas sous forme de type texte.

d2fcnvg_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ du canevas sous forme de type objet.

d2fcnvg_visible( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible du canevas sous forme de type booléen.

d2fcnvg_vprt_hgt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Hauteur de la lucarne du canevas sous forme de type numérique.

d2fcnvg_vprt_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur de la lucarne du canevas sous forme de type numérique.

d2fcnvg_vprt_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de la lucarne du canevas sous forme de type numérique.

d2fcnvg_vprt_x_pos_on_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de la lucarne sur le canevas sous forme de type numérique.

d2fcnvg_vprt_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position Y de la lucarne du canevas sous forme de type numérique.

d2fcnvg_vprt_y_pos_on_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position Y de la lucarne sur le canevas sous forme de type numérique.

d2fcnvg_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Blanc sur noir du canevas sous forme de type booléen.

d2fcnvg_width( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur sous forme de type numérique.

d2fcnvg_wnd_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Fenêtre du canevas sous forme de type texte.

d2fcnvg_wnd_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_WND_OBJ du canevas sous forme de type objet.

d2fcnvs_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan du canevas.

d2fcnvs_bevel( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Relief du canevas.

d2fcnvs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO du canevas.

d2fcnvs_cnv_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de canevas.

d2fcnvs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires du canevas.

d2fcnvs_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage du canevas.

d2fcnvs_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police du canevas.

d2fcnvs_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police du canevas.

d2fcnvs_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police du canevas.

d2fcnvs_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police du canevas.

d2fcnvs_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police du canevas.

d2fcnvs_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan du canevas.

d2fcnvs_graphic( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_GRAPHIC du canevas.

d2fcnvs_height( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur du canevas.

d2fcnvs_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Direction de langue du canevas.

d2fcnvs_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE du canevas.

d2fcnvs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom du canevas.

d2fcnvs_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT du canevas.

d2fcnvs_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER du canevas.

d2fcnvs_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM du canevas.

d2fcnvs_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH du canevas.

d2fcnvs_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR du canevas.

d2fcnvs_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYPE du canevas.

d2fcnvs_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE du canevas.

d2fcnvs_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAME du canevas.

d2fcnvs_popup_mnu_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu instantané du canevas.

d2fcnvs_popup_mnu_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_POPUP_MNU_OBJ du canevas.

d2fcnvs_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS du canevas.

d2fcnvs_raise_on_ent( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher au premier plan sur saisie du canevas.

d2fcnvs_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement horizontale du canevas.

d2fcnvs_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement verticale du canevas.

d2fcnvs_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE du canevas.

d2fcnvs_tab_att_edge( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bord d'attachement d'onglet du canevas.

d2fcnvs_tab_page( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Page onglet du canevas.

d2fcnvs_tab_style( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style d'onglet du canevas.

d2fcnvs_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels du canevas.

d2fcnvs_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ du canevas.

d2fcnvs_visible( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible du canevas.

d2fcnvs_vprt_hgt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Hauteur de la lucarne du canevas.

d2fcnvs_vprt_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur de la lucarne du canevas.

d2fcnvs_vprt_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de la lucarne du canevas.

d2fcnvs_vprt_x_pos_on_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de la lucarne sur le canevas du canevas.

d2fcnvs_vprt_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position Y de la lucarne du canevas.

d2fcnvs_vprt_y_pos_on_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position Y de la lucarne sur le canevas du canevas.

d2fcnvs_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Blanc sur noir du canevas.

d2fcnvs_width( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur du canevas.

d2fcnvs_wnd_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Fenêtre du canevas.

d2fcnvs_wnd_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_WND_OBJ du canevas.


Macros d'objet argument de source de données

  Rubriques connexes

La présente section décrit les macros de l'objet argument de source de données de Open API de Form Builder.

d2fdsag_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet argument de source de données sous forme d'un pointeur de type dvoid.

d2fdsag_dsa_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_MODE de l'objet argument de source de données sous forme de type numérique.

d2fdsag_dsa_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_NAM de l'objet argument de source de données sous forme de type texte.

d2fdsag_dsa_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_TYP de l'objet argument de source de données sous forme de type numérique.

d2fdsag_dsa_typ_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_TYP_NAM de l'objet argument de source de données sous forme de type texte.

d2fdsag_dsa_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_VAL de l'objet argument de source de données sous forme de type texte.

d2fdsag_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet argument de source de données sous forme de type objet.

d2fdsag_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet argument de source de données sous forme de type objet.

d2fdsas_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet argument de source de données.

d2fdsas_dsa_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_MODE de l'objet argument de source de données.

d2fdsas_dsa_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_NAM de l'objet argument de source de données.

d2fdsas_dsa_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_TYP de l'objet argument de source de données.

d2fdsas_dsa_typ_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_TYP_NAM de l'objet argument de source de données.

d2fdsas_dsa_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_VAL de l'objet argument de source de données.


Macros d'objet colonne de source de données

  Rubriques connexes

La présente section décrit les macros de l'objet colonne de source de données de Open API de Form Builder.

d2fdscg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet colonne de source de données sous forme d'un pointeur de type dvoid.

d2fdscg_dsc_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_LEN de l'objet colonne de source de données sous forme de type numérique.

d2fdscg_dsc_mandatory( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_MANDATORY de l'objet colonne de source de données sous forme de type booléen.

d2fdscg_dsc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_NAM de l'objet colonne de source de données sous forme de type texte.

d2fdscg_dsc_precision( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_PRECISION de l'objet colonne de source de données sous forme de type numérique.

d2fdscg_dsc_scale( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_SCALE de l'objet colonne de source de données sous forme de type numérique.

d2fdscg_dsc_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_TYP de l'objet colonne de source de données sous forme de type numérique.

d2fdscg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet colonne de source de données sous forme de type objet.

d2fdscg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet colonne de source de données sous forme de type objet.

d2fdscs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet colonne de source de données

d2fdscs_dsc_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_LEN de l'objet colonne de source de données.

d2fdscs_dsc_mandatory( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_MANDATORY de l'objet colonne de source de données.

d2fdscs_dsc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_NAM de l'objet colonne de source de données.

d2fdscs_dsc_precision( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_PRECISION de l'objet colonne de source de données.

d2fdscs_dsc_scale( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_SCALE de l'objet colonne de source de données.

d2fdscs_dsc_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_TYP de l'objet colonne de source de données.


Macros d'objet éditeur

  Rubriques connexes

La présente section décrit les macros de l'objet éditeur de Open API de Form Builder.

d2fedtg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'objet éditeur sous forme de type texte.

d2fedtg_btm_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de bas de page de l'objet éditeur sous forme de type texte.

d2fedtg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet éditeur sous forme d'un pointeur de type dvoid.

d2fedtg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet éditeur sous forme de type texte.

d2fedtg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'objet éditeur sous forme de type texte.

d2fedtg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'objet éditeur sous forme de type texte.

d2fedtg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'objet éditeur sous forme de type numérique.

d2fedtg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'objet éditeur sous forme de type numérique.

d2fedtg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de l'objet éditeur sous forme de type numérique.

d2fedtg_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'objet éditeur sous forme de type numérique.

d2fedtg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'objet éditeur sous forme de type texte.

d2fedtg_height( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Hauteur de l'objet éditeur sous forme de type numérique.

d2fedtg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet éditeur sous forme de type objet.

d2fedtg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet éditeur sous forme de type texte.

d2fedtg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet éditeur sous forme de type objet.

d2fedtg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet éditeur sous forme de type objet.

d2fedtg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet éditeur sous forme de type texte.

d2fedtg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet éditeur sous forme de type texte.

d2fedtg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet éditeur sous forme de type numérique.

d2fedtg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet éditeur sous forme de type numérique.

d2fedtg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet éditeur sous forme de type texte.

d2fedtg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet éditeur sous forme de type texte.

d2fedtg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet éditeur sous forme de type objet.

d2fedtg_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement horizontale de l'objet éditeur sous forme de type booléen.

d2fedtg_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement verticale de l'objet éditeur sous forme de type booléen.

d2fedtg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet éditeur sous forme de type objet.

d2fedtg_title( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de l'objet éditeur sous forme de type texte.

d2fedtg_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'objet éditeur sous forme de type texte.

d2fedtg_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ de l'objet éditeur sous forme de type objet.

d2fedtg_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Blanc sur noir de l'objet éditeur sous forme de type booléen.

d2fedtg_width( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur de l'objet éditeur sous forme de type numérique.

d2fedtg_wrap_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de césure de l'objet éditeur sous forme de type numérique.

d2fedtg_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X/Position Y de l'objet éditeur sous forme de type numérique.

d2fedtg_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X/Position Y de l'objet éditeur sous forme de type numérique.

d2fedts_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'objet éditeur.

d2fedts_btm_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de bas de page de l'objet éditeur.

d2fedts_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet éditeur.

d2fedts_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet éditeur.

d2fedts_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'objet éditeur.

d2fedts_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'objet éditeur.

d2fedts_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'objet éditeur.

d2fedts_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'objet éditeur.

d2fedts_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'objet éditeur.

d2fedts_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'objet éditeur.

d2fedts_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'objet éditeur.

d2fedts_height( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Hauteur de l'objet éditeur.

d2fedts_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet éditeur.

d2fedts_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet éditeur.

d2fedts_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet éditeur.

d2fedts_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet éditeur.

d2fedts_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet éditeur.

d2fedts_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet éditeur.

d2fedts_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet éditeur.

d2fedts_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet éditeur.

d2fedts_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet éditeur.

d2fedts_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet éditeur.

d2fedts_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet éditeur.

d2fedts_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement horizontale de l'objet éditeur.

d2fedts_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement verticale de l'objet éditeur.

d2fedts_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet éditeur.

d2fedts_title( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de l'objet éditeur.

d2fedts_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'objet éditeur.

d2fedts_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ de l'objet éditeur.

d2fedts_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Blanc sur noir de l'objet éditeur.

d2fedts_width( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur de l'objet éditeur.

d2fedts_wrap_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de césure de l'objet éditeur.

d2fedts_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X/Position Y de l'objet éditeur.

d2fedts_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X/Position Y de l'objet éditeur.


Macros d'objet module Application Forms

  Rubriques connexes

La présente section décrit les macros de l'objet module Application Forms de Open API de Form Builder.

d2ffmdg_alert( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ALERT de l'objet module Application Forms sous forme de type objet.

d2ffmdg_att_lib( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ATT_LIB de l'objet module Application Forms sous forme de type objet.

d2ffmdg_block( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_BLOCK de l'objet module Application Forms sous forme de type objet.

d2ffmdg_Canevas( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CANEVAS de l'objet module Application Forms sous forme de type objet.

d2ffmdg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet module Application Forms sous forme d'un pointeur de type dvoid.

d2ffmdg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet module Application Forms sous forme de type texte.

d2ffmdg_console_win( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Fenêtre de commande de l'objet module Application Forms sous forme de type texte.

d2ffmdg_crsr_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode curseur de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_defer_req_enf( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DEFER_REQ_ENF de l'objet module Application Forms sous forme de type booléen.

d2ffmdg_editor( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Editeur de l'objet module Application Forms sous forme de type objet.

d2ffmdg_form_param( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FORM_PARAM de l'objet module Application Forms sous forme de type objet.

d2ffmdg_frst_navigation_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Premier bloc de navigation de l'objet module Application Forms sous forme de type texte.

d2ffmdg_frst_navigation_blk_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FRST_NAVIGATION_BLK_OBJ de l'objet module Application Forms sous forme de type objet.

d2ffmdg_horz_tlbr_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas à barre d'outils horizontale de l'objet module Application Forms sous forme de type texte.

d2ffmdg_inhrt_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INHRT_STY de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_init_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu initial de l'objet module Application Forms sous forme de type texte.

d2ffmdg_interaction_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode d'interaction de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_isolation_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode d'isolation de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Direction de langue de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_lov( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Liste de valeurs de l'objet module Application Forms sous forme de type objet.

d2ffmdg_max_qry_time( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Durée maximum d'interrogation de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_max_recs_fetched( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre maximum d'enregistrements extraits de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_menu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MENU de l'objet module Application Forms sous forme de type objet.

d2ffmdg_mnu_mod( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Module Menu de l'objet module Application Forms.

d2ffmdg_mnu_role( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Rôles du module Menu de l'objet module Application Forms sous forme de type texte.

d2ffmdg_mnu_src( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Source du menu de l'objet module Application Forms sous forme de type texte.

d2ffmdg_mnu_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de menu de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_mouse_navigation_lmt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Limite de navigation à la souris de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet module Application Forms sous forme de type texte.

d2ffmdg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet module Application Forms sous forme de type objet.

d2ffmdg_obj_grp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OBJ_GRP de l'objet module Application Forms sous forme de type objet.

d2ffmdg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet module Application Forms sous forme de type objet.

d2ffmdg_prog_unit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PROG_UNIT de l'objet module Application Forms sous forme de type objet.

d2ffmdg_prop_class( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Classe de propriété de l'objet module Application Forms sous forme de type objet.

d2ffmdg_rec_grp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'enregistrements de l'objet module Application Forms sous forme de type objet.

d2ffmdg_rec_vat_grp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'enregistrement en cours de l'objet module Application Forms sous forme de type texte.

d2ffmdg_rec_vat_grp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_VAT_GRP_OBJ de l'objet module Application Forms sous forme de type objet.

d2ffmdg_report( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REPORT de l'objet module Application Forms sous forme de type objet.

d2ffmdg_runtime_comp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RUNTIME_COMP de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_svpnt_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode savepoint de l'objet module Application Forms sous forme de type booléen.

d2ffmdg_title( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de l'objet module Application Forms sous forme de type texte.

d2ffmdg_trigger( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TRIGGER de l'objet module Application Forms sous forme de type objet.

d2ffmdg_use_3D_cntrls( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Utiliser contrôles 3D de l'objet module Application Forms sous forme de type booléen.

d2ffmdg_validation_unit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Unité de validation de l'objet module Application Forms sous forme de type numérique.

d2ffmdg_vert_tlbr_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas à barre d'outils verticale de l'objet module Application Forms sous forme de type texte.

d2ffmdg_vis_attr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VIS_ATTR de l'objet module Application Forms sous forme de type objet.

d2ffmdg_window( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Fenêtre de l'objet module Application Forms sous forme de type objet.

d2ffmds_alert( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ALERT de l'objet module Application Forms.

d2ffmds_att_lib( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ATT_LIB de l'objet module Application Forms.

d2ffmds_block( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_BLOCK de l'objet module Application Forms.

d2ffmds_Canevas( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CANEVAS de l'objet module Application Forms.

d2ffmds_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet module Application Forms.

d2ffmds_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet module Application Forms.

d2ffmds_console_win( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Fenêtre de commande de l'objet module Application Forms.

d2ffmds_crsr_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode curseur de l'objet module Application Forms.

d2ffmds_defer_req_enf( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DEFER_REQ_ENF de l'objet module Application Forms.

d2ffmds_editor( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Editeur de l'objet module Application Forms.

d2ffmds_form_param( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FORM_PARAM de l'objet module Application Forms.

d2ffmds_frst_navigation_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Premier bloc de navigation de l'objet module Application Forms.

d2ffmds_frst_navigation_blk_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FRST_NAVIGATION_BLK_OBJ de l'objet module Application Forms.

d2ffmds_horz_tlbr_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas à barre d'outils horizontale de l'objet module Application Forms.

d2ffmds_inhrt_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INHRT_STY de l'objet module Application Forms.

d2ffmds_init_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu initial de l'objet module Application Forms.

d2ffmds_interaction_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode d'interaction de l'objet module Application Forms.

d2ffmds_isolation_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode d'isolation de l'objet module Application Forms.

d2ffmds_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Direction de langue de l'objet module Application Forms.

d2ffmds_lov( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Liste de valeurs de l'objet module Application Forms.

d2ffmds_max_qry_time( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Durée maximum d'interrogation de l'objet module Application Forms.

d2ffmds_max_recs_fetched( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre maximum d'enregistrements extraits de l'objet module Application Forms.

d2ffmds_menu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MENU de l'objet module Application Forms.

d2ffmds_mnu_mod( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Module menu de l'objet module Application Forms.

d2ffmds_mnu_role( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Rôles du module Menu de l'objet module Application Forms.

d2ffmds_mnu_src( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Source du menu de l'objet module Application Forms.

d2ffmds_mnu_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de menu de l'objet module Application Forms.

d2ffmds_mouse_navigation_lmt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Limite de navigation à la souris de l'objet module Application Forms.

d2ffmds_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet module Application Forms.

d2ffmds_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet module Application Forms.

d2ffmds_obj_grp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OBJ_GRP de l'objet module Application Forms.

d2ffmds_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet module Application Forms.

d2ffmds_prog_unit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROG_UNIT de l'objet module Application Forms.

d2ffmds_prop_class( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Classe de propriété de l'objet module Application Forms.

d2ffmds_rec_grp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'enregistrements de l'objet module Application Forms.

d2ffmds_rec_vat_grp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'enregistrement en cours de l'objet module Application Forms.

d2ffmds_rec_vat_grp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_VAT_GRP_OBJ de l'objet module Application Forms.

d2ffmds_report( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REPORT de l'objet module Application Forms.

d2ffmds_runtime_comp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RUNTIME_COMP de l'objet module Application Forms.

d2ffmds_svpnt_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode savepoint de l'objet module Application Forms.

d2ffmds_title( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de l'objet module Application Forms.

d2ffmds_trigger( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TRIGGER de l'objet module Application Forms.

d2ffmds_use_3D_cntrls( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Utiliser contrôles 3D de l'objet module Application Forms.

d2ffmds_validation_unit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Unité de validation de l'objet module Application Forms.

d2ffmds_vert_tlbr_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas à barre d'outils verticale de l'objet module Application Forms.


Macros d'objet paramètre d'application Forms

  Rubriques connexes

La présente section décrit les macros de l'objet paramètre de Open API de Form Builder.

d2ffpmg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet paramètre d'application Forms sous la forme d'un pointeur de type dvoid.

d2ffpmg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet paramètre d'application Forms sous forme de type texte.

d2ffpmg_max_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur maximum de l'objet paramètre d'application Forms sous forme de type numérique.

d2ffpmg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet paramètre d'application Forms sous forme de type objet.

d2ffpmg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet paramètre d'application Forms sous forme de type texte.

d2ffpmg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet paramètre d'application Forms sous forme de type objet.

d2ffpmg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet paramètre d'application Forms sous forme de type objet.

d2ffpmg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet paramètre d'application Forms sous forme de type texte.

d2ffpmg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet paramètre d'application Forms sous forme de type texte.

d2ffpmg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet paramètre d'application Forms sous forme de type numérique.

d2ffpmg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet paramètre d'application Forms sous forme de type numérique.

d2ffpmg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet paramètre d'application Forms sous forme de type texte.

d2ffpmg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet paramètre d'application Forms sous forme de type texte.

d2ffpmg_param_dat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de données de paramètre de l'objet paramètre d'application Forms sous forme de type numérique.

d2ffpmg_param_init_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur initiale de paramètre de l'objet paramètre d'application Forms sous forme de type texte.

d2ffpmg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet paramètre d'application Forms sous forme de type objet.

d2ffpmg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet paramètre d'application Forms sous forme de type objet.

d2ffpms_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet paramètre d'application Forms.

d2ffpms_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet paramètre d'application Forms.

d2ffpms_max_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur maximum de l'objet paramètre d'application Forms.

d2ffpms_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet paramètre d'application Forms.

d2ffpms_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet paramètre d'application Forms.

d2ffpms_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet paramètre d'application Forms.

d2ffpms_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet paramètre d'application Forms.

d2ffpms_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet paramètre d'application Forms.

d2ffpms_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet paramètre d'application Forms.

d2ffpms_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet paramètre d'application Forms.

d2ffpms_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet paramètre d'application Forms.

d2ffpms_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet paramètre d'application Forms.

d2ffpms_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet paramètre d'application Forms.

d2ffpms_param_dat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de données de paramètre de l'objet paramètre d'application Forms.

d2ffpms_param_init_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur initiale de paramètre de l'objet paramètre d'application Forms.


Macros d'objet graphique

  Rubriques connexes

La présente section décrit les macros de l'objet graphique de Open API de Form Builder.

d2fgrag_allow_expansion( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autoriser développement de l'objet graphique sous forme de type booléen.

d2fgrag_allow_mlt_lin_prmpts( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autoriser invites multilignes de l'objet graphique sous forme de type booléen.

d2fgrag_allow_strt_att_prmpts( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autoriser invites de début attachées de l'objet graphique sous forme de type booléen.

d2fgrag_allow_top_att_prmpts( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autoriser invites supérieures attachées de l'objet graphique sous forme de type booléen.

d2fgrag_arrow_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de flèche de l'objet graphique sous forme de type numérique.

d2fgrag_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'objet graphique sous forme de type texte.

d2fgrag_bevel( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Relief de l'objet graphique sous forme de type numérique.

d2fgrag_bounding_bx_scalable( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Boîte englobante variable de l'objet graphique sous forme de type booléen.

d2fgrag_cap_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de bord d'objet de l'objet graphique sous forme de type numérique.

d2fgrag_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet graphique sous forme de curseur de type dvoid.

d2fgrag_clip_hgt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Hauteur du rectangle de découpe de l'objet graphique sous forme de type numérique.

d2fgrag_clip_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur du rectangle de découpe de l'objet graphique sous forme de type numérique.

d2fgrag_clip_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine X du rectangle de découpe de l'objet graphique sous forme de type numérique.

d2fgrag_clip_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine Y du rectangle de découpe de l'objet graphique sous forme de type numérique.

d2fgrag_closed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Indicateur de polygone/Fermeture d'arc de l'objet graphique sous forme de type booléen.

d2fgrag_corner_radius_x( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine X du rayon de l'angle du rectangle arrondi de l'objet graphique sous forme de type numérique.

d2fgrag_corner_radius( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine Y du rayon de l'angle du rectangle arrondi de l'objet graphique sous forme de type numérique.

d2fgrag_cstm_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement personnalisé d'objet texte de l'objet graphique sous forme de type numérique.

d2fgrag_dash_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de tiret de bord d'objet de l'objet graphique sous forme de type numérique.

d2fgrag_disp_qlty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Qualité de l'affichage de l'objet graphique sous forme de type numérique.

d2fgrag_dist_btwn_recs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Distance entre enregistrements de l'objet graphique sous forme de type numérique.

d2fgrag_dither( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Image de trame de graphique de l'objet graphique sous forme de type booléen.

d2fgrag_edge_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de bord de l'objet de l'objet graphique sous forme de type texte.

d2fgrag_edge_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de bord d'objet de l'objet graphique sous forme de type texte.

d2fgrag_edge_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_EDGE_PAT de l'objet graphique sous forme de type texte.

d2fgrag_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'objet graphique sous forme de type texte.

d2fgrag_fixed_bounding_bx( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FIXED_BOUNDING_BX de l'objet graphique sous forme de type booléen.

d2fgrag_font_scaleable( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille en points proportionnelle à l'objet de l'objet graphique sous forme de type booléen.

d2fgrag_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'objet graphique sous forme de type texte.

d2fgrag_frame_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de cadre de l'objet graphique sous forme de type numérique.

d2fgrag_frame_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de cadre de l'objet graphique sous forme de type texte.

d2fgrag_frame_ttl_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de titre de cadre de l'objet graphique sous forme de type numérique.

d2fgrag_frame_ttl_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de titre de cadre de l'objet graphique sous forme de type texte.

d2fgrag_frame_ttl_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de titre de cadre de l'objet graphique sous forme de type texte.

d2fgrag_frame_ttl_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de titre de cadre de l'objet graphique sous forme de type texte.

d2fgrag_frame_ttl_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de titre de cadre de l'objet graphique sous forme de type numérique.

d2fgrag_frame_ttl_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de titre de cadre de l'objet graphique sous forme de type numérique.

d2fgrag_frame_ttl_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de titre de cadre de l'objet graphique sous forme de type numérique.

d2fgrag_frame_ttl_font_weight( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de titre de cadre de l'objet graphique sous forme de type numérique.

d2fgrag_fram_ttl_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de titre de cadre de l'objet graphique sous forme de type texte.

d2fgrag_frame_ttl_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage de titre de cadre de l'objet graphique sous forme de type numérique.

d2fgrag_frame_ttl_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de titre de cadre de l'objet graphique sous forme de type numérique.

d2fgrag_frame_ttl_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de titre de cadre de l'objet graphique sous forme de type texte.

d2fgrag_frame_ttl_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FRAME_TTL_VAT_OBJ de l'objet graphique sous forme de type objet.

d2fgrag_gra_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police graphique de l'objet graphique sous forme de type texte.

d2fgrag_gra_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police graphique de l'objet graphique sous forme de type numérique.

d2fgrag_gra_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police graphique de l'objet graphique sous forme de type numérique.

d2fgrag_gra_text( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Texte graphique de l'objet graphique sous forme de type texte.

d2fgrag_graphic( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_GRAPHIC de l'objet graphique sous forme de type objet.

d2fgrag_graphics_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'objet graphique de l'objet graphique sous forme de type numérique.

d2fgrag_height( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet graphique sous forme de type numérique.

d2fgrag_horz_jst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification horizontale d'objet texte de l'objet graphique sous forme de type numérique.

d2fgrag_horz_margn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Marge horizontale de l'objet graphique sous forme de type numérique.

d2fgrag_horz_obj_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'objet horizontal de l'objet graphique sous forme de type numérique.

d2fgrag_horz_orgn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position horizontale par rapport à l'origine de l'objet graphique sous forme de type numérique.

d2fgrag_internal_end_angle( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INTERNAL_END_ANGLE de l'objet graphique sous forme de type numérique.

d2fgrag_internal_lin_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INTERNAL_END_WID de l'objet graphique sous forme de type numérique.

d2fgrag_internal_rotation_angle( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INTERNAL_ROTATION_ANGLE de l'objet graphique sous forme de type numérique.

d2fgrag_internal_strt_angle( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INTERNAL_STRT_ANGLE de l'objet graphique sous forme de type numérique.

d2fgrag_join_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de jointure de bord d'objet de l'objet graphique sous forme de type numérique.

d2fgrag_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Direction de langue de l'objet graphique sous forme de type numérique.

d2fgrag_laayout_data_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de données de présentation de l'objet graphique sous forme de type texte.

d2fgrag_layout_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de présentation de l'objet graphique sous forme de type numérique.

d2fgrag_lin_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de trait de l'objet graphique sous forme de type numérique.

d2fgrag_max_objs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre maximum d'objets par ligne de l'objet graphique sous forme de type numérique.

d2fgrag_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet graphique sous forme de type objet.

d2fgrag_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet graphique sous forme de type texte.

d2fgrag_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet graphique sous forme de type objet.

d2fgrag_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet graphique sous forme de type objet.

d2fgrag_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet graphique sous forme de type texte.

d2fgrag_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet graphique sous forme de type texte.

d2fgrag_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet graphique sous forme de type numérique.

d2fgrag_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet graphique sous forme de type numérique.

d2fgrag_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet graphique sous forme de type texte.

d2fgrag_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet graphique sous forme de type texte.

d2fgrag_point( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'objet graphique sous forme de type objet.

d2fgrag_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet graphique sous forme de type objet.

d2fgrag_recs_disp_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre d'enregistrements affiché de l'objet graphique sous forme de type numérique.

d2fgrag_scrlbr_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de barre de défilement de l'objet graphique sous forme de type numérique.

d2fgrag_scrlbr_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur de barre de défilement de l'objet graphique sous forme de type numérique.

d2fgrag_show_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SHOW_SCRLBR de l'objet graphique sous forme de type booléen.

d2fgrag_shrinkwrap( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Comprimer de l'objet graphique sous forme de type booléen.

d2fgrag_sngl_obj_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement d'un objet de l'objet graphique sous forme de type numérique.

d2fgrag_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet graphique sous forme de type objet.

d2fgrag_strt_prmpt_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de l'invite de début de l'objet graphique sous forme de type numérique.

d2fgrag_strt_prmpt_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage de l'invite de début de l'objet graphique sous forme de type numérique.

d2fgrag_tbp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TBP_NAM de l'objet graphique sous forme de type texte.

d2fgrag_tbp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TBP_OBJ de l'objet graphique sous forme de type objet.

d2fgrag_top_prmpt_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de l'invite supérieure de l'objet graphique sous forme de type numérique.

d2fgrag_top_prmpt_pfst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage de l'invite supérieure de l'objet graphique sous forme de type numérique.

d2fgrag_ttl_reading_ordr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Séquence de lecture de titre de l'objet graphique sous forme de type numérique.

d2fgrag_updt_layout( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour présentation de l'objet graphique sous forme de type numérique.

d2fgrag_vert_fill( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Remplissage vertical de l'objet graphique sous forme de type booléen.

d2fgrag_vert_jst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification verticale de l'objet graphique sous forme de type numérique.

d2fgrag_vert_margn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Marge verticale de l'objet graphique sous forme de type numérique.

d2fgrag_vert_obj_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'objet vertical de l'objet graphique sous forme de type numérique.

d2fgrag_vert_orgn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position verticale par rapport à l'origine de l'objet graphique sous forme de type numérique.

d2fgrag_width( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet graphique sous forme de type numérique.

d2fgrag_wrap_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Renvoi à la ligne de l'objet graphique sous forme de type booléen.

d2fgrag_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X/Position Y de l'objet graphique sous forme de type numérique.

d2fgrag_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X/Position Y de l'objet graphique sous forme de type numérique.

d2fgras_allow_expansion( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autoriser développement de l'objet graphique.

d2fgras_allow_mlt_lin_prmpts( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autoriser invites multilignes de l'objet graphique.

d2fgras_allow_strt_att_prmpts( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autoriser invites de début attachées de l'objet graphique.

d2fgras_allow_top_att_prmpts( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autoriser invites supérieures attachées de l'objet graphique.

d2fgras_arrow_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de flèche de l'objet graphique.

d2fgras_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'objet graphique.

d2fgras_bevel( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Relief de l'objet graphique.

d2fgras_bounding_bx_scalable( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Boîte englobante variable de l'objet graphique.

d2fgras_cap_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de bord d'objet de l'objet graphique.

d2fgras_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet graphique.

d2fgras_clip_hgt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Hauteur du rectangle de découpe de l'objet graphique.

d2fgras_clip_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur du rectangle de découpe de l'objet graphique.

d2fgras_clip_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine X du rectangle de découpe de l'objet graphique.

d2fgras_clip_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine Y du rectangle de découpe de l'objet graphique.

d2fgras_closed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Indicateur de polygone/Fermeture d'arc de l'objet graphique.

d2fgras_corner_radius_x( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine X du rayon de l'angle du rectangle arrondi de l'objet graphique.

d2fgras_corner_radius( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine Y du rayon de l'angle du rectangle arrondi de l'objet graphique.

d2fgras_cstm_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement personnalisé pour objet texte de l'objet graphique.

d2fgras_dash_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de tiret pour bords d'objet de l'objet graphique.

d2fgras_disp_qlty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Qualité de l'affichage de l'objet graphique.

d2fgras_dist_btwn_recs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Distance entre enregistrements de l'objet graphique.

d2fgras_dither( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Image de trame de graphique de l'objet graphique.

d2fgras_edge_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de bord de l'objet graphique.

d2fgras_edge_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de bord d'objet de l'objet graphique.

d2fgras_edge_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_EDGE_PAT de l'objet graphique.

d2fgras_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'objet graphique.

d2fgras_fixed_bounding_bx( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FIXED_BOUNDING_BX de l'objet graphique.

d2fgras_font_scaleable( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille en points proportionnelles à l'objet de l'objet graphique.

d2fgras_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'objet graphique.

d2fgras_frame_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de cadre de l'objet graphique.

d2fgras_frame_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de cadre de l'objet graphique.

d2fgras_frame_ttl_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_font_weight( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de titre de cadre de l'objet graphique.

d2fgras_fram_ttl_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de titre de cadre de l'objet graphique.

d2fgras_frame_ttl_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FRAME_TTL_VAT_OBJ de l'objet graphique.

d2fgras_gra_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police graphique de l'objet graphique.

d2fgras_gra_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police graphique de l'objet graphique.

d2fgras_gra_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police graphique de l'objet graphique.

d2fgras_gra_text( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Texte graphique de l'objet graphique.

d2fgras_graphic( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_GRAPHIC de l'objet graphique.

d2fgras_graphics_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'objet graphique de l'objet graphique.

d2fgras_height( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet graphique.

d2fgras_horz_jst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification horizontale d'objet texte de l'objet graphique.

d2fgras_horz_margn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Marge horizontale de l'objet graphique.

d2fgras_horz_obj_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'objet horizontal de l'objet graphique.

d2fgras_horz_orgn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position horizontale par rapport à l'origine de l'objet graphique.

d2fgras_internal_end_angle( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INTERNAL_END_ANGLE de l'objet graphique.

d2fgras_internal_lin_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INTERNAL_END_WID de l'objet graphique.

d2fgras_internal_rotation_angle( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INTERNAL_ROTATION_ANGLE de l'objet graphique.

d2fgras_internal_strt_angle( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INTERNAL_STRT_ANGLE de l'objet graphique.

d2fgras_join_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de jointure de bord d'objet de l'objet graphique.

d2fgras_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Direction de langue de l'objet graphique.

d2fgras_laayout_data_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de données de présentation de l'objet graphique.

d2fgras_layout_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de présentation de l'objet graphique.

d2fgras_lin_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de trait de l'objet graphique.

d2fgras_max_objs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre maximum d'objets par ligne de l'objet graphique.

d2fgras_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet graphique.

d2fgras_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet graphique.

d2fgras_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet graphique.

d2fgras_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet graphique.

d2fgras_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet graphique.

d2fgras_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet graphique.

d2fgras_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet graphique.

d2fgras_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet graphique.

d2fgras_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet graphique.

d2fgras_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet graphique.

d2fgras_point( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'objet graphique.

d2fgras_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet graphique.

d2fgras_recs_disp_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre d'enregistrements affiché de l'objet graphique.

d2fgras_scrlbr_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de barre de défilement de l'objet graphique.

d2fgras_scrlbr_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur de barre de défilement de l'objet graphique.

d2fgras_show_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SHOW_SCRLBR de l'objet graphique.

d2fgras_shrinkwrap( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Comprimer de l'objet graphique.

d2fgras_sngl_obj_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement d'un objet de l'objet graphique.

d2fgras_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet graphique.

d2fgras_strt_prmpt_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de l'invite de début de l'objet graphique.

d2fgras_strt_prmpt_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage de l'invite de début de l'objet graphique.

d2fgras_tbp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TBP_NAM de l'objet graphique.

d2fgras_tbp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TBP_OBJ de l'objet graphique.

d2fgras_top_prmpt_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de l'invite supérieure de l'objet graphique.

d2fgras_top_prmpt_pfst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage de l'invite supérieure de l'objet graphique.

d2fgras_ttl_reading_ordr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Séquence de lecture de titre de l'objet graphique.

d2fgras_updt_layout( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour présentation de l'objet graphique.

d2fgras_vert_fill( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Remplissage vertical de l'objet graphique.

d2fgras_vert_jst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification verticale de l'objet graphique.

d2fgras_vert_margn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Marge verticale de l'objet graphique.

d2fgras_vert_obj_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'objet vertical de l'objet graphique.

d2fgras_vert_orgn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position verticale par rapport à l'origine de l'objet graphique.

d2fgras_width( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet graphique.

d2fgras_wrap_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Renvoi à la ligne de l'objet graphique.

d2fgras_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X, Position Y de l'objet graphique.

d2fgras_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X, Position Y de l'objet graphique.


Macros d'objet élément

  Rubriques connexes

La présente section décrit les macros de l'objet élément de Open API de Form Builder.

d2fitmg_access_key( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clé d'accès de l'objet élément sous forme de type texte.

d2fitmg_activex_class( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ACTIVEX_CLASS de l'objet élément sous forme de type texte.

d2fitmg_activex_val_prop( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ACTIVEX_VAL_PROP de l'objet élément sous forme de type texte.

d2fitmg_audio_chnnls( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canaux audio de l'objet élément sous forme de type numérique.

d2fitmg_auto_hint( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Affichage automatique des messages d'aide de l'objet élément sous forme de type booléen.

d2fitmg_auto_skip( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Saut auto de l'objet élément sous forme de type booléen.

d2fitmg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'objet élément sous forme de type texte.

d2fitmg_bevel( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Relief de l'objet élément sous forme de type numérique.

d2fitmg_calc_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode de calcul de l'objet élément sous forme de type numérique.

d2fitmg_case_insensitive_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation sans distinction maj/min de l'objet élément sous forme de type booléen.

d2fitmg_case_rstrction( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Respecter maj/min de l'objet élément sous forme de type numérique.

d2fitmg_chk_bx_other_vals( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Case à cocher Correspondance d'autres valeurs de l'objet élément.

d2fitmg_chked_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Coché de l'objet élément sous forme de type texte.

d2fitmg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet élément sous forme d'un pointeur de type dvoid.

d2fitmg_cmprssion_qlty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CMPRSSION_QLTY de l'objet élément sous forme de type numérique.

d2fitmg_cnv_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas de l'objet élément sous forme de type texte.

d2fitmg_cnv_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CNV_OBJ de l'objet élément sous forme de type objet.

d2fitmg_col_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de colonne de l'objet élément sous forme de type texte.

d2fitmg_comm_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode de communication de l'objet élément sous forme de type numérique.

d2fitmg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet élément sous forme de type texte.

d2fitmg_compress( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Comprimer de l'objet élément sous forme de type numérique.

d2fitmg_conceal_data( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Masquer données de l'objet élément sous forme de type booléen.

d2fitmg_copy_val_from_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Copier valeur de l'élément de l'objet élément sous forme de type texte.

d2fitmg_dat_src_blk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de source de données de l'objet élément sous forme de type texte.

d2fitmg_dat_src_x_axs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Axe X de source de données de l'objet élément sous forme de type texte.

d2fitmg_dat_src_y_axs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Axe Y de source de données de l'objet élément sous forme de type texte.

d2fitmg_dat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de données de l'objet élément sous forme de type numérique.

d2fitmg_db_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Elément de base de données de l'objet élément sous forme de type booléen.

d2fitmg_dflt_btn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bouton par défaut de l'objet élément sous forme de type booléen.

d2fitmg_disp_qlty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Qualité de l'affichage de l'objet élément sous forme de type numérique.

d2fitmg_dist_btwn_recs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Distance entre enregistrements de l'objet élément sous forme de type numérique.

d2fitmg_edt_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Editeur de l'objet élément sous forme de type texte.

d2fitmg_edt_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_EDT_OBJ de l'objet élément sous forme de type objet.

d2fitmg_edt_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de l'éditeur, Position Y de l'éditeur de l'objet élément sous forme de type numérique.

d2fitmg_edt_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de l'éditeur, Position Y de l'éditeur de l'objet élément sous forme de type numérique.

d2fitmg_enabled( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Activé de l'objet élément sous forme de type booléen.

d2fitmg_exec_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode d'exécution de l'objet élément sous forme de type numérique.

d2fitmg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'objet élément sous forme de type texte.

d2fitmg_fixed_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur fixe de l'objet élément sous forme de type booléen.

d2fitmg_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de fichier de l'objet élément sous forme de type texte.

d2fitmg_fmt_msk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Masque de format de l'objet élément sous forme de type texte.

d2fitmg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'objet élément sous forme de type texte.

d2fitmg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'objet élément sous forme de type numérique.

d2fitmg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'objet élément sous forme de type numérique.

d2fitmg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de l'objet élément sous forme de type numérique.

d2fitmg_font_wgth( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'objet élément sous forme de type numérique.

d2fitmg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'objet élément sous forme de type texte.

d2fitmg_formula( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Formule de l'objet élément sous forme de type texte.

d2fitmg_height( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet élément sous forme de type numérique.

d2fitmg_highest_allowed_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur maximum autorisée/Valeur minimum autorisée de l'objet élément sous forme de type texte.

d2fitmg_hint( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Conseil de l'objet élément sous forme de type texte.

d2fitmg_icon_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de fichier d'icône de l'objet élément sous forme de type texte.

d2fitmg_iconic( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Icône de l'objet élément sous forme de type booléen.

d2fitmg_img_dpth( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Profondeur d'image de l'objet élément sous forme de type numérique.

d2fitmg_img_fmt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Format d'image de l'objet élément sous forme de type numérique.

d2fitmg_init_kbrd_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Etat initial clavier de l'objet élément sous forme de type numérique.

d2fitmg_init_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur initiale de l'objet élément sous forme de type texte.

d2fitmg_insrt_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Insertion autorisée de l'objet élément sous forme de type booléen.

d2fitmg_itm_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'élément de l'objet élément sous forme de type numérique.

d2fitmg_itms_disp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre d'éléments affiché de l'objet élément sous forme de type numérique.

d2fitmg_justification( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification de l'objet élément sous forme de type numérique.

d2fitmg_kbrd_navigable( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Navigation autorisée au clavier de l'objet élément sous forme de type booléen.

d2fitmg_kbrd_state( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_KBRD_STATE de l'objet élément sous forme de type numérique.

d2fitmg_keep_crsr_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Conserver position du curseur de l'objet élément sous forme de type booléen.

d2fitmg_label( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Libellé de l'objet élément sous forme de type texte.

d2fitmg_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Direction de langue de l'objet élément sous forme de type numérique.

d2fitmg_lock_rec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Verrouiller l'enregistrement de l'objet élément sous forme de type booléen.

d2fitmg_lov_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_LOV_NAM de l'objet élément sous forme de type texte.

d2fitmg_lov_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_LOV_OBJ de l'objet élément sous forme de type objet.

d2fitmg_lov_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de la liste de l'objet élément sous forme de type numérique.

d2fitmg_lov_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position Y de la liste de l'objet élément sous forme de type numérique.

d2fitmg_lowest_allowed_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur maximum autorisée/Valeur minimum autorisée de l'objet élément sous forme de type texte.

d2fitmg_lst_element_cnt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décompte des éléments de liste de l'objet élément sous forme de type numérique.

d2fitmg_lst_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de liste de l'objet élément sous forme de type numérique.

d2fitmg_max_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur maximum de l'objet élément sous forme de type numérique.

d2fitmg_mlt_lin( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Multiligne de l'objet élément sous forme de type booléen.

d2fitmg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet élément sous forme de type objet.

d2fitmg_mouse_navigate( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Navigation à la souris de l'objet élément sous forme de type booléen.

d2fitmg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet élément sous forme de type texte.

d2fitmg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet élément sous forme de type objet.

d2fitmg_nxt_navigation_itm_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAVIGATION_ITM_NAM de l'objet élément sous forme de type texte.

d2fitmg_nxt_navigation_itm_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAVIGATION_ITM_OBJ de l'objet élément sous forme de type objet.

d2fitmg_ole_act_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'activation OLE de l'objet élément sous forme de type numérique.

d2fitmg_ole_class( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Classe OLE de l'objet élément sous forme de type texte.

d2fitmg_ole_in_place_act( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Activation sur objets incorporés OLE de l'objet élément sous forme de type booléen.

d2fitmg_ole_insd_out_support( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété OLE Inside-out Support de l'objet élément sous forme de type booléen.

d2fitmg_ole_popup_mnu_itms( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Options de menu OLE instantané de l'objet élément sous forme de type numérique.

d2fitmg_ole_resiz_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de redimensionnement OLE de l'objet élément sous forme de type numérique.

d2fitmg_ole_show_popup_menu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher menu OLE instantané de l'objet élément sous forme de type booléen.

d2fitmg_ole_show_tnnt_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher type de contenu OLE de l'objet élément sous forme de type booléen.

d2fitmg_ole_tnnt_aspct( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Aspect du contenu OLE de l'objet élément sous forme de type numérique.

d2fitmg_ole_tnnt_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de contenu OLE de l'objet élément sous forme de type numérique.

d2fitmg_other_vals( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Correspondance d'autres valeurs de l'objet élément sous forme de type texte.

d2fitmg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet élément sous forme de type objet.

d2fitmg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet élément sous forme de type texte.

d2fitmg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet élément sous forme de type texte.

d2fitmg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_STR de l'objet élément sous forme de type numérique.

d2fitmg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet élément sous forme de type numérique.

d2fitmg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet élément sous forme de type texte.

d2fitmg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet élément sous forme de type texte.

d2fitmg_popup_mnu_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu instantané de l'objet élément sous forme de type texte.

d2fitmg_popup_mnu_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_POPUP_MNU_OBJ de l'objet élément sous forme de type texte.

d2fitmg_popup_va_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_POPUP_VA_OBJ de l'objet élément sous forme de type objet.

d2fitmg_prev_navigation_itm_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom d'élément de navigation précédent de l'objet élément sous forme de type texte.

d2fitmg_prev_navigation_itm_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREV_NAVIGATION_ITM_OBJ de l'objet élément sous forme de type objet.

d2fitmg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet élément sous forme de type objet.

d2fitmg_prmpt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Invite de l'objet élément sous forme de type texte.

d2fitmg_prmpt_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_align_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'alignement de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_att_edge( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bord d'attachement de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_att_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'attachement de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'invite de l'objet élément sous forme de type texte.

d2fitmg_prmpt_disp_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'affichage de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'invite de l'objet élément sous forme de type texte.

d2fitmg_prmpt_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'invite de l'objet élément sous forme de type texte.

d2fitmg_prmpt_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police d'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'invite de l'objet élément sous forme de type texte.

d2fitmg_prmpt_jst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_reading_ordr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Séquence de lecture de l'invite de l'objet élément sous forme de type numérique.

d2fitmg_prmpt_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'invite de l'objet élément sous forme de type texte.

d2fitmg_prmpt_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_VAT_OBJ de l'objet élément sous forme de type objet.

d2fitmg_prmry_key( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clé primaire de l'objet élément sous forme de type booléen.

d2fitmg_qry_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation autorisée de l'objet élément sous forme de type booléen.

d2fitmg_qry_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur d'interrogation de l'objet élément sous forme de type numérique.

d2fitmg_qry_only( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation seulement de l'objet élément sous forme de type booléen.

d2fitmg_rad_but( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RAD_BUT de l'objet élément sous forme de type objet.

d2fitmg_reading_ordr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Séquence de lecture de l'objet élément sous forme de type numérique.

d2fitmg_rec_vat_grp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'enregistrement en cours de l'objet élément sous forme de type texte.

d2fitmg_rec_vat_grp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_VAT_GRP_OBJ de l'objet élément sous forme de type objet.

d2fitmg_rendered( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Rendu de l'objet élément sous forme de type booléen.

d2fitmg_required( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Obligatoire de l'objet élément sous forme de type booléen.

d2fitmg_show_fast_fwd( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher bouton Avance rapide de l'objet élément sous forme de type booléen.

d2fitmg_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement horizontale de l'objet élément sous forme de type booléen.

d2fitmg_show_palette( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher palette de l'objet élément sous forme de type booléen.

d2fitmg_show_play( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher bouton Lecture de l'objet élément sous forme de type booléen.

d2fitmg_show_rec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher bouton Enregistrement de l'objet élément sous forme de type booléen.

d2fitmg_show_rewind( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher bouton Retour rapide de l'objet élément sous forme de type booléen.

d2fitmg_show_slider( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher règle de l'objet élément sous forme de type booléen.

d2fitmg_show_time( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher horloge de l'objet élément sous forme de type booléen.

d2fitmg_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement verticale de l'objet élément sous forme de type booléen.

d2fitmg_show_volume( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher réglage du volume de l'objet élément sous forme de type booléen.

d2fitmg_sizing_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de dimensionnement de l'objet élément sous forme de type numérique.

d2fitmg_snd_fmt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Format son de l'objet élément sous forme de type numérique.

d2fitmg_snd_qlty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Qualité du son de l'objet élément sous forme de type numérique.

d2fitmg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet élément sous forme de type objet.

d2fitmg_summ_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc récapitulatif de l'objet élément sous forme de type texte.

d2fitmg_summ_func( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Fonction récapitulative de l'objet élément sous forme de type numérique.

d2fitmg_summ_itm_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Elément récapitulatif de l'objet élément sous forme de type texte.

d2fitmg_sync_itm_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Synchronisation avec option de l'objet élément sous forme de type texte.

d2fitmg_sync_itm_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SYNC_ITM_OBJ de l'objet élément sous forme de type objet.

d2fitmg_tbp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TBP_NAM de l'objet élément sous forme de type texte.

d2fitmg_tbp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TBP_OBJ de l'objet élément sous forme de type objet.

d2fitmg_tooltip( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bulle d'information de l'objet élément sous forme de type texte.

d2fitmg_tooltip_vat_grp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de Bulle d'information de l'objet élément sous forme de type texte.

d2fitmg_trigger( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TRIGGER de l'objet élément sous forme de type objet.

d2fitmg_unchked_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur lorsque non coché de l'objet élément sous forme de type texte.

d2fitmg_updt_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mise à jour autorisée de l'objet élément sous forme de type booléen.

d2fitmg_updt_commit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Update Commit de l'objet élément sous forme de type booléen.

d2fitmg_updt_if_null( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour seulement si NULL de l'objet élément sous forme de type booléen.

d2fitmg_updt_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Update Query de l'objet élément sous forme de type booléen.

d2fitmg_validate_from_lst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valider à partir de la liste de l'objet élément sous forme de type booléen.

d2fitmg_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'objet élément sous forme de type texte.

d2fitmg_val_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_GRP de l'objet élément sous forme de type objet.

d2fitmg_visible( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible de l'objet élément sous forme de type booléen.

d2fitmg_while_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Blanc sur noir de l'objet élément sous forme de type booléen.

d2fitmg_width( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet élément sous forme de type numérique.

d2fitmg_wrap_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de césure de l'objet élément sous forme de type numérique.

d2fitmg_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X, Position Y de l'objet élément sous forme de type numérique.

d2fitmg_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X, Position Y de l'objet élément sous forme de type numérique.

d2fitms_access_key( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Clé d'accès de l'objet élément.

d2fitms_activex_class( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ACTIVEX_CLASS de l'objet élément.

d2fitms_activex_val_prop( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ACTIVEX_VAL_PROP de l'objet élément.

d2fitms_audio_chnnls( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canaux audio de l'objet élément.

d2fitms_auto_hint( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Affichage automatique des messages d'aide de l'objet élément.

d2fitms_auto_skip( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Saut auto de l'objet élément.

d2fitms_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'objet élément.

d2fitms_bevel( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Relief de l'objet élément.

d2fitms_calc_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode de calcul de l'objet élément.

d2fitms_case_insensitive_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation sans distinction maj/min de l'objet élément.

d2fitms_case_rstrction( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Respecter maj/min de l'objet élément.

d2fitms_chk_bx_other_vals( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Case à cocher Correspondance d'autres valeurs de l'objet élément.

d2fitms_chked_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Coché de l'objet élément.

d2fitms_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet élément.

d2fitms_cmprssion_qlty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CMPRSSION_QLTY de l'objet élément.

d2fitms_cnv_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas de l'objet élément.

d2fitms_cnv_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CNV_OBJ de l'objet élément.

d2fitms_col_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de colonne de l'objet élément.

d2fitms_comm_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode de communication de l'objet élément.

d2fitms_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet élément.

d2fitms_compress( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Comprimer de l'objet élément.

d2fitms_conceal_data( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Masquer données de l'objet élément.

d2fitms_copy_val_from_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Copier valeur de l'élément de l'objet élément.

d2fitms_dat_src_blk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de source de données de l'objet élément.

d2fitms_dat_src_x_axs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Axe X de source de données de l'objet élément.

d2fitms_dat_src_y_axs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Axe Y de source de données de l'objet élément.

d2fitms_dat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de données de l'objet élément.

d2fitms_db_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Elément de base de données de l'objet élément.

d2fitms_dflt_btn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bouton par défaut de l'objet élément.

d2fitms_disp_qlty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Qualité de l'affichage de l'objet élément.

d2fitms_dist_btwn_recs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Distance entre enregistrements de l'objet élément.

d2fitms_edt_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Editeur de l'objet élément.

d2fitms_edt_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_EDT_OBJ de l'objet élément.

d2fitms_edt_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de l'éditeur, Position Y de l'éditeur de l'objet élément.

d2fitms_edt_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de l'éditeur, Position Y de l'éditeur de l'objet élément.

d2fitms_enabled( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Activé de l'objet élément.

d2fitms_exec_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode d'exécution de l'objet élément.

d2fitms_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'objet élément.

d2fitms_fixed_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur fixe de l'objet élément.

d2fitms_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de fichier de l'objet élément.

d2fitms_fmt_msk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Masque de format de l'objet élément.

d2fitms_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'objet élément.

d2fitms_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'objet élément.

d2fitms_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'objet élément.

d2fitms_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'objet élément.

d2fitms_font_wgth( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'objet élément.

d2fitms_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'objet élément.

d2fitms_formula( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Formule de l'objet élément.

d2fitms_height( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet élément.

d2fitms_highest_allowed_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur maximum autorisée/Valeur minimum autorisée de l'objet élément.

d2fitms_hint( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Conseil de l'objet élément.

d2fitms_icon_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de fichier d'icône de l'objet élément.

d2fitms_iconic( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Icône de l'objet élément.

d2fitms_img_dpth( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Profondeur d'image de l'objet élément.

d2fitms_img_fmt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Format d'image de l'objet élément.

d2fitms_init_kbrd_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Etat initial clavier de l'objet élément.

d2fitms_init_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur initiale de l'objet élément.

d2fitms_insrt_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Insertion autorisée de l'objet élément.

d2fitms_itm_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'élément de l'objet élément.

d2fitms_itms_disp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre d'éléments affiché de l'objet élément.

d2fitms_justification( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification de l'objet élément.

d2fitms_kbrd_navigable( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Navigation autorisée au clavier de l'objet élément.

d2fitms_kbrd_state( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_KBRD_STATE de l'objet élément.

d2fitms_keep_crsr_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Conserver position du curseur de l'objet élément.

d2fitms_label( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Libellé de l'objet élément.

d2fitms_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Direction de langue de l'objet élément.

d2fitms_lock_rec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Verrouiller l'enregistrement de l'objet élément.

d2fitms_lov_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_LOV_NAM de l'objet élément.

d2fitms_lov_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_LOV_OBJ de l'objet élément.

d2fitms_lov_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de la liste de l'objet élément.

d2fitms_lov_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position Y de la liste de l'objet élément.

d2fitms_lowest_allowed_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur maximum autorisée/Valeur minimum autorisée de l'objet élément.

d2fitms_lst_element_cnt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décompte des éléments de liste de l'objet élément.

d2fitms_lst_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de liste de l'objet élément.

d2fitms_max_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur maximum de l'objet élément.

d2fitms_mlt_lin( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Multiligne de l'objet élément.

d2fitms_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet élément.

d2fitms_mouse_navigate( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Navigation à la souris de l'objet élément.

d2fitms_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet élément.

d2fitms_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet élément.

d2fitms_nxt_navigation_itm_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAVIGATION_ITM_NAM de l'objet élément.

d2fitms_nxt_navigation_itm_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAVIGATION_ITM_OBJ de l'objet élément.

d2fitms_ole_act_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'activation OLE de l'objet élément.

d2fitms_ole_class( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Classe OLE de l'objet élément.

d2fitms_ole_in_place_act( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Activation sur objets incorporés OLE de l'objet élément.

d2fitms_ole_insd_out_support( ctx, obj, val ) ;

********This macro sets the value of the OLE Inside-out Support property of the item object.

d2fitms_ole_popup_mnu_itms( ctx, obj, val ); ******

Cette macro définit la valeur de la propriété Options de menu OLE instantané de l'objet élément.

d2fitms_ole_resiz_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de redimensionnement OLE de l'objet élément.

d2fitms_ole_show_popup_menu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher menu OLE instantané de l'objet élément.

d2fitms_ole_show_tnnt_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher type de contenu OLE de l'objet élément.

d2fitms_ole_tnnt_aspct( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Aspect du contenu OLE de l'objet élément.

d2fitms_ole_tnnt_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de contenu OLE de l'objet élément.

d2fitms_other_vals( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Correspondance d'autres valeurs de l'objet élément.

d2fitms_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet élément.

d2fitms_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet élément.

d2fitms_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet élément.

d2fitms_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_STR de l'objet élément.

d2fitms_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet élément.

d2fitms_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet élément.

d2fitms_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet élément.

d2fitms_popup_mnu_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu instantané de l'objet élément.

d2fitms_popup_mnu_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_POPUP_MNU_OBJ de l'objet élément.

d2fitms_popup_va_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_POPUP_VA_OBJ de l'objet élément.

d2fitms_prev_navigation_itm_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom d'élément de navigation précédent de l'objet élément.

d2fitms_prev_navigation_itm_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREV_NAVIGATION_ITM_OBJ de l'objet élément.

d2fitms_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet élément.

d2fitms_prmpt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Invite de l'objet élément.

d2fitms_prmpt_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de l'invite de l'objet élément.

d2fitms_prmpt_align_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'alignement de l'invite de l'objet élément.

d2fitms_prmpt_att_edge( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bord d'attachement de l'invite de l'objet élément.

d2fitms_prmpt_att_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'attachement de l'invite de l'objet élément.

d2fitms_prmpt_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'invite de l'objet élément.

d2fitms_prmpt_disp_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'affichage de l'invite de l'objet élément.

d2fitms_prmpt_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'invite de l'objet élément.

d2fitms_prmpt_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'invite de l'objet élément.

d2fitms_prmpt_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'invite de l'objet élément.

d2fitms_prmpt_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'invite de l'objet élément.

d2fitms_prmpt_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police d'invite de l'objet élément.

d2fitms_prmpt_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'invite de l'objet élément.

d2fitms_prmpt_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'invite de l'objet élément.

d2fitms_prmpt_jst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification de l'invite de l'objet élément.

d2fitms_prmpt_reading_ordr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Séquence de lecture de l'invite de l'objet élément.

d2fitms_prmpt_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'invite de l'objet élément.

d2fitms_prmpt_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PRMPT_VAT_OBJ de l'objet élément.

d2fitms_prmry_key( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Clé primaire de l'objet élément.

d2fitms_qry_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation autorisée de l'objet élément.

d2fitms_qry_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur d'interrogation de l'objet élément.

d2fitms_qry_only( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation seulement de l'objet élément.

d2fitms_rad_but( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RAD_BUT de l'objet élément.

d2fitms_reading_ordr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Séquence de lecture de l'objet élément.

d2fitms_rec_vat_grp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'enregistrement en cours de l'objet élément.

d2fitms_rec_vat_grp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_VAT_GRP_OBJ de l'objet élément.

d2fitms_rendered( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Rendu de l'objet élément.

d2fitms_required( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Obligatoire de l'objet élément.

d2fitms_show_fast_fwd( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher bouton Avance rapide de l'objet élément.

d2fitms_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement horizontale de l'objet élément.

d2fitms_show_palette( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher palette de l'objet élément.

d2fitms_show_play( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher bouton Lecture de l'objet élément.

d2fitms_show_rec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher bouton Enregistrement de l'objet élément.

d2fitms_show_rewind( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher bouton Retour rapide de l'objet élément.

d2fitms_show_slider( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher règle de l'objet élément.

d2fitms_show_time( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher horloge de l'objet élément.

d2fitms_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement verticale de l'objet élément.

d2fitms_show_volume( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher réglage du volume de l'objet élément.

d2fitms_sizing_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de dimensionnement de l'objet élément.

d2fitms_snd_fmt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Format son de l'objet élément.

d2fitms_snd_qlty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Qualité du son de l'objet élément.

d2fitms_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet élément.

d2fitms_summ_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc récapitulatif de l'objet élément.

d2fitms_summ_func( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Fonction récapitulative de l'objet élément.

d2fitms_summ_itm_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Elément récapitulatif de l'objet élément.

d2fitms_sync_itm_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Synchronisation avec option de l'objet élément.

d2fitms_sync_itm_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SYNC_ITM_OBJ de l'objet élément.

d2fitms_tbp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TBP_NAM de l'objet élément.

d2fitms_tbp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TBP_OBJ de l'objet élément.

d2fitms_tooltip( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bulle d'information de l'objet élément.

d2fitms_tooltip_vat_grp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de bulle d'information de l'objet élément.

d2fitms_trigger( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TRIGGER de l'objet élément.

d2fitms_unchked_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur lorsque non coché de l'objet élément.

d2fitms_updt_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mise à jour autorisée de l'objet élément.

d2fitms_updt_commit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Update Commit de l'objet élément.

d2fitms_updt_if_null( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour seulement si Null de l'objet élément.

d2fitms_updt_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Update Query de l'objet élément.

d2fitms_validate_from_lst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valider à partir de la liste de l'objet élément.

d2fitms_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'objet élément.

d2fitms_val_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_GRP de l'objet élément.

d2fitms_visible( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible de l'objet élément.

d2fitms_while_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Blanc sur noir de l'objet élément.

d2fitms_width( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet élément.

d2fitms_wrap_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de césure de l'objet élément.

d2fitms_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X/Position Y de l'objet élément.

d2fitms_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X/Position Y de l'objet élément.


Macros d'objet correspondance de colonnes de LOV

  Rubriques connexes

La présente section décrit les macros de l'objet correspondance de colonnes de LOV de Open API de Form Builder.

d2flcmg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet correspondance de colonnes de LOV sous forme d'un pointeur de type dvoid.

d2flcmg_disp_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher largeur de l'objet correspondance de colonnes de LOV sous forme de type numérique.

d2flcmg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet correspondance de colonnes de LOV sous forme de type texte.

d2flcmg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet correspondance de colonnes de LOV sous forme de type objet.

d2flcmg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet correspondance de colonnes de LOV sous forme de type objet.

d2flcmg_rtrn_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété LOV - correspondance de colonnes de l'objet correspondance de colonnes de LOV sous forme de type texte.

d2flcmg_title( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de l'objet correspondance de colonnes de LOV sous forme de type texte.

d2flcms_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet correspondance de colonnes de LOV.

d2flcms_disp_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher largeur de l'objet correspondance de colonnes de LOV.

d2flcms_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet correspondance de colonnes de LOV.

d2flcms_rtrn_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété LOV - correspondance de colonnes de l'objet correspondance de colonnes de LOV.

d2flcms_title( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de l'objet correspondance de colonnes de LOV.


Macros d'objet liste de valeurs (LOV)

  Rubriques connexes

La présente section décrit les macros de l'objet liste de valeurs de Open API de Form Builder.

d2flovg_auto_col_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur automatique de colonne de l'objet liste de valeurs sous forme de type booléen.

d2flovg_auto_disp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Affichage automatique de l'objet liste de valeurs sous forme de type booléen.

d2flovg_auto_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position automatique de l'objet liste de valeurs sous forme de type booléen.

d2flovg_auto_rfrsh( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Régénération automatique de l'objet liste de valeurs sous forme de type booléen.

d2flovg_auto_skip( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Saut automatique de l'objet liste de valeurs sous forme de type booléen.

d2flovg_auto_slct( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sélection automatique de l'objet liste de valeurs sous forme de type booléen.

d2flovg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'objet liste de valeurs sous forme de type texte.

d2flovg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet liste de valeurs sous forme d'un pointeur de type dvoid.

d2flovg_col_map( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Correspondance de colonne de l'objet liste de valeurs sous forme de type objet.

d2flovg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet liste de valeurs sous forme de type texte.

d2flovg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'objet liste de valeurs sous forme de type texte.

d2flovg_fltr_before_disp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Filtrer avant afficher de l'objet liste de valeurs sous forme de type booléen.

d2flovg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'objet liste de valeurs sous forme de type texte.

d2flovg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'objet liste de valeurs sous forme de type numérique.

d2flovg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'objet liste de valeurs sous forme de type numérique.

d2flovg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de l'objet liste de valeurs sous forme de type numérique.

d2flovg_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'objet liste de valeurs sous forme de type numérique.

d2flovg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'objet liste de valeurs sous forme de type texte.

d2flovg_height( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet liste de valeurs sous forme de type numérique.

d2flovg_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Direction de langue de l'objet liste de valeurs sous forme de type numérique.

d2flovg_lst_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de liste de l'objet liste de valeurs sous forme de type numérique.

d2flovg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet liste de valeurs sous forme de type objet.

d2flovg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet liste de valeurs sous forme de type texte.

d2flovg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet liste de valeurs sous forme de type objet.

d2flovg_old_lov_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Ancien texte LOV de l'objet liste de valeurs sous forme de type texte.

d2flovg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet liste de valeurs sous forme de type objet.

d2flovg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet liste de valeurs sous forme de type texte.

d2flovg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet liste de valeurs sous forme de type texte.

d2flovg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet liste de valeurs sous forme de type numérique.

d2flovg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet liste de valeurs sous forme de type numérique.

d2flovg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet liste de valeurs sous forme de type texte.

d2flovg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet liste de valeurs sous forme de type texte.

d2flovg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet liste de valeurs sous forme de type objet.

d2flovg_rec_grp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'enregistrements de l'objet liste de valeurs sous forme de type texte.

d2flovg_rec_grp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_GRP_OBJ de l'objet liste de valeurs sous forme de type objet.

d2flovg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet liste de valeurs sous forme de type objet.

d2flovg_title( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de l'objet liste de valeurs sous forme de type texte.

d2flovg_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'objet liste de valeurs sous forme de type texte.

d2flovg_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ de l'objet liste de valeurs sous forme de type objet.

d2flovg_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Blanc sur noir de l'objet liste de valeurs sous forme de type booléen.

d2flovg_width( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet liste de valeurs sous forme de type numérique.

d2flovg_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X, Position Y de l'objet liste de valeurs sous forme de type numérique.

d2flovg_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X, Position Y de l'objet liste de valeurs sous forme de type numérique.

d2flovs_auto_col_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur automatique de colonne de l'objet liste de valeurs.

d2flovs_auto_disp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Affichage automatique de l'objet liste de valeurs.

d2flovs_auto_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position automatique de l'objet liste de valeurs.

d2flovs_auto_rfrsh( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Régénération automatique de l'objet liste de valeurs.

d2flovs_auto_skip( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Saut automatique de l'objet liste de valeurs.

d2flovs_auto_slct( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sélection automatique de l'objet liste de valeurs.

d2flovs_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'objet liste de valeurs.

d2flovs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet liste de valeurs.

d2flovs_col_map( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Correspondance de colonne de l'objet liste de valeurs.

d2flovs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet liste de valeurs.

d2flovs_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'objet liste de valeurs.

d2flovs_fltr_before_disp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Filtrer avant afficher de l'objet liste de valeurs.

d2flovs_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'objet liste de valeurs.

d2flovs_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'objet liste de valeurs.

d2flovs_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'objet liste de valeurs.

d2flovs_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'objet liste de valeurs.

d2flovs_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'objet liste de valeurs.

d2flovs_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'objet liste de valeurs.

d2flovs_height( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet liste de valeurs.

d2flovs_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Direction de langue de l'objet liste de valeurs.

d2flovs_lst_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de liste de l'objet liste de valeurs.

d2flovs_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet liste de valeurs.

d2flovs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet liste de valeurs.

d2flovs_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet liste de valeurs.

d2flovs_old_lov_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Ancien texte LOV de l'objet liste de valeurs.

d2flovs_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet liste de valeurs.

d2flovs_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet liste de valeurs.

d2flovs_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet liste de valeurs.

d2flovs_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet liste de valeurs.

d2flovs_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet liste de valeurs.

d2flovs_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet liste de valeurs.

d2flovs_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet liste de valeurs.

d2flovs_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet liste de valeurs.

d2flovs_rec_grp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'enregistrements de l'objet liste de valeurs.

d2flovs_rec_grp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_GRP_OBJ de l'objet liste de valeurs.

d2flovs_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet liste de valeurs.

d2flovs_title( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de l'objet liste de valeurs.

d2flovs_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'objet liste de valeurs.

d2flovs_xxx( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété XXX de l'objet liste de valeurs.

d2flovs_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ de l'objet liste de valeurs.

d2flovs_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Blanc sur noir de l'objet liste de valeurs.

d2flovs_width( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet liste de valeurs.

d2flovs_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X, Position Y de l'objet liste de valeurs.

d2flovs_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X, Position Y de l'objet liste de valeurs.


Macros d'objet menu

  Rubriques connexes

La présente section décrit les macros de l'objet menu de Open API de Form Builder.

d2fmnug_btm_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de bas de page de l'objet menu sous forme de type texte.

d2fmnug_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet menu sous forme d'un pointeur de type dvoid.

d2fmnug_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet menu sous forme de type texte.

d2fmnug_mnu_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'option de menu de l'objet menu sous forme de type objet.

d2fmnug_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet menu sous forme de type objet.

d2fmnug_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet menu sous forme de type texte.

d2fmnug_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet menu sous forme de type objet.

d2fmnug_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet menu sous forme de type objet.

d2fmnug_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet menu sous forme de type texte.

d2fmnug_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet menu sous forme de type texte.

d2fmnug_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet menu sous forme de type numérique.

d2fmnug_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet menu sous forme de type numérique.

d2fmnug_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet menu sous forme de type texte.

d2fmnug_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet menu sous forme de type texte.

d2fmnug_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet menu sous forme de type objet.

d2fmnug_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet menu sous forme de type objet.

d2fmnug_sub_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sous-titre de l'objet menu sous forme de type texte.

d2fmnug_tear_off_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu détachable de l'objet menu sous forme de type booléen.

d2fmnug_title( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de l'objet menu sous forme de type texte.

d2fmnus_btm_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de bas de page de l'objet menu.

d2fmnus_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet menu.

d2fmnus_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet menu.

d2fmnus_mnu_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'option de menu de l'objet menu.

d2fmnus_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet menu.

d2fmnus_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet menu.

d2fmnus_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet menu.

d2fmnus_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet menu.

d2fmnus_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet menu.

d2fmnus_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet menu.

d2fmnus_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet menu.

d2fmnus_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet menu.

d2fmnus_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet menu.

d2fmnus_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet menu.

d2fmnus_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet menu.

d2fmnus_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet menu.

d2fmnus_sub_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sous-titre de l'objet menu.

d2fmnus_tear_off_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu détachable de l'objet menu.

d2fmnus_title( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de l'objet menu.


Macros d'objet module Menu
Macros de l'objet module Menu

  Rubriques connexes

La présente section décrit les macros de l'objet module Menu de Open API de Form Builder.

d2fmmdg_att_lib( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ATT_LIB de l'objet module Menu sous forme de type objet.

d2fmmdg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet module Menu sous forme de pointeur de type dvoid.

d2fmmdg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet module Menu sous forme de type texte.

d2fmmdg_inhrt_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INHRT_STY de l'objet module Menu sous forme de type numérique.

d2fmmdg_main_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu principal de l'objet module Menu sous forme de type texte.

d2fmmdg_menu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MENU de l'objet module Menu sous forme de type objet.

d2fmmdg_mnu_description( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Description de menu de l'objet module Menu sous forme de type texte.

d2fmmdg_mnu_drctry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Répertoire de menu de l'objet module Menu sous forme de type texte.

d2fmmdg_mnu_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de fichier de menu de l'objet module Menu sous forme de type texte.

d2fmmdg_mnu_param( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MNU_PARAM de l'objet module Menu sous forme de type objet.

d2fmmdg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet module Menu sous forme de type texte.

d2fmmdg_mnu_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet module Menu sous forme de type objet.

d2fmmdg_obj_grp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OBJ_GRP de l'objet module Menu sous forme de type objet.

d2fmmdg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet module Menu sous forme de type texte.

d2fmmdg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet module Menu sous forme de type texte.

d2fmmdg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet module Menu sous forme de type numérique.

d2fmmdg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet module Menu sous forme de type numérique.

d2fmmdg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet module Menu sous forme de type texte.

d2fmmdg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet module Menu sous forme de type texte.

d2fmmdg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet module Menu sous forme de type objet.

d2fmmdg_prog_unit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PROG_UNIT de l'objet module Menu sous forme de type objet.

d2fmmdg_prop_class( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Classe de propriété de l'objet module Menu sous forme de type objet.

d2fmmdg_role_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ROLE_COUNT de l'objet module Menu sous forme de type numérique.

d2fmmdg_share_lib( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Partager bibliothèque avec application Forms de l'objet module Menu sous forme de type booléen.

d2fmmdg_short_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom abrégé de l'objet module Menu sous forme de type texte.

d2fmmdg_strtup_code( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Code de démarrage de l'objet module Menu sous forme de type texte.

d2fmmdg_use_security( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sécurité de l'objet module Menu sous forme de type booléen.

d2fmmdg_vis_attr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VIS_ATTR de l'objet module Menu sous forme de type objet.

d2fmmds_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet module Menu.

d2fmmds_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet module Menu.

d2fmmds_inhrt_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INHRT_STY de l'objet module Menu.

d2fmmds_main_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu principal de l'objet module Menu.

d2fmmds_menu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MENU de l'objet module Menu.

d2fmmds_mnu_description( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Description de menu de l'objet module Menu.

d2fmmds_mnu_drctry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Répertoire de menu de l'objet module Menu.

d2fmmds_mnu_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de fichier de menu de l'objet module Menu.

d2fmmds_mnu_param( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MNU_PARAM de l'objet module Menu.

d2fmmds_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet module Menu.

d2fmmds_mnu_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet module Menu.

d2fmmds_obj_grp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OBJ_GRP de l'objet module Menu.

d2fmmds_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet module Menu.

d2fmmds_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet module Menu.

d2fmmds_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet module Menu.

d2fmmds_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet module Menu.

d2fmmds_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet module Menu.

d2fmmds_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet module Menu.

d2fmmds_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet module Menu.

d2fmmds_prog_unit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROG_UNIT de l'objet module Menu.

d2fmmds_prop_class( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Classe de propriété de l'objet module Menu.

d2fmmds_role_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ROLE_COUNT de l'objet module Menu.

d2fmmds_share_lib( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Partager bibliothèque avec application Forms de l'objet module Menu.

d2fmmds_short_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom abrégé de l'objet module Menu.

d2fmmds_strtup_code( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Code de démarrage de l'objet module Menu.

d2fmmds_use_security( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sécurité de l'objet module Menu.


Macros d'objet élément de menu

  Rubriques connexes

La présente section décrit les macros de l'objet élément de menu de Open API de Form Builder.

d2fmnig_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet élément de menu sous forme d'un pointeur de type dvoid.

d2fmnig_com_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Texte de commande de l'objet élément de menu sous forme de type texte.

d2fmnig_com_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de commande de l'objet élément de menu sous forme de type numérique.

d2fmnig_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet élément de menu sous forme de type texte.

d2fmnig_disp_no_priv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher sans privilège de l'objet élément de menu sous forme de type booléen.

d2fmnig_enabled( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Activé de l'objet élément de menu sous forme de type booléen.

d2fmnig_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'objet élément de menu sous forme de type texte.

d2fmnig_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'objet élément de menu sous forme de type numérique.

d2fmnig_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'objet élément de menu sous forme de type numérique.

d2fmnig_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de l'objet élément de menu sous forme de type numérique.

d2fmnig_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'objet élément de menu sous forme de type numérique.

d2fmnig_hint( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Conseil de l'objet élément de menu sous forme de type texte.

d2fmnig_hlp_description( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Aide de l'objet élément de menu sous forme de type texte.

d2fmnig_icon_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de fichier d'icône de l'objet élément de menu sous forme de type texte.

d2fmnig_icon_in_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Icône de l'objet élément de menu sous forme de type booléen.

d2fmnig_kdrd_acc( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Raccourci-clavier de l'objet élément de menu sous forme de type texte.

d2fmnig_label( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Libellé de l'objet élément de menu sous forme de type texte.

d2fmnig_magic_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Elément de menu magique de l'objet élément de menu sous forme de type numérique.

d2fmnig_mnu_itm_code( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MNU_ITM_CODE de l'objet élément de menu sous forme de type texte.

d2fmnig_mnu_itm_rad_grp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe de boutons associé à l'option de menu de l'objet élément de menu sous forme de type texte.

d2fmnig_mnu_itm_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'option de menu de l'objet élément de menu sous forme de type numérique.

d2fmnig_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet élément de menu sous forme de type objet.

d2fmnig_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet élément de menu sous forme de type texte.

d2fmnig_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet élément de menu sous forme de type objet.

d2fmnig_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet élément de menu sous forme de type objet.

d2fmnig_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet élément de menu sous forme de type texte.

d2fmnig_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet élément de menu sous forme de type texte.

d2fmnig_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet élément de menu sous forme de type numérique.

d2fmnig_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet élément de menu sous forme de type numérique.

d2fmnig_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet élément de menu sous forme de type texte.

d2fmnig_par_num( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NUM de l'objet élément de menu sous forme de type texte.

d2fmnig_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet élément de menu sous forme de type objet.

d2fmnig_role_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ROLE_COUNT de l'objet élément de menu sous forme de type numérique.

d2fmnig_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet élément de menu sous forme de type objet.

d2fmnig_sub_mnu_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SUB_MNU_NAM de l'objet élément de menu sous forme de type texte.

d2fmnig_sub_mnu_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SUB_MNU_OBJ de l'objet élément de menu sous forme de type objet.

d2fmnig_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'objet élément de menu sous forme de type texte.

d2fmnig_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ de l'objet élément de menu sous forme de type objet.

d2fmnig_visible( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible de l'objet élément de menu sous forme de type booléen.

d2fmnig_vsbl_in_horz_mnu_tlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible dans la barre d'outils de menu Horizontal/Vertical de l'objet élément menu sous forme de type booléen.

d2fmnig_vsbl_in_menu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible dans le menu de l'objet élément de menu sous forme de type booléen.

d2fmnig_vsbl_in_vert_mnu_tlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible dans la barre d'outils de menu Horizontal/Vertical de l'objet élément menu sous forme de type booléen.

d2fmnis_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet élément de menu.

d2fmnis_com_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Texte de commande de l'objet élément de menu.

d2fmnis_com_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de commande de l'objet élément de menu.

d2fmnis_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet élément de menu.

d2fmnis_disp_no_priv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher sans privilège de l'objet élément de menu.

d2fmnis_enabled( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Activé de l'objet élément de menu.

d2fmnis_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'objet élément de menu.

d2fmnis_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'objet élément de menu.

d2fmnis_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'objet élément de menu.

d2fmnis_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'objet élément de menu.

d2fmnis_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'objet élément de menu.

d2fmnis_hint( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Conseil de l'objet élément de menu.

d2fmnis_hlp_description( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Aide de l'objet élément de menu.

d2fmnis_icon_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de fichier d'icône de l'objet élément de menu.

d2fmnis_icon_in_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Icône de l'objet élément de menu.

d2fmnis_kdrd_acc( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Raccourci-clavier de l'objet élément de menu.

d2fmnis_label( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Libellé de l'objet élément de menu.

d2fmnis_magic_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Elément de menu magique de l'objet élément de menu.

d2fmnis_mnu_itm_code( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MNU_ITM_CODE de l'objet élément de menu.

d2fmnis_mnu_itm_rad_grp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe de boutons associé à l'option de menu de l'objet élément de menu.

d2fmnis_mnu_itm_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'option de menu de l'objet élément de menu.

d2fmnis_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet élément de menu.

d2fmnis_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet élément de menu.

d2fmnis_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet élément de menu.

d2fmnis_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet élément de menu.

d2fmnis_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet élément de menu.

d2fmnis_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet élément de menu.

d2fmnis_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet élément de menu.

d2fmnis_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet élément de menu.

d2fmnis_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet élément de menu.

d2fmnis_par_num( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NUM de l'objet élément de menu.

d2fmnis_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet élément de menu.

d2fmnis_role_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ROLE_COUNT de l'objet élément de menu.

d2fmnis_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet élément de menu.

d2fmnis_sub_mnu_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SUB_MNU_NAM de l'objet élément de menu.

d2fmnis_sub_mnu_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SUB_MNU_OBJ de l'objet élément de menu.

d2fmnis_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'objet élément de menu.

d2fmnis_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ de l'objet élément de menu.

d2fmnis_visible( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible de l'objet élément de menu.

d2fmnis_vsbl_in_horz_mnu_tlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible dans la barre d'outils de menu Horizontal/Vertical de l'objet élément menu.

d2fmnis_vsbl_in_menu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible dans le menu de l'objet élément de menu.

d2fmnis_vsbl_in_vert_mnu_tlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible dans la barre d'outils de menu Horizontal/Vertical de l'objet élément menu.


Macros d'objet paramètre de menu

  Rubriques connexes

La présente section décrit les macros de l'objet paramètre de menu de Open API de Form Builder.

d2fmpmg_assoc_menus_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ASSOC_MENUS_COUNT de l'objet paramètre de menu sous forme de type numérique.

d2fmpmg_assoc_mnus( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menus associés de l'objet paramètre de menu sous forme de type objet.

d2fmpmg_case_rstrction( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Respecter maj/min de l'objet paramètre de menu sous forme de type numérique.

d2fmpmg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet paramètre de menu sous forme de pointeur de type dvoid.

d2fmpmg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_conceal_data( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Masquer données de l'objet paramètre de menu sous forme de type booléen.

d2fmpmg_fixed_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur fixe de l'objet paramètre de menu sous forme de type booléen.

d2fmpmg_hint( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Conseil de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_label( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Libellé de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_max_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur maximum de l'objet paramètre de menu sous forme de type numérique.

d2fmpmg_mnu_param_init_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur initiale de paramètre de menu de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet paramètre de menu sous forme de type objet.

d2fmpmg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet paramètre de menu sous forme de type objet.

d2fmpmg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet paramètre de menu sous forme de type objet.

d2fmpmg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet paramètre de menu sous forme de type numérique.

d2fmpmg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet paramètre de menu sous forme de type numérique.

d2fmpmg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet paramètre de menu sous forme de type texte.

d2fmpmg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet paramètre de menu sous forme de type objet.

d2fmpmg_required( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REQUIRED de l'objet paramètre de menu sous forme de type booléen.

d2fmpmg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet paramètre de menu sous forme de type objet.

d2fmpms_assoc_mnus( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menus associés de l'objet paramètre de menu.

d2fmpms_case_rstrction( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Respecter maj/min de l'objet paramètre de menu.

d2fmpms_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet paramètre de menu.

d2fmpms_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet paramètre de menu.

d2fmpms_conceal_data( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Masquer données de l'objet paramètre de menu.

d2fmpms_fixed_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur fixe de l'objet paramètre de menu.

d2fmpms_hint( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Conseil de l'objet paramètre de menu.

d2fmpms_label( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Libellé de l'objet paramètre de menu.

d2fmpms_max_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur maximum de l'objet paramètre de menu.

d2fmpms_mnu_param_init_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur initiale de paramètre de menu de l'objet paramètre de menu.

d2fmpms_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet paramètre de menu.

d2fmpms_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet paramètre de menu.

d2fmpms_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet paramètre de menu.

d2fmpms_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet paramètre de menu.

d2fmpms_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet paramètre de menu.

d2fmpms_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet paramètre de menu.

d2fmpms_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet paramètre de menu.

d2fmpms_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet paramètre de menu.

d2fmpms_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet paramètre de menu.

d2fmpms_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet paramètre de menu.

d2fmpms_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet paramètre de menu.

d2fmpms_required( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REQUIRED de l'objet paramètre de menu.


Macros d'objet (objet générique)

  Rubriques connexes

La présente section décrit les macros d'objet (objet générique) de Open API de Form Builder.

d2fobg_access_key( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clé d'accès de l'objet sous forme de type texte.

d2fobg_activex_class( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ACTIVEX_CLASS de l'objet sous forme de type texte.

d2fobg_acitvex_val_prop( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ACTIVEX_VAL_PROP de l'objet sous forme de type texte.

d2fobg_alert( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ALERT de l'objet sous forme de type objet.

d2fobg_allow_expansion( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autoriser développement de l'objet sous forme de type booléen.

d2fobg_allow_mlt_lin_prmpts( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autoriser invites multilignes de l'objet sous forme de type booléen.

d2fobg_allow_strt_att_prmpts( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autoriser invites de début attachées de l'objet sous forme de type booléen.

d2fobg_allow_top_att_prpmts( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autoriser invites supérieures attachées de l'objet sous forme de type booléen.

d2fobg_alt_msg( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Message de l'objet sous forme de type texte.

d2fobg_alt_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'alerte de l'objet sous forme de type numérique.

d2fobg_arrow_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de flèche de l'objet sous forme de type numérique.

d2fobg_menus_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MENUS_COUNT de l'objet sous forme de type numérique.

d2fobg_assoc_mnus( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menus associés de l'objet sous forme de type objet.

d2fobg_att_lib( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ATT_LIB de l'objet sous forme de type objet.

d2fobg_audio_chnnls( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canaux audio de l'objet sous forme de type numérique.

d2fobg_auto_col_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur automatique de colonne de l'objet sous forme de type booléen.

d2fobg_auto_disp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Affichage automatique de l'objet sous forme de type booléen.

d2fobg_auto_hint( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Affichage automatique des messages d'aide de l'objet sous forme de type booléen.

d2fobg_auto_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position automatique de l'objet sous forme de type booléen.

d2fobg_auto_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation automatique de l'objet sous forme de type booléen.

d2fobg_auto_rfrsh( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Régénération automatique de l'objet sous forme de type booléen.

d2fobg_auto_skp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Saut automatique de l'objet sous forme de type booléen.

d2fobg_auto_slct( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sélection automatique de l'objet sous forme de type booléen.

d2fobg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'objet sous forme de type texte.

d2fobg_xxx( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété XXX de l'objet sous forme de type numérique.

d2fobg_bevel( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Relief de l'objet sous forme de type numérique.

d2fobg_blk_description( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_BLK_DESCRIPTION de l'objet sous forme de type texte.

d2fobg_block( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_BLOCK de l'objet sous forme de type objet.

d2fobg_bounding_bx_scalable( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_BOUNDING_BX_SCALABLE de l'objet as type booléen

d2fobg_btm_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_BTM_TTL de l'objet sous forme de type texte

d2fobg_btn_1_lbl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Libellé Bouton 1 de l'objet sous forme de type texte

d2fobg_btn_2_lbl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Libellé Bouton 2 de l'objet sous forme de type texte

d2fobg_btn_3_lbl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Libellé Bouton 3 de l'objet sous forme de type texte

d2fobg_calc_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode de calcul de l'objet sous forme de type numérique

d2fobg_Canevas( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CANEVAS de l'objet sous forme de type objet

d2fobg_cap_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de bord d'objet de l'objet sous forme de type numérique

d2fobg_case_insensitive_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation sans distinction maj/min de l'objet sous forme de type booléen.

d2fobg_case_restriction( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Respecter maj/min de l'objet sous forme de type numérique

d2fobg_chk_bx_other_vals( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Case à cocher Correspondance d'autres valeurs de l'objet sous forme de type numérique

d2fobg_chked_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Coché de l'objet sous forme de type texte

d2fobg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet sous forme d'un pointeur de dvoid.

d2fobg_clip_hgt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Hauteur du rectangle de découpe de l'objet sous forme de type numérique.

d2fobg_clip_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur du rectangle de découpe de l'objet sous forme de type numérique.

d2fobg_clip_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine X du rectangle de découpe de l'objet sous forme de type numérique.

d2fobg_clip_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine Y du rectangle de découpe de l'objet sous forme de type numérique.

d2fobg_closed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Indicateur de polygone/Fermeture d'arc de l'objet sous forme de type booléen.

d2fobg_cls_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Fermeture autorisée de l'objet sous forme de type booléen.

d2fobg_cmprssion_qlty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CMPRSSION_QLTY de l'objet sous forme de type numérique.

d2fobg_cnv_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas de l'objet sous forme de type texte.

d2fobg_cnv_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CNV_OBJ de l'objet sous forme de type objet.

d2fobg_cnv_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de canevas de l'objet sous forme de type numérique.

d2fobg_col_dat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COL_DAT_TYP de l'objet sous forme de type numérique.

d2fobg_col_map( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Correspondance de colonnes de l'objet sous forme de type objet.

d2fobg_col_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de colonne de l'objet sous forme de type texte.

d2fobg_col_spec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Spécifications de colonne de l'objet sous forme de type objet.

d2fobg_col_vals_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COL_VALS_COUNT de l'objet sous forme de type numérique.

d2fobg_com_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Texte de commande de l'objet sous forme de type texte.

d2fobg_com_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COM_TYP de l'objet sous forme de type numérique.

d2fobg_comm_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode de communication de l'objet sous forme de type numérique.

d2fobg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet sous forme de type texte.

d2fobg_compress( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Comprimer de l'objet sous forme de type numérique.

d2fobg_conceal_data( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Masquer données de l'objet sous forme de type booléen.

d2fobg_console_win( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Fenêtre de commande de l'objet sous forme de type texte.

d2fobg_copy_val_from_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Copier valeur de l'élément de l'objet sous forme de type texte.

d2fobg_corner_radius_x( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine X du rayon de l'angle du rectangle arrondi de l'objet sous forme de type numérique.

d2fobg_corner_radius_y( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine Y du rayon de l'angle du rectangle arrondi de l'objet sous forme de type numérique.

d2fobg_crsr_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode curseur de l'objet sous forme de type numérique.

d2fobg_cstm_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement personnalisé pour objets texte de l'objet sous forme de type numérique.

d2fobg_dash_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de tiret de bord d'objet de l'objet sous forme de type numérique.

d2fobg_dat_src_blk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de source de données de l'objet sous forme de type texte.

d2fobg_dat_src_x_axs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Axe X de source de données de l'objet sous forme de type texte.

d2fobg_dat_src_y_axs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Origine X de l'axe Y de source de données de l'objet sous forme de type texte.

d2fobg_dat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de données de l'objet sous forme de type numérique.

d2fobg_db_blk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de base de données de l'objet sous forme de type booléen.

d2fobg_db_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Elément de base de données de l'objet sous forme de type booléen.

d2fobg_defer_req_enf( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DEFER_REQ_ENF de l'objet sous forme de type booléen.

d2fobg_deferred( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Différé de l'objet sous forme de type booléen.

d2fobg_del_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de base de données de l'objet sous forme de type booléen.

d2fobg_del_proc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Supprimer le nom de procédure de l'objet sous forme de type texte.

d2fobg_del_rec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Supprimer comportement de l'enregistrement de l'objet sous forme de type numérique.

d2fobg_detail_blk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc détail de l'objet sous forme de type texte.

d2fobg_dflt_alt_btn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bouton d'alerte par défaut de l'objet sous forme de type numérique.

d2fobg_dflt_btn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bouton par défaut de l'objet sous forme de type booléen.

d2fobg_disp_in_kbrd_hlp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Display in Keyboard Help de l'objet sous forme de type booléen.

d2fobg_disp_no_priv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher sans privilège de l'objet sous forme de type booléen.

d2fobg_disp_qlty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Qualité de l'affichage de l'objet sous forme de type numérique.

d2fobg_disp_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher largeur de l'objet sous forme de type numérique.

d2fobg_dist_bwwn_recs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Distance entre enregistrements de l'objet sous forme de type numérique.

d2fobg_dither( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Image de trame de graphique de l'objet sous forme de type booléen.

d2fobg_dml_ary_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de tableau DML de l'objet sous forme de type numérique.

d2fobg_dml_dat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de cible de données DML de l'objet sous forme de type texte.

d2fobg_dml_dat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de cible de données DML de l'objet sous forme de type numérique.

d2fobg_dsa_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_MODE de l'objet sous forme de type numérique.

d2fobg_dsa_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_NAM de l'objet sous forme de type texte.

d2fobg_dsa_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_TYPE de l'objet sous forme de type numérique.

d2fobg_dsa_typ_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_TYP_NAM de l'objet sous forme de type texte.

d2fobg_dsa_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSA_VAL de l'objet sous forme de type texte.

d2fobg_dsc_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_LEN de l'objet sous forme de type numérique.

d2fobg_dsc_mandatory( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_MANDATORY de l'objet sous forme de type booléen.

d2fobg_dsc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_NAM de l'objet sous forme de type texte.

d2fobg_dsc_precision( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_PRECISION de l'objet sous forme de type numérique.

d2fobg_dsc_scale( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_SCALE de l'objet sous forme de type numérique.

d2fobg_dsc_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DSC_TYP de l'objet sous forme de type numérique.

d2fobg_edge_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de bord d'objet sous forme de type texte.

d2fobg_edge_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de bord d'objet sous forme de type texte.

d2fobg_editor( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Editeur de l'objet sous forme de type objet.

d2fobg_edt_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'éditeur de l'objet sous forme de type texte.

d2fobg_edt_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_EDT_OBJ de l'objet sous forme de type objet.

d2fobg_edt_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de l'éditeur, Position Y de l'éditeur de l'objet sous forme de type numérique.

d2fobg_edt_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de l'éditeur, Position Y de l'éditeur de l'objet sous forme de type numérique.

d2fobg_enabled( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Activé de l'objet sous forme de type booléen.

d2fobg_enfrc_col_security( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Imposer sécurité sur colonne de l'objet sous forme de type booléen.

d2fobg_enfrc_prmry_key( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Imposer clé primaire de l'objet sous forme de type booléen.

d2fobg_exec_hierarchy( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style d'exécution de l'objet sous forme de type numérique.

d2fobg_exec_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode d'exécution de l'objet sous forme de type numérique.

d2fobg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'objet sous forme de type texte.

d2fobg_fire_in_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Activer en mode Saisie interrogation de l'objet sous forme de type booléen.

d2fobg_fixed_bounding_bx( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille fixe de la boîte englobante de l'objet sous forme de type booléen.

d2fobg_fixed_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur fixe de l'objet sous forme de type booléen.

d2fobg_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de fichier de l'objet sous forme de type texte.

d2fobg_fltr_before_disp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Filtrer avant afficher de l'objet sous forme de type booléen.

d2fobg_fmt_msk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Masque de format de l'objet sous forme de type texte.

d2fobg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'objet sous forme de type texte.

d2fobg_font_scaleable( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille en points proportionnelle à l'objet de l'objet sous forme de type booléen.

d2fobg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'objet sous forme de type numérique.

d2fobg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'objet sous forme de type numérique.

d2fobg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de l'objet sous forme de type numérique.

d2fobg_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété XXX de l'objet sous forme de type numérique.

d2fobg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de police de l'objet sous forme de type texte.

d2fobg_form_param( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FORM_PARAM de l'objet sous forme de type objet.

d2fobg_formula( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Formule de l'objet sous forme de type texte.

d2fobg_frame_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de cadre de l'objet sous forme de type numérique.

d2fobg_frame_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de cadre de l'objet sous forme de type texte.

d2fobg_frame_ttl_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de titre de cadre de l'objet sous forme de type numérique.

d2fobg_frame_ttl_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de titre de cadre de l'objet sous forme de type texte.

d2fobg_frame_ttl_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de titre de cadre de l'objet sous forme de type texte.

d2fobg_frame_ttl_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de titre de cadre de l'objet sous forme de type texte.

d2fobg_frame_ttl_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de titre de cadre de l'objet sous forme de type numérique.

d2fobg_frame_ttl_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de titre de cadre de l'objet sous forme de type numérique.

d2fobg_frame_ttl_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de titre de cadre de l'objet sous forme de type numérique.

d2fobg_frame_ttl_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de titre de cadre de l'objet sous forme de type numérique.

d2fobg_frame_ttl_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de titre de cadre de l'objet sous forme de type texte.

d2fobg_frame_ttl_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage de titre de cadre de l'objet sous forme de type numérique.

d2fobg_frame_ttl_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de titre de cadre de l'objet sous forme de type numérique.

d2fobg_frame_ttl_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de titre de cadre de titre de l'objet sous forme de type texte.

d2fobg_frame_ttl_val_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FRAME_TTL_VAL_OBJ de l'objet sous forme de type objet.

d2fobg_frst_navigation_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Premier bloc de navigation de l'objet sous forme de type texte.

d2fobg_frst_navigation_blk_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FRST_NAVIGATION_BLK_OBJ de l'objet sous forme de type objet.

d2fobg_gra_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police graphique de l'objet sous forme de type texte.

d2fobg_gra_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police graphique de l'objet sous forme de type numérique.

d2fobg_gra_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police graphique de l'objet sous forme de type numérique.

d2fobg_gra_text( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Texte graphique de l'objet sous forme de type texte.

d2fobg_graphic( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_GRAPHIC de l'objet sous forme de type objet.

d2fobg_graphics_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'objet graphique de l'objet sous forme de type numérique.

d2fobg_height( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet sous forme de type numérique.

d2fobg_hide_on_exit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Masquer sur sortie de l'objet sous forme de type numérique.

d2fobg_highest_allowed_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur maximum autorisée/Valeur minimum autorisée de l'objet sous forme de type texte.

d2fobg_hint( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Conseil de l'objet sous forme de type texte.

d2fobg_hlp_description( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Aide de l'objet sous forme de type texte.

d2fobg_horz_jst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification horizontale d'objet texte de l'objet sous forme de type numérique.

d2fobg_horz_margn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Marge horizontale de l'objet sous forme de type numérique.

d2fobg_horz_obj_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'objet horizontal de l'objet sous forme de type numérique.

d2fobg_horz_orgn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position horizontale par rapport à l'origine de l'objet sous forme de type numérique.

d2fobg_horz_tlbr_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas à barre d'outils horizontale de l'objet sous forme de type texte.

d2fobg_htb_cnv_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_HTB_CNV_NAME de l'objet sous forme de type texte.

d2fobg_icon_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de fichier d'icône de l'objet sous forme de type texte.

d2fobg_icon_in_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FO_ICON_IN_MNU de l'objet sous forme de type booléen.

d2fobg_iconic( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Icône de l'objet sous forme de type booléen.

d2fobg_img_dpth( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Profondeur d'image de l'objet sous forme de type numérique.

d2fobg_img_fmt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Format d'image de l'objet sous forme de type numérique.

d2fobg_inhrt_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu hérité de l'objet sous forme de type booléen.

d2fobg_inhrt_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style d'héritage de l'objet sous forme de type numérique.

d2fobg_init_kgrd_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Etat initial clavier de l'objet sous forme de type numérique.

d2fobg_init_menu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu initial de l'objet sous forme de type texte.

d2fobg_init_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur initiale de l'objet sous forme de type texte.

d2fobg_insrt_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Insertion autorisée de l'objet sous forme de type booléen.

d2fobg_insrt_proc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Insérer le nom de procédure de l'objet sous forme de type texte.

d2fobg_interaction_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode interaction de l'objet sous forme de type numérique.

d2fobg_internal_end_angle( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INTERNAL_END_ANGLE de l'objet sous forme de type numérique.

d2fobg_internal_lin_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INTERNAL_LIN_WID de l'objet sous forme de type numérique.

d2fobg_internal_rotation_angle( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INTERNAL_ROTATION_ANGLE de l'objet sous forme de type numérique.

d2fobg_internal_strt_angle( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INTERNAL_STRT_ANGLE de l'objet sous forme de type numérique.

d2fobg_isolation_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode isolation de l'objet sous forme de type numérique.

d2fobg_item( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ITEM de l'objet sous forme de type objet.

d2fobg_itm_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'élément de l'objet sous forme de type numérique.

d2fobg_itms_disp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre d'éléments affiché de l'objet sous forme de type numérique.

d2fobg_join_cond( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Condition de jointure de l'objet sous forme de type texte.

d2fobg_join_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de jointure de bord d'objet de l'objet sous forme de type numérique.

d2fobg_justification( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification de l'objet sous forme de type numérique.

d2fobg_kbrd_acc( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Raccourci-clavier de l'objet sous forme de type texte.

d2fobg_kbrd_hlp_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Description de l'aide sur les touches de l'objet sous forme de type texte.

d2fobg_kbrd_navigable( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Navigation autorisée au clavier de l'objet sous forme de type booléen.

d2fobg_kbrd_state( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Etat initial clavier de l'objet sous forme de type numérique.

d2fobg_keep_crsr_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Conserver position du curseur de l'objet sous forme de type booléen.

d2fobg_key_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode clé de l'objet sous forme de type numérique.

d2fobg_label( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Libellé de l'objet sous forme de type texte.

d2fobg_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Direction de langue de l'objet sous forme de type numérique.

d2fobg_layout_data_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de données de présentation de l'objet sous forme de type texte.

d2fobg_layout_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de présentation de l'objet sous forme de type numérique.

d2fobg_lib_loc( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Emplacement de la bibliothèque PL/SQL de l'objet sous forme de type texte.

d2fobg_lib_src( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Source de bibliothèque PL/SQL de l'objet sous forme de type numérique.

d2fobg_lin_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de trait de l'objet sous forme de type numérique.

d2fobg_lock_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode de verrouillage de l'objet sous forme de type numérique.

d2fobg_lock_proc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Verrouiller le nom de procédure de l'objet sous forme de type texte.

d2fobg_lock_rec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Verrouiller l'enregistrement de l'objet sous forme de type booléen.

d2fobg_lov( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Liste de valeurs de l'objet sous forme de type objet.

d2fobg_lov_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_LOV_NAM de l'objet sous forme de type texte.

d2fobg_lov_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_LOV_OBJ de l'objet sous forme de type objet.

d2fobg_lov_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de la liste de l'objet sous forme de type numérique.

d2fobg_lov_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position Y de la liste de l'objet sous forme de type numérique.

d2fobg_lowest_allowed_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur maximum autorisée/Valeur minimum autorisée de l'objet sous forme de type texte.

d2fobg_lst_element_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décompte des éléments de liste de l'objet sous forme de type numérique.

d2fobg_lst_in_blk_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Répertorié dans le menu Bloc de l'objet sous forme de type booléen.

d2fobg_lst_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de liste de l'objet sous forme de type numérique.

d2fobg_lst_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de liste de l'objet sous forme de type numérique.

d2fobg_magic_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Elément de menu magique de l'objet sous forme de type numérique.

d2fobg_main_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu principal de l'objet sous forme de type texte.

d2fobg_max_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur maximum de l'objet sous forme de type numérique.

d2fobg_max_objs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre maximum d'objets par ligne de l'objet sous forme de type numérique.

d2fobg_max_qry_time( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Durée maximum d'interrogation de l'objet sous forme de type numérique.

d2fobg_max_recs_fetched( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre maximum d'enregistrements extraits de l'objet sous forme de type numérique.

d2fobg_maximize_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Agrandissement autorisé de l'objet sous forme de type booléen.

d2fobg_menu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MENU de l'objet sous forme de type objet.

d2fobg_minimize_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Réduction autorisée de l'objet sous forme de type booléen.

d2fobg_minimize_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Réduire titre de l'objet sous forme de type texte.

d2fobg_mlt_lin( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Multiligne de l'objet sous forme de type booléen.

d2fobg_mnu_description( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Description de menu de l'objet sous forme de type texte.

d2fobg_mnu_drctry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Répertoire de menu de l'objet sous forme de type texte.

d2fobg_mnu_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de fichier de menu de l'objet sous forme de type texte.

d2fobg_mnu_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'option de menu de l'objet sous forme de type objet.

d2fobg_mnu_itm_code( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MNU_ITM_CODE de l'objet sous forme de type texte.

d2fobg_mnu_itm_rad_grp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe de boutons associé à l'option de menu de l'objet sous forme de type texte.

d2fobg_mnu_itm_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'option de menu de l'objet sous forme de type numérique.

d2fobg_mnu_mod( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Module menu de l'objet sous forme de type texte.

d2fobg_mnu_param( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MNU_PARAM de l'objet sous forme de type objet.

d2fobg_mnu_param_init_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur initiale de paramètre de menu de l'objet sous forme de type texte.

d2fobg_mnu_role( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Rôles du module Menu de l'objet sous forme de type texte.

d2fobg_mnu_src( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Source du menu de l'objet sous forme de type numérique.

d2fobg_mnu_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de menu de l'objet sous forme de type numérique.

d2fobg_modal( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Modale de l'objet sous forme de type booléen.

d2fobg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet sous forme de type objet.

d2fobg_mouse_navigate( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Navigation à la souris de l'objet sous forme de type booléen.

d2fobg_mouse_navigation_lmt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Limite de navigation à la souris de l'objet sous forme de type numérique.

d2fobg_mv_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Déplacement autorisé de l'objet sous forme de type booléen.

d2fobg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet sous forme de type texte.

d2fobg_navigation_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de navigation de l'objet sous forme de type numérique.

d2fobg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet sous forme de type objet.

d2fobg_nxt_navigation_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NXT_NAVIGATION_BLK_NAM de l'objet sous forme de type texte.

d2fobg_nxt_navigation_blk_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NXT_NAVIGATION_BLK_OBJ de l'objet sous forme de type objet.

d2fobg_nxt_navigation_itm_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NXT_NAVIGATION_ITM_NAM de l'objet sous forme de type texte.

d2fobg_nxt_navigation_itm_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NXT_NAVIGATION_ITM_OBJ de l'objet sous forme de type objet.

d2fobg_obj_grp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OBJ_GRP de l'objet sous forme de type objet.

d2fobg_obj_grp_child_real_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OBJ_GRP_CHILD_REAL_OBJ de l'objet sous forme de type objet.

d2fobg_og_child( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OG_CHILD de l'objet sous forme de type objet.

d2fobg_old_lov_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Ancien texte LOV de l'objet sous forme de type texte.

d2fobg_ole_act_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'activation OLE de l'objet sous forme de type numérique.

d2fobg_ole_class( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Classe OLE de l'objet sous forme de type texte.

d2fobg_ole_in_place_act( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Activation sur objets incorporés OLE de l'objet sous forme de type booléen.

d2fobg_ole_insd_out_support( ctx, obj, val ) ;

********This macro returns the value of the OLE Inside-out Support property of the object as type boolean.

d2fobg_ole_popup_mnu_itms( ctx, obj, val );********

Cette macro retourne la valeur de la propriété Options de menu OLE instantané de l'objet sous forme de type numérique.

d2fobg_ole_resiz_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de redimensionnement OLE de l'objet sous forme de type numérique.

d2fobg_ole_show_popup_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher menu OLE instantané de l'objet sous forme de type booléen.

d2fobg_ole_show_tnnt_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher type de contenu OLE de l'objet sous forme de type booléen.

d2fobg_ole_tnnt_aspct( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Aspect du contenu OLE de l'objet sous forme de type numérique.

d2fobg_ole_tnnt_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de contenu OLE de l'objet sous forme de type numérique.

d2fobg_opt_hint( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Optimizer Hint de l'objet sous forme de type texte.

d2fobg_ordr_by_clause( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clause ORDER BY de l'objet sous forme de type texte.

d2fobg_other_vals( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Correspondance d'autres valeurs de l'objet sous forme de type texte.

d2fobg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet sous forme de type objet.

d2fobg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet sous forme de type texte.

d2fobg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet sous forme de type texte.

d2fobg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet sous forme de type numérique.

d2fobg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet sous forme de type numérique.

d2fobg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet sous forme de type texte.

d2fobg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet sous forme de type texte.

d2fobg_param_dat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de données de paramètre de l'objet sous forme de type numérique.

d2fobg_param_init_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur initiale de paramètre de l'objet sous forme de type texte.

d2fobg_pgu_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PGU_TEXT de l'objet sous forme de type texte.

d2fobg_popup_mnu_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_POPUP_MNU_NAM de l'objet sous forme de type texte.

d2fobg_popup_mnu_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_POPUP_MNU_OBJ de l'objet sous forme de type texte.

d2fobg_popup_va_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_POPUP_VA_OBJ de l'objet sous forme de type objet.

d2fobg_precomp_summ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRECOMP_SUMM de l'objet sous forme de type booléen.

d2fobg_prev_navigation_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc de navigation précédent de l'objet sous forme de type texte.

d2fobg_prev_navigation_blk_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREV_NAVIGATION_BLK_OBJ de l'objet sous forme de type objet.

d2fobg_prev_navigation_itm_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom d'élément de navigation précédent de l'objet sous forme de type texte.

d2fobg_prev_navigation_itm_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREV_NAVIGATION_ITM_OBJ de l'objet sous forme de type objet.

d2fobg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet sous forme de type objet.

d2fobg_prmpt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Invite de l'objet sous forme de type texte.

d2fobg_prmpt_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de l'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_align_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'alignement de l'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_att_edge( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bord d'attachement de l'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_att_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'attachement de l'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'invite de l'objet sous forme de type texte.

d2fobg_prmpt_disp_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'affichage de l'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'invite de l'objet sous forme de type texte.

d2fobg_prmpt_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'invite de l'objet sous forme de type texte.

d2fobg_prmpt_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police d'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'invite de l'objet sous forme de type numérique.

d2fobg_prompt_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police d'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'invite de l'objet sous forme de type texte.

d2fobg_prmpt_jst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification de l'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_reading_ordr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Séquence de lecture de l'invite de l'objet sous forme de type numérique.

d2fobg_prmpt_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'invite de l'objet sous forme de type texte.

d2fobg_prmpt_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_VAT_OBJ de l'objet sous forme de type objet.

d2fobg_prmry_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas primaire de l'objet sous forme de type texte.

d2fobg_prmry_key( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clé primaire de l'objet sous forme de type booléen.

d2fobg_prog_unit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PROG_UNIT de l'objet sous forme de type objet.

d2fobg_prop_class( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Classe de propriété de l'objet sous forme de type objet.

d2fobg_prvnt_mstrless_ops( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Empêcher opérations sans maître de l'objet sous forme de type booléen.

d2fobg_qry_all_recs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interroger tous les enregistrements de l'objet sous forme de type booléen.

d2fobg_qry_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation autorisée de l'objet sous forme de type booléen.

d2fobg_qry_dat_src_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de source de données d'interrogation de l'objet sous forme de type texte.

d2fobg_qry_dat_src_type( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de source de données d'interrogation de l'objet sous forme de type numérique.

d2fobg_qry_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Longueur d'interrogation de l'objet sous forme de type numérique.

d2fobg_qry_only( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation seulement de l'objet sous forme de type booléen.

d2fobg_rad_but( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RAD_BUT de l'objet sous forme de type objet.

d2fobg_raise_on_entry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher au premier plan sur saisie de l'objet sous forme de type booléen.

d2fobg_rdb_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur de bouton d'option de l'objet sous forme de type texte.

d2fobg_reading_ordr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Séquence de lecture de l'objet sous forme de type numérique.

d2fobg_rec_grp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'enregistrements de l'objet sous forme de type objet.

d2fobg_rec_grp_fetch_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_GRP_FETCH_SIZ de l'objet sous forme de type numérique.

d2fobg_rec_grp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'enregistrements de l'objet sous forme de type texte.

d2fobg_rec_grp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_GRP_OBJ de l'objet sous forme de type objet.

d2fobg_rec_grp_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Interrogation associée au groupe d'enregistrements de l'objet sous forme de type texte.

d2fobg_rec_grp_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de groupe d'enregistrements de l'objet sous forme de type numérique.

d2fobg_rec_ornt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sens des enregistrements de l'objet sous forme de type numérique.

d2fobg_rec_vat_grp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'enregistrement en cours de l'objet sous forme de type texte.

d2fobg_rec_vat_grp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_VAT_GRP_OBJ de l'objet sous forme de type objet.

d2fobg_recs_buffered_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre d'enregistrements en tampon de l'objet sous forme de type numérique.

d2fobg_recs_disp_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nombre d'enregistrements affiché de l'objet sous forme de type numérique.

d2fobg_recs_fetched_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Enregistrements à extraire de l'objet sous forme de type numérique.

d2fobg_rel( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REL de l'objet sous forme de type objet.

d2fobg_rendered( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Rendu de l'objet sous forme de type booléen.

d2fobg_report( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REPORT de l'objet sous forme de type objet.

d2fobg_required( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Obligatoire de l'objet sous forme de type booléen.

d2fobg_resize_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Redimensionnement autorisé de l'objet sous forme de type booléen.

d2fobg_rev_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Inverser direction de l'objet sous forme de type booléen.

d2fobg_rpt_destination_fmt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Format de destination d'état de l'objet sous forme de type texte.

d2fobg_rpt_destination_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de destination d'état de l'objet sous forme de type texte.

d2fobg_rpt_destination_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de destination d'état de l'objet sous forme de type numérique.

d2fobg_rpt_params( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Autres paramètres d'état de l'objet sous forme de type texte.

d2fobg_rpt_srvr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Report Server de l'objet sous forme de type texte.

d2fobg_rtrn_itm( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Elément récepteur de l'objet sous forme de type texte.

d2fobg_runtime_comp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RUNTIME_COMP de l'objet sous forme de type numérique.

d2fobg_scrlbr_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de barre de défilement de l'objet sous forme de type numérique.

d2fobg_scrlbr_cnv_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas à barre de défilement de l'objet sous forme de type texte.

d2fobg_scrlbr_cnv_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SCRLBR_CNV_OBJ de l'objet sous forme de type objet.

d2fobg_scrlbr_hgt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Hauteur de barre de défilement de l'objet sous forme de type numérique.

d2fobg_scrlbr_ornt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sens de la barre de défilement de l'objet sous forme de type numérique.

d2fobg_scrlbr_tbp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Page onglet de barre de défilement de l'objet sous forme de type texte.

d2fobg_scrlbr_tbp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SCRLBR_TBP_OBJ de l'objet sous forme de type objet.

d2fobg_scrlbr_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur de barre de défilement de l'objet sous forme de type numérique.

d2fobg_scrlbr_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de la barre de défilement de l'objet sous forme de type numérique.

d2fobg_scrlbr_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position Y de la barre de défilement de l'objet sous forme de type numérique.

d2fobg_share_lib( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Partager bibliothèque avec une application Forms de l'objet sous forme de type booléen.

d2fobg_short_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom abrégé de l'objet sous forme de type texte.

d2fobg_show_fast_fwd( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher bouton Avance rapide de l'objet sous forme de type booléen.

d2fobg_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement horizontale de l'objet sous forme de type booléen.

d2fobg_show_palette( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher palette de l'objet sous forme de type booléen.

d2fobg_show_play( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher bouton Lecture de l'objet sous forme de type booléen.

d2fobg_show_rec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher bouton Enregistrement de l'objet sous forme de type booléen.

d2fobg_show_rewind( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher bouton Retour rapide de l'objet sous forme de type booléen.

d2fobg_show_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Show Scrollbar de l'objet sous forme de type booléen.

d2fobg_show_slider( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher règle de l'objet sous forme de type booléen.

d2fobg_show_time( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Show Time Indicator de l'objet sous forme de type booléen.

d2fobg_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher barre de défilement verticale de l'objet sous forme de type booléen.

d2fobg_show_volumn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Afficher réglage du volume de l'objet sous forme de type booléen.

d2fobg_shrinkwrap( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Comprimer de l'objet sous forme de type booléen.

d2fobg_sizing_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de dimensionnement de l'objet sous forme de type numérique.

d2fobg_snd_fmt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Format son de l'objet sous forme de type numérique.

d2fobg_snd_qlty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Qualité du son de l'objet sous forme de type numérique.

d2fobg_sngl_obj_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement d'un objet de l'objet sous forme de type numérique.

d2fobg_sngl_rec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Enregistrement unique de l'objet sous forme de type booléen.

d2fobg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet sous forme de type objet.

d2fobg_strt_prmpt_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de l'invite de début de l'objet sous forme de type numérique.

d2fobg_strt_prmpt_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage de l'invite de début de l'objet sous forme de type numérique.

d2fobg_strtup_code( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Code de démarrage de l'objet sous forme de type texte.

d2fobg_sub_mnu_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SUB_MNU_NAM de l'objet sous forme de type texte.

d2fobg_sub_mnu_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SUB_MNU_OBJ de l'objet sous forme de type objet.

d2fobg_sub_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sous-titre de l'objet sous forme de type texte.

d2fobg_summ_blk_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bloc récapitulatif de l'objet sous forme de type texte.

d2fobg_summ_func( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Fonction récapitulative de l'objet sous forme de type numérique.

d2fobg_summ_itm_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Elément récapitulatif de l'objet sous forme de type texte.

d2fobg_svpnt_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mode savepoint de l'objet sous forme de type booléen.

d2fobg_sync_itm_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Synchronisation avec option de l'objet sous forme de type texte.

d2fobg_sync_itm_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SYNC_ITM_OBJ de l'objet sous forme de type objet.

d2fobg_tab_att_edge( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bord d'attachement d'onglet de l'objet sous forme de type numérique.

d2fobg_tab_page( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Page onglet de l'objet sous forme de type objet.

d2fobg_tab_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'onglet de l'objet sous forme de type numérique.

d2fobg_tbp_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TBP_NAM de l'objet sous forme de type texte.

d2fobg_tbp_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TBP_OBJ de l'objet sous forme de type objet.

d2fobg_tear_off_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Menu détachable de l'objet sous forme de type booléen.

d2fobg_title( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Titre de l'objet sous forme de type texte.

d2fobg_tooltip( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bulle d'information de l'objet sous forme de type texte.

d2fobg_tooltip_vat_grp, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de bulle d'information objet sous forme de type texte.

d2fobg_top_prmpt_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de l'invite supérieure de l'objet sous forme de type numérique.

d2fobg_top_prmpt_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage de l'invite supérieure de l'objet sous forme de type numérique.

d2fobg_trg_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de déclencheur de l'objet sous forme de type numérique.

d2fobg_trg_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Texte de déclencheur de l'objet sous forme de type texte.

d2fobg_trg_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de déclencheur de l'objet sous forme de type numérique.

d2fobg_trigger( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TRIGGER de l'objet sous forme de type objet.

d2fobg_ttl_reading_ordr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Séquence de lecture de titre de l'objet sous forme de type numérique.

d2fobg_unchked_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur lorsque non coché de l'objet sous forme de type texte.

d2fobg_updt_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mise à jour autorisée de l'objet sous forme de type booléen.

d2fobg_updt_changed_cols( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour colonnes modifiées seulement de l'objet sous forme de type booléen.

d2fobg_updt_commit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Update Commit de l'objet sous forme de type booléen.

d2fobg_updt_if_null( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mise à jour seulement si Null de l'objet sous forme de type booléen.

d2fobg_updt_layout( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour présentation de l'objet sous forme de type numérique.

d2fobg_updt_proc_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Mettre à jour nom de procédure de l'objet sous forme de type texte.

d2fobg_updt_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Update Query de l'objet sous forme de type booléen.

d2fobg_use_3D_cntrls( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Utiliser contrôles 3D de l'objet sous forme de type booléen.

d2fobg_use_security( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sécurité de l'objet sous forme de type booléen.

d2fobg_validate_from_list( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valider à partir de la liste de l'objet sous forme de type booléen.

d2fobg_validation_unit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Unité de validation de l'objet sous forme de type numérique.

d2fobg_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'objet sous forme de type texte.

d2fobg_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ de l'objet sous forme de type objet.

d2fobg_vat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_TYPE de l'objet sous forme de type numérique.

d2fobg_vert_fill( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Remplissage vertical de l'objet sous forme de type booléen.

d2fobg_vert_jst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification verticale de l'objet sous forme de type numérique.

d2fobg_vert_margn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Marge verticale de l'objet sous forme de type numérique.

d2fobg_vert_obj_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'objet vertical de l'objet sous forme de type numérique.

d2fobg_vert_orgn( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position verticale par rapport à l'origine de l'objet sous forme de type numérique.

d2fobg_vert_tlbr_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas à barre d'outils verticale de l'objet sous forme de type texte.

d2fobg_vis_attr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VIS_ATTR de l'objet sous forme de type objet.

d2fobg_visible( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible de l'objet sous forme de type booléen.

d2fobg_vprt_hgt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Hauteur de la lucarne de l'objet sous forme de type numérique.

d2fobg_vrpt_wid( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur de la lucarne de l'objet sous forme de type numérique.

d2fobg_vprt_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de la lucarne de l'objet sous forme de type numérique.

d2fobg_vrpt_x_pos_on_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X de la lucarne sur le canevas de l'objet sous forme de type numérique.

d2fobg_vrpt_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position Y de la lucarne de l'objet sous forme de type numérique.

d2fobg_vrpt_y_pos_on_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position Y de la lucarne sur le canevas de l'objet as number.

d2fobg_vsbl_in_horz_mnu_tlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible dans la barre d'outils de menu Horizontal/Vertical de l'objet sous forme de type booléen.

d2fobg_vsbl_in_menu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible dans le menu de l'objet sous forme de type booléen.

d2fobg_vsbl_in_vert_mnu_tlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété XXX de l'objet sous forme de type booléen.

d2fobg_vtb_cnv_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Canevas à barre d'outils verticale de l'objet sous forme de type texte.

d2fobg_where_clause( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clause WHERE de l'objet sous forme de type texte.

d2fobg_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Blanc sur noir de l'objet sous forme de type booléen.

d2fobg_width( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet sous forme de type numérique.

d2fobg_win_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de fenêtre de l'objet sous forme de type numérique.

d2fobg_Fenêtre( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Fenêtre de l'objet sous forme de type objet.

d2fobg_wnd_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_WND_NAM de l'objet sous forme de type texte.

d2fobg_wnd_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_WND_OBJ de l'objet sous forme de type objet.

d2fobg_wrap_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type de césure de l'objet sous forme de type numérique.

d2fobg_wrap_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Renvoi à la ligne de l'objet sous forme de type booléen.

d2fobg_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_X_POSITION de l'objet sous forme de type numérique.

d2fobg_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_Y _POSITION de l'objet sous forme de type numérique.

d2fobs_access_key( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Clé d'accès de l'objet.

d2fobs_activex_class( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ACTIVEX_CLASS de l'objet.

d2fobs_acitvex_val_prop( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ACTIVEX_VAL_PROP de l'objet.

d2fobs_alert( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ALERT de l'objet.

d2fobs_allow_expansion( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autoriser développement de l'objet.

d2fobs_allow_mlt_lin_prmpts( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autoriser invites multilignes de l'objet.

d2fobs_allow_strt_att_prmpts( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autoriser invites de début attachées de l'objet.

d2fobs_allow_top_att_prpmts( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autoriser invites supérieures attachées de l'objet.

d2fobs_alt_msg( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Message de l'objet.

d2fobs_alt_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style d'alerte de l'objet.

d2fobs_arrow_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de flèche de l'objet.

d2fobs_menus_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MENUS_COUNT de l'objet.

d2fobs_assoc_mnus( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menus associés de l'objet.

d2fobs_att_lib( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ATT_LIB de l'objet.

d2fobs_audio_chnnls( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canaux audio de l'objet.

d2fobs_auto_col_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur automatique de colonne de l'objet.

d2fobs_auto_disp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Affichage automatique de l'objet.

d2fobs_auto_hint( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Affichage automatique des messages d'aide de l'objet.

d2fobs_auto_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position automatique de l'objet.

d2fobs_auto_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation automatique de l'objet.

d2fobs_auto_rfrsh( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Régénération automatique de l'objet.

d2fobs_auto_skp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Saut automatique de l'objet.

d2fobs_auto_slct( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sélection automatique de l'objet.

d2fobs_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Propriété Couleur d'arrière-plan de l'objet.

d2fobs_xxx( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété XXX de l'objet.

d2fobs_bevel( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Relief de l'objet.

d2fobs_blk_description( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_BLK_DESCRIPTION de l'objet.

d2fobs_block( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_BLOCK de l'objet.

d2fobs_bounding_bx_scalable( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_BOUNDING_BX_SCALABLE de l'objet.

d2fobs_btm_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_BTM_TTL de l'objet.

d2fobs_btn_1_lbl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Propriété Libellé Bouton 1 de l'objet.

d2fobs_btn_2_lbl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Propriété Libellé Bouton 2 de l'objet.

d2fobs_btn_3_lbl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Propriété Libellé Bouton 3 de l'objet.

d2fobs_calc_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode de calcul de l'objet.

d2fobs_Canevas( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CANEVAS de l'objet.

d2fobs_cap_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de bord d'objet de l'objet.

d2fobs_case_insensitive_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation sans distinction maj/min de l'objet.

d2fobs_case_restriction( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Respecter maj/min de l'objet.

d2fobs_chk_bx_other_vals( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Case à cocher Correspondance d'autres valeurs de l'objet.

d2fobs_chked_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Coché de l'objet.

d2fobs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet.

d2fobs_clip_hgt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Hauteur du rectangle de découpe de l'objet.

d2fobs_clip_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur du rectangle de découpe de l'objet.

d2fobs_clip_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine X du rectangle de découpe de l'objet.

d2fobs_clip_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine Y du rectangle de découpe de l'objet.

d2fobs_closed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Indicateur de polygone/Fermeture d'arc de l'objet.

d2fobs_cls_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Fermeture autorisée de l'objet.

d2fobs_cmprssion_qlty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CMPRSSION_QLTY de l'objet.

d2fobs_cnv_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas de l'objet.

d2fobs_cnv_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CNV_OBJ de l'objet.

d2fobs_cnv_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de canevas de l'objet.

d2fobs_col_dat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COL_DAT_TYP de l'objet.

d2fobs_col_map( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Correspondance de colonnes de l'objet.

d2fobs_col_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de colonne de l'objet.

d2fobs_col_spec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Spécifications de colonne de l'objet.

d2fobs_col_vals_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COL_VALS_COUNT de l'objet.

d2fobs_com_txtctx, obj, val ) ;

Cette macro définit la valeur de la propriété Texte de commande de l'objet.

d2fobs_xxx( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété XXX de l'objet.

d2fobs_comm_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode de communication de l'objet.

d2fobs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet.

d2fobs_compress( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Comprimer de l'objet.

d2fobs_conceal_data( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Masquer données de l'objet.

d2fobs_console_win( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Fenêtre de commande de l'objet.

d2fobs_copy_val_from_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Copier valeur de l'élément de l'objet.

d2fobs_corner_radius_x( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine X du rayon de l'angle du rectangle arrondi de l'objet.

d2fobs_corner_radius_y( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine Y du rayon de l'angle du rectangle arrondi de l'objet.

d2fobs_crsr_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode curseur de l'objet.

d2fobs_cstm_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement personnalisé pour objets texte de l'objet.

d2fobs_dash_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de tiret pour bords d'objet de l'objet.

d2fobs_dat_src_blk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de source de données de l'objet.

d2fobs_dat_src_x_axs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Axe X de source de données de l'objet.

d2fobs_dat_src_y_axs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Origine X de l'axe Y de source de données de l'objet.

d2fobs_dat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de données de l'objet.

d2fobs_db_blk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de base de données de l'objet.

d2fobs_db_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Elément de base de données de l'objet.

d2fobs_defer_req_enf( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DEFER_REQ_ENF de l'objet.

d2fobs_deferred( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Différé de l'objet.

d2fobs_del_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de base de données de l'objet.

d2fobs_del_proc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Supprimer nom de procédure de l'objet.

d2fobs_del_rec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Supporter comportement de l'enregistrement de l'objet.

d2fobs_detail_blk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc détail de l'objet.

d2fobs_dflt_alt_btn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bouton d'alerte par défaut de l'objet.

d2fobs_dflt_btn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bouton par défaut de l'objet.

d2fobs_disp_in_kbrd_hlp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Display in Keyboard Help de l'objet.

d2fobs_xxxdisp_no_priv ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher sans privilège de l'objet.

d2fobs_disp_qlty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Qualité de l'affichage de l'objet.

d2fobs_disp_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher largeur de l'objet.

d2fobs_dist_bwwn_recs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Distance entre enregistrements de l'objet.

d2fobs_dither( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Image de trame de graphique de l'objet.

d2fobs_dml_ary_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de tableau DML de l'objet.

d2fobs_dml_dat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de cible de données DML de l'objet.

d2fobs_dml_dat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de cible de données DML de l'objet.

d2fobs_dsa_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_MODE de l'objet.

d2fobs_dsa_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_NAM de l'objet.

d2fobs_dsa_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_TYPE de l'objet.

d2fobs_dsa_typ_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_TYP_NAM de l'objet.

d2fobs_dsa_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSA_VAL de l'objet.

d2fobs_dsc_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_LEN de l'objet.

d2fobs_dsc_mandatory( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_MANDATORY de l'objet.

d2fobs_dsc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_NAM de l'objet.

d2fobs_dsc_precision( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_PRECISION de l'objet.

d2fobs_dsc_scale( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_SCALE de l'objet.

d2fobs_dsc_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DSC_TYP de l'objet.

d2fobs_edge_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Object Edge Propriété Couleur d'arrière-plan de l'objet.

d2fobs_edge_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de bord d'objet de l'objet.

d2fobs_editor( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Editeur de l'objet.

d2fobs_edt_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'éditeur de l'objet.

d2fobs_edt_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_EDT_OBJ de l'objet.

d2fobs_edt_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de l'éditeur, Position Y de l'éditeur de l'objet.

d2fobs_edt_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de l'éditeur, Position Y de l'éditeur de l'objet.

d2fobs_enabled( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Activé de l'objet.

d2fobs_enfrc_col_security( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Imposer sécurité sur colonne de l'objet.

d2fobs_enfrc_prmry_key( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Imposer clé primaire de l'objet.

d2fobs_exec_hierarchy( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style d'exécution de l'objet.

d2fobs_exec_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode d'exécution de l'objet.

d2fobs_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'objet.

d2fobs_fire_in_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Activer en mode Saisie interrogation de l'objet.

d2fobs_fixed_bounding_bx( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille fixe de la boîte englobante de l'objet.

d2fobs_fixed_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur fixe de l'objet.

d2fobs_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de fichier de l'objet.

d2fobs_fltr_before_disp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Filtrer avant afficher de l'objet.

d2fobs_fmt_msk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Masque de format de l'objet.

d2fobs_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'objet.

d2fobs_font_scaleable( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille en points proportionnelle à l'objet de l'objet.

d2fobs_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'objet.

d2fobs_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'objet.

d2fobs_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'objet.

d2fobs_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété XXX de l'objet.

d2fobs_font_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de police de l'objet.

d2fobs_form_param( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FORM_PARAM de l'objet.

d2fobs_formula( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Formule de l'objet.

d2fobs_frame_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de cadre de l'objet.

d2fobs_frame_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de cadre de l'objet.

d2fobs_frame_ttl_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de titre de cadre de l'objet.

d2fobs_frame_ttl_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de titre de cadre de l'objet.

d2fobs_frame_ttl_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de titre de cadre de l'objet.

d2fobs_frame_ttl_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de titre de cadre de l'objet.

d2fobs_frame_ttl_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de titre de cadre de l'objet.

d2fobs_frame_ttl_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de titre de cadre de l'objet.

d2fobs_frame_ttl_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de titre de cadre de l'objet.

d2fobs_frame_ttl_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de titre de cadre de l'objet.

d2fobs_frame_ttl_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de titre de cadre de l'objet.

d2fobs_frame_ttl_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage de titre de cadre de l'objet.

d2fobs_frame_ttl_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de titre de cadre de l'objet.

d2fobs_frame_ttl_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Attribut visuel de cadre de titre Groupe de l'objet.

d2fobs_frame_ttl_val_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FRAME_TTL_VAL_OBJ de l'objet.

d2fobs_frst_navigation_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Premier bloc de navigation de l'objet.

d2fobs_frst_navigation_blk_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FRST_NAVIGATION_BLK_OBJ de l'objet.

d2fobs_gra_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police graphique de l'objet.

d2fobs_gra_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police graphique de l'objet.

d2fobs_gra_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police graphique de l'objet.

d2fobs_gra_text( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Texte graphique de l'objet.

d2fobs_graphic( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_GRAPHIC de l'objet.

d2fobs_graphics_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'objet graphique de l'objet.

d2fobs_height( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet.

d2fobs_hide_on_exit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Masquer sur sortie de l'objet.

d2fobs_highest_allowed_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur maximale autorisée/Valeur minimale autorisée de l'objet.

d2fobs_hint( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Conseil de l'objet.

d2fobs_hlp_description( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Aide de l'objet.

d2fobs_horz_jst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification horizontale d'objet texte de l'objet.

d2fobs_horz_margn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Marge horizontale de l'objet.

d2fobs_horz_obj_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'objet horizontal de l'objet.

d2fobs_horz_orgn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position horizontale par rapport à l'origine de l'objet.

d2fobs_horz_tlbr_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas à barre d'outils horizontale de l'objet.

d2fobs_htb_cnv_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_HTB_CNV_NAME de l'objet.

d2fobs_icon_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de fichier d'icône de l'objet.

d2fobs_icon_in_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FO_ICON_IN_MNU de l'objet.

d2fobs_iconic( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Icône de l'objet.

d2fobs_img_dpth( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Profondeur d'image de l'objet.

d2fobs_img_fmt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Format d'image de l'objet.

d2fobs_inhrt_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu hérité de l'objet.

d2fobs_inhrt_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style d'héritage de l'objet.

d2fobs_init_kgrd_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Etat initial clavier de l'objet.

d2fobs_init_menu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu initial de l'objet.

d2fobs_init_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur initiale de l'objet.

d2fobs_insrt_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Insertion autorisée de l'objet.

d2fobs_insrt_proc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Insérer le nom de procédure de l'objet.

d2fobs_interaction_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode d'interaction de l'objet.

d2fobs_internal_end_angle( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INTERNAL_END_ANGLE de l'objet.

d2fobs_internal_lin_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INTERNAL_LIN_WID de l'objet.

d2fobs_internal_rotation_angle( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INTERNAL_ROTATION_ANGLE de l'objet.

d2fobs_internal_strt_angle( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INTERNAL_STRT_ANGLE de l'objet.

d2fobs_isolation_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la Propriété Mode d'isolation de l'objet.

d2fobs_item( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ITEM de l'objet.

d2fobs_itm_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la Propriété Type d'élément de l'objet.

d2fobs_itms_disp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre d'éléments affiché de l'objet.

d2fobs_join_cond( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Condition de jointure de l'objet.

d2fobs_join_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de jointure de bord d'objet de l'objet.

d2fobs_justification( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification de l'objet.

d2fobs_kbrd_acc( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Raccourci-clavier de l'objet.

d2fobs_kbrd_hlp_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Description de l'aide sur les touches de l'objet.

d2fobs_kbrd_navigable( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Navigation autorisée au clavier de l'objet.

d2fobs_kbrd_state( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Etat clavier de l'objet.

d2fobs_keep_crsr_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Conserver position du curseur de l'objet.

d2fobs_key_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode clé de l'objet.

d2fobs_label( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Libellé de l'objet.

d2fobs_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Direction de langue de l'objet.

d2fobs_layout_data_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de données de présentation de l'objet.

d2fobs_layout_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de présentation de l'objet.

d2fobs_lib_loc( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Emplacement de la bibliothèque PL/SQL de l'objet.

d2fobs_lib_src( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Source de bibliothèque PL/SQL de l'objet.

d2fobs_lin_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de trait de l'objet.

d2fobs_lock_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode de verrouillage de l'objet.

d2fobs_lock_proc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Verrouiller le nom de procédure de l'objet.

d2fobs_lock_rec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Verrouiller l'enregistrement de l'objet.

d2fobs_lov( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Liste de valeurs de l'objet.

d2fobs_lov_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_LOV_NAM de l'objet.

d2fobs_lov_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_LOV_OBJ de l'objet.

d2fobs_lov_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de la liste de l'objet.

d2fobs_lov_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position Y de la liste de l'objet.

d2fobs_lowest_allowed_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur maximale autorisée/Valeur minimale autorisée de l'objet.

d2fobs_lst_element_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décompte des éléments de liste de l'objet.

d2fobs_lst_in_blk_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Répertorié dans le menu Bloc de l'objet.

d2fobs_lst_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de liste de l'objet.

d2fobs_lst_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de liste de l'objet.

d2fobs_magic_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Elément de menu magique de l'objet.

d2fobs_main_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu principal de l'objet.

d2fobs_max_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur maximum de l'objet.

d2fobs_max_objs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre maximum d'objets par ligne de l'objet.

d2fobs_max_qry_time( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Durée maximum d'interrogation de l'objet.

d2fobs_max_recs_fetched( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre maximum d'enregistrements extraits de l'objet.

d2fobs_maximize_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Agrandissement autorisé de l'objet.

d2fobs_menu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MENU de l'objet.

d2fobs_minimize_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Réduction autorisée de l'objet.

d2fobs_minimize_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Réduire titre de l'objet.

d2fobs_mlt_lin( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Multiligne de l'objet.

d2fobs_mnu_description( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Description de menu de l'objet.

d2fobs_mnu_drctry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Répertoire de menu de l'objet.

d2fobs_mnu_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de fichier de menu de l'objet.

d2fobs_mnu_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'option de menu de l'objet.

d2fobs_mnu_itm_code( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MNU_ITM_CODE de l'objet.

d2fobs_mnu_itm_rad_grp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe de boutons associé à l'option de menu de l'objet.

d2fobs_mnu_itm_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'option de menu de l'objet.

d2fobs_mnu_mod( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Module menu de l'objet.

d2fobs_mnu_param( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MNU_PARAM de l'objet.

d2fobs_mnu_param_init_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu Valeur initiale de paramètre de l'objet.

d2fobs_mnu_role( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Module menu Rôle de l'objet.

d2fobs_mnu_src( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Source du menu de l'objet.

d2fobs_mnu_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de menu de l'objet.

d2fobs_modal( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Modale de l'objet.

d2fobs_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet.

d2fobs_mouse_navigate( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Navigation à la souris de l'objet.

d2fobs_mouse_navigation_lmt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Limite de navigation à la souris de l'objet.

d2fobs_mv_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Déplacement autorisé de l'objet.

d2fobs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet.

d2fobs_navigation_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de navigation de l'objet.

d2fobs_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet.

d2fobs_nxt_navigation_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NXT_NAVIGATION_BLK_NAM de l'objet.

d2fobs_nxt_navigation_blk_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NXT_NAVIGATION_BLK_OBJ de l'objet.

d2fobs_nxt_navigation_itm_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NXT_NAVIGATION_ITM_NAM de l'objet.

d2fobs_nxt_navigation_itm_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NXT_NAVIGATION_ITM_OBJ de l'objet.

d2fobs_obj_grp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OBJ_GRP de l'objet.

d2fobs_obj_grp_child_real_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OBJ_GRP_CHILD_REAL_OBJ de l'objet.

d2fobs_og_child( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OG_CHILD de l'objet.

d2fobs_old_lov_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Ancien texte LOV de l'objet.

d2fobs_ole_act_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style d'activation LOV de l'objet.

d2fobs_ole_class( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Classe OLE de l'objet.

d2fobs_ole_in_place_act( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Activation sur objets incorporés OLE de l'objet.

d2fobs_ole_insd_out_support( ctx, obj, val ) ;

*********This macro sets the value of the OLE Inside-out Support property of the object.

d2fobs_ole_popup_mnu_itms( ctx, obj, val );**********

Cette macro définit la valeur de la propriété Options de menu OLE instantané de l'objet.

d2fobs_ole_resiz_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de redimensionnement OLE de l'objet.

d2fobs_ole_show_popup_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher menu OLE instantané de l'objet.

d2fobs_ole_show_tnnt_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher type de contenu OLE de l'objet.

d2fobs_ole_tnnt_aspct( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Aspect du contenu OLE de l'objet.

d2fobs_ole_tnnt_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de contenu OLE de l'objet.

d2fobs_opt_hint( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Optimizer Hint de l'objet.

d2fobs_ordr_by_clause( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Clause ORDER BY de l'objet.

d2fobs_other_vals( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Correspondance d'autres valeurs de l'objet.

d2fobs_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet.

d2fobs_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet.

d2fobs_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet.

d2fobs_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet.

d2fobs_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet.

d2fobs_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet.

d2fobs_par_num( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NUM de l'objet.

d2fobs_param_dat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de données de paramètre de l'objet.

d2fobs_param_init_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur initiale de paramètre de l'objet.

d2fobs_pgu_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PGU_TEXT de l'objet.

d2fobs_popup_mnu_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_POPUP_MNU_NAM de l'objet.

d2fobs_popup_mnu_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_POPUP_MNU_OBJ de l'objet.

d2fobs_popup_va_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_POPUP_VA_OBJ de l'objet.

d2fobs_precomp_summ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PRECOMP_SUMM de l'objet.

d2fobs_prev_navigation_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc de navigation précédent de l'objet.

d2fobs_prev_navigation_blk_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREV_NAVIGATION_BLK_OBJ de l'objet.

d2fobs_prev_navigation_itm_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom d'élément de navigation précédent de l'objet.

d2fobs_prev_navigation_itm_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREV_NAVIGATION_ITM_OBJ de l'objet.

d2fobs_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet.

d2fobs_prmpt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Invite de l'objet.

d2fobs_prmpt_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de l'invite de l'objet.

d2fobs_prmpt_align_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'alignement de l'invite de l'objet.

d2fobs_prmpt_att_edge( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bord d'attachement de l'invite de l'objet.

d2fobs_prmpt_att_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'attachement de l'invite de l'objet.

d2fobs_prmpt_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'invite de l'objet.

d2fobs_prmpt_disp_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'affichage de l'invite de l'objet.

d2fobs_prmpt_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'invite de l'objet.

d2fobs_prmpt_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'invite de l'objet.

d2fobs_prmpt_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'invite de l'objet.

d2fobs_prmpt_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'invite de l'objet.

d2fobs_prompt_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'invite de l'objet.

d2fobs_prmpt_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'invite de l'objet.

d2fobs_prmpt_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'invite de l'objet.

d2fobs_prmpt_jst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification de l'invite de l'objet.

d2fobs_prmpt_reading_ordr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sens de lecture de l'invite de l'objet.

d2fobs_prmpt_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'invite de l'objet.

d2fobs_prmpt_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PRMPT_VAT_OBJ de l'objet.

d2fobs_prmry_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas primaire de l'objet.

d2fobs_prmry_key( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Clé primaire de l'objet.

d2fobs_prog_unit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROG_UNIT de l'objet.

d2fobs_prop_class( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Classe de propriété de l'objet.

d2fobs_prvnt_mstrless_ops( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Empêcher opérations sans maître de l'objet.

d2fobs_qry_all_recs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interroger tous les enregistrements de l'objet.

d2fobs_qry_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation autorisée de l'objet.

d2fobs_qry_dat_src_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de source de données d'interrogation de l'objet.

d2fobs_qry_dat_src_type( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de source de données d'interrogation de l'objet.

d2fobs_qry_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Longueur d'interrogation de l'objet.

d2fobs_qry_only( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation seulement de l'objet.

d2fobs_rad_but( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RAD_BUT de l'objet.

d2fobs_raise_on_entry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher au premier plan sur saisie de l'objet.

d2fobs_rdb_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur de bouton d'option de l'objet.

d2fobs_reading_ordr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Séquence de lecture de l'objet.

d2fobs_rec_grp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'enregistrements de l'objet.

d2fobs_rec_grp_fetch_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_GRP_FETCH_SIZ de l'objet.

d2fobs_rec_grp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'enregistrements de l'objet.

d2fobs_rec_grp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_GRP_OBJ de l'objet.

d2fobs_rec_grp_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Interrogation associée au groupe d'enregistrements de l'objet.

d2fobs_rec_grp_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de groupe d'enregistrements de l'objet.

d2fobs_rec_ornt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sens des enregistrements de l'objet.

d2fobs_rec_vat_grp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'enregistrement en cours de l'objet.

d2fobs_rec_vat_grp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_VAT_GRP_OBJ de l'objet.

d2fobs_recs_buffered_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre d'enregistrements en tampon de l'objet.

d2fobs_recs_disp_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nombre d'enregistrements affiché de l'objet.

d2fobs_recs_fetched_count( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Enregistrements à extraire de l'objet.

d2fobs_rel( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REL de l'objet.

d2fobs_rendered( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Rendu de l'objet.

d2fobs_report( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REPORT de l'objet.

d2fobs_required( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Obligatoire de l'objet.

d2fobs_resize_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Redimensionnement autorisé de l'objet.

d2fobs_rev_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Inverser direction de l'objet.

d2fobs_rpt_destination_fmt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Format de destination d'état de l'objet.

d2fobs_rpt_destination_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de destination d'état de l'objet.

d2fobs_rpt_destination_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de destination d'état de l'objet.

d2fobs_rpt_params( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Autres paramètres d'état de l'objet.

d2fobs_rpt_srvr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Report Server de l'objet.

d2fobs_rtrn_itm( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Elément récepteur de l'objet.

d2fobs_runtime_comp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RUNTIME_COMP de l'objet.

d2fobs_scrlbr_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de barre de défilement de l'objet.

d2fobs_scrlbr_cnv_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas à barre de défilement de l'objet.

d2fobs_scrlbr_cnv_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SCRLBR_CNV_OBJ de l'objet.

d2fobs_scrlbr_hgt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Hauteur de barre de défilement de l'objet.

d2fobs_scrlbr_ornt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sens de la barre de défilement de l'objet.

d2fobs_scrlbr_tbp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Page onglet de barre de défilement de l'objet.

d2fobs_scrlbr_tbp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SCRLBR_TBP_OBJ de l'objet.

d2fobs_scrlbr_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur de barre de défilement de l'objet.

d2fobs_scrlbr_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de la barre de défilement de l'objet.

d2fobs_scrlbr_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position Y de la barre de défilement de l'objet.

d2fobs_share_lib( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Partager bibliothèque avec application Forms de l'objet.

d2fobs_short_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom abrégé de l'objet.

d2fobs_show_fast_fwd( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher bouton Avance rapide de l'objet.

d2fobs_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement horizontale de l'objet.

d2fobs_show_palette( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher palette de l'objet.

d2fobs_show_play( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher bouton Lecture de l'objet.

d2fobs_show_rec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher bouton Enregistrement de l'objet.

d2fobs_show_rewind( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher bouton Retour rapide de l'objet.

d2fobs_show_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement de l'objet.

d2fobs_show_slider( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher règle de l'objet.

d2fobs_show_time( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher horloge de l'objet.

d2fobs_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher barre de défilement verticale de l'objet.

d2fobs_show_volumn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Afficher réglage du volume de l'objet.

d2fobs_shrinkwrap( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Comprimer de l'objet.

d2fobs_sizing_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de dimensionnement de l'objet.

d2fobs_snd_fmt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Format son de l'objet.

d2fobs_snd_qlty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Qualité du son de l'objet.

d2fobs_sngl_obj_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement d'un objet de l'objet.

d2fobs_sngl_rec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Enregistrement unique de l'objet.

d2fobs_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet.

d2fobs_strt_prmpt_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de l'invite de début de l'objet.

d2fobs_strt_prmpt_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage de l'invite de début de l'objet.

d2fobs_strtup_code( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Code de démarrage de l'objet.

d2fobs_sub_mnu_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SUB_MNU_NAM de l'objet.

d2fobs_sub_mnu_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SUB_MNU_OBJ de l'objet.

d2fobs_sub_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sous-titre de l'objet.

d2fobs_summ_blk_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bloc récapitulatif de l'objet.

d2fobs_summ_func( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Fonction récapitulative de l'objet.

d2fobs_summ_itm_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Elément récapitulatif de l'objet.

d2fobs_svpnt_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mode savepoint de l'objet.

d2fobs_sync_itm_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Synchronisation avec option de l'objet.

d2fobs_sync_itm_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SYNC_ITM_OBJ de l'objet.

d2fobs_tab_att_edge( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bord d'attachement d'onglet de l'objet.

d2fobs_tab_page( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Page onglet de l'objet.

d2fobs_tab_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style d'onglet de l'objet.

d2fobs_tbp_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TBP_NAM de l'objet.

d2fobs_tbp_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TBP_OBJ de l'objet.

d2fobs_tear_off_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Menu détachable de l'objet.

d2fobs_title( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Titre de l'objet.

d2fobs_tooltip( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bulle d'information de l'objet.

d2fobs_tooltip_vat_grp, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de Bulle d'information objet.

d2fobs_top_prmpt_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de l'invite supérieure de l'objet.

d2fobs_top_prmpt_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage de l'invite supérieure de l'objet.

d2fobs_trg_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de déclencheur de l'objet.

d2fobs_trg_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Texte de déclencheur de l'objet.

d2fobs_trg_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de déclencheur de l'objet.

d2fobs_trigger( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TRIGGER de l'objet.

d2fobs_ttl_reading_ordr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Séquence de lecture de titre de l'objet.

d2fobs_unchked_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur lorsque non coché de l'objet.

d2fobs_updt_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mise à jour autorisée de l'objet.

d2fobs_updt_changed_cols( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour colonnes modifiées seulement de l'objet.

d2fobs_updt_commit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Update Commit de l'objet.

d2fobs_updt_if_null( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mise à jour seulement si Null de l'objet.

d2fobs_updt_layout( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour présentation de l'objet.

d2fobs_updt_proc_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Mettre à jour nom de procédure de l'objet.

d2fobs_updt_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Update Query de l'objet.

d2fobs_use_3D_cntrls( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Utiliser contrôles 3D de l'objet.

d2fobs_use_security( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sécurité de l'objet.

d2fobs_validate_from_list( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valider à partir de la liste de l'objet.

d2fobs_validation unit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Unité de validation de l'objet.

d2fobs_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'objet.

d2fobs_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ de l'objet.

d2fobs_vat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_TYPE de l'objet.

d2fobs_vert_fill( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Remplissage vertical de l'objet.

d2fobs_vert_jst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification verticale de l'objet.

d2fobs_vert_margn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Marge verticale de l'objet.

d2fobs_vert_obj_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'objet vertical de l'objet.

d2fobs_vert_orgn( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position verticale par rapport à l'origine de l'objet.

d2fobs_vert_tlbr_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas à barre d'outils verticale de l'objet.

d2fobs_vis_attr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VIS_ATTR de l'objet.

d2fobs_visible( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible de l'objet.

d2fobs_vprt_hgt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Hauteur de la lucarne de l'objet.

d2fobs_vrpt_wid( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur de la lucarne de l'objet.

d2fobs_vprt_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de la lucarne de l'objet.

d2fobs_vrpt_x_pos_on_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X de la lucarne sur le canevas de l'objet.

d2fobs_vrpt_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position Y de la lucarne de l'objet.

d2fobs_vrpt_y_pos_on_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position Y de la lucarne sur le canevas de l'objet.

d2fobs_vsbl_in_horz_mnu_tlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible dans la barre d'outils de menu Horizontal/Vertical de l'objet.

d2fobs_vsbl_in_menu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible dans le menu de l'objet.

d2fobs_vsbl_in_vert_mnu_tlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété XXX de l'objet.

d2fobs_vtb_cnv_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Canevas à barre d'outils verticale de l'objet.

d2fobs_where_clause( ctx, obj, val ) ;

Cette macro définit la valeur de la Propriété Clause WHERE de l'objet.

d2fobs_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Blanc sur noir de l'objet.

d2fobs_width( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet.

d2fobs_win_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de fenêtre de l'objet.

d2fobs_Fenêtre( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Fenêtre de l'objet.

d2fobs_wnd_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_WND_NAM de l'objet.

d2fobs_wnd_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_WND_OBJ de l'objet.

d2fobs_wrap_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type de césure de l'objet.

d2fobs_wrap_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Renvoi à la ligne de l'objet.

d2fobs_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_X_POSITION de l'objet.

d2fobs_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_Y _POSITION de l'objet.


Macros d'objet de groupe d'objets

  Rubriques connexes

La présente section décrit les macros d'objet de groupe d'objets de Open API de Form Builder.

d2fobgg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO du groupe d'objets sous forme de pointeur de type dvoid.

d2fobgg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT du groupe d'objets sous forme de type texte.

d2fobgg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE du groupe d'objets sous forme de type objet.

d2fobgg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME du groupe d'objets d'objets sous forme de type texte.

d2fobgg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT du groupe d'objets sous forme de type objet.

d2fobgg_og_child( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OG_CHILD du groupe d'objets sous forme de type objet.

d2fobgg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER du groupe d'objets sous forme de type objet.

d2fobgg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO du groupe d'objets sous forme de type texte.

d2fobgg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH du groupe d'objets sous forme de type texte.

d2fobgg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR du groupe d'objets sous forme de type numérique.

d2fobgg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP du groupe d'objets sous forme de type numérique.

d2fobgg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE du groupe d'objets sous forme de type texte.

d2fobgg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM du groupe d'objets sous forme de type texte.

d2fobgg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS du groupe d'objets sous forme de type objet.

d2fobgg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE du groupe d'objets sous forme de type objet.

d2fobgs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO du groupe d'objets.

d2fobgs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT du groupe d'objets.

d2fobgs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME du groupe d'objets.

d2fobgs_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM du groupe d'objets.

d2fobgs_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH du groupe d'objets.

d2fobgs_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR du groupe d'objets.

d2fobgs_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP du groupe d'objets.

d2fobgs_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE du groupe d'objets.

d2fobgs_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM du groupe d'objets.


Macros d'objet fils de groupe d'objets

  Rubriques connexes

La présente section décrit les macros d'objet fils de groupe d'objets de Open API de Form Builder Objet.

d2fogcg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet fils de groupe d'objets sous forme de pointeur de type dvoid.

d2fogcg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet fils de groupe d'objets sous forme de type texte.

d2fogcg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet fils de groupe d'objets sous forme de type objet.

d2fogcg_obj_grp_child_real_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OBJ_GRP_CHILD_REAL_OBJ de l'objet fils de groupe d'objets sous forme de type objet.

d2fogcg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet fils de groupe d'objets sous forme de type objet.

d2fogcg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet fils de groupe d'objets sous forme de type objet.

d2fogcs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet fils de groupe d'objets.

d2fogcs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet fils de groupe d'objets.

d2fogcs_obj_grp_child_real_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ OBJ_GRP_CHILD_REAL_OBJ de l'objet fils de groupe d'objets.


Macros d'objet bibliothèque d'objets

  Rubriques connexes

La présente section décrit les macros d'objet bibliothèque d'objets de Open API de Form Builder.

d2folbg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet bibliothèque d'objets sous forme de pointeur de type dvoid.

d2folbg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet bibliothèque d'objets sous forme de type texte.

d2folbg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet bibliothèque d'objets sous forme de type objet.

d2folbg_obj_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OBJ_COUNT de l'objet bibliothèque d'objets sous forme de type numérique.

d2folbg_obj_lib_tab( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OBJ_LIB_TAB de l'objet bibliothèque d'objets sous forme de type objet.

d2folbg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet bibliothèque d'objets sous forme de type objet.

d2folbs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet bibliothèque d'objets.

d2folbs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet bibliothèque d'objets.


Macros d'objet unité de programme

  Rubriques connexes

La présente section décrit les macros d'objet unité de programme de Open API de Form Builder.

d2fpgug_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet unité de programme sous forme de pointeur de type dvoid.

d2fpgug_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet unité de programme sous forme de type texte.

d2fpgug_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet unité de programme sous forme de type objet.

d2fpgug_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet unité de programme sous forme de type texte.

d2fpgug_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet unité de programme sous forme de type objet.

d2fpgug_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet unité de programme sous forme de type objet.

d2fpgug_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet unité de programme sous forme de type texte.

d2fpgug_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet unité de programme sous forme de type texte.

d2fpgug_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet unité de programme sous forme de type numérique.

d2fpgug_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet unité de programme sous forme de type numérique.

d2fpgug_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet unité de programme sous forme de type texte.

d2fpgug_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet unité de programme sous forme de type texte.

d2fpgug_pgu_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PGU_TXT de l'objet unité de programme sous forme de type texte.

d2fpgug_pgu_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PGU_TYP de l'objet unité de programme sous forme de type numérique.

d2fpgug_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet unité de programme sous forme de type objet.

d2fpgug_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet unité de programme sous forme de type objet.

d2fpgus_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet unité de programme.

d2fpgus_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet unité de programme.

d2fpgus_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet unité de programme.

d2fpgus_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet unité de programme.

d2fpgus_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet unité de programme.

d2fpgus_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet unité de programme.

d2fpgus_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet unité de programme.

d2fpgus_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet unité de programme.

d2fpgus_pgu_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PGU_TXT de l'objet unité de programme.


Macros d'objet classe de propriété

  Rubriques connexes

La présente section décrit les macros d'objet classe de propriété de Open API de Form Builder.

d2fppcg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet classe de propriété as a type dvoid pointer.

d2fppcg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT de l'objet classe de propriété sous forme de type texte.

d2fppcg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet classe de propriété sous forme de type objet.

d2fppcg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet classe de propriété sous forme de type texte.

d2fppcg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet classe de propriété sous forme de type objet.

d2fppcg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet classe de propriété sous forme de type objet.

d2fppcg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet classe de propriété sous forme de type texte.

d2fppcg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet classe de propriété sous forme de type texte.

d2fppcg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet classe de propriété sous forme de type numérique.

d2fppcg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet classe de propriété sous forme de type numérique.

d2fppcg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet classe de propriété sous forme de type texte.

d2fppcg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet classe de propriété sous forme de type texte.

d2fppcg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet classe de propriété sous forme de type objet.

d2fppcg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet classe de propriété sous forme de type objet.

d2fppcg_trigger( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TRIGGER de l'objet classe de propriété sous forme de type objet.

d2fppcs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet classe de propriété.

d2fppcs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT de l'objet classe de propriété.

d2fppcs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet classe de propriété.

d2fppcs_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet classe de propriété.

d2fppcs_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet classe de propriété.

d2fppcs_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet classe de propriété.

d2fppcs_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet classe de propriété.

d2fppcs_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet classe de propriété.

d2fppcs_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet classe de propriété.


Macros d'objet bouton d'option

  Rubriques connexes

La présente section décrit les macros d'objet bouton d'option de Open API de Form Builder.

d2frdbg_access_key( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Clé d'accès de l'objet bouton d'option sous forme de type texte.

d2frdbg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'objet bouton d'option sous forme de type texte.

d2frdbg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet bouton d'option sous forme de pointeur de type dvoid.

d2frdbg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Commentaires de l'objet bouton d'option sous forme de type texte.

d2frdbg_dist_btwn_recs( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Distance entre enregistrements de l'objet bouton d'option sous forme de type numérique.

d2frdbg_enabled( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Activé de l'objet bouton d'option sous forme de type booléen.

d2frdbg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'objet bouton d'option sous forme de type texte.

d2frdbg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'objet bouton d'option sous forme de type texte.

d2frdbg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'objet bouton d'option sous forme de type numérique.

d2frdbg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'objet bouton d'option sous forme de type numérique.

d2frdbg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de l'objet bouton d'option sous forme de type numérique.

d2frdbg_font_weight( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'objet bouton d'option sous forme de type numérique.

d2frdbg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'objet bouton d'option sous forme de type texte.

d2frdbg_height( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet bouton d'option sous forme de type numérique.

d2frdbg_label( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Libellé de l'objet bouton d'option sous forme de type texte.

d2frdbg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet bouton d'option sous forme de type objet.

d2frdbg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de l'objet bouton d'option sous forme de type texte.

d2frdbg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet bouton d'option sous forme de type objet.

d2frdbg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet bouton d'option sous forme de type objet.

d2frdbg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet bouton d'option sous forme de type texte.

d2frdbg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet bouton d'option sous forme de type texte.

d2frdbg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet bouton d'option sous forme de type numérique.

d2frdbg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet bouton d'option sous forme de type numérique.

d2frdbg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet bouton d'option sous forme de type texte.

d2frdbg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet bouton d'option sous forme de type texte.

d2frdbg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet bouton d'option sous forme de type objet.

d2frdbg_prmpt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Invite de l'objet bouton d'option sous forme de type texte.

d2frdbg_prmpt_align( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Alignement de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_align_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'alignement de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_att_edge( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Bord d'attachement de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_att_ofst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Décalage d'attachement de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur d'arrière-plan de l'invite de l'objet bouton d'option sous forme de type texte.

d2frdbg_prmpt_disp_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Type d'affichage de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Motif de remplissage de l'invite de l'objet bouton d'option sous forme de type texte.

d2frdbg_prmpt_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Nom de police de l'invite de l'objet bouton d'option sous forme de type texte.

d2frdbg_prmpt_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Taille de police de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Espacement de police de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Style de police de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Epaisseur de police de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Couleur de premier plan de l'invite de l'objet bouton d'option sous forme de type texte.

d2frdbg_prmpt_jst( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Justification de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_reading_ordr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Sens de lecture de l'invite de l'objet bouton d'option sous forme de type numérique.

d2frdbg_prmpt_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_VAT_NAM de l'objet bouton d'option sous forme de type texte.

d2frdbg_prmpt_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_VAT_OBJ de l'objet bouton d'option sous forme de type objet.

d2frdbg_rdb_val( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Valeur de bouton d'option de l'objet bouton d'option sous forme de type texte.

d2frdbg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet bouton d'option sous forme de type objet.

d2frdbg_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Groupe d'attributs visuels de l'objet bouton d'option sous forme de type texte.

d2frdbg_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ de l'objet bouton d'option sous forme de type objet.

d2frdbg_visible( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Visible de l'objet bouton d'option sous forme de type booléen.

d2frdbg_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Blanc sur noir de l'objet bouton d'option sous forme de type booléen.

d2frdbg_width( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Largeur/Hauteur de l'objet bouton d'option sous forme de type numérique.

d2frdbg_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X/Position Y de l'objet bouton d'option sous forme de type numérique.

d2frdbg_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété Position X/Position Y de l'objet bouton d'option sous forme de type numérique.

d2frdbs_access_key( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Clé d'accès de l'objet bouton d'option.

d2frdbs_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'objet bouton d'option.

d2frdbs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet bouton d'option.

d2frdbs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Commentaires de l'objet bouton d'option.

d2frdbs_dist_btwn_recs( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Distance entre enregistrements de l'objet bouton d'option.

d2frdbs_enabled( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Activé de l'objet bouton d'option.

d2frdbs_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'objet bouton d'option.

d2frdbs_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'objet bouton d'option.

d2frdbs_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'objet bouton d'option.

d2frdbs_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'objet bouton d'option.

d2frdbs_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'objet bouton d'option.

d2frdbs_font_weight( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'objet bouton d'option.

d2frdbs_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'objet bouton d'option.

d2frdbs_height( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet bouton d'option.

d2frdbs_label( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Libellé de l'objet bouton d'option.

d2frdbs_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODULE de l'objet bouton d'option.

d2frdbs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de l'objet bouton d'option.

d2frdbs_next( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NEXT de l'objet bouton d'option.

d2frdbs_owner( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_OWNER de l'objet bouton d'option.

d2frdbs_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet bouton d'option.

d2frdbs_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet bouton d'option.

d2frdbs_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet bouton d'option.

d2frdbs_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet bouton d'option.

d2frdbs_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet bouton d'option.

d2frdbs_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet bouton d'option.

d2frdbs_previous( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PREVIOUS de l'objet bouton d'option.

d2frdbs_prmpt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Invite de l'objet bouton d'option.

d2frdbs_prmpt_align( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Alignement de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_align_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'alignement de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_att_edge( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Bord d'attachement de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_att_ofst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Décalage d'attachement de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur d'arrière-plan de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_disp_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Type d'affichage de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Motif de remplissage de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Nom de police de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Taille de police de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Espacement de police de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Style de police de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Epaisseur de police de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Couleur de premier plan de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_jst( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Justification de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_reading_ordr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Sens de lecture de l'invite de l'objet bouton d'option.

d2frdbs_prmpt_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PRMPT_VAT_NAM de l'objet bouton d'option.

d2frdbs_prmpt_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PRMPT_VAT_OBJ de l'objet bouton d'option.

d2frdbs_rdb_val( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Valeur de bouton d'option de l'objet bouton d'option.

d2frdbs_source( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SOURCE de l'objet bouton d'option.

d2frdbs_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Groupe d'attributs visuels de l'objet bouton d'option.

d2frdbs_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ de l'objet bouton d'option.

d2frdbs_visible( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Visible de l'objet bouton d'option.

d2frdbs_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Blanc sur noir de l'objet bouton d'option.

d2frdbs_width( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Largeur/Hauteur de l'objet bouton d'option.

d2frdbs_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X/Position Y de l'objet bouton d'option.

d2frdbs_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété Position X/Position Y de l'objet bouton d'option.


Macros d'objet groupe d'enregistrements

  Rubriques connexes

La présente section décrit les macros de groupe d'objets d'enregistrements de Open API de Form Builder.

d2frcgg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO du groupe d'objets d'enregistrements sous forme de pointeur de type dvoid.

d2frcgg_col_spec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COL_SPEC du groupe d'objets d'enregistrements sous forme de type objet.

d2frcgg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT du groupe d'objets d'enregistrements sous forme de type texte.

d2frcgg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE du groupe d'objets d'enregistrements sous forme de type objet.

d2frcgg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME du groupe d'objets d'enregistrements sous forme de type texte.

d2frcgg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT du groupe d'objets d'enregistrements sous forme de type objet.

d2frcgg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER du groupe d'objets d'enregistrements sous forme de type objet.

d2frcgg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM du groupe d'objets d'enregistrements sous forme de type texte.

d2frcgg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH du groupe d'objets d'enregistrements sous forme de type texte.

d2frcgg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR du groupe d'objets d'enregistrements sous forme de type numérique.

d2frcgg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP du groupe d'objets d'enregistrements sous forme de type numérique.

d2frcgg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE du groupe d'objets d'enregistrements sous forme de type texte.

d2frcgg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM du groupe d'objets d'enregistrements sous forme de type texte.

d2frcgg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS du groupe d'objets d'enregistrements sous forme de type objet.

d2frcgg_rec_grp_fetch_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_GRP_FETCH_SIZ du groupe d'enregistrements sous forme de type numérique.

d2frcgg_rec_grp_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_REC_GRP_QRY du groupe d'objets d'enregistrements sous forme de type texte.

d2frcgg_rec_grp_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO du groupe d'enregistrements sous forme de type numérique.

d2frcgg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE du groupe d'enregistrements sous forme de type objet.

d2frcgs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO du groupe d'enregistrements.

d2frcgs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT du groupe d'objets d'enregistrements.

d2frcgs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME du groupe d'objets d'enregistrements.

d2frcgs_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM du groupe d'objets d'enregistrements.

d2frcgs_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH du groupe d'objets d'enregistrements.

d2frcgs_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR du groupe d'objets d'enregistrements.

d2frcgs_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP du groupe d'objets d'enregistrements.

d2frcgs_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE du groupe d'objets d'enregistrements.

d2frcgs_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM du groupe d'objets d'enregistrements.

d2frcgs_rec_grp_fetch_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_GRP_FETCH_SIZ du groupe d'objets d'enregistrements.

d2frcgs_rec_grp_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_GRP_QRY du groupe d'objets d'enregistrements.

d2frcgs_rec_grp_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_REC_GRP_TYP du groupe d'objets d'enregistrements.


Macros d'objet spécification de colonne de groupes d'enregistrements

  Rubriques connexes

La présente section décrit les macros de l'objet spécification de colonne de groupes d'enregistrements de Open API de Form Builder.

d2frcsg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet spécification de colonne de groupes d'enregistrements sous forme de pointeur de type dvoid.

d2frcsg_col_dat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COL_DAT_TYP de l'objet spécification de colonne de groupes d'enregistrements sous forme de type numérique.

d2frcsg_col_vals_count( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COL_VALS_COUNT de l'objet spécification de colonne de groupes d'enregistrements sous forme de type numérique.

d2frcsg_max_len( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MAX_LEN de l'objet spécification de colonne de groupes d'enregistrements sous forme de type numérique.

d2frcsg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet spécification de colonne de groupes d'enregistrements sous forme de type texte.

d2frcsg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet spécification de colonne de groupes d'enregistrements sous forme de type objet.

d2frcsg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet spécification de colonne de groupes d'enregistrements sous forme de type objet.

d2frcss_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet spécification de colonne de groupes d'enregistrements.

d2frcss_col_dat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COL_DAT_TYP de l'objet spécification de colonne de groupes d'enregistrements.

d2frcss_max_len( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MAX_LEN de l'objet spécification de colonne de groupes d'enregistrements.

d2frcss_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet spécification de colonne de groupes d'enregistrements.


Macros d'objet relation

  Rubriques connexes

La présente section décrit les macros de l'objet relation de the Open API de Form Builder.

d2frelg_auto_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_AUTO_QRY de l'objet relation sous forme de type booléen.

d2frelg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet relation as a type dvoid pointer.

d2frelg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT de l'objet relation sous forme de type texte.

d2frelg_deferred( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DEFERRED de l'objet relation sous forme de type booléen.

d2frelg_del_rec( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DEL_REC de l'objet relation sous forme de type numérique.

d2frelg_detail_blk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DETAIL_BLK de l'objet relation sous forme de type texte.

d2frelg_join_cond( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_JOIN_COND de l'objet relation sous forme de type texte.

d2frelg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet relation sous forme de type objet.

d2frelg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet relation sous forme de type texte.

d2frelg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet relation sous forme de type objet.

d2frelg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet relation sous forme de type objet.

d2frelg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet relation sous forme de type objet.

d2frelg_prvnt_mstrless_ops( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRVNT_MSTRLESS_OPS de l'objet relation sous forme de type booléen.

d2frelg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet relation sous forme de type objet.

d2frels_auto_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_AUTO_QRY de l'objet relation.

d2frels_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet relation.

d2frels_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT de l'objet relation.

d2frels_deferred( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DEFERRED de l'objet relation.

d2frels_del_rec( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DEL_REC de l'objet relation.

d2frels_detail_blk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DETAIL_BLK de l'objet relation.

d2frels_join_cond( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_JOIN_COND de l'objet relation.

d2frels_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet relation.

d2frels_prvnt_mstrless_ops( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PRVNT_MSTRLESS_OPS de l'objet relation.


Macros d'objet état

  Rubriques connexes

La présente section décrit les macros de l'objet état de Open API de Form Builder.

d2frptg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet état sous forme de pointeur de type dvoid.

d2frptg_comm_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMM_MODE de l'objet état sous forme de type numérique.

d2frptg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT de l'objet état sous forme de type texte.

d2frptg_dat_src_blk( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DAT_SRC_BLK de l'objet état sous forme de type texte.

d2frptg_exec_mode( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_EXEC_MODE de l'objet état sous forme de type numérique.

d2frptg_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FLNAM de l'objet état sous forme de type texte.

d2frptg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet état sous forme de type objet.

d2frptg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet état sous forme de type texte.

d2frptg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet état sous forme de type objet.

d2frptg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet état sous forme de type objet.

d2frptg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet état sous forme de type objet.

d2frptg_rpt_destination_fmt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RPT_DESTINATION_FMT de l'objet état sous forme de type texte.

d2frptg_rpt_destination_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ RPT_DESTINATION_NAM de l'objet état sous forme de type texte.

d2frptg_rpt_destination_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ RPT_DESTINATION_TYP de l'objet état sous forme de type numérique.

d2frptg_rpt_params( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RPT_PARAMS de l'objet état sous forme de type texte.

d2frptg_rpt_srvr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RPT_SRVR de l'objet état sous forme de type texte.

d2frptg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet état sous forme de type objet.

d2frpts_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet état.

d2frpts_comm_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMM_MODE de l'objet état.

d2frpts_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT de l'objet état.

d2frpts_dat_src_blk( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DAT_SRC_BLK de l'objet état.

d2frpts_exec_mode( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_EXEC_MODE de l'objet état.

d2frpts_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FLNAM de l'objet état.

d2frpts_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet état.

d2frpts_rpt_destination_fmt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RPT_DESTINATION_FMT de l'objet état.

d2frpts_rpt_destination_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RPT_DESTINATION_NAM de l'objet état.

d2frpts_rpt_destination_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RPT_DESTINATION_TYP de l'objet état.

d2frpts_rpt_params( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RPT_PARAMS de l'objet état.

d2frpts_rpt_srvr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RPT_SRVR de l'objet état.


Macros d'objet page onglet

  Rubriques connexes

La présente section décrit les macros de l'objet page onglet de Open API de Form Builder.

d2ftbpg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet page onglet sous forme de pointeur de type dvoid.

d2ftbpg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT de l'objet page onglet sous forme de type texte.

d2ftbpg_enabled( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ENABLED de l'objet page onglet sous forme de type booléen.

d2ftbpg_graphic( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_GRAPHIC de l'objet page onglet sous forme de type objet.

d2ftbpg_label( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_LABEL de l'objet page onglet sous forme de type texte.

d2ftbpg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet page onglet sous forme de type objet.

d2ftbpg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet page onglet sous forme de type texte.

d2ftbpg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet page onglet sous forme de type objet.

d2ftbpg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet page onglet sous forme de type objet.

d2ftbpg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet page onglet sous forme de type objet.

d2ftbpg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet page onglet sous forme de type objet.

d2ftbpg_visible( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VISIBLE of the Page onglet booléen.

d2ftbps_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet page onglet.

d2ftbps_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT de l'objet page onglet.

d2ftbps_enabled( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ENABLED de l'objet page onglet.

d2ftbps_label( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_LABEL de l'objet page onglet.

d2ftbps_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet page onglet.

d2ftbps_visible( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VISIBLE de l'objet page onglet.


Macros d'objet déclencheur

  Rubriques connexes

La présente section décrit les macros de l'objet déclencheur de Open API de Form Builder.

d2ftrgg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet déclencheur sous forme d'un pointeur de type dvoid.

d2ftrgg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT de l'objet déclencheur sous forme de type texte.

d2ftrgg_disp_in_kbrd_hlp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_DISP_IN_KBRD_HLP de l'objet déclencheur sous forme de type booléen.

d2ftrgg_exec_hierarchy( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_EXEC_HIERARCHY de l'objet déclencheur sous forme de type numérique.

d2ftrgg_fire_in_qry( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FIRE_IN_QRY de l'objet déclencheur sous forme de type booléen.

d2ftrgg_kbrd_hlp_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_KBRD_HLP_TXT de l'objet déclencheur sous forme de type texte.

d2ftrgg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet déclencheur sous forme de type objet.

d2ftrgg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet déclencheur sous forme de type texte.

d2ftrgg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet déclencheur sous forme de type objet.

d2ftrgg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet déclencheur sous forme de type objet.

d2ftrgg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet déclencheur sous forme de type texte.

d2ftrgg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet déclencheur sous forme de type texte.

d2ftrgg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet déclencheur sous forme de type numérique.

d2ftrgg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAT_MODTYP de l'objet déclencheur sous forme de type numérique.

d2ftrgg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet déclencheur sous forme de type texte.

d2ftrgg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet déclencheur sous forme de type texte.

d2ftrgg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet déclencheur sous forme de type objet.

d2ftrgg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet déclencheur sous forme de type objet.

d2ftrgg_trg_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TRG_STY de l'objet déclencheur sous forme de type numérique.

d2ftrgg_trg_txt( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TRG_TXT de l'objet déclencheur sous forme de type texte.

d2ftrgg_trg_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TRG_TYP de l'objet déclencheur sous forme de type numérique.

d2ftrgs_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet déclencheur.

d2ftrgs_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT de l'objet déclencheur.

d2ftrgs_disp_in_kbrd_hlp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_DISP_IN_KBRD_HLP de l'objet déclencheur.

d2ftrgs_exec_hierarchy( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_EXEC_HIERARCHY de l'objet déclencheur.

d2ftrgs_fire_in_qry( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FIRE_IN_QRY de l'objet déclencheur.

d2ftrgs_kbrd_hlp_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_KBRD_HLP_TXT de l'objet déclencheur.

d2ftrgs_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet déclencheur.

d2ftrgs_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet déclencheur.

d2ftrgs_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet déclencheur.

d2ftrgs_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet déclencheur.

d2ftrgs_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet déclencheur.

d2ftrgs_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet déclencheur.

d2ftrgs_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet déclencheur.

d2ftrgs_trg_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TRG_STY de l'objet déclencheur.

d2ftrgs_trg_txt( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TRG_TXT de l'objet déclencheur.

d2ftrgs_trg_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TRG_TYP de l'objet déclencheur.


Macros d'objet attribut visuel

  Rubriques connexes

La présente section décrit les macros de l'objet attribut visuel de Open API de Form Builder.

d2fvatg_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_BACK_COLOR de l'objet attribut visuel sous forme de type texte.

d2fvatg_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet attribut visuel sous forme de pointeur de type dvoid.

d2fvatg_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT de l'objet attribut visuel sous forme de type texte.

d2fvatg_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FILL_PAT de l'objet attribut visuel sous forme de type texte.

d2fvatg_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_NAM de l'objet attribut visuel sous forme de type texte.

d2fvatg_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_SIZ de l'objet attribut visuel sous forme de type numérique.

d2fvatg_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_SPCING de l'objet attribut visuel sous forme de type numérique.

d2fvatg_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_STY de l'objet attribut visuel sous forme de type numérique.

d2fvatg_font_wgth( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_WGHT de l'objet attribut visuel sous forme de type numérique.

d2fvatg_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FORE_COLOR de l'objet attribut visuel sous forme de type texte.

d2fvatg_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet attribut visuel sous forme de type objet.

d2fvatg_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet attribut visuel sous forme de type texte.

d2fvatg_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet attribut visuel sous forme de type objet.

d2fvatg_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet attribut visuel sous forme de type objet.

d2fvatg_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet attribut visuel sous forme de type texte.

d2fvatg_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet attribut visuel sous forme de type texte.

d2fvatg_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet attribut visuel sous forme de type numérique.

d2fvatg_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet attribut visuel sous forme de type numérique.

d2fvatg_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet attribut visuel sous forme de type texte.

d2fvatg_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet attribut visuel sous forme de type texte.

d2fvatg_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet attribut visuel sous forme de type objet.

d2fvatg_prmpt_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_BACK_COLOR de l'objet attribut visuel sous forme de type texte.

d2fvatg_prmpt_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_FILL_PAT de l'objet attribut visuel sous forme de type texte.

d2fvatg_prmpt_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_FONT_NAM de l'objet attribut visuel sous forme de type texte.

d2fvatg_prmpt_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_FONT_SIZ de l'objet attribut visuel sous forme de type numérique.

d2fvatg_prmpt_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_FONT_SPCING de l'objet attribut visuel sous forme de type numérique.

d2fvatg_prmpt_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_FONT_STY de l'objet attribut visuel sous forme de type numérique.

d2fvatg_prmpt_font_wght( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_FONT_WGHT de l'objet attribut visuel sous forme de type numérique.

d2fvatg_prmpt_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMPT_FORE_COLOR de l'objet attribut visuel sous forme de type texte.

d2fvatg_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet attribut visuel sous forme de type objet.

d2fvatg_vat_typ( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_TYP de l'objet attribut visuel sous forme de type numérique.

d2fvatg_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_WHITE_ON_BLACK de l'objet attribut visuel sous forme de type booléen.

d2fvats_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_BACK_COLOR de l'objet attribut visuel.

d2fvats_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet attribut visuel.

d2fvats_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT de l'objet attribut visuel.

d2fvats_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FILL_PAT de l'objet attribut visuel.

d2fvats_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_NAM de l'objet attribut visuel.

d2fvats_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_SIZ de l'objet attribut visuel.

d2fvats_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_SPCING de l'objet attribut visuel.

d2fvats_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_STY de l'objet attribut visuel.

d2fvats_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_WGHT de l'objet attribut visuel.

d2fvats_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FORE_COLOR de l'objet attribut visuel.

d2fvats_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet attribut visuel.

d2fvats_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet attribut visuel.

d2fvats_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet attribut visuel.

d2fvats_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet attribut visuel.

d2fvats_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet attribut visuel.

d2fvats_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODULE de l'objet attribut visuel.

d2fvats_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet attribut visuel.

d2fvats_prmpt_back_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROMPT_BACK_COLOR de l'objet attribut visuel.

d2fvats_prmpt_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROMPT_FILL_PAT de l'objet attribut visuel.

d2fvats_prmpt_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROMPT_FONT_NAM de l'objet attribut visuel.

d2fvats_prmpt_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROMPT_FONT_SIZ de l'objet attribut visuel.

d2fvats_prmpt_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROMPT_FONT_SPCING de l'objet attribut visuel.

d2fvats_prmpt_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROMPT_FONT_STY de l'objet attribut visuel.

d2fvats_prmpt_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROMPT_FONT_WGHT de l'objet attribut visuel.

d2fvats_prmpt_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PROMPT_FORE_COLOR de l'objet attribut visuel.

d2fvats_vat_typ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_TYP de l'objet attribut visuel.

d2fvats_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_WHITE_ON_BLACK de l'objet attribut visuel.


Macros d'objet fenêtre

  Rubriques connexes

La présente section décrit les macros de l'objet fenêtre de Open API de Form Builder.

d2fwing_back_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_BACK_COLOR de l'objet fenêtre sous forme de type texte.

d2fwing_bevel( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_BEVEL de l'objet fenêtre sous forme de type numérique.

d2fwing_client_info( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLIENT_INFO de l'objet fenêtre sous forme de pointeur de type dvoid.

d2fwing_cls_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_CLS_ALLOWED de l'objet fenêtre sous forme de type booléen.

d2fwing_comment( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_COMMENT de l'objet fenêtre sous forme de type texte.

d2fwing_fill_pat( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FILL_PAT de l'objet fenêtre sous forme de type texte.

d2fwing_font_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_NAM de l'objet fenêtre sous forme de type texte.

d2fwing_font_siz( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_SIZ de l'objet fenêtre sous forme de type numérique.

d2fwing_font_spcing( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_SPCING de l'objet fenêtre sous forme de type numérique.

d2fwing_font_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_STY de l'objet fenêtre sous forme de type numérique.

d2fwing_font_wgth( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FONT_WGHT de l'objet fenêtre sous forme de type numérique.

d2fwing_fore_color( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_FORE_COLOR de l'objet fenêtre sous forme de type texte.

d2fwing_height( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_HEIGHT de l'objet fenêtre sous forme de type numérique.

d2fwing_hide_on_exit( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_HIDE_ON_EXIT de l'objet fenêtre sous forme de type booléen.

d2fwing_htb_cnv_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_HTB_CNV_NAME de l'objet fenêtre sous forme de type texte.

d2fwing_icon_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_ICON_FLNAM de l'objet fenêtre sous forme de type texte.

d2fwing_inhrt_mnu( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_INHRT_MNU de l'objet fenêtre sous forme de type booléen.

d2fwing_lang_dir( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_LANG_DIR de l'objet fenêtre sous forme de type numérique.

d2fwing_maximize_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MAXIMIZE_ALLOWED de l'objet fenêtre sous forme de type booléen.

d2fwing_minimize_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MINIMIZE_ALLOWED de l'objet fenêtre sous forme de type booléen.

d2fwing_minimize_ttl( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MINIMIZE_TTL de l'objet fenêtre sous forme de type texte.

d2fwing_modal( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODAL de l'objet fenêtre sous forme de type booléen.

d2fwing_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MODULE de l'objet fenêtre sous forme de type objet.

d2fwing_mv_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_MV_ALLOWED de l'objet fenêtre sous forme de type booléen.

d2fwing_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NAME de l'objet fenêtre sous forme de type texte.

d2fwing_next( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_NEXT de l'objet fenêtre sous forme de type objet.

d2fwing_owner( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_OWNER de l'objet fenêtre sous forme de type objet.

d2fwing_par_flnam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLNAM de l'objet fenêtre sous forme de type texte.

d2fwing_par_flpath( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_FLPATH de l'objet fenêtre sous forme de type texte.

d2fwing_par_modstr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODSTR de l'objet fenêtre sous forme de type numérique.

d2fwing_par_modtyp( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODTYP de l'objet fenêtre sous forme de type numérique.

d2fwing_par_module( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_MODULE de l'objet fenêtre sous forme de type texte.

d2fwing_par_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PAR_NAM de l'objet fenêtre sous forme de type texte.

d2fwing_previous( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PREVIOUS de l'objet fenêtre sous forme de type objet.

d2fwing_prmry_cnv( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_PRMRY_CNV de l'objet fenêtre sous forme de type texte.

d2fwing_resize_allowed( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_RESIZE_ALLOWED de l'objet fenêtre sous forme de type booléen.

d2fwing_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SHOW_HORZ_SCRLBR de l'objet fenêtre sous forme de type booléen.

d2fwing_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SHOW_VERT_SCRLBR de l'objet fenêtre sous forme de type booléen.

d2fwing_source( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_SOURCE de l'objet fenêtre sous forme de type objet.

d2fwing_title( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_TITLE de l'objet fenêtre sous forme de type texte.

d2fwing_vat_nam( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_NAM de l'objet fenêtre sous forme de type texte.

d2fwing_vat_obj( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VAT_OBJ de l'objet fenêtre sous forme de type objet.

d2fwing_vtb_cnv_name( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_VTB_CNV_NAME de l'objet fenêtre sous forme de type texte.

d2fwing_white_on_black( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_WHITE_ON_BLACK de l'objet fenêtre sous forme de type booléen.

d2fwing_width( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_WIDTH de l'objet fenêtre sous forme de type numérique.

d2fwing_win_sty( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_WIN_STY de l'objet fenêtre sous forme de type numérique.

d2fwing_x_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_X_POS de l'objet fenêtre sous forme de type numérique.

d2fwing_y_pos( ctx, obj, val ) ;

Cette macro retourne la valeur de la propriété D2FP_Y_POS de l'objet fenêtre sous forme de type numérique.

d2fwins_back_color ( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_BACK_COLOR de l'objet fenêtre.

d2fwins_bevel( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_BEVEL de l'objet fenêtre.

d2fwins_client_info( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLIENT_INFO de l'objet fenêtre.

d2fwins_cls_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_CLS_ALLOWED de l'objet fenêtre.

d2fwins_comment( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_COMMENT de l'objet fenêtre.

d2fwins_fill_pat( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FILL_PAT de l'objet fenêtre.

d2fwins_font_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_NAM de l'objet fenêtre.

d2fwins_font_siz( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_SIZ de l'objet fenêtre.

d2fwins_font_spcing( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_SPCING de l'objet fenêtre.

d2fwins_font_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_STY de l'objet fenêtre.

d2fwins_font_wght( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FONT_WGHT de l'objet fenêtre.

d2fwins_fore_color( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_FORE_COLOR de l'objet fenêtre.

d2fwins_height( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_HEIGHT de l'objet fenêtre.

d2fwins_hide_on_exit( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_HIDE_ON_EXIT de l'objet fenêtre.

d2fwins_htb_cnv_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_HTB_CNV_NAME de l'objet fenêtre.

d2fwins_icon_flname( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_ICON_FLNAME de l'objet fenêtre.

d2fwins_inhrt_mnu( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_INHRT_MNU de l'objet fenêtre.

d2fwins_lang_dir( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_LANG_DIR de l'objet fenêtre.

d2fwins_maximize_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MAXIMIZE_ALLOWED de l'objet fenêtre.

d2fwins_minimize_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MINIMIZE_ALLOWED de l'objet fenêtre.

d2fwins_minimize_ttl( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MINIMIZE_TTL de l'objet fenêtre.

d2fwins_modal( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MODAL de l'objet fenêtre.

d2fwins_mv_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_MV_ALLOWED de l'objet fenêtre.

d2fwins_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_NAME de l'objet fenêtre.

d2fwins_par_flnam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLNAM de l'objet fenêtre.

d2fwins_par_flpath( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_FLPATH de l'objet fenêtre.

d2fwins_par_modstr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODSTR de l'objet fenêtre.

d2fwins_par_modtyp( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_MODTYP de l'objet fenêtre.

d2fwins_par_module( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D 2FP_PAR_MODULE de l'objet fenêtre.

d2fwins_par_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PAR_NAM de l'objet fenêtre.

d2fwins_prmry_cnv( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_PRMRY_CNV de l'objet fenêtre.

d2fwins_resize_allowed( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_RESIZE_ALLOWED de l'objet fenêtre.

d2fwins_show_horz_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SHOW_HORZ_SCRLBR de l'objet fenêtre.

d2fwins_show_vert_scrlbr( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_SHOW_VERT_SCRLBR de l'objet fenêtre.

d2fwins_title( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_TITLE de l'objet fenêtre.

d2fwins_vat_nam( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_NAM de l'objet fenêtre.

d2fwins_vat_obj( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VAT_OBJ de l'objet fenêtre.

d2fwins_vtb_cnv_name( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_VTB_CNV_NAME de l'objet fenêtre.

d2fwins_white_on_black( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_WHITE_ON_BLACK de l'objet fenêtre.

d2fwins_width( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_WIDTH de l'objet fenêtre.

d2fwins_win_sty( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_WIN_STY de l'objet fenêtre.

d2fwins_x_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_X_POS de l'objet fenêtre.

d2fwins_y_pos( ctx, obj, val ) ;

Cette macro définit la valeur de la propriété D2FP_Y_POS de l'objet fenêtre.


Création de modules à l'aide de Open API

 Exemples	    Rubriques connexes

Pour créer un module Form Builder de base :

1	Ajoutez les fichiers d'en-tête C appropriés dans votre code source C.

2	Appelez les fonctions Open API voulues dans votre code source C.

A. 	Initialisez la structure de contexte.

B. 	Lancez des appels de fonction « create » ou « load » pour créer un module Application Forms, un module Menu ou une bibliothèque d'objets, ou ouvrez un module existant.

C. 	Lancez les appels de fonction Open Forms API nécessaires pour exécuter les opérations choisies, notamment la connexion à une base de données existante, le cas échéant.

D. 	Générez une application Forms compilée .FMX ou .MMX, en utilisant la fonction « CompileFile() » appropriée.

E. 	Lancez les appels de fonction nécessaires pour enregistrer le module associé (par exemple, d2ffmdsv_Save() pour un module Application Forms, d2fmmdsv_Save() pour un module Menu ou d2folbsv_Save() pour une bibliothèque d'objets).

F. 	Finalement, appelez la fonction de destruction de contexte d2fctxde_Destroy(), pour détruire le contexte Open Forms API. Notez que cet appel de fonction doit être le dernier.

3	Liez vos fichiers source à la bibliothèque Open API (f60d2f32.lib).

4	Compilez les fichiers pour créer un exécutable.

5	Lancez l'exécutable pour créer un module Form Builder.


Création de modules à l'aide de Open API - Exemples

Exemple

/*

This example creates a master-detail form based on the dept and emp database tables owned by the user scott.  The master contains the following fields: empno, ename, job, sal, and deptno.  The detail contains the following fields deptno, dname, and loc.  The join condition is deptno.
*/
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<d2fctx.h>
#include<d2ffmd.h>
#include<d2ffpr.h>
#include<d2fob.h>
#include<d2fcnv.h>
#include<d2ftrg.h>
#include<d2blk.h>
#include<d2fitm.h>
#include<d2fwin.h>
#include<d2frel.h>

#define D2FS_SUCCESS 0
#define FAIL 1
#define BUFSIZE 128
#define WBP_TXT "null;\n"

int WINAPI WinMain(HANDLE hInstance,
                   HANDLE hPrevInstance,
                   LPSTR lpszCommandLine,
                   int cmdShow)
{
d2fctx  *pd2fctx;
d2ffmd  *pd2ffmd;
d2fcnv  *pd2fcnv;
d2fwin  *pd2fwin;

d2fblk  *pempblk;
d2fblk  *pdeptblk;
d2frel  *pd2frel;

d2fitm  *pEempnoitm;
d2fitm  *pEenameitm;
d2fitm  *pEjobitm;
d2fitm  *pEsalitm;

d2fitm  *pEdeptnoitm;
d2fitm  *pDdeptnoitm;
d2fitm  *pDdnameitm;
d2fitm  *pDlocitm;

text  *name = (text *)0;
text  *form_name = (text *)0;
d2fctxa  d2fctx_attr;
d2fstatus retval;
char buf[BUFSIZE];

/* Get form name */
strncpy(buf, "empdept", BUFSIZE);
form_name = (text*)strtok(buf, ".");

/* Initialize the attribute mask */
d2fctx_attr.mask_d2fctxa = 0;

/* for MS Windows-only attributes */
d2fctx_attr.d2fihnd_d2fctxa = hInstance;
d2fctx_attr.d2fphnd_d2fctxa = hPrevInstance;
d2fctx_attr.d2fcmsh_d2fctxa = cmdShow;

/* Create the API context */
status = d2fctxcr_Create(&pd2fctx, &d2fctx_attr);

/* Create the context */
d2fctxcn_Connect(pd2fctx, (text*)"scott/tiger@test");

/* Create the form */
d2ffmdcr_Create(pd2fctx, &pd2ffmd, form_name);

/* Create a window */
d2fwincr_Create(pd2fctx,pd2ffmd,&pd2fwin,(text*)"MYWIN");

/*** Create Canvas and set canvas-related properties ***/
/* Create a canvas */
d2fcnvcr_Create(pd2fctx, pd2ffmd, &pd2fcnv, (text*)"MYCANVAS");

/* Set viewport width */
d2fcnvs_vprt_wid(pd2fctx, pd2fcnv, 512);

/* Set viewport height */
d2fcnvs_vprt_hgt(pd2fctx, pd2fcnv, 403);

/* Set window */
dwfcnvs_wnd_obj(pd2fctx, pd2fcnv, pd2fwin);

/* Set viewport X-position */
d2fcnvs_vprt_x_pos(pd2fctx, pd2fcnv, 0);

/* Set viewport Y-position */
d2fcnvs_vprt_y_pos(pd2fctx, pd2fcnv, 0);

/* Set width */
d2fcnvs_width(pd2fctx, pd2fcnv, 538)

/* Set height */
d2fcnvs_height(pd2fctx, pd2fcnv, 403)

/*** Create Emp block and set block-related properties ***/
/* Create block */
d2fblkcr_Create(pd2fctx, pd2ffmd, &pempblk, (text*)"EMP");

/* Set to database block */
d2fblks_db_blk(pd2fctx, pempblk, TRUE);

/* Set query data source to Table */
d2fblks_qry_dat_src_typ(pd2fctx, pempblk, D2FC_QRDA_TABLE);

/* Set query data source name to EMP table */
d2fblks_qry_dat_src_nam(pd2fctx, pempblk, "EMP");

/* Set DML data source type to Table */
d2fblks_dml_dat_typ(Pd2fctx, pempblk, D2FC_DMDA_TABLE);

/* Set DML data source name to EMP table */
d2fblks_dml_dat_nam(pd2fctx, pempblk, (text*)"EMP");

/*** Create Dept block and set block-related properties ***/
/* Create block */
d2fblkcr_Create(pd2fctx, pd2ffmd, &pdeptblk, (text*)"DEPT");

/* Set to database block */
d2fblks_db_blk(pd2fctx, pdeptblk, TRUE);

/* Set query data source to Table */
d2fblks_qry_dat_src_typ(pd2fctx, pdeptblk, D2FC_QRDA_TABLE);

/* Set query data source name to EMP table */
d2fblks_qry_dat_src_nam(pd2fctx, pdeptblk, "DEPT");

/* Set DML data source type to Table */
d2fblks_dml_dat_typ(Pd2fctx, pdeptblk, D2FC_DMDA_TABLE);

/* Set DML data source name to EMP table */
d2fblks_dml_dat_nam(pd2fctx, pdeptblk, (text*)"DEPT");

/*** Create empno item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEempnoitm, (text*)"EMPNO");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEempnoitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEempnoitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEempnoitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEempnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEempnoitm, 6);

/* Set item Required property */
d2fitms_required(pd2fctx, pEempnoitm, TRUE);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEempnoitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEempnoitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEempnoitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEempnoitm, 6);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEempnoitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEempnoitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEempnoitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEempnoitm, 32);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEempnoitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEempnoitm, 51);

/* Set Item Height */
d2fitms_height(pd2fctx, pEempnoitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEempnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEempnoitm, (text*)"Enter value for :EMPNO");

/*** Create Ename item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEenameitm, (text*)"ENAME");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEenameitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEenameitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEenameitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEenameitm, D2FC_DATY_CHAR);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEenameitm, 10);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEenameitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEenameitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEenameitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEenameitm, 10);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEenameitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEenameitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEenameitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEenameitm, 83);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEenameitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEenameitm, 77);

/* Set Item Height */
d2fitms_height(pd2fctx, pEenameitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEenameitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEenameitm, (text*)"Enter value for :ENAME");

/*** Create JOB item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEjobitm, (text*)"JOB");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEjobitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEjobitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEjobitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEjobitm, D2FC_DATY_CHAR);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEjobitm, 9);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEjobitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEjobitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEjobitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEjobitm, 9);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEjobitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEjobitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEjobitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEjobitm, 160);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEjobitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEjobitm, 70);

/* Set Item Height */
d2fitms_height(pd2fctx, pEjobitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEjobitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEjobitm, (text*)"Enter value for :JOB");

/*** Create SALARY item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEsalitm, (text*)"SAL");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEsalitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEsalitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEsalitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEsalitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEsalitm, 9);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEsalitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEsalitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEsalitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEsalitm, 9);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEsalitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEsalitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEsalitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEsalitm, 352);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEsalitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEsalitm, 70);

/* Set Item Height */
d2fitms_height(pd2fctx, pEsalitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEsalitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEsalitm, (text*)"Enter value for :SAL");

/*** Create DEPTNO item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pempblk, &pEdeptnoitm, (text*)"DEPTNO");

/* Set item type */
d2fitms_itm_type(pd2fctx, pEdeptnoitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pEdeptnoitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pEdeptnoitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pEdeptnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pEdeptnoitm, 4);

/*Set item Required property */
d2fitms_required(pd2fctx, pEdeptnoitm, TRUE);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pEdeptnoitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pEdeptnoitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pEdeptnoitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pEdeptnoitm, 4);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pEdeptnoitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pEdeptnoitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pEdeptnoitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pEdeptnoitm, 493);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pEdeptnoitm, 50);

/* Set Item Width */
d2fitms_width(pd2fctx, pEdeptnoitm, 30);

/* Set Item Height */
d2fitms_height(pd2fctx, pEdeptnoitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pEdeptnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PEdeptnoitm, (text*)"Enter value for :DEPTNO");

/*** Create DEPTNO item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pdeptblk, &pDdeptnoitm, (text*)"DEPTNO");

/* Set item type */
d2fitms_itm_type(pd2fctx, pDdeptnoitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pDdeptnoitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pDdeptnoitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pDdeptnoitm, D2FC_DATY_NUMBER);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pDdeptnoitm, 4);

/*Set item Required property */
d2fitms_required(pd2fctx, pDdeptnoitm, TRUE);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pDdeptnoitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pDdeptnoitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pDdeptnoitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pDdeptnoitm, 4);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pDdeptnoitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pDdeptnoitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pDdeptnoitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pDdeptnoitm, 32);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pDdeptnoitm, 151);

/* Set Item Width */
d2fitms_width(pd2fctx, pDdeptnoitm, 38);

/* Set Item Height */
d2fitms_height(pd2fctx, pDdeptnoitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pDdeptnoitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PDdeptnoitm, (text*)"Enter value for :DEPTNO");

/*** Create DNAME item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pdeptblk, &pDdnameitm, (text*)"DNAME");

/* Set item type */
d2fitms_itm_type(pd2fctx, pDdnameitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pDdnameitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pDdnameitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pDdnameitm, D2FC_DATY_CHAR);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pDdnameitm, 14);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pDdnameitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pDdnameitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pDdnameitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pDdnameitm, 14);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pDdnameitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pDdnameitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pDdnameitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pDdnameitm, 70);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pDdnameitm, 151);

/* Set Item Width */
d2fitms_width(pd2fctx, pDdnameitm, 102);

/* Set Item Height */
d2fitms_height(pd2fctx, pDdnameitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pDdnameitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PDdnameitm, (text*)"Enter value for :DNAME");

/*** Create LOC item and item-related properties ***/
/* Create item */
d2fitmcr_Create(pd2fctx, pdeptblk, &pDlocitm, (text*)"LOC");

/* Set item type */
d2fitms_itm_type(pd2fctx, pDlocitm, D2FC_ITTY_TI);

/* Set Enable property */
d2fitms_enabled(pd2fctx, pDlocitm, TRUE);

/* Set item (keyboard) navigable property */
d2fitms_kbrd_navigable(pd2fctx, pDlocitm, TRUE);

/* Set item Data Type property */
d2fitms_dat_typ(pd2fctx, pDlocitm, D2FC_DATY_CHAR);

/* Set item Max Length property */
d2fitms_max_len(pd2fctx, pDlocitm, 13);

/* Set Distance Between Records property */
d2fitms_dist_btwn_recs(pd2fctx, pDlocitm, 0);

/* Set Database block(Database Item) property */
d2fitms_db_itm(pd2fctx, pDlocitm, TRUE);

/* Set Query Allowed */
d2fitms_qry_allowed(pd2fctx, pDlocitm, TRUE);

/* Set Query Length */
d2fitms_qry_len(pd2fctx, pDlocitm, 13);

/* Set Update Allowed */
d2fitms_updt_allowed(pd2fctx, pDlocitm, TRUE);

/* Set Item Displayed (Visible) */
d2fitms_visible(pd2fctx, pDlocitm, TRUE);

/* Set Item Canvas property */
d2fitms_cnv_obj(pd2fctx, pDlocitm, pd2fcnv);

/* Set Item X-position */
d2fitms_x_pos(pd2fctx, pDlocitm, 173);

/* Set Item Y-position */
d2fitms_y_pos(pd2fctx, pDlocitm, 151);

/* Set Item Width */
d2fitms_width(pd2fctx, pDlocitm, 96);

/* Set Item Height */
d2fitms_height(pd2fctx, pDlocitm, 17);

/* Set Item Bevel */
d2fitms_bevel(pd2fctx, pDlocitm, D2FC_BEST_LOWERED);

/* Set item Hint */
d2fitms_hint(pd2fctx, PDlocitm, (text*)"Enter value for :LOC");

/*** Create Relations and relations-related properties ***/
/* Create Relation */
d2frelcr_Create(pd2fctx, (d2fob *)pdeptblk, &pd2frel, (text*)"DEPT_EMP");

/* Set Relation Detail block */
d2frels_detail_blk(pd2fctx, pd2frel, (text *)"EMP");

/* Set Master Deletes property */
d2frels_del_rec([pd2fctx, pd2frel, D2FC_DERE_NON_ISOLATED);

/* Set Deferred property */
d2frels_deferred(pd2ctx, pd2frel, FALSE);

/* Set Auto Query property */
d2frels_auto_qry(pd2ctx, pd2frel, FALSE);

/* Set Prevent Masterless property */
d2frels_prvnt_mstrless_ops(pd2ctx, pd2frel, FALSE);

/* Set Join Condition property */
d2frels_join_cond(pd2ctx, pd2frel, (text*)"DEPTNO");

/* Instantiate Relation: creates master-detail triggers */
d2frelup_Update(pd2fctx, pd2frel);

/* Save Form */
d2ffmdsv_Save(pd2fctx, pd2ffmd, (text*)0, FALSE, TRUE);

/* Compile Form */
d2ffmdcf_CompileFile(pd2fctx, pd2ffmd);

/* Destroy Context */
d2fctxde_Destroy(pd2fctx);
}


Modification de modules à l'aide de Open API

 Exemples	    Rubriques connexes

Pour modifier un module Form Builder de base :

1	Ajoutez les fichiers d'en-tête C appropriés dans votre code source C.

2	Appelez les fonctions Open API voulues dans votre code source C.

A. 	Initialisez la structure de contexte.

B. 	Lancez des appels de fonction « load » pour ouvrir un nouveau module Application Forms existant, un module Menu ou une bibliothèque d'objets.

C. 	Lancez les appels de fonction Open Forms API nécessaires pour exécuter les opérations choisies, notamment la connexion à une base de données existante, le cas échéant.

D. 	Générez une application Forms compilée .FMX ou .MMX, en utilisant la fonction « CompileFile() » appropriée.

E. 	Lancez les appels de fonction nécessaires pour enregistrer le module associé (par exemple, d2ffmdsv_Save() pour un module Application Forms, d2fmmdsv_Save() pour un module Menu ou d2folbsv_Save() pour une bibliothèque d'objets).

F. 	Finalement, appelez la fonction de destruction de contexte d2fctxde_Destroy(), pour détruire le contexte Open Forms API. Notez que cet appel de fonction doit être le dernier.

3	Liez vos fichiers source à la bibliothèque Open API (ifd2f60.lib).

4	Compilez les fichiers pour créer un exécutable (fichier .EXE).

5	Lancez l'exécutable pour créer un module Form Builder (.FMB).


Modification de modules à l'aide de Open API - Exemples

Exemple

/*

Le présent exemple détermine si l'objet Form Builder est un objet appartenant à une sous-classe et retourne le chemin d'accès au fichier du père à NULL si l'objet fait partie d'une sous-classe. Cet exemple ne traite que les types d'objet suivants : déclencheurs de niveau applications Forms, messages d'alerte, blocs, éléments déclencheur de niveau élément, bouton d'option et déclencheur de niveau bloc. Utilisez une méthode similaire pour traiter les autres types d'objet.
*/
#include <stdio.h>
#include <string.h>
#include <Fenêtres.h>

#include <d2ferr.h>
#include <d2fctx.h>
#include <d2ffmd.h>
#include <d2fblk.h>
#include <d2fitm.h>
#include <d2falt.h>
#include <d2ftrg.h>
#include <d2frdb.h>

#define BUFSIZE 128

int WINAPI WinMain(HANDLE hInstance,
          HANDLE hPrevInstance,
          LPSTR lpszCommandLine,
          int cmdShow)
{
  d2fctx*  pd2fctx ;
  d2ffmd*  pd2ffmd ;
  d2fblk*  pd2fblk ;
  d2fitm*  pd2fitm ;
  d2fctxa  d2fctx_attr ;
  d2fstatus status ;
  d2falt*  pd2falt ;
  d2ftrg*  pd2ftrg ;
  d2frdb*  pd2frdb ;

  int counter ;

  char buf[BUFSIZE] ;
  char* form_name=(char*)0 ;

  /* Extraction du nom de l'application Forms de la ligne de commande */
  strncpy(buf, lpszCommandLine, BUFSIZE) ;
  form_name = strtok(buf, ".") ;

  /* Initialisation d'un masque d'attributs */
  d2fctx_attr.mask_d2fctxa = 0 ;

  /* Création du contexte API */
  status = d2fctxcr_Create(&pd2fctx, &d2fctx_attr) ;

  /* Chargement de l'application Forms */
  status = d2ffmdld_Load(pd2fctx, &pd2ffmd, form_name, FALSE) ;

  if (status == D2FS_SUCCESS)
  {
   /*** Traitement des objets déclencheurs de niveau application Forms ***/
   for(status = d2ffmdg_trigger(pd2fctx,pd2ffmd,&pd2ftrg) ;
     pd2ftrg != NULL ;
     status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))
   {
    if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg) == D2FS_YES)
      d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL) ;
   }

   /*** Traitement des objets alerte ***/
   for(status = d2ffmdg_alert(pd2fctx,pd2ffmd,&pd2falt) ;
     pd2falt != NULL ;
     status = d2faltg_next(pd2fctx,pd2falt,&pd2falt))
   {
    if (d2faltis_IsSubclassed(pd2fctx,pd2falt) == D2FS_YES)
      d2falts_par_flpath(pd2fctx,pd2falt,NULL) ;
   }

   /*** Traitement des objets bloc ***/
   for(status = d2ffmdg_block(pd2fctx,pd2ffmd,&pd2fblk) ;
     pd2fblk != NULL ;
     status = d2fblkg_next(pd2fctx,pd2fblk,&pd2fblk))
   {
    if (d2fblkis_IsSubclassed(pd2fctx,pd2fblk) == D2FS_YES)
      d2fblks_par_flpath(pd2fctx,pd2fblk,NULL) ;
   }

   /* Traitement des objets élément */
   for(status = d2fblkg_item(pd2fctx,pd2fblk,&pd2fitm) ;
     pd2fitm != NULL ;
     status = d2fitmg_next(pd2fctx,pd2fitm,&pd2fitm))
   {
    if (d2fitmis_IsSubclassed(pd2fctx,pd2fitm) == D2FS_YES)
      d2fitms_par_flpath(pd2fctx,pd2fitm,NULL) ;

    /* Traitement des objets déclencheur de niveau élément */
     for(status = d2fitmg_trigger(pd2fctx,pd2fitm,&pd2ftrg) ;
       pd2ftrg != NULL ;
       status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))
     {
       if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg)==D2FS_YES)
       {
        d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL) ;
        printf("le déclencheur de niveau élément fait partie d'une sous-classe "
       }
       else if (d2ftrgis_IsSubclassed(pd2fctx,
                      pd2ftrg)==D2FS_NO)
       printf("le déclencheur élément ne fait pas partie d'une sous-classe") ;
     }

   /* Traitement des objets bouton d'option *
    for(status = d2fitmg_rad_but(pd2fctx,pd2fitm,&pd2frdb) ;
      pd2frdb != NULL ;
      status = d2frdbs_next(pd2fctx,pd2frdb,&pd2frdb))
    {
      if (d2frdbis_IsSubclassed(pd2fctx,pd2frdb)==D2FS_YES
      {
       d2frdbs_par_flpath(pd2fctx,pd2frdb,NULL) ;
       printf("le bouton d'option fait partie d'une sous-classe") ;
      }
      else if (d2frdbis_IsSubclassed(pd2fctx,
                     pd2frdb)==D2FS_NO)
      printf("le bouton d'option ne fait PAS partie d'une sous-classe ") ;
    }
   }

   /* Traitement des objets déclencheur de niveau bloc */
   for(status = d2fblkg_trigger(pd2fctx,pd2fblk,&pd2ftrg) ;
     pd2ftrg != NULL ;
     status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))
   {
     if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg) == D2FS_YES)
     {
      d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL) ;
      printf("le déclencheur de niveau bloc fait partie d'une sous-classe ") ;
     }
     else if (d2ftrgis_IsSubclassed(pd2fctx,
                     pd2ftrg)==D2FS_NO)
     printf("Le déclencheur de niveau bloc ne fait PAS partie d'une sous-classe ") ;
   }

   /* Enregistrement d'une application Forms */
   d2ffmdsv_Save(pd2fctx, pd2ffmd, (text *)0, FALSE) ;

   /* Génération de l'exécutable Application Forms (fmx) */
   d2ffmdcf_CompileFile(pd2fctx, pd2ffmd ) ;

   /* Destruction du contexte API */
   d2fctxde_Destroy(pd2fctx) ;

  }
}


Open API - Exemples

La présente section comprend divers exemples sur l'utilisation de Open API.

Modification de modules à l'aide de Open API :

/*

Le présent exemple détermine si l'objet Form Builder est un objet appartenant à une sous-classe et retourne le chemin d'accès au fichier du père à NULL si l'objet fait partie d'une sous-classe. Cet exemple ne traite que les types d'objet suivants : déclencheurs de niveau applications Forms, messages d'alerte, blocs, éléments déclencheur de niveau élément, bouton d'option et déclencheur de niveau bloc. Utilisez une méthode similaire pour traiter les autres types d'objet.

*/

#include <stdio.h>

#include <string.h>

#include <windows.h>

#include <d2ferr.h>

#include <d2fctx.h>

#include <d2ffmd.h>

#include <d2fblk.h>

#include <d2fitm.h>

#include <d2falt.h>

#include <d2ftrg.h>

#include <d2frdb.h>

#define BUFSIZE 128

int WINAPI WinMain(HANDLE hInstance,

                   HANDLE hPrevInstance,

                   LPSTR lpszCommandLine,

                   int cmdShow)

{

    d2fctx  *pd2fctx;

    d2ffmd  *pd2ffmd;

    d2fblk*   pd2fblk;

    d2fitm*   pd2fitm;

    d2fctxa  d2fctx_attr;

    d2fstatus status;

    d2falt*   pd2falt;

    d2ftrg*   pd2ftrg;

    d2frdb*   pd2frdb;

    int counter;

    char buf[BUFSIZE];

    char* form_name=(char*)0;

    /* Extraire le nom de l'application Forms de la ligne de commande */

    strncpy(buf, lpszCommandLine, BUFSIZE);

    form_name = strtok(buf, ".");

    /* Initialiser le masque d'attribut */

    d2fctx_attr.mask_d2fctxa = 0;

    /* pour les attributs MS Windows uniquement */

    d2fctx_attr.d2fihnd_d2fctxa = hInstance;

    d2fctx_attr.d2fphnd_d2fctxa = hPrevInstance;

    d2fctx_attr.d2fcmsh_d2fctxa = cmdShow;

    /* Créer le contexte API */

    status = d2fctxcr_Create(&pd2fctx, &d2fctx_attr);

    /* Charger l'application Forms*/

    status = d2ffmdld_Load(pd2fctx, &pd2ffmd, form_name, FALSE) ;

    if (status == D2FS_D2FS_SUCCESS)

    {

      /*** Traiter les objets déclencheur de niveau application Forms ***/

      for(status = d2ffmdg_trigger(pd2fctx,pd2ffmd,&pd2ftrg);

          pd2ftrg != NULL;

          status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))

      {

        if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg) == D2FS_YES)

            d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);

      }

      /*** Traiter les objets alerte ***/

      for(status = d2ffmdg_alert(pd2fctx,pd2ffmd,&pd2falt);

          pd2falt != NULL;

          status = d2faltg_next(pd2fctx,pd2falt,&pd2falt))

      {

        if (d2faltis_IsSubclassed(pd2fctx,pd2falt) == D2FS_YES)

            d2falts_par_flpath(pd2fctx,pd2falt,NULL);

      }

      /*** Traiter les objets bloc ***/

      for(status = d2ffmdg_block(pd2fctx,pd2ffmd,&pd2fblk);

          pd2fblk != NULL;

          status = d2fblkg_next(pd2fctx,pd2fblk,&pd2fblk))

      {

        if (d2fblkis_IsSubclassed(pd2fctx,pd2fblk) == D2FS_YES)

           d2fblks_par_flpath(pd2fctx,pd2fblk,NULL);

      }

      /* Traiter les objets élément */

      for(status = d2fblkg_item(pd2fctx,pd2fblk,&pd2fitm);

          pd2fitm != NULL;

          status = d2fitmg_next(pd2fctx,pd2fitm,&pd2fitm))

      {

        if (d2fitmis_IsSubclassed(pd2fctx,pd2fitm) == D2FS_YES)

           d2fitms_par_flpath(pd2fctx,pd2fitm,NULL);

        /* Process Item Level Trigger Objects */

         for(status = d2fitmg_trigger(pd2fctx,pd2fitm,&pd2ftrg);

             pd2ftrg != NULL;

             status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))

         {

             if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg)==D2FS_YES)

             {

               d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);

               printf("Le déclencheur de niveau élément fait partie d'une sous-classe\n"

             }

             else if (d2ftrgis_IsSubclassed(pd2fctx,

                                            pd2ftrg)==D2FS_NO)

             printf("Le déclencheur de niveau élément NE fait PAS partie d'une sous-classe\n");

         }

      /* Traiter les objets bouton d'option *

        for(status = d2fitmg_rad_but(pd2fctx,pd2fitm,&pd2frdb);

            pd2frdb != NULL;

            status = d2frdbs_next(pd2fctx,pd2frdb,&pd2frdb))

        {

            if (d2frdbis_IsSubclassed(pd2fctx,pd2frdb)==D2FS_YES

            {

              d2frdbs_par_flpath(pd2fctx,pd2frdb,NULL);

              printf("Le bouton d'option fait partie d'une sous-classe\n");

            }

            else if (d2frdbis_IsSubclassed(pd2fctx,

                                         pd2frdb)==D2FS_NO)

            printf("Le bouton d'option NE fait PAS partie d'une sous-classe\n");

       }

      }

      /* Traiter les objets déclencheur de niveau bloc */

      for(status = d2fblkg_trigger(pd2fctx,pd2fblk,&pd2ftrg);

          pd2ftrg != NULL;

          status = d2ftrgg_next(pd2fctx,pd2ftrg,&pd2ftrg))

      {

          if (d2ftrgis_IsSubclassed(pd2fctx,pd2ftrg) == D2FS_YES)

          {

            d2ftrgs_par_flpath(pd2fctx,pd2ftrg,NULL);

            printf("Le déclencheur de niveau bloc fait partie d'une sous-classe\n");

          }

          else if (d2ftrgis_IsSubclassed(pd2fctx,

                                          pd2ftrg)==D2FS_NO)

          printf("Le déclencheur de niveau bloc NE fait PAS partie d'une sous-classe\n");

      }

     /* Save out the form */

     d2ffmdsv_Save(pd2fctx, pd2ffmd, (text *)0, FALSE) ;

     /* Générer l'exécutable de l'application Forms (fmx) */

     d2ffmdcf_CompileFile(pd2fctx, pd2ffmd);

     /* Supprimer le contexte API */

     d2fctxde_Destroy(pd2fctx);

    }

}

Création de modules à l'aide de Open API :

/*

Le présent exemple crée une application Forms maître-détail en fonction des tables de base de données dept et emp appartenant à l'utilisateur scott. Le maître contient les champs empno, ename, job, sal et deptno. Le détail contient les champs deptno, dname et loc. La condition de jointure est deptno.

*/

#include<stdio.h>

#include<string.h>

#include<windows.h>

#include<d2fctx.h>

#include<d2ffmd.h>

#include<d2ffpr.h>

#include<d2fob.h>

#include<d2fcnv.h>

#include<d2ftrg.h>

#include<d2blk.h>

#include<d2fitm.h>

#include<d2fwin.h>

#include<d2frel.h>

#define D2FS_SUCCESS 0

#define FAIL 1

#define BUFSIZE 128

#define WBP_TXT "null;\n"

int WINAPI WinMain(HANDLE hInstance,

                   HANDLE hPrevInstance,

                   LPSTR lpszCommandLine,

                   int cmdShow)

{

d2fctx  *pd2fctx;

d2ffmd  *pd2ffmd;

d2fcnv  *pd2fcnv;

d2fwin  *pd2fwin;

d2fblk  *pempblk;

d2fblk  *pdeptblk;

d2frel  *pd2frel;

d2fitm  *pEempnoitm;

d2fitm  *pEenameitm;

d2fitm  *pEjobitm;

d2fitm  *pEsalitm;

d2fitm  *pEdeptnoitm;

d2fitm  *pDdeptnoitm;

d2fitm  *pDdnameitm;

d2fitm  *pDlocitm;

text  *name = (text *)0;

text  *form_name = (text *)0;

d2fctxa  d2fctx_attr;

d2fstatus retval;

char buf[BUFSIZE];

/* Extraire le nom de l'application Forms */

strncpy(buf, "empdept", BUFSIZE);

form_name = (text*)strtok(buf, ".");

/* Initialiser le masque d'attribut */

d2fctx_attr.mask_d2fctxa = 0;

/* pour les attributs MS Windows uniquement */

d2fctx_attr.d2fihnd_d2fctxa = hInstance;

d2fctx_attr.d2fphnd_d2fctxa = hPrevInstance;

d2fctx_attr.d2fcmsh_d2fctxa = cmdShow;

/* Créer le contexte API */

status = d2fctxcr_Create(&pd2fctx, &d2fctx_attr);

/* Créer le contexte */

d2fctxcn_Connect(pd2fctx, (text*)"scott/tiger@test");

/* Créer l'application Forms */

d2ffmdcr_Create(pd2fctx, &pd2ffmd, form_name);

/* Créer une fenêtre */

d2fwincr_Create(pd2fctx,pd2ffmd,&pd2fwin,(text*)"MYWIN");

/*** Créer le canevas et définir les propriétés associées au canevas ***/

/* Créer un canevas */

d2fcnvcr_Create(pd2fctx, pd2ffmd, &pd2fcnv, (text*)"MYCANVAS");

/* Définir la largeur de la lucarne */

d2fcnvs_vprt_wid(pd2fctx, pd2fcnv, 512);

/* Définir la hauteur de la lucarne */

d2fcnvs_vprt_hgt(pd2fctx, pd2fcnv, 403);

/* Définir la fenêtre */

dwfcnvs_wnd_obj(pd2fctx, pd2fcnv, pd2fwin);

/* Définir la position X de la lucarne */

d2fcnvs_vprt_x_pos(pd2fctx, pd2fcnv, 0);

/* Définir la position Y de la lucarne */

d2fcnvs_vprt_y_pos(pd2fctx, pd2fcnv, 0);

/* Définir la largeur */

d2fcnvs_width(pd2fctx, pd2fcnv, 538)

/* Définir la hauteur */

d2fcnvs_height(pd2fctx, pd2fcnv, 403)

/*** Créer le bloc Emp et définir les propriétés associées au bloc ***/

/* Créer le bloc */

d2fblkcr_Create(pd2fctx, pd2ffmd, &pempblk, (text*)"EMP");

/* Définir à Bloc base de données */

d2fblks_db_blk(pd2fctx, pempblk, TRUE);

/* Définir la source de données d'interrogation à Table */

d2fblks_qry_dat_src_typ(pd2fctx, pempblk, D2FC_QRDA_TABLE);

/* Définir le nom de source de données d'interrogation à Table EMP */

d2fblks_qry_dat_src_nam(pd2fctx, pempblk, "EMP");

/* Définir le type de source de données DML à Table */

d2fblks_dml_dat_typ(Pd2fctx, pempblk, D2FC_DMDA_TABLE);

/* Définir le nom de source de données DML à Table EMP */

d2fblks_dml_dat_nam(pd2fctx, pempblk, (text*)"EMP");

/*** Créer le bloc Dept block et définir les propriétés correspondantes ***/

/* Créer le bloc */

d2fblkcr_Create(pd2fctx, pd2ffmd, &pdeptblk, (text*)"DEPT");

/* Définir à Bloc base de données */

d2fblks_db_blk(pd2fctx, pdeptblk, TRUE);

/* Définir la source de données d'interrogation à Table */

d2fblks_qry_dat_src_typ(pd2fctx, pdeptblk, D2FC_QRDA_TABLE);

/* Définir le nom de source de données d'interrogation à Table EMP */

d2fblks_qry_dat_src_nam(pd2fctx, pdeptblk, "DEPT");

/* Définir le type de source de données DML à Table */

d2fblks_dml_dat_typ(Pd2fctx, pdeptblk, D2FC_DMDA_TABLE);

/* Définir le nom de source de données DML à Table EMP */

d2fblks_dml_dat_nam(pd2fctx, pdeptblk, (text*)"DEPT");

/*** Créer l'élément empno et les propriétés correspondantes ***/

/* Créer l'élément */

d2fitmcr_Create(pd2fctx, pempblk, &pEempnoitm, (text*)"EMPNO");

/* Définir le type d'élément */

d2fitms_itm_type(pd2fctx, pEempnoitm, D2FC_ITTY_TI);

/* Définir la propriété Activé */

d2fitms_enabled(pd2fctx, pEempnoitm, TRUE);

/* Définir la propriété d'élément Navigation autorisée (au clavier) */

d2fitms_kbrd_navigable(pd2fctx, pEempnoitm, TRUE);

/* Définir la propriété Type de données */

d2fitms_dat_typ(pd2fctx, pEempnoitm, D2FC_DATY_NUMBER);

/* Définir la propriété d'élément Longueur maximum */

d2fitms_max_len(pd2fctx, pEempnoitm, 6);

/*Définir la propriété Obligatoire de l'élément */

d2fitms_required(pd2fctx, pEempnoitm, TRUE);

/* Définir la propriété Distance entre enregistrements */

d2fitms_dist_btwn_recs(pd2fctx, pEempnoitm, 0);

/* Définir la propriété de bloc Base de données (élément base de données) */

d2fitms_db_itm(pd2fctx, pEempnoitm, TRUE);

/* Définir l'interrogation autorisée */

d2fitms_qry_allowed(pd2fctx, pEempnoitm, TRUE);

/* Définir la longueur de l'interrogation */

d2fitms_qry_len(pd2fctx, pEempnoitm, 6);

/* Définir la mise à jour autorisée */

d2fitms_updt_allowed(pd2fctx, pEempnoitm, TRUE);

/* Définir l'élément affiché (Visible) */

d2fitms_visible(pd2fctx, pEempnoitm, TRUE);

/* Définir la propriété d'élément Canevas */

d2fitms_cnv_obj(pd2fctx, pEempnoitm, pd2fcnv);

/* Définir la position X de l'élément */

d2fitms_x_pos(pd2fctx, pEempnoitm, 32);

/* Définir la position Y de l'élément */

d2fitms_y_pos(pd2fctx, pEempnoitm, 50);

/* Définir la largeur de l'élément */

d2fitms_width(pd2fctx, pEempnoitm, 51);

/* Définir la hauteur de l'élément */

d2fitms_height(pd2fctx, pEempnoitm, 17);

/* Définir le relief de l'élément */

d2fitms_bevel(pd2fctx, pEempnoitm, D2FC_BEST_LOWERED);

/* Définir le message d'aide de l'élément */

d2fitms_hint(pd2fctx, PEempnoitm, (text*)"Enter value for :EMPNO");

/*** Créer l'élément Ename et les propriétés correspondantes ***/

/* Créer l'élément */

d2fitmcr_Create(pd2fctx, pempblk, &pEenameitm, (text*)"ENAME");

/* Définir le type d'élément */

d2fitms_itm_type(pd2fctx, pEenameitm, D2FC_ITTY_TI);

/* Définir la propriété Activé */

d2fitms_enabled(pd2fctx, pEenameitm, TRUE);

/* Définir la propriété d'élément Navigation autorisée (au clavier) */

d2fitms_kbrd_navigable(pd2fctx, pEenameitm, TRUE);

/* Définir la propriété Type de données */

d2fitms_dat_typ(pd2fctx, pEenameitm, D2FC_DATY_CHAR);

/* Définir la propriété d'élément Longueur maximum */

d2fitms_max_len(pd2fctx, pEenameitm, 10);

/* Définir la propriété Distance entre enregistrements */

d2fitms_dist_btwn_recs(pd2fctx, pEenameitm, 0);

/* Définir la propriété de bloc Base de données (élément base de données) */

d2fitms_db_itm(pd2fctx, pEenameitm, TRUE);

/* Définir l'interrogation autorisée */

d2fitms_qry_allowed(pd2fctx, pEenameitm, TRUE);

/* Définir la longueur de l'interrogation */

d2fitms_qry_len(pd2fctx, pEenameitm, 10);

/* Définir la mise à jour autorisée */

d2fitms_updt_allowed(pd2fctx, pEenameitm, TRUE);

/* Définir l'élément affiché (Visible) */

d2fitms_visible(pd2fctx, pEenameitm, TRUE);

/* Définir la propriété d'élément Canevas */

d2fitms_cnv_obj(pd2fctx, pEenameitm, pd2fcnv);

/* Définir la position X de l'élément */

d2fitms_x_pos(pd2fctx, pEenameitm, 83);

/* Définir la position Y de l'élément */

d2fitms_y_pos(pd2fctx, pEenameitm, 50);

/* Définir la largeur de l'élément */

d2fitms_width(pd2fctx, pEenameitm, 77);

/* Définir la hauteur de l'élément */

d2fitms_height(pd2fctx, pEenameitm, 17);

/* Définir le relief de l'élément */

d2fitms_bevel(pd2fctx, pEenameitm, D2FC_BEST_LOWERED);

/* Définir le message d'aide de l'élément */

d2fitms_hint(pd2fctx, PEenameitm, (text*)"Enter value for :ENAME");

/*** Créer l'élément JOB et les propriétés correspondantes ***/

/* Créer l'élément */

d2fitmcr_Create(pd2fctx, pempblk, &pEjobitm, (text*)"JOB");

/* Définir le type d'élément */

d2fitms_itm_type(pd2fctx, pEjobitm, D2FC_ITTY_TI);

/* Définir la propriété Activé */

d2fitms_enabled(pd2fctx, pEjobitm, TRUE);

/* Définir la propriété d'élément Navigation autorisée (au clavier) */

d2fitms_kbrd_navigable(pd2fctx, pEjobitm, TRUE);

/* Définir la propriété Type de données */

d2fitms_dat_typ(pd2fctx, pEjobitm, D2FC_DATY_CHAR);

/* Définir la propriété d'élément Longueur maximum */

d2fitms_max_len(pd2fctx, pEjobitm, 9);

/* Définir la propriété Distance entre enregistrements */

d2fitms_dist_btwn_recs(pd2fctx, pEjobitm, 0);

/* Définir la propriété de bloc Base de données (élément base de données) */

d2fitms_db_itm(pd2fctx, pEjobitm, TRUE);

/* Définir l'interrogation autorisée */

d2fitms_qry_allowed(pd2fctx, pEjobitm, TRUE);

/* Définir la longueur de l'interrogation */

d2fitms_qry_len(pd2fctx, pEjobitm, 9);

/* Définir la mise à jour autorisée */

d2fitms_updt_allowed(pd2fctx, pEjobitm, TRUE);

/* Définir l'élément affiché (Visible) */

d2fitms_visible(pd2fctx, pEjobitm, TRUE);

/* Définir la propriété d'élément Canevas */

d2fitms_cnv_obj(pd2fctx, pEjobitm, pd2fcnv);

/* Définir la position X de l'élément */

d2fitms_x_pos(pd2fctx, pEjobitm, 160);

/* Définir la position Y de l'élément */

d2fitms_y_pos(pd2fctx, pEjobitm, 50);

/* Définir la largeur de l'élément */

d2fitms_width(pd2fctx, pEjobitm, 70);

/* Définir la hauteur de l'élément */

d2fitms_height(pd2fctx, pEjobitm, 17);

/* Définir le relief de l'élément */

d2fitms_bevel(pd2fctx, pEjobitm, D2FC_BEST_LOWERED);

/* Définir le message d'aide de l'élément */

d2fitms_hint(pd2fctx, PEjobitm, (text*)"Enter value for :JOB");

/*** Créer l'élément SALARY et les propriétés correspondantes ***/

/* Créer l'élément */

d2fitmcr_Create(pd2fctx, pempblk, &pEsalitm, (text*)"SAL");

/* Définir le type d'élément */

d2fitms_itm_type(pd2fctx, pEsalitm, D2FC_ITTY_TI);

/* Définir la propriété Activé */

d2fitms_enabled(pd2fctx, pEsalitm, TRUE);

/* Définir la propriété d'élément Navigation autorisée (au clavier) */

d2fitms_kbrd_navigable(pd2fctx, pEsalitm, TRUE);

/* Définir la propriété Type de données */

d2fitms_dat_typ(pd2fctx, pEsalitm, D2FC_DATY_NUMBER);

/* Définir la propriété d'élément Longueur maximum */

d2fitms_max_len(pd2fctx, pEsalitm, 9);

/* Définir la propriété Distance entre enregistrements */

d2fitms_dist_btwn_recs(pd2fctx, pEsalitm, 0);

/* Définir la propriété de bloc Base de données (élément base de données) */

d2fitms_db_itm(pd2fctx, pEsalitm, TRUE);

/* Définir l'interrogation autorisée */

d2fitms_qry_allowed(pd2fctx, pEsalitm, TRUE);

/* Définir la longueur de l'interrogation */

d2fitms_qry_len(pd2fctx, pEsalitm, 9);

/* Définir la mise à jour autorisée */

d2fitms_updt_allowed(pd2fctx, pEsalitm, TRUE);

/* Définir l'élément affiché (Visible) */

d2fitms_visible(pd2fctx, pEsalitm, TRUE);

/* Définir la propriété d'élément Canevas */

d2fitms_cnv_obj(pd2fctx, pEsalitm, pd2fcnv);

/* Définir la position X de l'élément */

d2fitms_x_pos(pd2fctx, pEsalitm, 352);

/* Définir la position Y de l'élément */

d2fitms_y_pos(pd2fctx, pEsalitm, 50);

/* Définir la largeur de l'élément */

d2fitms_width(pd2fctx, pEsalitm, 70);

/* Définir la hauteur de l'élément */

d2fitms_height(pd2fctx, pEsalitm, 17);

/* Définir le relief de l'élément */

d2fitms_bevel(pd2fctx, pEsalitm, D2FC_BEST_LOWERED);

/* Définir le message d'aide de l'élément */

d2fitms_hint(pd2fctx, PEsalitm, (text*)"Enter value for :SAL");

/*** Créer l'élément DEPTNO et les propriétés correspondantes ***/

/* Créer l'élément */

d2fitmcr_Create(pd2fctx, pempblk, &pEdeptnoitm, (text*)"DEPTNO");

/* Définir le type d'élément */

d2fitms_itm_type(pd2fctx, pEdeptnoitm, D2FC_ITTY_TI);

/* Définir la propriété Activé */

d2fitms_enabled(pd2fctx, pEdeptnoitm, TRUE);

/* Définir la propriété d'élément Navigation autorisée (au clavier) */

d2fitms_kbrd_navigable(pd2fctx, pEdeptnoitm, TRUE);

/* Définir la propriété Type de données */

d2fitms_dat_typ(pd2fctx, pEdeptnoitm, D2FC_DATY_NUMBER);

/* Définir la propriété d'élément Longueur maximum */

d2fitms_max_len(pd2fctx, pEdeptnoitm, 4);

/*Définir la propriété d'élément Obligatoire */

d2fitms_required(pd2fctx, pEdeptnoitm, TRUE);

/* Définir la propriété Distance entre enregistrements */

d2fitms_dist_btwn_recs(pd2fctx, pEdeptnoitm, 0);

/* Définir la propriété de bloc Base de données (élément base de données) */

d2fitms_db_itm(pd2fctx, pEdeptnoitm, TRUE);

/* Définir l'interrogation autorisée */

d2fitms_qry_allowed(pd2fctx, pEdeptnoitm, TRUE);

/* Définir la longueur de l'interrogation */

d2fitms_qry_len(pd2fctx, pEdeptnoitm, 4);

/* Définir la mise à jour autorisée */

d2fitms_updt_allowed(pd2fctx, pEdeptnoitm, TRUE);

/* Définir l'élément affiché (Visible) */

d2fitms_visible(pd2fctx, pEdeptnoitm, TRUE);

/* Définir la propriété d'élément Canevas */

d2fitms_cnv_obj(pd2fctx, pEdeptnoitm, pd2fcnv);

/* Définir la position X de l'élément */

d2fitms_x_pos(pd2fctx, pEdeptnoitm, 493);

/* Définir la position Y de l'élément */

d2fitms_y_pos(pd2fctx, pEdeptnoitm, 50);

/* Définir la largeur de l'élément */

d2fitms_width(pd2fctx, pEdeptnoitm, 30);

/* Définir la hauteur de l'élément */

d2fitms_height(pd2fctx, pEdeptnoitm, 17);

/* Définir le relief de l'élément */

d2fitms_bevel(pd2fctx, pEdeptnoitm, D2FC_BEST_LOWERED);

/* Définir le message d'aide de l'élément */

d2fitms_hint(pd2fctx, PEdeptnoitm, (text*)"Enter value for :DEPTNO");

/*** Créer l'élément DEPTNO et les propriétés correspondantes ***/

/* Créer l'élément */

d2fitmcr_Create(pd2fctx, pdeptblk, &pDdeptnoitm, (text*)"DEPTNO");

/* Définir le type d'élément */

d2fitms_itm_type(pd2fctx, pDdeptnoitm, D2FC_ITTY_TI);

/* Définir la propriété Activé */

d2fitms_enabled(pd2fctx, pDdeptnoitm, TRUE);

/* Définir la propriété d'élément Navigation autorisée (au clavier) */

d2fitms_kbrd_navigable(pd2fctx, pDdeptnoitm, TRUE);

/* Définir la propriété Type de données */

d2fitms_dat_typ(pd2fctx, pDdeptnoitm, D2FC_DATY_NUMBER);

/* Définir la propriété d'élément Longueur maximum */

d2fitms_max_len(pd2fctx, pDdeptnoitm, 4);

/*Définir la propriété d'élément Obligatoire */

d2fitms_required(pd2fctx, pDdeptnoitm, TRUE);

/* Définir la propriété Distance entre enregistrements */

d2fitms_dist_btwn_recs(pd2fctx, pDdeptnoitm, 0);

/* Définir la propriété de bloc Base de données (élément base de données) */

d2fitms_db_itm(pd2fctx, pDdeptnoitm, TRUE);

/* Définir l'interrogation autorisée */

d2fitms_qry_allowed(pd2fctx, pDdeptnoitm, TRUE);

/* Définir la longueur de l'interrogation */

d2fitms_qry_len(pd2fctx, pDdeptnoitm, 4);

/* Définir la mise à jour autorisée */

d2fitms_updt_allowed(pd2fctx, pDdeptnoitm, TRUE);

/* Définir l'élément affiché (Visible) */

d2fitms_visible(pd2fctx, pDdeptnoitm, TRUE);

/* Définir la propriété d'élément Canevas */

d2fitms_cnv_obj(pd2fctx, pDdeptnoitm, pd2fcnv);

/* Définir la position X de l'élément */

d2fitms_x_pos(pd2fctx, pDdeptnoitm, 32);

/* Définir la position Y de l'élément */

d2fitms_y_pos(pd2fctx, pDdeptnoitm, 151);

/* Définir la largeur de l'élément */

d2fitms_width(pd2fctx, pDdeptnoitm, 38);

/* Définir la hauteur de l'élément */

d2fitms_height(pd2fctx, pDdeptnoitm, 17);

/* Définir le relief de l'élément */

d2fitms_bevel(pd2fctx, pDdeptnoitm, D2FC_BEST_LOWERED);

/* Définir le message d'aide de l'élément */

d2fitms_hint(pd2fctx, PDdeptnoitm, (text*)"Enter value for :DEPTNO");

/*** Créer l'élément DNAME et les propriétées correspondantes ***/

/* Créer l'élément */

d2fitmcr_Create(pd2fctx, pdeptblk, &pDdnameitm, (text*)"DNAME");

/* Définir le type d'élément */

d2fitms_itm_type(pd2fctx, pDdnameitm, D2FC_ITTY_TI);

/* Définir la propriété Activé */

d2fitms_enabled(pd2fctx, pDdnameitm, TRUE);

/* Définir la propriété d'élément Navigation autorisée (au clavier) */

d2fitms_kbrd_navigable(pd2fctx, pDdnameitm, TRUE);

/* Définir la propriété Type de données */

d2fitms_dat_typ(pd2fctx, pDdnameitm, D2FC_DATY_CHAR);

/* Définir la propriété d'élément Longueur maximum */

d2fitms_max_len(pd2fctx, pDdnameitm, 14);

/* Définir la propriété Distance entre enregistrements */

d2fitms_dist_btwn_recs(pd2fctx, pDdnameitm, 0);

/* Définir la propriété de bloc Base de données (élément base de données) */

d2fitms_db_itm(pd2fctx, pDdnameitm, TRUE);

/* Définir l'interrogation autorisée */

d2fitms_qry_allowed(pd2fctx, pDdnameitm, TRUE);

/* Définir la longueur de l'interrogation */

d2fitms_qry_len(pd2fctx, pDdnameitm, 14);

/* Définir la mise à jour autorisée */

d2fitms_updt_allowed(pd2fctx, pDdnameitm, TRUE);

/* Définir l'élément affiché (Visible) */

d2fitms_visible(pd2fctx, pDdnameitm, TRUE);

/* Définir la propriété d'élément Canevas */

d2fitms_cnv_obj(pd2fctx, pDdnameitm, pd2fcnv);

/* Définir la position X de l'élément */

d2fitms_x_pos(pd2fctx, pDdnameitm, 70);

/* Définir la position Y de l'élément */

d2fitms_y_pos(pd2fctx, pDdnameitm, 151);

/* Définir la largeur de l'élément */

d2fitms_width(pd2fctx, pDdnameitm, 102);

/* Définir la hauteur de l'élément */

d2fitms_height(pd2fctx, pDdnameitm, 17);

/* Définir le relief de l'élément */

d2fitms_bevel(pd2fctx, pDdnameitm, D2FC_BEST_LOWERED);

/* Définir le message d'aide de l'élément */

d2fitms_hint(pd2fctx, PDdnameitm, (text*)"Enter value for :DNAME");

/*** Créer l'élément LOC et les propriétés correspondantes ***/

/* Créer l'élément */

d2fitmcr_Create(pd2fctx, pdeptblk, &pDlocitm, (text*)"LOC");

/* Définir le type d'élément */

d2fitms_itm_type(pd2fctx, pDlocitm, D2FC_ITTY_TI);

/* Définir la propriété Activé */

d2fitms_enabled(pd2fctx, pDlocitm, TRUE);

/* Définir la propriété d'élément Navigation autorisée (au clavier) */

d2fitms_kbrd_navigable(pd2fctx, pDlocitm, TRUE);

/* Définir la propriété Type de données */

d2fitms_dat_typ(pd2fctx, pDlocitm, D2FC_DATY_CHAR);

/* Définir la propriété d'élément Longueur maximum */

d2fitms_max_len(pd2fctx, pDlocitm, 13);

/* Définir la propriété Distance entre enregistrements */

d2fitms_dist_btwn_recs(pd2fctx, pDlocitm, 0);

/* Définir la propriété de bloc Base de données (élément base de données) */

d2fitms_db_itm(pd2fctx, pDlocitm, TRUE);

/* Définir l'interrogation autorisée */

d2fitms_qry_allowed(pd2fctx, pDlocitm, TRUE);

/* Définir la longueur de l'interrogation */

d2fitms_qry_len(pd2fctx, pDlocitm, 13);

/* Définir la mise à jour autorisée */

d2fitms_updt_allowed(pd2fctx, pDlocitm, TRUE);

/* Définir l'élément affiché (Visible) */

d2fitms_visible(pd2fctx, pDlocitm, TRUE);

/* Définir la propriété d'élément Canevas */

d2fitms_cnv_obj(pd2fctx, pDlocitm, pd2fcnv);

/* Définir la position X de l'élément */

d2fitms_x_pos(pd2fctx, pDlocitm, 173);

/* Définir la position Y de l'élément */

d2fitms_y_pos(pd2fctx, pDlocitm, 151);

/* Définir la largeur de l'élément */

d2fitms_width(pd2fctx, pDlocitm, 96);

/* Définir la hauteur de l'élément */

d2fitms_height(pd2fctx, pDlocitm, 17);

/* Définir le relief de l'élément */

d2fitms_bevel(pd2fctx, pDlocitm, D2FC_BEST_LOWERED);

/* Définir le message d'aide de l'élément */

d2fitms_hint(pd2fctx, PDlocitm, (text*)"Enter value for :LOC");

/*** Créer les relations et les propriétés correspondantes ***/

/* Créer la relation */

d2frelcr_Create(pd2fctx, (d2fob *)pdeptblk, &pd2frel, (text*)"DEPT_EMP");

/* Définir le bloc Détail de relation */

d2frels_detail_blk(pd2fctx, pd2frel, (text *)"EMP");

/* Définir la propriété Suppressions maître */

d2frels_del_rec([pd2fctx, pd2frel, D2FC_DERE_NON_ISOLATED);

/* Définir la propriété Différé */

d2frels_deferred(pd2ctx, pd2frel, FALSE);

/* Définir la propriété Interrogation auto */

d2frels_auto_qry(pd2ctx, pd2frel, FALSE);

/* Définir la propriété Interdiction sans maître */

d2frels_prvnt_mstrless_ops(pd2ctx, pd2frel, FALSE);

/* Définir la propriété Condition de jointure */

d2frels_join_cond(pd2ctx, pd2frel, (text*)"DEPTNO");

/* Instancier la relation : création de déclencheurs maître-détail */

d2frelup_Update(pd2fctx, pd2frel);

/* Enregistrer l'application Forms */

d2ffmdsv_Save(pd2fctx, pd2ffmd, (text*)0, FALSE, TRUE);

/* Compiler l'application Forms */

d2ffmdcf_CompileFile(pd2fctx, pd2ffmd);

/* Supprimer le contexte */

d2fctxde_Destroy(pd2fctx);

}


A propos des composants de Form Builder

  Rubriques connexes

Form Builder se compose d'un certain nombre de programmes, ou composants, que vous pouvez exécuter indifféremment à partir de la ligne de commande ou en cliquant sur une icône. Ces composants sont les suivants :

Form Builder	Form Builder est le composant de développement que vous utilisez pour créer, compiler et exécuter des applications Form Builder. Il permet de créer trois types de module : Applications Forms, Menus et Bibliothèques.
Forms Runtime	Les opérateurs d'applications Forms utilisent Forms Runtime pour exécuter l'application finalisée. Comme développeur d'applications, vous pouvez également l'utiliser pour tester et déboguer des applications Forms lors de la conception. Forms Runtime lit le fichier machine créé par Form Compiler et exécute l'application Forms.
Web Previewer	Les développeurs d'applications utilisent Web Previewer pour tester les applications Forms localement comme si elles étaient exécutées depuis Forms Server dans un explorateur ou dans Appletviewer. Comme Forms Runtime, Web Previewer lit le fichier machine créé par Form Compiler et exécute l'application Forms.
Form Compiler	Vous utilisez le plus souvent Form Compiler pour créer un fichier machine exécutable par Form Runtime. Form Compiler vous permet également de convertir différentes représentations d'une application Forms et notamment : • de convertir des fichiers en formats binaire, texte et stockage de modules de base de données ; • d'insérer des définitions de module dans des tables de base de données ; • de supprimer des définitions de module de la base de données ; • de recompiler des modules d'application en cas de portage sur d'autres plates-formes ; • de faire évoluer des applications créées à l'aide de versions précédentes de Form Builder, SQL*Forms et SQL*Menu.


Démarrage des composants de Form Builder

  Rubriques connexes

Certaines plates-formes prennent en charge les icônes, d'autres les lignes de commande. Vous pouvez lancer les composants Form Builder, Form Compiler, Web Previewer, ou Forms Runtime de deux façons différentes, en fonction de votre plate-forme :

icône	icône Vous verrez une icône différente pour chaque composant : Form Builder, Forms Runtime et Forms Compiler. Pour lancer un composant, cliquez deux fois sur ce dernier.
ligne de commande	Lorsque vous lancez un composant en entrant une commande dans la ligne de commande, vous pouvez indiquer les options à utiliser pour cette session en entrant des paramètres mots-clés dans la ligne de commande.
Pour plus d'informations sur le démarrage des composants de Form Builder, reportez-vous à la documentation Form Builder de votre système d'exploitation.


Démarrage des composants de Form Builder à partir de la ligne de commande

  Rubriques connexes	 Exemples

Pour démarrer un composant de Form Builder à partir de la ligne de commande, à l'invite système, entrez l'instruction suivante :

nom_composant [nom_module] [id_utilisateur/mot_de_passe] [paramètres]

où

nom_composant	Permet d'indiquer le composant de Form Builder que vous voulez utiliser :

•	Form Builder - ifbld60

•	Forms Runtime - ifrun60

•	Web Previewer - ifweb60

•	Form Compiler - ifcmp60


Démarrage des composants de Form Builder - Exemples

ifrun60	Lance le composant Forms Runtime sous Microsoft Windows, sans appel à l'interface de user exit.

Pour indiquer que des fonctions étrangères, accessibles par l'interface de user exit, ont été liées dans l'exécutable, ajoutez un x à nom_composant.

Pour plus d'informations sur les noms de composant valides, reportez-vous à la documentation Form Builder de votre système d'exploitation.

nom_module	Permet d'indiquer le module à charger : Application Forms, Menu ou Bibliothèque. Si vous omettez le nom du module, Form Builder affiche une boîte de dialogue dans laquelle vous pouvez choisir le module à ouvrir.

id_utilisateur/mot_de_passe	Indique votre nom utilisateur et mot de passe ORACLE.

paramètres	Permet d'indiquer les paramètres facultatifs de ligne de commande que vous voulez activer pour cette session. Les paramètres facultatifs sont entrés dans le format suivant :mot-clé1=valeur1 mot-clé2=valeur2...

ifrun60 custform scott/tiger statistics=yes

Remarque : Comme vous êtes censé exécuter Form Builder sous Microsoft Windows, sans appel à l'interface de user exit, le nom de composant Forms Runtime est indiqué sous la forme "ifrun60." Vous devez indiquer le nom_composant correspondant à votre plate-forme et à votre d'application.

Utilisation des mots-clés

Form Builder comporte trois catégories de paramètres :

•	MODULE et USERID

•	options (paramètres de ligne de commande pour la définition des options)

•	paramètres d'application Forms

Les deux premiers, MODULE et USERID, sont uniques car vous pouvez utiliser la notation par position ou par mot-clé pour les entrer. Choisissez la notation par mot-clé pour entrer des paramètres facultatifs dans la ligne de commande. (De nombreux paramètres facultatifs peuvent également être définis dans des boîtes de dialogue.) Les paramètres d'application Forms sont des variables d'entrée facultatives qui sont définies lors de la conception pour une application Forms spécifique.

MODULE et USERID

Si vous entrez les deux premiers paramètres, MODULE et USERID, dans l'ordre indiqué, vous pouvez omettre les mots-clés et n'entrer que les valeurs, comme l'indique l'exemple suivant :

ifrun60 custform scott/tiger

Exemples non valides :

ifrun60 scott/tiger

Cet exemple n'est pas valide, car la valeur d'id_utilisateur/mot_de_passe n'est pas dans la séquence voulue et doit donc être précédée du mot-clé USERID. Pour utiliser une notation par position au lieu d'une notation par mot-clé, vous devez insérer la valeur du paramètre MODULE immédiatement après le nom du composant, comme dans l'exemple précédent.

Exemples valides :

ifrun60 module=custform userid=scott/tiger
ifrun60 userid=scott/tiger
ifrun60

Si vous n'indiquez que le nom du module, Form Builder vous demandera le nom du module et le nom utilisateur/mot de passe.

Options

Utilisez la notation par mot-clé pour définir les options dans la ligne de commande. Pour toute information sur les options, reportez-vous à :

•	Définition des options de Forms Runtime

•	Définition des options de Form Compiler

•	Définition des options de Form Builder

Les règles de syntaxe ci-après s'appliquent à tous les paramètres mots-clés, options et paramètres d'application Forms inclus :

•	Le signe égal d'un argument ne doit être ni précédé ni suivi d'un espace.

•	Les arguments doivent être séparés par un ou plusieurs espaces ; les virgules sont interdites.

Exemples non valides :

ifrun60 custform scott/tiger statistics = yes
ifrun60 custform scott/tiger statistics=yes,debug=yes

Exemples valides :

ifrun60 custform scott/tiger statistics=yes
ifrun60 custform scott/tiger statistics=yes debug=yes

Paramètres d'application Forms

Les paramètres d'application Forms sont des variables que vous définissez lors de la conception. Ils permettent de définir la valeur des entrées que demande une application Forms lors de son démarrage. Les utilisateurs peuvent indiquer ces valeurs en les entrant dans la ligne de commande, en respectant la syntaxe standard.

La valeur par défaut d'un paramètre d'application Forms est extraite du champ Valeur par défaut de la fenêtre Propriétés. L'utilisateur peut remplacer la valeur par défaut au lancement de Forms Runtime en indiquant une nouvelle valeur dans la ligne de commande.

Dans l'exemple ci-dessous, myname_param est un paramètre d'application Forms qui a été défini dans Form Builder.

Remarque : Si une  valeur de paramètre d'application Forms comporte un espace ou un signe de ponctuation, faites-la précéder et suivre de guillemets.

Exemple

ifrun60 empform scott/tiger myname_param="Mme Dubois"

Affichage de texte de message d'aide dans les options de la ligne de commande

Pour afficher l'aide sur la syntaxe et les paramètres, entrez le nom du composant suivi de "help=yes" en réponse à l'invite système.

Exemple

ifrun60 help=yes


Connexion à la base de données

 Exemples

Pour vous connecter explicitement à la base de données, utilisez le mot-clé de ligne de commande USERID ou, dans Form Builder, choisissez Fichier [image] Connecter.

USERID

SERID est votre nom d'utilisateur et votre mot de passe ORACLE, avec une chaîne de connexion SQL*Net facultative. La longueur maximum de la chaîne de connexion est de 255 caractères.

Pour vous connecter, utilisez l'une des formes suivantes :

id_utilisateur/mot_de_passe
id_utilisateur/mot_de_passe@noeud

Mot de passe arrivé à expiration

Le serveur de base de données Oracle8 propose une fonction d'expiration de mot de passe ; les administrateurs de base de données peuvent l'employer pour obliger les utilisateurs à mettre à jour régulièrement leur mot de passe.

Si votre mot de passe est arrivé à expiration, Forms vous permet d'en saisir un autre lors de votre connexion. (Vous pouvez aussi utiliser la boîte de dialogue de démarrage de Forms pour modifier votre mot de passe avant sa date d'expiration.)


Connexion à la base de données - Exemples

Pour exécuter l'application Forms ORDER_ENTRY de la base de données par défaut du noeud LONDON, vous pouvez entrer la commande suivante :

ifrun60 order_entry scott/tiger@D:london

Pour toute information sur SQL*Net, reportez-vous à SQL*Net User's Guide. Pour toute information sur votre id utilisateur ORACLE, consultez votre Administrateur de bases de données.


Options Forms Runtime

Les options Forms Runtime indiquent le comportement par défaut de Form Builder pendant une session Forms Runtime. Vous pouvez les définir de deux manières différentes :

•	En définissant des options dans la boîte de dialogue Options de Forms Runtime.

•	En transmettant des paramètres à Form Builder dans la ligne de commande lorsque vous appelez Forms Runtime.

En outre, vous pouvez définir des options Forms Runtime indiquant les valeurs par défaut des applications Forms que vous exécutez à partir de Form Builder dans la boîte de dialogue Préférences. Pour l'afficher, choisissez Outils [image] Préférences.

Remarque : Les préférences Forms Runtime définies dans Form Builder ne s'appliquent qu'aux applications Forms exécutées à partir de Form Builder.

Vous pouvez également définir des options pour Web Previewer via le paramètre serverargs d'un fichier HTML de base. Vous pouvez préciser le nom de ce fichier HTML dans l'onglet Runtime de la boîte de dialogue Préférences, ou dans la ligne de commande. Pour obtenir des détails sur la création d'un fichier HTML de base, reportez-vous à la section « Configuration de Forms Server » dans Déploiement d'applications Forms sur le Web.

Le tableau ci-après regroupe les options Forms Runtime de la fenêtre Options, ainsi que les paramètres mots-clés correspondants.

Si vous entrez ces paramètres mots-clés comme options de ligne de commande, vous pouvez en entrer plusieurs, dans l'ordre de votre choix :

ifrun60 module=mon_appli userid=scott/tiger debug=YES statistics=YES

Nom de l'option	Paramètre mot-clé	Valeur par défaut
Fichier de ressources Oracle*Terminal	Term
Exécuter en mode débogage	Déboguer	Non
Messages de débogage	Debug_Messages *	Non
Ecrire séquences de touches d'entrée dans fichier	Keyout
Lire séquences de touches d'entrée dans fichier	Keyin
Ecrire sortie dans fichier	Output_File
Ecrire sortie à afficher	Interactive	Oui
Traitement par tableau	Array	Oui
Mettre enregistrements tampon dans fichier temporaire	Buffer_Records	Non
Afficher l'écran de connexion	Logon_Screen	Non
Afficher le menu Bloc au démarrage	Block_Menu	Non
Optimiser traitement SQL étape du déclencheur style V2	OptimizeSQL	Oui
Optimiser traitement transactionnel	OptimizeTP	Oui
Exécuter en mode silencieux	Quiet	Non
Afficher les statistiques	Statistiques	Non
Exécuter en mode Interrogation seulement	Query_Only	Non
Afficher le texte d'aide	Help	Non
Etat fenêtre	Window_State	NORMAL
Réunir données PECS ?	PECS	Désactivé
Ecran Options	Options_Screen *	Non
Mode UseSDI	USESDI	Non
Chemin du fichier HTML (Web Runtime seulement)	HTML
 * Utilisable à partir de la ligne de commande uniquement ; non disponible dans la boîte de dialogue Options de Forms Runtime.


Array (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'utiliser le traitement par tableau pendant une session Forms Runtime.

Lorsque vous supprimez le traitement par tableau, l'application Forms demande que la base de données ne retourne du serveur au client qu'une ligne de résultat d'interrogation à la fois. De même, l'application demande que la base de données n'envoie du client au serveur qu'une ligne à la fois pour une opération INSERT, UPDATE ou DELETE lorsque le traitement par tableau est supprimé.

Lorsque le traitement par tableau est supprimé, le premier enregistrement extrait s'affiche généralement plus rapidement que si vous aviez extrait un certain nombre d'enregistrements avec le traitement par tableau. Cependant, le temps total nécessaire pour extraire et afficher un certain nombre d'enregistrements est plus court avec le traitement par tableau, car le réseau est généralement moins chargé.

Nom de l'option Traitement par tableau

Valeur par défaut YES


Array (Forms Runtime) - Exemple

ifrun60 module=mon appli userid=scott/tiger array=NO


Block_Menu (Forms Runtime)

 Exemples	 	 Toutes les options

Description

Permet d'afficher automatiquement le menu Bloc comme premier écran (après l'écran de connexion, s'il est affiché), au lieu de l'application Forms.

Nom de la préférence Afficher le menu Bloc

Valeur par défaut NO


Block_Menu (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger block_menu=YES


Buffer_Records (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet de définir le nombre d'enregistrements mis en mémoire tampon au nombre minimum autorisé de lignes affichées plus 3 (pour chaque bloc). Si, à la suite d'une interrogation, un bloc extrait un nombre d'enregistrements supérieur à ce minimum, Form Builder entre les enregistrements supplémentaires dans un fichier temporaire sur disque.

La définition de cette option permet de réduire l'encombrement en mémoire, mais peut ralentir le traitement en raison du nombre d'entrées/sorties sur disque.

Buffer_Records=NO demande à Form Builder de définir le minimum au nombre indiqué, à l'aide de la propriété Mettre enregistrements tampon dans fichier temporaire de chaque bloc.

Nom de l'option Mettre enregistrements tampon dans fichier temporaire

Valeur par défaut NO


Buffer_Records (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger buffer_records=YES


Debug (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'appeler le mode Débogage pour la session Forms Runtime. Le mode Débogage appelle le traitement des interruptions si la procédure interne BREAK est utilisée dans un déclencheur ou que vous utilisiez la commande Aide [image] Débogage à partir du menu Form Builder.

Pour appeler le mode Débogage sur les plates-formes non Windows, vous devez utiliser l'exécutable Debug Forms Runtime :

ifdbg60 module=mon_appli userid=scott/tiger debug=YES

Nom de l'option Exécuter en mode débogage

Valeur par défaut NO


Debug (Forms Runtime) - Exemple

ifdbg60 module=mon_appli userid=scott/tiger debug=YES


Debug_Messages (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'afficher des messages relatifs à l'exécution des déclencheurs pendant que l'application Forms s'exécute.

Valeur par défaut NO


Debug_Messages (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger debug_messages=YES


Help (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'appeler l'écran d'aide de Form Builder.

Nom de l'option Afficher le texte d'aide

Valeur par défaut NO


Help (Forms Runtime) - Exemple

ifrun60 help=YES


Interactive (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'indiquer que, lorsque vous utilisez en entrée un fichier keyscript, Form Builder doit afficher la sortie sur l'écran du terminal (c'est-à-dire s'exécuter en mode interactif) et envoyer la sortie dans un fichier d'impression. Utilisez Interactive=NO pour supprimer la sortie écran lorsque vous exécutez votre d'application Forms en mode batch.

Ce paramètre ne s'applique qu'aux terminaux en mode caractère.

Remarque : Lorsque vous utilisez Interactive, les paramètres Keyin et Output_File sont obligatoires. Le fichier Keyin indique le fichier d'entrée, ou fichier keyscript, et Output_File le fichier de sortie, ou fichier de consignation d'affichage.

Nom de l'option Ecrire sortie à afficher

Valeur par défaut YES


Interactive (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger keyin=myfile.key

output_file=mydisplay.out interactive=NO


Keyin (Forms Runtime)

 Exemples	 Toutes les options

Description

Vous permet de lire en entrée un fichier keyscript dans une application Forms. Le fichier keyscript lance, exécute et termine la session Forms Runtime.

Le nom de fichier indiqué est le fichier d'entrée, ou fichier keyscript.

Par défaut, Form Builder exécute toutes les opérations sur l'écran du terminal. Si vous voulez supprimer la sortie écran, indiquez Interactive=NO et utilisez Output_File pour indiquer le fichier de sortie.

Ce paramètre ne s'applique qu'aux terminaux en mode caractère.

Nom de l'option Lire séquences de touches d'entrée dans fichier.


Keyin (Forms Runtime) - Exemple

ifrun60 module=myform userid=scott/tiger keyin=myfile.key


Keyout (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet de saisir dans un fichier keyscript les séquences de touches utilisées pendant la session Forms Runtime. Le fichier keyscript comprend les séquences de touches utilisées pour la navigation dans une application Forms, l'appel de fonctions et l'exécution des transactions.

Le nom de fichier indique le fichier de sortie, ou fichier keyscript.

Ce paramètre ne s'applique qu'aux terminaux en mode caractère.

Nom de l'option Ecrire séquences de touches d'entrée dans fichier


Keyout (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger keyout=newfile.key


Logon_Screen (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'imposer l'affichage de l'écran de connexion si vous n'avez pas entré de mot de passe. Lorsque vous utilisez Logon_Screen, n'indiquez ni nom d'utilisateur ni mot de passe. Si vous les indiquez, Form Builder n'en tient pas compte.

Utilisez Logon_Screen lorsque vous ne voulez pas entrer votre mot de passe dans la ligne de commande (où il est visible).

Nom de l'option Afficher l'écran de connexion

Valeur par défaut NO


Logon_Screen (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger logon_screen=YES


OptimizeSQL (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'indiquer que Form Builder doit optimiser le traitement des instructions SQL dans les déclencheurs de style V2 en partageant les curseurs de base de données.

Par défaut, Form Builder attribue un curseur de base de données distinct à chaque instruction SQL qu'une application Forms exécute explicitement dans un déclencheur V2, ce qui améliore le traitement, car les instructions de chaque curseur ne doivent être analysées que la première fois qu'elles sont exécutées au cours d'une session Forms Runtime, et non à chaque fois.

Lorsque vous indiquez OptimizeSQL=NO, Form Builder attribue le même curseur à toutes les instructions SQL dans les déclencheurs V2. Ces instructions partagent, ou réutilisent, ce curseur, ce qui permet de gagner de la place en mémoire, mais ralentit le traitement, car les instructions SQL doivent être analysées chaque fois qu'elles sont exécutées.

Vous pouvez affiner ce comportement en utilisant la caractéristique d'étape de déclencheur Nouvelle zone du curseur. Si cette caractéristiques est activée pour une étape de déclencheur qui contient une instruction SQL, Form Builder attribue à l'instruction un curseur distinct qui remplace le paramètre OptimizeSQL de cette instruction.

Remarque : OptimizeSQL est sans effet sur les instructions des déclencheurs PL/SQL.

Nom de l'option Optimiser traitement SQL état du déclencheur style V2   optimizesql

Valeur par défaut YES


OptimizeSQL (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger optimizesql=NO


OptimizeTP (Forms Runtime)

 Exemples	   Restrictions	 Toutes les options

Description

Permet d'optimiser le traitement transactionnel.

Par défaut, Form Builder attribue un curseur de base de données distinct à chaque instruction SQL qu'une application Forms exécute implicitement pendant l'inscription ou l'interrogation des données, ce qui améliore le traitement, car les instructions de chaque curseur ne doivent être analysées que la première fois qu'elles sont exécutées au cours d'une session Forms Runtime, et non à chaque fois.

Notez que les curseurs attribués aux instructions d'interrogation SELECT doivent être analysés chaque fois qu'ils sont exécutés. Cette exception à la règle est dû au fait que les interrogations peuvent varier d'une exécution à l'autre.

Lorsque vous indiquez OptimizeTP=NO, Form Builder n'attribue un curseur distinct qu'à chaque instruction d'interrogation SELECT. Toutes les autres instructions SQL implicites partagent, ou réutilisent, les curseurs, ce qui permet de gagner de la place en mémoire, mais ralentit le traitement, car toutes les instructions INSERT, UPDATE, DELETE et SELECT FOR UPDATE doivent être analysées chaque fois qu'elles sont exécutées.

Nom de l'option  Optimize Transaction Mode Processing   optimizetp

Valeur par défaut YES


Optimize Transaction Mode Processing (Forms Runtime) - Restrictions

Le paramètre OptimizeTP n'est pas pris en compte si vous remplacez le traitement Form Builder standard par des déclencheurs On-Insert, On-Update et On-Delete, car ceux-ci évitent d'ajouter les instructions INSERT, UPDATE et DELETE implicites.


Optimisation du traitement en mode transaction (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger optimizetp=NO


Options_Screen (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'afficher la fenêtre Options.

Ce paramètre ne s'applique qu'aux affichages d'interface graphique.

Valeur par défaut NO


Options_Screen (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger options_screen=YES


Output_File (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet, pour une application Forms, de saisir la sortie du terminal dans un fichier de consignation d'affichage et de l'afficher. Si vous voulez supprimer la sortie écran, utilisez Interactive=NO, puis indiquez un Output_File.

Ce paramètre ne s'applique qu'aux terminaux en mode caractère.

Remarque : Vous devez utiliser le paramètre Keyin lorsque vous utilisez Output_File. Keyin indique le fichier d'entrée, ou fichier keyscript, et Output_File le fichier de sortie, ou fichier de consignation d'affichage.

Nom de l'option Ecrire sortie dans fichier


Output_File (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger keyin=myfile.key output_file=mydisplay.out


PECS (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'exécuter une application Forms avec l'option PECS (Performance Event Collection Services) activée.

PECS est un outil de mesure de performances qui sert à effectuer les opérations suivantes :

•	Mesurer l'utilisation des ressources (temps UCT par événement ou nombre de transactions traitées par heure) de Form Builder ou des événements propres à l'application.

•	Localiser les problèmes de performances (temps écoulé par événement).

•	Mesurer la couverture des objets (c'est-à-dire si un objet spécifique, comme un déclencheur, une alerte ou une fenêtre, est visité pendant l'exécution des tests).

•	Mesurer la couverture ligne par ligne (pour le code PL/SQL des déclencheurs et des procédures).

L'option PECS peut être définie à ON, OFF ou FULL :

•	Pour la couverture des objets, définir PECS=ON

•	Pour la couverture des objets et des lignes :

•	Compile avec Debug=ON

•	Run avec PECS=FULL

•	La valeur par défaut est PECS=OFF

Pour utiliser PECS sur des plates-formes non Windows, vous devez utiliser l'exécutable de débogage Forms Runtime:

ifdbg60 module=myform userid=scott/tiger PECS=ON

Valeur par défaut :   Désactivé


PECS (Forms Runtime) - Exemple

ifdbg60 module=myform userid=scott/tiger PECS=ON


Query_Only (Forms Runtime)

 Exemples	 	 Toutes les options

Description

Permet d'appeler l'application Forms en mode Interrogation seulement. L'activation de cette option équivaut à utiliser la procédure interne CALL_FORM(query_only).

Nom de la préférence Mode Interrogation seulement

Valeur par défaut NO


Query_Only (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger query_only=YES


Quiet (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'appeler le mode silencieux pour la session Forms Runtime. Dans ce mode, les messages ne déclenchent pas de signal sonore. Pour le déclencher explicitement à partir d'un déclencheur, appelez la procédure interne BELL. La valeur par défaut, Quiet=NO, correspond au déclenchement du signal sonore. Pour le désactiver, définissez Quiet=YES.

Nom de l'option Exécuter en mode silencieux

Valeur par défaut NO


Quiet (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger quiet=YES


Statistics (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'afficher à la fin de la session un message indiquant le nombre maximum de curseurs simultanés qui ont été utilisés pendant la session. Ce message apparaît sur l'écran du terminal et non dans la ligne de message.

Cette option envoie également à la base de données la commande suivante :

ALTER SESSION SET SQL_TRACE TRUE

Cette commande active la fonction de traçage SQL pour la session en cours, en affichant le répertoire des fichiers de traçage sur le serveur. Pour plus d'informations sur cette fonction, qui permet de collecter des informations sur les performances de la base de données, reportez-vous à Oracle RDBMS Performance Tuning Guide.

Si vous exécutez une application Forms dans Form Builder et que vous vouliez utiliser cette fonction, activez l'option Statistiques de Forms Runtime.

Nom de l'option Afficher les statistiques

Valeur par défaut NO


Statistics (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger statistics=YES


Term (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'indiquer une correspondance autre que la correspondance par défaut pour le produit et l'unité en cours :

resfile	Nom de votre fichier de ressources Oracle Terminal. Si vous n'indiquez pas resfile, Form Builder utilise par défaut un nom de fichier propre à la plate-forme utilisée, mais commençant par "FMR" pour la plupart des plates-formes. Par exemple, le fichier par défaut de Microsoft Windows est FMRUSW.

Mymapping	Nom de correspondance que vous voulez utiliser pour cette session de Form Builder.

Remarque : Les correspondances avec Oracle*Terminal sont définies soit par vous soit par l'administrateur de bases de données. Pour plus d'informations sur les fichiers de ressources, reportez-vous à la documentation Form Builder de votre système d'exploitation.

Lorsque vous exécutez des applications Forms sur le Web, n'utilisez que l'argument resfile pour indiquer le chemin complet du fichier de ressource à utiliser.

Nom de l'option Fichier de ressources Oracle*Terminal


Term (Forms Runtime) - Exemple

ifrun60 module=myform userid=scott/tiger@<alias> term=resfile:mymapping

Lors de l'exécution d'une application Forms sur le Web, utilisez :

serverargs="myform.fmx scott/tiger@<alias> term=c:\formdir\resfile.res"


Window_State (Forms Runtime)

 Exemples	   Restrictions	 Toutes les options

Description

Permet de définir la taille de la fenêtre d'application MDI au début de Forms Runtime.

Lorsque cette option est définie à MAXIMIZE, la fenêtre d'application MDI est agrandie au maximum au début d'une session Forms Runtime. Lorsqu'elle est définie à MINIMIZE, la fenêtre d'application MDI est réduite au minimum au début d'une session Forms Runtime. La définition NORMAL donne à la fenêtre d'application MDI une taille normale.

Nom de l'option Etat de la fenêtre

Valeur par défaut NORMAL


Window_State (Forms Runtime) - Restrictions

Valides uniquement sur Microsoft Windows. Non prises en charge pour les applications Forms exécutées à partir du Web.


Window_State (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger window_state=MAXIMIZE


Définition des options de Form Compiler

 Toutes les options

Les options de Form Compiler  indiquent le comportement par défaut de Form Builder pendant une session Form Compiler . Certaines s'appliquent à la génération de fichiers pendant le développement, pour l'exécution et le test des applications Forms, d'autres ne s'appliquent qu'à la conversion en version 6.0 de fichiers de versions antérieures.

Vous pouvez définir les options de Form Compiler  de deux façons :

•	En définissant des options dans la boîte de dialogue Options de Form Compiler.

•	En transmettant des paramètres à Form Builder, dans la ligne de commande, lorsque vous appelez Form Compiler.

Les options de la fenêtre Options de Form Compiler et les paramètres mots-clés correspondants sont regroupés dans le tableau ci-après. Pour toute information sur une option particulière, reportez-vous au paramètre correspondant, dans la liste alphabétique qui suit le tableau.

Dans la liste alphabétique des paramètres de Form Compiler, chaque paramètre comporte les informations suivantes :

•	exemple, qui illustre le paramètre défini à une valeur autre que sa valeur par défaut

•	type de module concerné : Application Forms, Menu, Bibliothèque ou Tous

•	description

•	valeur par défaut

Si vous entrez ces paramètres mots-clés comme options de ligne de commande, vous pouvez en entrer plusieurs, dans l'ordre de votre choix :

ifcmp60 module=mon_appli userid=scott/tiger batch=YES statistics=YES

Nom de l'option	Paramètre mot-clé
Fichier	Module
ID utilisateur/mot de passe	Userid
Type de module à indiquer : APPLI FORMS, MENU ou BIBLIOTHEQUE	Module_Type
Accès au module : FICHIER ou BASE DE DONNEES	Module_Access
Module_Access Compilation en mode débogage	Debug
Afficher les statistiques	Statistics
Connexion à la base de données	Logon
Ecrire sortie dans fichier	Output_File
Ecrire fichier script	Script
Suppression du module de la base de données	Delete
Insertion du module dans la base de données	Insert
Extraction du module de la base de données vers le fichier	Extract
Evolution de Forms 3.0 ou de Menu 5.0 vers le Module 4.5	Upgrade
Etendre les informations de rôle de SQL*Menu 5.0	Upgrade_Roles
Version à faire évoluer	Version
Fichier CRT à utiliser lors de l'évolution	CRT_File
Compilation d'un fichier Runform/Runmenu lors de l'évolution	Build
Ajout de déclencheurs Key-up et Key-down lors de l'évolution	Add_Triggers
Ajout du mot-clé NOFAIL aux étapes exemacro lors de l'évolution	Nofail
Afficher le texte d'aide	Aide
Options_Screen	Options_Screen*
Traitement par lots	Batch*

*Utilisable à partir de la ligne de commande uniquement ; non disponible dans la boîte de dialogue Options de Form Compiler.


Add_Triggers (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'ajouter des déclencheurs Key-up et Key-down lors de l'évolution de Forms 2.0 ou 2.3 à 4.0, si les déclencheurs KEY-PRVREC et KEY-NXTREC existent.

Module : Application Forms

Valeur par défaut NO


Add_Triggers (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger upgrade=yes version=23 add_triggers=YES


Batch (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de supprimer les messages interactifs. A utiliser lors de l'exécution d'une génération en mode batch.

Module : Application Forms

Valeur par défaut NO


Batch (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger batch=YES


Build (Form Compiler)

 Exemples	 Toutes les options

Description

L'option Build doit être utilisée conjointement avec Upgrade. Form Builder crée deux fichiers lorsque vous indiquez upgrade=YES et que vous omettez  build, acceptant ainsi la valeur par défaut de build=YES :

•	un module de développement binaire mi à niveau (fichier .FMB ou .MMB)

•	un module exécutable Forms Runtime mis à niveau (fichier .FMX ou .MMX)

Si vous ne voulez pas créer automatiquement le module Forms Runtime, indiquez build=NO.

Module : Application Forms, Menu

Valeur par défaut YES


Build (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger upgrade=YES build=NO


Compile_All (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de compiler les unités de programme dans le module indiqué.

Remarque : Le fichier de sortie sera placé dans le répertoire en cours sauf si vous indiquez un autre emplacement à l'aide de Output_File.

Module : Application Forms, Menu, Bibliothèque

Valeur par défaut NO


Compile_All (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger compile_all=YES


CRT_File (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'indiquer le fichier CRT à utiliser lors de l'évolution à partir de SQL*Forms Version 2.0 ou 2.3.

Module : Application Forms


CRT_File (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger upgrade=yes version=20 crt_file=myfile.crt


Debug (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de créer une application Forms en mode Débogage.

Comme l'option de débogage de Form Compiler crée des entrées dans votre fichier .FMX utilisé par le débogueur de niveau source runtime, définissez Debug=yes pour Form Compiler lorsque vous envisagez de définir Debug=yes pour l'exécution.

Nom de l'option Compilation en mode Débogage

Valeur par défaut NO


Debug (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger debug=yes


Delete (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de supprimer directement le module de la base de données.

Module : Tous

Valeur par défaut NO


Delete (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger delete=YES


Extract (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'extraire le module de la base de données et de l'entrer dans un fichier sous le même nom de module.

Module : Tous

Valeur par défaut NO


Extract (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger extract=YES


Help (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'appeler l'écran d'aide de Form Builder.

Module : Tous

Valeur par défaut NO


Help (Form Compiler) - Exemple

ifcmp60 help=YES


Insert (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'insérer directement dans la base de données un module provenant de la ligne de commande de Form Compiler.

Module : Tous

Valeur par défaut NO

Notes d'utilisation

L'option d'insertion ne fonctionne pas lorsqu'elle est combinée avec l'option Evolution.


Insert (Form Compiler) - Exemples

ifcmp60 module=mon_appli userid=scott/tiger insert=YES


Logon (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'indiquer si Form Compiler doit se connecter à la base de données. Si le module contient un code PL/SQL avec des références de tables, la génération demandera l'établissement d'une connexion.

Module : Application Forms

Valeur par défaut YES


Logon (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger logon=NO


Module_Access (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'indiquer si vous voulez, ou non, ouvrir et enregistrer des modules dans le système de fichiers ou dans la base de données.

Module : Tous

Valeur par défaut FILE (fichier)


Module_Access (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger module_access=database


Module_Type (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'indiquer le type du module en cours. Module_Type vous permet d'avoir des modules Application Forms, Menu et Bibliothèque ayant le même nom.

Module : Tous

Valeur par défaut FORM


Module_Type (Form Compiler) - Exemple

ifcmp60 module=orders userid=scott/tiger module_type=menu


Nofail (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'indiquer si le mot-clé NOFAIL doit être ajouté aux étapes exemacro lors de la mise à niveau à partir de Forms 2.0 uniquement.

Module : Application Forms

Valeur par défaut NO


Nofail (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger upgrade=yes version=20 nofail=YES


Options_Screen (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'appeler la fenêtre Options.

Ce paramètre ne s'applique qu'aux écrans d'interface graphique.

Module : Tous

Valeur par défaut NO


Options_Screen (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger options_screen=YES


Output_File (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'indiquer le nom du fichier généré.

Utilisé avec upgrade=yes, output_file indique :

•	le nom complet du module de développement binaire mis à niveau (fichier .FMB, .MMB ou .PLL),

Remarque : Pour indiquer le nom du fichier de bibliothèque généré, vous devez utiliser Strip_Source avec Output_File.

•	le nom principal (sans suffixe) du module exécutable Forms Runtime mis à niveau (fichier .FMX ou .MMX).

Si ce paramètre est utilisé avec upgrade=yes et build=no, le suffixe de fichier n'est pas pris en compte.

Module : Tous


Output_File (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger upgrade=yes output_file=mon_appli.fmb


Parse (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de convertir un fichier de module de format texte (.FMT, .MMT, .PLD) en format binaire (.FMB, .MMB, .PLL).

Cette opération peut également être effectuée à partir de Form Builder à l'aide de la commande Convertir.

Module : Tous

Valeur par défaut NO


Parse (Form Compiler) - Exemple

ifcmp60 module=mon_appli parse=YES


Script (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de convertir un fichier de format binaire (.FMB, .MMB ou .PLL) en format texte (.FMT, .MMT ou .PLD).

Cette opération peut également être effectuée à partir de Form Builder en utilisant la commande Convertir.

Module : Tous

Valeur par défaut NO


Script (Form Compiler) - Exemple

ifcmp60 module=mon_appli script=YES


Statistics (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'afficher à la fin de la session un message fournissant le nombre des différents objets dans l'application Forms compilée :

•	statistiques sur les objets : nombre d'alertes, d'éditeurs, de listes de valeurs, de procédures, de groupes d'enregistrement, de canevas, d'attributs visuels, de fenêtres et nombre total d'objets.

•	statistiques sur les déclencheurs : nombre de déclencheurs au niveau Application Forms, de déclencheurs au niveau Bloc, de déclencheurs au niveau Elément et nombre total de déclencheurs.

•	statistiques sur les blocs : nombre de blocs avec option d'extraction de tableau activée, taille moyenne d'une extraction de tableau et nombre total de blocs.

•	statistiques sur les éléments : nombre total de boutons, de cases à cocher, d'éléments affichés, d'éléments Image, d'éléments Liste, de groupes de boutons, d'éléments Texte, de zones utilisateur et nombre total d'éléments.

Module : Application Forms

Valeur par défaut NO


Statistics (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger statistics=YES


Strip_Source (Form Compiler), option;
Strip_Source (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de supprimer le code source du fichier bibliothèque et de générer un fichier bibliothèque ne contenant que le pcode. Le fichier ainsi obtenu peut être utilisé pour le déploiement final, mais ne peut être édité ultérieurement dans Form Builder.

Lorsque vous utilisez Strip_Source, vous devez indiquer un fichier de sortie à l'aide du paramètre Output_File (Forms Runtime).

Module : Bibliothèque

Valeur par défaut NO


Strip_Source (Form Compiler)  - Exemple

ifcmp60 module=old_lib.pll userid=scott/tiger strip_source=YES output_file=new_lib.pll


Upgrade (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de faire évoluer les modules SQL*Forms 2.0, 2.3 ou 3.0 à Form Builder 4.5, ou de SQL*Menu 5.0 à un module Menu Form Builder 4.5 :

•	Pour passer de SQL*Forms 3.0 ou SQL*Menu 5.0 à Form Builder 4.5, indiquez upgrade=yes et omettez la version.

•	Pour passer de SQL*Forms 2.0 à Form Builder 4.5, indiquez upgrade=yes et version=20.

•	Pour passer de SQL*Forms 2.3 à Form Builder 4.5, indiquez upgrade=yes et version=23.

Module : Application Forms, Menu

Valeur par défaut NO

Notes d'utilisation

L'option Upgrade ne fonctionne pas lorsqu'elle est combinée avec l'option d'insertion.


Upgrade (Form Compiler) - Exemple

ifcmp60 module=myform userid=scott/tiger upgrade=YES


Upgrade_Roles (Form Compiler)

 Exemples	 Toutes les options

Description

Permet de faire évoluer les privilèges de tables de SQL*Menu 5.0 aux rôles de base de données Oracle8.

Remarque : Les rôles de menu sont indépendants des applications de menu spécifiques (aucun nom de module n'est indiqué). Vous ne pouvez pas indiquer à la fois upgrade=yes et upgrade_roles=yes.

Module : aucun

Valeur par défaut NO


Upgrade_Roles (Form Compiler) - Exemple

ifcmp60 userid=system/manager upgrade_roles=YES


Version (Form Compiler)

 Exemples	 Toutes les options

Description

Permet d'indiquer la version de départ de la mise à niveau. Utilisez cette option avec upgrade=yes pour passer de la version 2.3 (version=23) ou de la version 2.0 (version=20) à la version 4.5 de Form Builder.

Pour mettre la version 3.0 à niveau, indiquez upgrade=yes et omettez le paramètre de version.

Module : Application Forms

Valeur par défaut version=30


Version (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger upgrade=yes version=23


Widen_Fields (Form Compiler)

 Exemples	 Toutes les options

Description

Utilisez l'option Widen_Fields avec Upgrade. Lors du passage à la version 4.5, les reliefs de chaque champ peuvent entraîner la perte d'un caractère par champ au maximum. Indiquez cette option lors de la mise à niveau pour ajouter automatiquement un caractère à la largeur d'affichage de chaque champ. Remarque : Cette opération est sans effet sur la longueur maximum autorisée pour les données.

Cette option est surtout utile pour la mise à niveau des applications écrites en mode caractère sous Form Builder 3.0 et comportant un grand nombre de champs de 1 à 6 caractères. Les effets de cette option dépendent de la façon dont votre interface aura été conçue et du soin apporté aux tests. Cette option peut notamment avoir les effets suivants :

•	Recouvrement du texte standard par les éléments texte si l'espace entre les champs est limité.

•	Chevauchement de champs situés côte à côte.

Module : Application Forms

Valeur par défaut NO


Widen_Fields (Form Compiler) - Exemple

ifcmp60 module=mon_appli userid=scott/tiger upgrade=yes widen_fields=YES


Définition des options de Form Builder

 Exemples	 Toutes les options

Les préférences de Form Builder indiquent le comportement par défaut d'une session Form Builder. Choisissez Outils [image] Préférences dans Form Builder pour appeler la boîte de dialogue Préférences. Pour définir vos options, cliquez sur les cases à cocher ou entrez les noms de fichier des options que vous choisissez.

La boîte de dialogue Préférences comprend à la fois les préférences de Form Builder et de Form Runtime.

Préférences de Form Builder

Pour indiquer les valeurs par défaut pour la session Form Builder en cours, vous pouvez définir les options ci-après :

•	Enregistrer avant de générer

•	Générer avant d'exécuter

•	Supprimer les messages d'aide

•	Exécuter les modules en asynchrone

•	Utiliser l'éditeur système

•	Accès module (Fichier, Base de données, Fichier/Base de données)

•	Filtre de module (Application Forms, Menus, Bibliothèques, Tous)

•	Imprimante

•	Palette de couleurs

•	Mode couleur

Pour toute information sur une option spécifique de développement, reportez-vous à la liste alphabétique qui suit.

Options Runtime

Pour indiquer les valeurs par défaut des applications Forms que vous exécutez à partir de Form Builder, vous pouvez définir les options Runtime suivantes :

•	Mettre enreg. en tampon dans fichier

•	Mode Débogage

•	Traitement par tableau

•	Optimiser traitement SQL

•	Optimiser traitement transactionnel

•	Statistiques

•	Afficher le menu Bloc

•	Mode interrogation seulement

•	Mode silencieux

Les options Runtime sont énumérées au début du présent chapitre.

Paramètres mots-clés

En plus des options énumérées dans la boîte de dialogue Options, vous pouvez définir dans la ligne de commande de Form Builder les paramètres mots-clés suivants :

•	Module_Type

•	Module_Access

•	Help


Définition des options de Form Builder - Exemple

ifbld60 module=orders userid=scott/tiger module_type=menu


Mode couleur

 Toutes les options

Permet d'indiquer comment une palette de couleurs Form Builder sera chargée sur votre système. Chaque fois que vous chargez, ouvrez ou créez une application Forms, Form Builder charge la palette de couleurs Form Builder dans la table de couleurs utilisée par votre système. Comme cette table ne peut gérer qu'un nombre limité de couleurs à la fois, Form Builder peut ne pas être en mesure de modifier simultanément plusieurs applications Forms qui utilisent des palettes de couleurs différentes. Cela étant, utilisez toujours l'option Lecture seule - partagée, sauf si vous modifiez de façon active la palette de couleurs de Form Builder.

Options du Mode couleur :

Modifiable	Sélectionnez Modifiable uniquement lorsque vous voulez modifier la palette de couleurs de Form Builder. Lorsque vous l'avez modifiée, revenez à Lecture seule - partagée. En mode Modifiable, chaque couleur a sa propre entrée dans la table de couleurs utilisée par le système et, s'il n'y a plus de place dans la table, la palette de couleurs peut refuser de se charger.

Pour modifier la palette de couleurs de Form Builder :

•	Changez le mode Couleur en Modifiable et enregistrez vos options (Outils -> Préférences, onglet Général, Mode couleur).

•	Relancez Form Builder.

•	Utilisez Format -> Options de présentation -> Palette de couleurs pour faire les changements correspondants (à condition que l'Editeur de présentation soit ouvert).

•	Utilisez Fichier -> Export -> Palette de couleurs pour enregistrer la palette de couleurs de Form Builder dans un fichier (à condition que l'Editeur de présentation soit ouvert).

•	Modifiez vos options pour utiliser le nouveau fichier de couleurs (Outils -> Préférences, onglet Général, Palette de couleurs).

•	Revenez en mode Lecture seule - partagée et enregistrez vos options.

•	Relancez Form Builder.

Lecture seule - partagée	Dans ce mode, Form Builder copie les couleurs en double dans la même entrée de la table de couleurs utilisée par le système, avant d'ajouter les nouvelles entrées de votre palette de couleurs Form Builder. L'option Lecture seule - partagée évite le scintillement des couleurs que peut provoquer le passage d'une palette de couleurs Form Builder à l'autre, et est donc l'option de Mode couleur conseillée, à moins que vous n'ayez décidé de modifier la palette.

Lecture seule - privée	Cette option assure la cohérence avec Graphics Builder et ne concerne pas Form Builder. Dans Form Builder, elle correspond à Lecture seule - partagée.

Valeur par défaut Lecture seule - partagée


Palette de couleurs

 Toutes les options

Description

Permet d'indiquer le nom de la palette de couleurs Form Builder qui est automatiquement chargée lorsque vous créez une application Forms. Si ce champ est laissé en blanc, la palette chargée est la palette de couleurs par défaut de Form Builder.

Pour plus d'informations sur les palettes de couleurs, reportez-vous à A propos des palettes de couleurs.


Générer avant d'exécuter

 Toutes les options

Description

Permet de déterminer si Form Builder compile automatiquement le module actif avant d'exécuter une application Forms. Lorsque Générer avant d'exécuter est sélectionné et que vous lancez la commande Programme [image] Lancer application Forms afin d'exécuter cette application, Form Builder effectue les opérations suivantes :

•	génère le module Application Forms, Menu ou Bibliothèque actif afin de  créer un fichier exécutable ayant le même nom que le module ;

•	exécute le fichier .FMX (fichier exécutable d'application Forms) que vous avez indiqué dans la boîte de dialogue d'exécution.

Cette option évite de lancer des commandes Compiler et Exécuter distinctes chaque fois que vous modifiez, puis exécutez une application Forms. Cependant, comme elle n'enregistre pas le module, vous devez lancer la commande Fichier [image] Enregistrer, ou sélectionner la préférence Enregistrer avant de générer

En outre, lorsque l'option Générer avant d'exécuter est sélectionnée, Form Builder ne compile pas automatiquement de module Menu ou Bibliothèque attaché à cette application Forms. Vous devez compiler ces modules séparément avant d'exécuter une application Forms qui y fait référence.

Valeur par défaut Désactivé


Help (Form Builder)

 Exemples	 Toutes les options

Description

Permet d'appeler l'écran d'aide de Form Builder.

Module : Tous

Valeur par défaut NO


Help (Form Builder) - Exemple

ifbld60 help=YES


Nom de fichier HTML

 Rubriques connexes	 Toutes les options

Description

Permet d'indiquer le fichier HTML à utiliser pour exécuter l'application Forms à l'aide de Web Previewer.

Lorsque vous obtenez un aperçu d'une application Forms dans Web Previewer, un fichier HTML conteneur est créé dynamiquement avec les options d'exécution par défaut ou celles qui sont indiquées par les préférences. Ce fichier est envoyé à Web Previewer pour l'exécution de votre application Forms. Entrez le chemin d'accès et le nom d'un fichier HTML personnalisé pour remplacer celui qui est créé par Form Builder.

Pour plus d'informations sur la création d'un fichier HTML de base, reportez-vous à la section « Configuration de Forms Server » dans Déploiement d'applications Forms sur le Web.


Préférence Accès (Form Builder)

 Exemples	 Toutes les options

Description

Permet d'indiquer si les modules doivent être ouverts et enregistrés dans le système de fichiers ou dans la base de données.

Cette option peut être définie dans la ligne de commande à l'aide du paramètre Module_Access ou dans l'onglet Accès de la boîte de dialogue Préférences.

Le paramètre de ligne de commande établit un accès ponctuel, valable pour toute la session Form Builder en cours. Dans la ligne de commande, l'option Module_Access peut être définie à Fichier ou Base de données.

Pour définir cette option pour les futures sessions de Form Builder, utilisez la préférence Accès (Outils [image] Préférences, onglet Accès) pour modifier votre fichier Préférences.

Dans l'option Accès module, vous pouvez indiquer, pour l'ouverture et l'enregistrement des modules, l'une des préférences suivantes :

Fichier	Les modules sont chargés à partir du système de fichiers et y sont enregistrés.
Base de données	Les modules sont chargés à partir de la base de données et y sont enregistrés.
Demander	Les modules peuvent être chargés à partir du système de fichiers ou de la base de données, et y être enregistrés. Chaque fois que vous exécutez ces opérations, Form Builder vous demande l'emplacement du fichier.
Module : Tous

Valeur par défaut FILE (fichier)


Module_Access (Form Builder) - Exemple

ifbld60 module=mon_appli userid=scott/tiger module_access=database


Module_Type (Form Builder)

 Exemples	 Toutes les options

Description

Permet d'indiquer le type du module en cours. Module_Type vous permet d'avoir des modules Application Forms, Menu et Bibliothèque ayant le même nom.

Module : Tous

Valeur par défaut FORM


Module_Type (Form Builder) - Exemple

ifbld60 module=orders userid=scott/tiger module_type=menu


Imprimante

Nom de l'imprimante par défaut. Ce nom dépend du système d'exploitation utilisé.

Pour plus d'informations sur les imprimantes, reportez-vous à la documentation Form Builder de votre système d'exploitation.


Exécuter les modules en asynchrone

 Toutes les options

Permet d'indiquer si les applications Forms que vous exécutez à partir de Form Builder sont exécutées de manière synchrone ou asynchrone par rapport à Form Builder lui-même :

•	Lorsque l'option Exécuter les modules en asynchrone est désactivée, les applications Forms que vous exécutez à partir de Form Builder sont synchrones, c'est-à-dire que vous ne pouvez pas travailler dans Form Builder tant que vous n'avez pas quitté l'application Forms.

•	Lorsque l'option Exécuter les modules en asynchrone est activée, les applications Forms que vous exécutez à partir de Form Builder sont asynchrones, et vous pouvez alterner entre Form Builder et Forms Runtime.

Lorsque vous exécutez une application Forms en mode synchrone, Form Builder vous signale les éventuelles erreurs de démarrage de Forms Runtime en affichant un message d'alerte dans Form Builder. Lorsque vous exécutez une application Forms en mode asynchrone, cette communication entre Forms Runtime et Form Builder n'existe pas, et les erreurs de démarrage de Forms Runtime ne sont pas signalées dans Form Builder.

Valeur par défaut  Désactivé


Enregistrer avant de générer

Permet d'indiquer si Form Builder enregistre automatiquement le module en cours avant sa génération, soit lorsque vous choisissez Fichier [image] Administration [image] Compiler fichier, soit lorsque l'application Forms est générée avant l'exécution alors que la préférence Générer avant d'exécuter est sélectionnée.

Valeur par défaut Désactivé


Chemin de sous-classement

 Toutes les options

Description

Permet d'indiquer si le chemin d'un objet d'origine doit être enregistré avec l'objet référencé.

Précisez l'une des préférences suivantes pour enregistrer le chemin des objets d'origine avec les objets référencés :

Supprimer	Le chemin sera supprimé du nom de fichier de l'objet d'origine référencé dans l'objet référencé.

Conserver	L'objet référencé référencera l'objet d'origine selon le chemin complet.

Demander	A chaque fois que vous référencez un objet, Form Builder affiche une boîte de dialogue vous demandant si le chemin doit être supprimé ou conservé.

Valeur par défaut Demander

Remarques

Un objet référencé hérite des valeurs de propriété de l'objet d'origine et référence ce dernier par le nom de fichier de l'application Forms dans laquelle il est enregistré. Vous pouvez enregistrer l'objet référencé avec le chemin d'accès complet de l'application Forms ou seulement avec le nom du fichier. Lorsque l'application Forms contenant l'objet référencé est ouverte, Form Builder recherche le fichier indiqué pour l'objet référencé. Si le nom de fichier est indiqué sans le chemin, Form Builder effectue sa recherche dans le répertoire courant de démarrage de Form Builder.


Supprimer les messages d'aide

 Toutes les options

Permet d'indiquer si les messages d'aide sont supprimés de la ligne de message lorsque vous utilisez Form Builder.

Valeur par défaut Désactivé


Term (Form Builder)

 Exemples	 Toutes les options

Description

Permet d'indiquer une correspondance autre que la correspondance par défaut pour le produit et l'unité en cours :

resfile	Nom de votre fichier de ressources Oracle Terminal. Si vous n'indiquez pas resfile, Form Builder utilise par défaut un nom de fichier propre à la plate-forme utilisée, mais commençant par "FMR" pour la plupart des plates-formes. Par exemple, le fichier par défaut de Microsoft Windows est FMRUSW.

Mymapping	Nom de correspondance que vous voulez utiliser pour cette session de Form Builder.

Pour plus d'informations sur les fichiers de ressources, reportez-vous à la documentation Form Builder de votre système d'exploitation.

Remarque : Les correspondances avec Oracle Terminal sont définies soit par vous, soit par l'administrateur de bases de données.


Term (Form Builder) - Exemple

ifbld60 module=mon_appli userid=scott/tiger term=resfile:mymapping


USESDI (Forms Runtime)

 Exemples	 Toutes les options

Description

Permet d'utiliser le système SDI (Single Document Interface) de gestion des fenêtres pendant une session Forms Runtime ou Forms Runtime Web.

Il n'y a pas de fenêtre principale dans le système MDI (Multiple Document Interface). Des barres MDI existent dans les fenêtres pères, et les menus seront attachés à chaque fenêtre.

Les appels à la constante FORMS_MDI_WINDOW retournent l'identificateur de fenêtre MDI NULL lorsque usesdi=YES.

Nom de l'option Aucun

Valeur par défaut YES

Notes d'utilisation :

Les applications Forms SDI ne sont pas des fenêtres natives et vous ne pouvez pas naviguer vers la fenêtre SDI en utilisant certaines méthodes d'accès aux fenêtres faisant partie du système d'exploitation, comme Alt-TAB dans Microsoft Windows.


USESDI (Forms Runtime) - Exemple

ifrun60 module=mon_appli userid=scott/tiger usesdi=YES


Utiliser l'éditeur système

 Toutes les options

Permet d'indiquer l'éditeur que Form Builder utilise lorsque, dans Form Builder, vous appelez un éditeur à partir d'un élément texte composé de plusieurs lignes. Lorsque l'option Utiliser l'éditeur système est désélectionnée, Form Builder affiche l'éditeur par défaut de Form Builder. Lorsque l'option Utiliser l'éditeur système est sélectionnée, Form Builder affiche l'éditeur système par défaut défini dans votre système.

Remarque : Si l'option Utiliser l'éditeur système est sélectionnée et que vous utilisiez un éditeur avec un format de document natif, vous devez enregistrer le document en format ASCII (avec changements de ligne), et non dans le format de cet éditeur.

Pour plus d'informations sur la définition des éditeurs système par défaut, reportez-vous à la documentation Form Builder de votre système d'exploitation.

Valeur par défaut  Désactivé


Fichier de préférences utilisateur

 Toutes les options

Bien que la boîte de dialogue Préférences soit la solution la plus pratique pour définir vos préférences, vous pouvez également les définir directement dans le fichier de préférences (généralement appelé PREFS.ORA).

Le fichier de préférences qui applique les options de Form Builder est automatiquement mis à jour chaque fois que vous modifiez vos préférences. Lorsque vous lancez Form Builder, Form  Builder lit le fichier de préférences mis à jour. Ce fichier contient des mots-clés et des définitions qui vous permettent de prédéfinir chacune des options de Form Builder et de Forms Runtime.

Vous pouvez utiliser les paramètres mots-clés de Form Builder ou de Forms Runtime, énumérés dans ce chapitre, dans un fichier de préférences utilisateur. Par exemple, pour être certain que les applications Forms lancées à partir de Form Builder s'exécutent en mode silencieux, entrez dans le fichier de préférences de l'utilisateur la ligne suivante :

FORMS.QUIET=ON

Le fichier de préférences vous permet également de prédéfinir une correspondance pour Form Builder. Sur la plupart des plates-formes, le fichier de préférences doit s'appeler PREFS.ORA et résider dans le répertoire de connexion.

Si vous lancez Form Builder avec un paramètre de ligne de commande qui indique une correspondance ou une option de préférences, ce paramètre a priorité sur les définitions du fichier de préférences. En outre, si une ligne du fichier de préférences contient une erreur, Form Builder ne tient pas compte de la ligne lorsqu'il lit le fichier.

Syntaxe des options

Pour prédéfinir une option Form Builder ou Forms Runtime, entrez dans le fichier de préférences le mot-clé et l'option appropriés, comme vous le feriez dans la ligne de commande. Utilisez la syntaxe suivante :

MOT-CLÉ = {ON | OFF | CHAÎNE}

Pour afficher la liste des mots-clés et des valeurs appropriées, enregistrez vos préférences, puis examinez l'état de votre fichier PREFS.ORA.


Boîte de dialogue de bienvenue

 Toutes les options

Description

Permet de déterminer si l'écran de bienvenue doit être affiché au démarrage de Form Builder.

Lorsque cette option est sélectionnée, l'écran de bienvenue apparaît au démarrage de Form Builder. Lorsqu'elle n'est pas sélectionnée, Form Builder démarre avec un nouveau module vierge nommé module1.

Valeur par défaut  Activé


Pages de bienvenue

 Toutes les options

Description

Permet de déterminer si la page de bienvenue d'un assistant donné doit être affichée dès que cet assistant est appelé.

Lorsque cette option est sélectionnée, la page de bienvenue apparaît au démarrage de l'assistant. Lorsqu'elle n'est pas sélectionnée, l'assistant n'affiche pas la page de bienvenue.

S'applique

Assistant Bloc de données

Assistant LOV

Assistant Présentation

Assistant Graphique

Valeur par défaut  Activé


Interface pour fonctions étrangères


A propos des fonctions étrangères

  Rubriques connexes

Les fonctions étrangères sont des sous-programmes écrits dans un langage de programmation de troisième génération permettant de personnaliser les applications Form Builder. Les fonctions étrangères peuvent être utilisées de manière interactive avec les bases de données Oracle, ainsi qu'avec les variables et les éléments Form Builder. Bien qu'il soit possible d'accéder aux variables et aux éléments de Form Builder, vous ne pouvez pas appeler des sous-programmes intégrés Form Builder à partir d'une fonction étrangère.

Les fonctions étrangères permettent d'exécuter les tâches suivantes :

•	Remplacement du traitement Form Builder par défaut lors de l'exécution sur une source de données autre qu'Oracle qui utilise des déclencheurs transactionnels.

•	Exécution de manipulations de données complexes.

•	Transmission à Form Builder de données provenant de fichiers texte de système d'exploitation.

•	Manipulation de données de type LONG RAW.

•	Transmission de blocs PL/SQL entiers en vue de leur traitement par le serveur.

•	Contrôle des périphériques en temps réel (imprimante ou robot, par exemple).

Remarque : Vous ne devez pas exécuter d'entrées-sorties d'écran en langage hôte à partir d'une fonction étrangère, car les routines Runtime qu'utilise un langage hôte pour exécuter des entrées-sorties écran sont incompatibles avec les routines que Form Builder utilise pour exécuter des entrées-sorties d'écran. Cependant, vous pouvez exécuter des entrées-sorties de fichier en langage hôte à partir d'une fonction étrangère.

Les fonctions étrangères qui peuvent être appelées à partir d'une interface PL/SQL doivent se trouver dans une bibliothèque dynamique. La procédure de création d'une bibliothèque dynamique dépend de votre système d'exploitation. Pour plus d'informations sur la création de bibliothèques dynamiques dans votre environnement, reportez-vous à la documentation de votre système d'exploitation.

L'initialisation d'une fonction étrangère identifie l'emplacement d'une bibliothèque dynamique et analyse le prototype de la fonction étrangère. Le processus d'initialisation associe un à un les types de données en langage hôte de la fonction étrangère avec les types de données PL/SQL. Initialisez une fonction étrangère dans un corps de package PL/SQL.


A propos de l'interface PL/SQL

  Rubriques connexes

Dans Form Builder, vous pouvez appeler une fonction étrangère depuis une interface PL/SQL en utilisant les conventions de langage PL/SQL.

Un package PL/SQL intègre les composants utilisés pour créer une interface PL/SQL avec une fonction étrangère. Vous pouvez inclure les interfaces PL/SQL de plusieurs fonctions étrangères dans un même package PL/SQL. Pour chaque interface PL/SQL avec une fonction étrangère, vous devez initialiser la fonction étrangère, lui associer un sous-programme PL/SQL, puis simuler le prototype de cette fonction en PL/SQL. Vous pouvez également inclure une interface PL/SQL avec une seule fonction étrangère dans un package PL/SQL.

Les fonctions étrangères appelées depuis une interface PL/SQL doivent appartenir à une bibliothèque dynamique. Les bibliothèques de liens dynamiques sous Microsoft Windows et les bibliothèques partagées sous les systèmes UNIX sont des exemples de bibliothèques dynamiques. La procédure de création d'une bibliothèque dynamique dépend de votre système d'exploitation. Pour plus d'informations sur la création de bibliothèques dynamiques dans votre environnement, reportez-vous à la documentation de votre système d'exploitation.

La création d'une interface PL/SQL avec des fonctions étrangères requiert l'utilisation du package intégré ORA_FFI (Oracle Foreign Function Interface). Ce package contient un groupe de sous-programmes PL/SQL intégrés permettant de créer une interface PL/SQL avec des fonctions étrangères. Pour plus de détails concernant le package ORA_FFI, reportez-vous au manuel Oracle Procedure Builder Developer's Guide.

L'association d'un sous-programme PL/SQL à une fonction étrangère permet d'appeler cette fonction chaque fois que vous appelez le sous-programme PL/SQL qui lui est associé. Ce type d'association est nécessaire car Form Builder utilise des éléments PL/SQL. Le sous-programme PL/SQL associé indique l'emplacement dans la mémoire du code de la fonction étrangère à exécuter.

Une fois que vous avez associé un sous-programme PL/SQL à une fonction étrangère, Form Builder appelle cette dernière chaque fois que vous appelez le sous-programme PL/SQL. Pour ce sous-programme, le premier paramètre doit être un pointeur de fonction étrangère, c'est-à-dire un type de paramètre qui ne dispose d'aucun équivalent en langage hôte dans le prototype de la fonction étrangère.

Pour que l'interface PL/SQL présente une correspondance un-à-un avec les paramètres et les types de données de la fonction étrangère, vous devez simuler le prototype de la fonction étrangère via PL/SQL ; il s'agit de l'interface PL/SQL qui est rendue publique.

Remarque : Vous pouvez également appeler une fonction étrangère depuis une interface de user exit. Si vous utilisez cette méthode, vous devez parfois recréer le lien vers Form Builder Runform. Par conséquent, le lien créé par l'utilisation d'une interface PL/SQL est plus lâche que celui d'une interface de user exit.


Types de fonction étrangère

  Rubriques connexes

Vous pouvez développer les types de fonction étrangère suivants :

•	Fonctions étrangères de Précompilateur Oracle

•	Fonctions étrangères OCI (ORACLE Call Interface)

•	Fonctions étrangères autres que Oracle

Vous pouvez également développer des fonctions étrangères qui combinent l'OCI et l'interface du précompilateur Oracle.

Fonctions étrangères de Précompilateur Oracle  Une fonction étrangère de Précompilateur Oracle comprend l'interface du précompilateur Oracle. Cette interface vous permet de créer un sous-programme dans l'un des langages hôte pris en charge, avec commandes SQL incorporées, à savoir :

•	Ada

•	C

•	COBOL

•	FORTRAN

•	Pascal

•	PL/I

Remarque :  Les systèmes d'exploitation n'acceptent pas tous les langages énumérés ci-dessus. Pour plus d'informations sur les langages acceptés, reportez-vous à la documentation Form Builder de votre système d'exploitation.

Avec les commandes SQL incorporées, une fonction étrangère de Précompilateur Oracle peut accéder aux bases de données Oracle, ainsi qu'aux variables et aux éléments de Form Builder. Vous pouvez accéder aux variables et aux éléments de Form Builder en utilisant un ensemble d'instructions de Précompilateur Oracle offrant cette fonctionnalité.

Etant donné la possibilité d'accéder aux bases de données Oracle ainsi qu'aux variables et aux éléments Form Builder, la plupart de vos fonctions étrangères seront des fonctions étrangères du précompilateur Oracle. Pour plus d'informations sur l'interface du précompilateur Oracle, reportez-vous au Programmer's Guide to the Oracle Precompilers.

Fonctions étrangères OCI (Oracle Call Interface)  Une fonction étrangère OCI comprend l'interface OCI (Oracle Call Interface). Cette interface vous permet d'écrire un sous-programme contenant des appels aux bases de données Oracle. Une fonction étrangère qui ne comprend que l'OCI (et non l'interface du précompilateur Oracle) ne peut pas accéder aux variables et aux éléments de Form Builder. Pour plus d'informations sur l'OCI, reportez-vous à la documentation Oracle Call Interface Programmer's Guide.

Fonctions étrangères autres que Oracle  Une fonction étrangère autre que Oracle ne comprend ni une interface du précompilateur Oracle ni l'OCI. Par exemple, une fonction étrangère autre que Oracle peut être écrite entièrement en langage C. Une fonction étrangère autre que Oracle ne peut accéder ni aux bases de données Oracle ni aux variables et aux éléments Form Builder.


Instructions du précompilateur

  Rubriques connexes

Toutes les fonctions étrangères du précompilateur Oracle peuvent utiliser des instructions en langage hôte pour exécuter des opérations procédurales. Les fonctions étrangères de Précompilateur peuvent également utiliser les types d'instruction énumérés ci-dessous pour exécuter des fonctions supplémentaires comme l'accès à la base de données et la manipulation des variables et des éléments de Form Builder.

Instruction	Utilisation
EXEC SQL	Exécute des commandes SQL.
EXEC TOOLS GET	Extrait des valeurs de Form Builder pour une fonction étrangère.
EXEC TOOLS SET	Envoie des valeurs de fonction étrangère à Form Builder.
EXEC TOOLS MESSAGE	Transmet un message d'une fonction étrangère pour son affichage dans Form Builder.
EXEC TOOLS GET CONTEXT	Obtient des informations de contexte précédemment enregistrées dans une fonction étrangère.
EXEC TOOLS SET CONTEXT	Enregistre des informations de contexte d'une fonction étrangère à utiliser dans des appels de fonctions étrangères ultérieurs.
EXEC ORACLE	Exécute des options du précompilateur Oracle.

Un fichier source de fonctions étrangères de Précompilateur Oracle comprend des instructions en langage de programmation hôte et des instructions de Précompilateur Oracle avec instructions SQL incorporées. La Précompilation d'une fonction étrangère du précompilateur Oracle remplace les instructions SQL incorporées par des instructions de langage de programmation hôte équivalentes. Une fois la Précompilation exécutée, le fichier source obtenu peut être compilé avec un compilateur de langage hôte. Pour plus d'informations sur un précompilateur spécifique, reportez-vous à la documentation du précompilateur correspondant à votre environnement.


Création d'une interface PL/SQL pour fonctions étrangères

 Exemples	  Rubriques connexes

Pour créer une interface PL/SQL pour fonction étrangère :

1	Initialisation de la fonction étrangère.

2	Association d'un sous-programme PL/SQL à la fonction étrangère.

3	Simulation du prototype de fonction étrangère avec PL/SQL.


Initialisation d'une fonction étrangère

 Exemples	  Etape suivante	  Rubriques connexes

Pour initialiser une fonction étrangère :

1	Utilisez ORA_FFI.LOAD_LIBRARY pour obtenir un identificateur de bibliothèque dynamique qui contient la fonction étrangère. Vous devez fournir l'emplacement et le nom de la bibliothèque dynamique.

2	Utilisez ORA_FFI.REGISTER_FUNCTION pour obtenir un identificateur de fonction étrangère. Vous devez fournir l'identificateur de bibliothèque et le nom de la fonction étrangère.

3	Utilisez ORA_FFI.REGISTER_PARAMETER pour enregistrer les types de paramètre de la fonction étrangère. Pour chaque paramètre, fournissez l'identificateur permettant d'identifier la fonction étrangère et un type de paramètre PL/SQL équivalent. Vous devez enregistrer les paramètres dans l'ordre dans lequel ils apparaissent dans le prototype de fonction étrangère.

4	Utilisez ORA_FFI.REGISTER_RETURN pour enregistrer le type de retour de fonction étrangère. Vous devez fournir l'identificateur permettant d'identifier la fonction étrangère et un type de retour PL/SQL équivalent.


Initialisation d'une fonction étrangère - Exemple

Exemple d'initialisation de fonction étrangère :

PACKAGE BODY calc IS
BEGIN
/*
Cet exemple explique comment initialiser la fonction étrangère
int ADD(int X, int Y) qui se trouve dans la bibliothèque dynamique
CALC.DLL;
*/
lh_calc := ora_ffi.load_library('c:\mathlib\', 'calc.dll');
fh_add := ora_ffi.register_function(lh_calc,'add',
ora_ffi.C_STD);
ora_ffi.register_return(fh_add,ORA_FFI.C_INT);
ora_ffi.register_parameter(fh_add,ORA_FFI.C_INT);
ora_ffi.register_parameter(fh_add,ORA_FFI.C_INT);
END;


Association d'un sous-programme PL/SQL à une fonction étrangère

 Exemples	  Etape suivante

Pour associer un sous-programme PL/SQL à une fonction étrangère :

1	Obtenez un identificateur de fonction en utilisant ORA_FFI.FIND_FUNCTION ou ORA_FFI.REGISTER_FUNCTION.

2	Dans la section de déclaration du corps de votre package PL/SQL, définissez un sous-programme PL/SQL qui accepte un programme de type ORA_FFI.FUNCHANDLETYPE comme premier paramètre, suivi des équivalents de type de données PL/SQL pour tous les autres paramètres de fonction étrangère.

3	Incluez une interface PRAGMA dans le sous-programme PL/SQL.

L'instruction PRAGMA appelle la fonction étrangère en transmettant le contrôle à l'emplacement mémoire de Form Builder qui peut communiquer avec les bibliothèques dynamiques.


Association d'un sous-programme PL/SQL à une fonction étrangère - Exemple

Voici un exemple d'association d'un sous-programme à une fonction étrangère :

PACKAGE BODY calc IS
/*
Cet exemple explique comment associer un sous-programme PL/SQL
 	au prototype de fonction donné, int ADD(int X, int Y);
*/

FUNCTION ff_ADD(ff_handle ORA_FFI.FUNCHANDLETYPE,
 X IN BINARY_INTEGER,
 Y IN BINARY_INTEGER);
RETURN BINARY_INTEGER;
PRAGMA interface(C, ff_ADD, 11265);

BEGIN
...
END;


Simulation d'un prototype de fonction étrangère avec PL/SQL

 Exemples	  Rubriques connexes

Pour simuler un prototype de fonction étrangère PL/SQL :

1	Dans la section de déclaration du corps de votre package PL/SQL, définissez un sous-programme PL/SQL qui accepte et retourne les équivalents de type de données PL/SQL des paramètres de la fonction étrangère ; c'est le sous-programme qui simule le prototype de fonction étrangère.

2	A partir du corps du sous-programme de simulation, appelez le sous-programme PL/SQL associé à la fonction étrangère.

3	Entrez un prototype de sous-programme PL/SQL dans la spécification de votre package PL/SQL.


Simulation d'un prototype de fonction étrangère via PL/SQL - Exemple

Exemple de simulation d'une définition de fonction étrangère :

PACKAGE calc IS
FUNCTION ADD(X IN BINARY_INTEGER, Y IN BINARY_INTEGER)
RETURN BINARY_INTEGER;
END;

PACKAGE BODY calc IS
/*
Etant donné le sous-programme de fonction étrangère, int ADD(int X, int y),
et le sous-programme PL/SQL associé,
FUNCTION ff_ADD(ff_handle,X,Y),
cet exemple indique comment simuler la définition de fonction
étrangère dans PL/SQL.
*/

FUNCTION ADD(X IN BINARY_INTEGER, Y IN BINARY_INTEGER)
RETURN BINARY_INTEGER IS
BEGIN
RETURN(ff_ADD(ff_ADD_HANDLE,X,Y));
END;

BEGIN
...
END;


Appel d'une fonction étrangère à partir d'une interface PL/SQL

  Rubriques connexes

Après avoir défini une interface PL/SQL pour une fonction étrangère, vous pouvez appeler la fonction étrangère en utilisant PL/SQL à partir de Form Builder. Pour appeler la fonction étrangère à partir de PL/SQL, indiquez le nom du package PL/SQL, suivi d'un point et du nom de la fonction PL/SQL. L'exemple ci-après indique comment appeler les fonctions étrangères Get_Image et Show_Image à partir du package PL/SQL ImageLib.

PROCEDURE display_image(keywrd IN OUT VARCHAR2) IS
img_ptr	ORA_FFI.POINTERTYPE;
BEGIN
img_ptr := ImageLib.Get_Image(keywrd);
ImageLib.Show_Image(img_ptr,2);
END;

L'appel d'une fonction étrangère à partir d'une interface PL/SQL transmet le contrôle des opérations à la fonction étrangère. Une fois la fonction étrangère effectuée, le contrôle est rendu à Form Builder.


Transmission de valeurs de paramètre à une fonction étrangère via PL/SQL

 Exemples	  Rubriques connexes

La transmission de valeurs de paramètre, comme des valeurs et des éléments Form Builder, à une fonction étrangère appelée à partir d'une interface PL/SQL est semblable à la transmission des paramètres à un sous-programme PL/SQL. N'oubliez pas d'enregistrer les valeurs de paramètre lorsque vous créez l'interface PL/SQL.

Après avoir attribué une valeur de variable ou d'élément Form Builder à une variable PL/SQL, transmettez la variable PL/SQL sous la forme d'une valeur de paramètre dans l'interface PL/SQL de la fonction étrangère. La variable PL/SQL transmise sous la forme d'un paramètre doit être un type de données PL/SQL valide; elle doit également être un type de paramètres approprié, comme défini dans l'interface PL/SQL.


Transmission de valeurs de paramètre à une fonction étrangère via PL/SQL - Exemple

/*
Les variables X_Val et Y_Val contiennent des valeurs provenant
de Form Builder et sont utilisées comme valeurs de paramètre
dans la fonction étrangère ADD.
*/
DECLARE
X_Val 	BINARY_INTEGER := :addblk.Xitm;
Y_Val	BINARY_INTEGER := :addblk.Yitm;
sum	BINARY_INTEGER;

BEGIN
sum := ADD(X_Val, Y_Val);
END;


Renvoi de valeurs provenant d'une fonction étrangère via PL/SQL

 Exemples	  Rubriques connexes

Le renvoi, vers une variable ou un élément Form Builder, d'une valeur provenant d'une fonction étrangère est semblable au renvoi d'une valeur provenant d'une fonction PL/SQL. N'oubliez pas d'enregistrer la valeur de renvoi lorsque vous créez l'interface PL/SQL.

Pour obtenir une valeur de renvoi d'une fonction étrangère, attribuez la valeur de renvoi à une variable ou à un élément Form Builder. Assurez-vous que la variable ou l'élément Form Builder est de même type de données que la valeur renvoyée par la fonction étrangère.


Renvoi d'une valeur  provenant d'une fonction étrangère via PL/SQL - Exemple

/*
La valeur BINARY_INTEGER renvoyée par la fonction étrangère ADD
est attribuée à l'élément sum_itm du bloc addblk.
*/
BEGIN
addblk.sum_itm:= ADD(X_Val, Y_Val);
END;


Simplification des types de données de paramètre complexe

  Rubriques connexes

Le package ORA_FFI n'accepte que les types de données de retour et de paramètre PL/SQL simple qui correspondent au langage de programmation C. Lorsque des types de données de retour et de paramètre complexe sont utilisés dans des prototypes de fonctions étrangères, vous devez simplifier ou remplacer le type de retour et de paramètre. Si la simplification n'est pas possible, utilisez à la place une interface de user exit.

Par exemple, il n'existe pas d'équivalent PL/SQL d'un type de données de structure de langage C. Vous pouvez simplifier le type de données de structure en créant une fonction étrangère qui crée la structure, car vous ne pouvez pas créer une interface PL/SQL pour une fonction étrangère sans simplifier le type de paramètre complexe.

MainStruct est un exemple de type de paramètre complexe :

Foreign_Func(MainStruct a, int b, char c)
{
/* process MainStruct */
...
}

Pour simplifier le paramètre Mainstruct, utilisez la méthode suivante :

New_Foreign_Func(int x, float y, char* z, int b, char c)
{
 struct MainStruct
{
int x;
float y;
char* z;
}
/* process MainStruct */
...
}


Création d'une interface PL/SQL sous Microsoft Windows - Exemple

  Rubriques connexes

Bien que la création d'une interface PL/SQL soit identique sur la plupart des plates-formes, la présente rubrique décrit les aspects de Form Builder propres à son utilisation sous Microsoft Windows.

Cet exemple appelle les fonctions Windows Profile String à partir d'une interface PL/SQL. Le package PL/SQL OraWinProfile contient l'interface PL/SQL pour les fonctions Windows Profile String.

Spécification du package PL/SQL :

PACKAGE OraWinProfile IS
/*
La fonction WritePrivateString appelle la fonction
Windows WritePrivateProfileString
*/
FUNCTION WritePrivateString(pSection IN VARCHAR2,
     pEntry IN VARCHAR2,
     pString IN VARCHAR2,
     pFilename IN VARCHAR2)
RETURN BOOLEAN;

/*
La fonction GetPrivateString appelle la fonction Windows
GetPrivateProfileString
*/
FUNCTION GetPrivateString(pSection IN VARCHAR2,
   pEntry IN VARCHAR2,
   pDefault IN VARCHAR2,
   pReturnBuffer IN OUT VARCHAR2,
   pReturnBufferN IN BINARY_INTEGER,
   pFilename IN VARCHAR2)
RETURN BINARY_INTEGER;
END OraWinProfile;

Corps du package PL/SQL :

PACKAGE BODY OraWindProfile IS
lh_window	ora_ffi.libHandleType;
lh_forms	ora_ffi.libHandleType;
fh_wpps	ora_ffi.funcHandleType;
fh_gpps	ora_ffi.funcHandleType;

/*
la fonction icd_wpps joue le rôle d'interface pour la
fonction Windows WritePrivateString
*/
FUNCTION icd_wpps(funcHandle IN ora_ffi.funcHandleType,
   pSection IN OUT VARCHAR2,
   pEntry IN OUT VARCHAR2,
   pString IN OUT VARCHAR2,
   pFilename IN OUT VARCHAR2)
RETURN BINARY_INTEGER;
PRAGMA interface(c,icd_wpps,11265);

/*
la fonction icd_gpps joue le rôle d'interface pour
la fonction GetPrivateString dans Windows
*/
FUNCTION icd_gpps(funcHandle IN ora_ffi.funcHandleType,
   pSection IN OUT VARCHAR2,
   pEntry IN OUT VARCHAR2,
   pDefault IN OUT VARCHAR2,
   pReturnBuffer IN OUT VARCHAR2,
   pRetrunBufferN IN BINARY_INTEGER,
   pFilename IN OUT VARCHAR2)
RETURN BINARY_INTEGER;
PRAGMA(c,icd_gpps,11265);

FUNCTION WritePrivateString(pSection IN VARCHAR2,
     pEntry IN VARCHAR2,
     pString IN VARCHAR2,
     pFilename IN VARCHAR2)
RETURN BOOLEAN IS
/* WritePrivateString appelle la fonction Windows */
/* Faire des copies des arguments d'entrée et de sortie */
lSection VARCHAR2(1024) := pSection;
lEntry VARCHAR(1024) := pEntry;
lString VARCHAR2(1024) := pString;
lFilename VARCHAR(1024) := pFilename;

BEGIN
/*
validation des arguments--bien que NULL soit un argument valide
pour les fonctions Windows, nous allons interdire ce cas
en raison du format de la chaîne retournée
*/
IF (lSection is NULL) OR (lEntry is NULL) OR
   (lString is NULL) OR (lFilename is NULL) THEN
    RAISE VALUE_ERROR;
END IF;
RETURN(icd_wpps(fh_wpps,lSection,lEntry,lString,
lFilename)<>0);
END WritePrivateString;

FUNCTION GetPrivateString(pSection IN VARCHAR2,
   pEntry IN VARCHAR2,
   pDefault IN VARCHAR2,
   pReturnBuffer IN OUT VARCHAR2,
   pReturnBufferN IN BINARY_INTEGER,
   pFilename IN VARCHAR2)
RETURN BINARY_INTEGER IS
/* GetPrivateString appelle la fonction Windows */
/* Faire des copies des arguments d'entrée et de sortie */
lSection VARCHAR2(1024) := pSection;
lEntry VARCHAR(1024) := pEntry;
lDefault VARCHAR2(1024) := pDefault;
lFilename VARCHAR(1024) := pFilename;

BEGIN
/*
validation des arguments--bien que NULL soit un argument valide
des fonctions Windows, nous allons interdire ce cas
en raison du format de la chaîne retournée
*/
IF (lSection is NULL) OR (lEntry is NULL) OR
   (lDefault is NULL) OR (lFilename is NULL) OR
 	   (pReturnBufferN <= 0) THEN
    RAISE VALUE_ERROR;
END IF;
/* Remplir le tampon d'espaces */
pReturnBuffer := rpad(' ', pReturnBufferN);
RETURN(icd_gpps(fh_gpps,lSection,lEntry,lDefault,
pReturnBuffer,pReturnBufferN,lFilename));
END GetPrivateString;

BEGIN
/* Déclarer un identificateur de bibliothèque du noyau Windows 386 */
lh_windows := ora_ffi.load_library(NULL,'krnl386.exe');

/*
Enregistrer les composants de WritePrivateString
 Prototype de fonction pour WritePrivateProfileString:
 BOOL WritePrivateProfileString(LPCSTR lpszSection,
    LPCSTR lpszEntry,
    LPCSTR lpszString,
    LPCSTR lpszFilename)
*/
fh_wpps := ora_ffi.register_function(lh_windows,
'WritePrivateProfileString',
 ora_ffi.PASCAL_STD);

ora_ffi.register_return(fh_wpps,ORA_FFI.C_SHORT);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);

/*
Enregistrer les composants de GetPrivateString
Prototype de fonction pour GetPrivateProfileString:
int GetPrivateProfileString(LPCSTR lpszSection,
 LPCSTR lpszEntry,
 LPCSTR lpszDefault,
 LPCSTR lpszReturnBuffer,
 int cbReturnBuffer,
 LPCSTR lpszFilename)

*/
fh_gpps := ora_ffi.register_function(lh_windows,
      'GetPrivateProfileString',
       ora_ffi.PASCAL_STD);
ora_ffi.register_return(fh_gpps,ORA_FFI.C_INT);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_INT);
ora_ffi.register_parameter(fh_wpps,ORA_FFI.C_CHAR_PTR);
END OraWinProfile;

Exemple d'appel des fonctions WritePrivateProfileString et GetPrivateProfileString à partir d'une interface PL/SQL dans Form Builder :

DECLARE
tmpb BOOLEAN;
tmpn NUMBER;
buffer VARCHAR(1024) := '';
buffern BINARY_INTEGER := 1024;
BEGIN
tmpb := OraWinProfile.WritePrivateString('Section',
    'Entry',
    'string1',
    'PROFILE.INI');
tmpn := OraWinProfile.GetPrivateString('Section',
  'Entry',
  'Bad Entry',
   buffer,
   buffern,
  'PROFILE.INI');
   MESSAGE(buffer);
END;

Vous appelez les fonctions WritePrivateString et GetPrivateString à partir du package OraWinProfile. Lorsque le code de l'exemple PL/SQL a été exécuté, les deux lignes ci-dessous sont ajoutées au fichier PROFILE.INI.

[Section]
Entry=String1

Vous auriez obtenu des résultats identiques si les fonctions Windows Profile String, WritePrivateString et GetPrivateString avaient été appelées de l'extérieur de Form Builder. Cet exemple illustre la façon d'appeler de nouvelles fonctions étrangères dans Form Builder à partir d'une interface PL/SQL.


Accès à SDK Microsoft Windows à partir d'une interface PL/SQL

  Rubriques connexes

La plupart des fonctions SDK (Software Developer's Kit) sont accessibles à partir d'une interface PL/SQL. La création d'une interface PL/SQL avec une fonction SDK Microsoft Windows est semblable à la création d'une interface PL/SQL avec une fonction étrangère.

Les types de retour et de paramètre de la fonction SDK Microsoft Windows doivent être des types de données ayant un équivalent PL/SQL, et non des types de données complexes  ne pouvant pas être simplifiés. Pour plus d'informations sur la simplification des types de données complexes, reportez-vous à Appel d'une fonction étrangère à partir d'une interface PL/SQL.

Une fonction étrangère avec des types de données de retour et de paramètre complexe ne pouvant pas être simplifiés ne peut être appelée qu'à partir d'une interface de user exit. Un identificateur de fenêtre, qui est un type de données de paramètre reconnu par de nombreuses fonctions SDK Microsoft Windows, est un exemple de type de données de paramètre ne pouvant pas être simplifié. Un identificateur de fenêtre est une constante caractère interne unique, utilisée pour faire référence à des objets d'interface.

Lorsque la fonction SDK Microsoft Windows demande un identificateur de fenêtre, vous ne pouvez pas appeler cette fonction à partir d'une interface PL/SQL. Vous devez alors utiliser une interface de user exit et la propriété Window_Handle pour obtenir les paramètres nécessaires.  Window_Handle est une propriété des fenêtres et des éléments Form Builder.

Lorsque l'appel d'une fonction SDK Microsoft Windows est typique d'un appel de fonction en langage C sans types de données complexes, vous pouvez appeler cette fonction à partir d'une interface PL/SQL. Traitez la fonction SDK Microsoft Windows comme toute autre fonction étrangère : pendant l'initialisation, chargez la bibliothèque et enregistrez le nom de la fonction, le type de retour et les paramètres. Après la création d'une interface PL/SQL pour la fonction SDK Microsoft Windows, appelez la fonction SDK Windows à partir de Form Builder en utilisant PL/SQL.


Fonctions étrangères - Exemples

La présente section comprend divers exemples sur l'utilisation des fonctions étrangères.

1	Création d'une interface PL/SQL sous Microsoft Windows

2	Utilisation d'ORA_FFI pour ouvrir la boîte de dialogue d'ouverture de fichier sous Windows

3	Utilisation d'ORA_FFI pour appeler les exécutables Unix (SUN) via une interface du type STDIN/STDOUT


Utilisation de ORA_FFI pour ouvrir la boîte de dialogue d'ouverture de fichier sous Windows - Exemple

PACKAGE OraDlg IS

FUNCTION OraMultiFileDlg

(Title IN  VARCHAR2,

Filter IN  VARCHAR2,

Dir IN  VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER;

FUNCTION OraSingleFileDlg

(Title IN  VARCHAR2,

Filter IN  VARCHAR2,

Dir IN  VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER;

END OraDlg;

PACKAGE BODY OraDlg IS

     	lh_ORADLG ora_ffi.libHandleType;

fh_OraMultiFileDlg ora_ffi.funcHandleType;

fh_OraSingleFileDlg ora_ffi.funcHandleType;

FUNCTION i_OraMultiFileDlg

(funcHandle IN ora_ffi.funcHandleType,

Title IN OUT VARCHAR2,

Filter IN OUT VARCHAR2,

Dir IN OUT VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER;

PRAGMA INTERFACE(C,i_OraMultiFileDlg,11265);

FUNCTION OraMultiFileDlg

(Title IN  VARCHAR2,

Filter IN  VARCHAR2,

Dir IN  VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER IS

Title_l VARCHAR2(128)  :=  RPAD(SUBSTR(NVL(Title,'Open'),1,128),128,CHR(0));

Filter_l VARCHAR2(128)  :=  RPAD(SUBSTR(NVL

(Filter,All Files (*.*)|*.*|'),1,128),128,CHR(0));

Dir_l VARCHAR2(256)  :=  RPAD(SUBSTR(NVL(Dir,' '),1,256),256,CHR(0));

FileString_l VARCHAR2(2000)  :=  RPAD(SUBSTR(NVL(FileString,' '),1,2000),2000,CHR(0));

rc PLS_INTEGER;

BEGIN

     rc  := i_OraMultiFileDlg(fh_OraMultiFileDlg,

Title_l,

Filter_l,

Dir_l,

FileString_l);

     FileString := FileString_l;

RETURN (rc);

END;

FUNCTION i_OraSingleFileDlg

(funcHandle IN ora_ffi.funcHandleType,

Title IN OUT VARCHAR2,

Filter IN OUT VARCHAR2,

Dir IN OUT VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER;

PRAGMA INTERFACE(C,i_OraSingleFileDlg,11265);

FUNCTION OraSingleFileDlg

(Title IN  VARCHAR2,

Filter IN  VARCHAR2,

Dir IN  VARCHAR2,

FileString IN OUT VARCHAR2)

RETURN PLS_INTEGER IS

Title_l VARCHAR2(128)  :=  RPAD(SUBSTR(NVL(Title,'Open'),1,128),128,CHR(0));

Filter_l VARCHAR2(128)  :=  RPAD(SUBSTR(NVL

(Filtrer,'Tous les fichiers (*.*)|*.*|'),1,128),128,CHR(0));

Dir_l VARCHAR2(256)  :=  RPAD(SUBSTR(NVL(Dir,' '),1,256),256,CHR(0));

FileString_l VARCHAR2(2000)  :=  RPAD(SUBSTR(NVL(FileString,' '),1,2000),2000,CHR(0));

rc PLS_INTEGER;

BEGIN

     rc  := i_OraSingleFileDlg(fh_OraSingleFileDlg,

Title_l,

Filter_l,

Dir_l,

FileString_l);

     FileString := FileString_l;

RETURN (rc);

END;

BEGIN

     BEGIN

     lh_ORADLG := ora_ffi.find_library('ORADLG.DLL');

     EXCEPTION WHEN ora_ffi.FFI_ERROR THEN

     lh_ORADLG := ora_ffi.load_library(NULL,'ORADLG.DLL');

     END;

     fh_OraMultiFileDlg := ora_ffi.register_function

(lh_ORADLG,'OraMultiFileDlg',ora_ffi.PASCAL_STD);

     ora_ffi.register_parameter(fh_OraMultiFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraMultiFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraMultiFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraMultiFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_return(fh_OraMultiFileDlg,ORA_FFI.C_LONG);

     fh_OraSingleFileDlg := ora_ffi.register_function

(lh_ORADLG,'OraSingleFileDlg',ora_ffi.PASCAL_STD);

     ora_ffi.register_parameter(fh_OraSingleFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraSingleFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraSingleFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_parameter(fh_OraSingleFileDlg,ORA_FFI.C_CHAR_PTR);

     ora_ffi.register_return(fh_OraSingleFileDlg,ORA_FFI.C_LONG);

END OraDlg;


Utilisation de ORA_FFI pour appeler les exécutables Unix(SUN) avec un type d'interface STDIN/STDOUT - Exemple

/* Copyright (c) 1997 Oracle Corporation */

/*

   NOM

     ora_pipe_io_spec.sql - Spécification pour accéder aux fonctions Unix Pipe

   DESCRIPTION

     Démonstration sur la façon d'utiliser le package ORA_FFI pour fournir l'accès aux fonctions

     Unix Pipe C.

   PUBLIC FUNCTION(S)

     popen    - Ouvrir la commande Pipe

     get_line - Obtenir une ligne de texte à partir d'une commande Pipe

     put_line - Placer une ligne de texte dans une commande Pipe

     pclose   - Fermer la commande Pipe

     is_open  - Déterminer si le descripteur de la commande Pipe est ouvert

   Remarques

     Afin d'utiliser ces routines, vous pouvez écrire le

     Code PL/SQL :

        -- Exemple d'appels aux fonctions ora_pipe_io :

        DECLARE

            stream ora_pipe_io.PIPE;

            buffer VARCHAR2(240);

        BEGIN

            stream := ora_pipe_io.popen('ls -l', ora_pipe_io.READ_MODE);

            loop

                exit when not ora_pipe_io.get_line(stream, buffer, 240);

                :directory.file := buffer;

                down;

            end loop;

            ora_pipe_io.pclose(stream);

        END;

   MODIFIED   (MM/DD/YY)

    smclark    08/05/94 -  Création

*/

PACKAGE ora_pipe_io is

    /*

    ** Arguments à ouvrir.

    */

    READ_MODE constant VARCHAR2(1) := 'r';

    WRITE_MODE constant VARCHAR2(1) := 'w';

    /* ------------- TYPE PIPE ----------- */

    /*

    ** Public Type PIPE - Traiter comme une commande Un*x Pipe

    **

    ** Ne pas modifier les membres privés de ce type

    */

    TYPE PIPE is RECORD

        (file_handle ORA_FFI.POINTERTYPE,

         is_open boolean,

         read_write_mode VARCHAR2(1));

    /* ------------ FONCTION POPEN ----------- */

    /*

    ** Function POPEN - Ouvrir une commande Pipe Un*x

    **

    ** Soit une commande Unix pour exécuter et un mode de lecture/écriture
    ** Pipe dans lequel

    ** exécuter l'instruction, cette fonction exécutera la commande

    ** et retournera un identificateur, de type PIPE, à l'entrée/sortie
    ** résultante stream.

    **

    ** La commande à exécuter est limitée à 1024 caractères.

    */

    FUNCTION popen(command in VARCHAR2,

                   ctype in VARCHAR2)

    RETURN PIPE;

    /* ------------ PROCEDURE PCLOSE ----------- */

    /*

    ** Procedure PCLOSE - Fermer une commande Pipe

    **

    ** Fermer une commande Pipe ouverte précédemment.

    **

    ** Déclencher une exception VALUE_ERROR si des arguments incorrects
    ** sont transmis.

    */

    PROCEDURE pclose(stream in out PIPE);

    /* ------------ FONCTION GET_LINE ----------- */

    /*

    ** Function GET_LINE

    ** -- Obtenir une ligne de texte dans un tampon à partir de la commande
    ** Pipe en mode lecture.

    **

    ** Obtenir une ligne de texte à partir d'une commande Pipe ouverte.

    **

    ** Déclencher une exception VALUE_ERROR si des arguments incorrects
    ** sont transmis.

    ** Exemple :

    ** si vous transmettez une commande Pipe qui n'a jamais été ouverte,
    ** (via popen),

    */

    FUNCTION get_line(stream in out PIPE,

                      s in out VARCHAR2,

                      n in PLS_INTEGER)

    RETURN BOOLEAN;

    /* ------------ PROCEDURE PUT_LINE ----------- */

    /*

    ** Procedure PUT_LINE - Placer une ligne de texte dans une commande
    ** Pipe en mode d'écriture.

    **

    ** Placer une ligne de texte dans une commande Pipe ouverte.

    **

    ** Déclencher une exception VALUE_ERROR si des arguments incorrects
    ** sont transmis.

    ** Exemple :

    ** si vous transmettez une commande Pipe qui n'a jamais été ouverte,
    ** (via popen),

    **

    ** le tampon interne pour la chaîne à écrire est limité à 2048 octets.

    */

    PROCEDURE put_line(stream in out PIPE,

                       s in VARCHAR2);

    /* ------------ FONCTION IS_OPEN ----------- */

    /*

    ** Function IS_OPEN - Déterminer si une commande Pipe est ouverte.

    **

    ** Retourne TRUE si la commande Pipe est ouverte, FALSE si elle ne
    ** l'est pas.

    */

    FUNCTION is_open(stream in PIPE)

    RETURN BOOLEAN;

END;

/*    ora_pipe_io_body.sql - Corps du package pour accéder aux fonctions Unix Pipe

   DESCRIPTION

     Démonstration sur la façon d'utiliser le package ORA_FFI pour fournir l'accès aux fonctions

     Unix Pipe C.

   PUBLIC FUNCTION(S)

     popen    - Ouvrir la commande Pipe

     get_line - Obtenir une ligne de texte à partir d'une commande Pipe

     put_line - Placer une ligne de texte dans une commande Pipe

     pclose   - Fermer la commande Pipe

     is_open  - Déterminer si le descripteur de la commande Pipe est ouvert

   PRIVATE FUNCTION(S)

     icd_popen, icd_fgets, icd_fputs, icd_pclose

   Remarques

   MODIFIED   (MM/DD/YY)

    smclark    11/02/94 -  Modifié à la suite de corrections apportées à la version ORA_FFI.

    smclark    08/05/94 -  Création

*/

 PACKAGE BODY ora_pipe_io is

    lh_libc   ora_ffi.libHandleType;

    fh_popen  ora_ffi.funcHandleType;

    fh_pclose ora_ffi.funcHandleType;

    fh_fgets  ora_ffi.funcHandleType;

    fh_fputs  ora_ffi.funcHandleType;

    /* ------------ FONCTION ICD_POPEN ----------- */

    /*

    ** Function ICD_POPEN - Routine d'interface avec la fonction C popen

    **

    ** Cette fonction joue le rôle d'interface avec la fonction popen dans

    ** libc.

    */

    FUNCTION icd_popen(funcHandle in ora_ffi.funcHandleType,

                       command in out VARCHAR2,

                       ctype in out VARCHAR2)

    return ORA_FFI.POINTERTYPE;

    pragma interface(c, icd_popen, 11265);

    /* ------------ PROCEDURE ICD_PCLOSE ----------- */

    /*

    ** Function ICD_PCLOSE - Routine d'interface avec la fonction C pclose

    **

    ** Cette fonction joue le rôle d'interface avec la fonction pclose dans

    ** libc.

    */

    PROCEDURE icd_pclose(funcHandle in ora_ffi.funcHandleType,

                         stream in out ORA_FFI.POINTERTYPE);

    pragma interface(c, icd_pclose, 11265);

    /* ------------ FONCTION ICD_FGETS ----------- */

    /*

    ** Function ICD_FGETS - Routine d'interface avec la fonction C fgets

    **

    ** Cette fonction joue le rôle d'interface avec la fonction fgets dans

    ** libc.

    */

    FUNCTION icd_fgets(funcHandle in ora_ffi.funcHandleType,

                       s in out VARCHAR2, n in PLS_INTEGER,

                       stream in out ORA_FFI.POINTERTYPE)

    RETURN ORA_FFI.POINTERTYPE;

    pragma interface(c, icd_fgets, 11265);

    /* ------------ FONCTION ICD_FPUTS ----------- */

    /*

    ** Function ICD_FPUTS - Routine d'interface avec la fonction C fputs

    **

    ** Cette fonction joue le rôle d'interface avec la fonction fputs dans

    ** libc.

    */

    PROCEDURE icd_fputs(funcHandle in ora_ffi.funcHandleType,

                        s in out VARCHAR2,

                        stream in out ORA_FFI.POINTERTYPE);

    pragma interface(c, icd_fputs, 11265);

    /* ------------ FONCTION POPEN ----------- */

    /*

    ** Function POPEN - Ouvrir une commande Pipe Un*x

    */

    FUNCTION popen(command in VARCHAR2,

                   ctype in VARCHAR2)

    RETURN PIPE is

        /*

        ** Prendre une copie des arguments, car nous devons les transmettre

        ** IN OUT à icd_popen ; nous ne voulons cependant que d'autres

        ** puissent appeler nos routines de la même façon.

        */

        cmd varchar2(1024) := command;

        cmode varchar2(1) := ctype;

        stream PIPE;

    BEGIN

        if (cmode not in (READ_MODE, WRITE_MODE))

           or (cmode is NULL)

           or (cmd is NULL)

        then

            raise VALUE_ERROR;

        end if;

        stream.file_handle := icd_popen(fh_popen, cmd, cmode);

        stream.is_open := TRUE;

        stream.read_write_mode := ctype;

        return(stream);

    END popen;

    /* ------------ PROCEDURE PCLOSE ----------- */

    /*

    ** Procedure PCLOSE - Fermer une commande Pipe

    */

    PROCEDURE pclose(stream in out PIPE) is

    BEGIN

        icd_pclose(fh_pclose, stream.file_handle);

        stream.is_open := FALSE;

    END pclose;

    /* ------------ FONCTION GET_LINE ----------- */

    /*

    ** Function GET_LINE - Obtenir une ligne de texte dans un tampon

    ** à partir d'une commande Pipe en mode de lecture.

    */

    FUNCTION get_line(stream in out PIPE,

                      s in out VARCHAR2, n in PLS_INTEGER)

    RETURN BOOLEAN is

        buffer ORA_FFI.POINTERTYPE;

    BEGIN

        if (n <= 0)

           or (stream.is_open = FALSE)

           or (stream.is_open is NULL)

           or (stream.read_write_mode <> READ_MODE)

        then

            raise VALUE_ERROR;

        end if;

        /*

        ** Initialiser la zone de tampon pour prévoir le bon espace.

        */

        s := rpad(' ', n);

        buffer := icd_fgets(fh_fgets, s, n, stream.file_handle);

        /*

        ** Déterminer si le pointeur NULL a été retourné.

        */

        return (ora_ffi.is_null_ptr(buffer) = FALSE);

    END get_line;

    /* ------------ PROCEDURE PUT_LINE ----------- */

    /*

    ** Procedure PUT_LINE - Placer une ligne de texte dans une commande Pipe en mode d'écriture.

    */

    PROCEDURE put_line(stream in out PIPE,

                       s in VARCHAR2) is

        buffer varchar2(2048) := s;

    BEGIN

        if (stream.is_open = FALSE)

           or (stream.is_open is NULL)

           or (stream.read_write_mode <> WRITE_MODE)

        then

            raise VALUE_ERROR;

        end if;

        icd_fputs(fh_fputs, buffer, stream.file_handle);

        buffer := chr(10);

        icd_fputs(fh_fputs, buffer, stream.file_handle);

    END put_line;

    /* ------------ FONCTION IS_OPEN ----------- */

    /*

    ** Function IS_OPEN - Déterminer si une commande Pipe est ouverte.

    */

    FUNCTION is_open(stream in PIPE)

    RETURN BOOLEAN is

    BEGIN

        return(stream.is_open);

    END is_open;

BEGIN

    /*

    ** Déclarer un identificateur de bibliothèque sous forme libc.  (Interne, donc NULL,NULL)

    */

    lh_libc := ora_ffi.load_library(NULL, NULL);

    if ora_ffi.is_null_ptr(lh_libc) then

        raise VALUE_ERROR;

    end if;

    /*

    ** Inscrire la fonction popen, son type de retour et ses arguments.

    */

    fh_popen := ora_ffi.register_function(lh_libc, 'popen');

    if ora_ffi.is_null_ptr(fh_popen) then

        raise VALUE_ERROR;

    end if;

    ora_ffi.register_return(fh_popen, ORA_FFI.C_DVOID_PTR);

    ora_ffi.register_parameter(fh_popen, ORA_FFI.C_CHAR_PTR);

    ora_ffi.register_parameter(fh_popen, ORA_FFI.C_CHAR_PTR);

    /*

    ** Inscrire la fonction pclose, son type de retour et ses arguments.

    */

    fh_pclose := ora_ffi.register_function(lh_libc, 'pclose');

    if ora_ffi.is_null_ptr(fh_pclose) then

        raise VALUE_ERROR;

    end if;

    ora_ffi.register_return(fh_pclose, ORA_FFI.C_VOID);

    ora_ffi.register_parameter(fh_pclose, ORA_FFI.C_DVOID_PTR);

    /*

    ** Inscrire la fonction fgets, son type de retour et ses arguments.

    */

    fh_fgets := ora_ffi.register_function(lh_libc, 'fgets');

    if ora_ffi.is_null_ptr(fh_fgets) then

        raise VALUE_ERROR;

    end if;

    ora_ffi.register_return(fh_fgets, ORA_FFI.C_DVOID_PTR);

    ora_ffi.register_parameter(fh_fgets, ORA_FFI.C_CHAR_PTR);

    ora_ffi.register_parameter(fh_fgets, ORA_FFI.C_INT);

    ora_ffi.register_parameter(fh_fgets, ORA_FFI.C_DVOID_PTR);

    /*

    ** Inscrire la fonction fputs, son type de retour et ses arguments.

    */

    fh_fputs := ora_ffi.register_function(lh_libc, 'fputs');

    if ora_ffi.is_null_ptr(fh_fputs) then

        raise VALUE_ERROR;

    end if;

    ora_ffi.register_return(fh_fputs, ORA_FFI.C_VOID);

    ora_ffi.register_parameter(fh_fputs, ORA_FFI.C_CHAR_PTR);

    ora_ffi.register_parameter(fh_fputs, ORA_FFI.C_DVOID_PTR);

END ora_pipe_io;


Variables d'environnement

  Rubriques connexes

CA_GPREFS

CA_UPREFS

CUE_PREFS

DEV2000_PROJECT

DEV2000_SOURCECONTROL

DOC60

FORMS60_DEFAULTFONT

FORMS60_EDITOR

FORMSnn_ERROR_DATE/DATETIME_FORMAT

FORMS60_JAVADIR

FORMS60_MAPPING

FORMS60_OUTPUT

FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

FORMS60_PATH

FORMS60_REPFORMAT

FORMS60_TIMEOUT

FORMSnn_USER_DATE/DATETIME_FORMAT

FORMS60_USEREXITS

GRAPHICS60_PATH

INTERRUPT (utilisateurs DOS SQL*Net seulement)

LOCAL

NLS_LANG

OleCreateObjPoolInMemory

OleDoNotUpdateLinks

OleUpdateLinksPrompt

ORACLE_HOME

ORACLE_PATH

ORAINFONAV_DOCPATH

REPORTS60_CGIDIAGBODYTAGS

REPORTS60_CGIDIAGHEADTAGS

REPORTS60_CGIHELP

REPORTS60_CGIMAP

REPORTS60_CGINODIAG

REPORTS60_CGIPATHONLYURL

REPORTS60_COOKIE_EXPIRE

REPORTS60_DB_AUTH

REPORTS60_ENCRYPTION_KEY

REPORTS60_OWSDIAGBODYTAGS

REPORTS60_OWSDIAGHEADTAGS

REPORTS60_OWSHELP

REPORTS60_OWSMAP

REPORTS60_OWSNODIAG

REPORTS60_OWSPATHONLYURL

REPORTS60_PATH

REPORTS60_REPORTS_SERVER

REPORTS60_SYS_AUTH

REPORTS60_TERMINAL

REPORTS60_TMP

REPORTS60_USEREXIT

REMOTE

UI_ICON

USERNAME

WIN_REMOTE_SESSIONS

XMITTR (utilisateurs DOS seulement)


Base de registres (Windows 95 et Windows NT)

  Variables d'environnement

Oracle Installer crée une section ORACLE dans votre base de registres. Cette section contient des paramètres de configuration qui contrôlent notamment le nom du répertoire d'origine Oracle Home, et l'emplacement du fichier de préférences du produit et celui des fichiers d'aide.

Affichage et modification de la base de registres

Vous pouvez afficher et facultativement éditer la base de registres de Microsoft Windows à l'aide de l'Editeur de base de registres. Cet éditeur se trouve dans le répertoire où est installé votre logiciel Windows. Pour lancer l'Editeur, choisissez Démarrer [image] Exécuter, puis tapez REGEDIT et cliquez sur OK.

Dans l'Editeur de base de registres, développez le noeud HKEY_LOCAL_MACHINE, puis le noeud SOFTWARE. Cliquez sur ORACLE pour afficher les paramètres de configuration Oracle.

Vous pouvez modifier les valeurs de paramètre en cliquant deux fois sur le nom de paramètre pour afficher la boîte de dialogue d'édition de chaîne. Changez la valeur dans la boîte Valeur, puis cliquez sur OK pour accepter la nouvelle valeur.


Paramètres de configuration

  Variables d'environnement

Oracle Installer définit automatiquement plusieurs paramètres. Certains d'entre eux sont requis par les produits Oracle, et d'autres vous permettent de personnaliser le comportement des produits.

Paramètres requis

Les paramètres répertoriés dans la présente section sont automatiquement définis ou supprimés par Oracle Installer. Ils sont requis par divers produits pour assurer leur bon fonctionnement.

Attention : Ne modifiez pas la définition des paramètres répertoriés dans la présente section, car vous pourriez altérer le fonctionnement d'un ou de plusieurs produits Oracle.

La présence de nn dans les paramètres répertoriés ci-dessous indique le numéro de version d'un produit ou d'un composant. Ce numéro peut changer lorsque vous passez à une nouvelle version d'un produit Oracle.

Parameter	Valeur par défaut
BROWSERnn	ORACLE_HOME\BROWSE25
DEnn	ORACLE_HOME\TOOLS\COMMON60
FORMSnn	ORACLE_HOME\FORMS60
GRAPHICSnn	ORACLE_HOME\GRAPH60
MMnn	ORACLE_HOME\TOOLS\COMMON60
OCLnn	ORACLE_HOME\GRAPH60
PROnn	ORACLE_HOME\PRO18
RDBMSnn	ORACLE_HOME\RDBMS73
RWnn	ORACLE_HOME\REPORT60
TKnn	ORACLE_HOME\TOOLS\COMMON60
VGSnn	ORACLE_HOME\TOOLS\COMMON60
Paramètres personnalisables

Les paramètres répertoriés dans la présente section contrôlent divers aspects de vos produits Oracle. Vous pouvez en modifier les paramètres pour personnaliser le comportement du produit.

Les sections ci-dessous répertorient la valeur par défaut (le cas échéant) de chacun des paramètres définis automatiquement par Oracle Installer. Les paramètres qui ne sont pas définis automatiquement sont également indiqués. Vous y trouverez également des descriptions de valeurs valides et des exemples de paramétrage.


CA_GPREFS

Valeur par défaut : ORACLE_HOME

Valeurs valides : tout répertoire sur toute unité

Exemple :

CA_GPREFS=C:\orawin95

Ce paramètre indique l'emplacement du fichier des préférences globales CAGPREFS.ORA. Les préférences globales sont partagées par les utilisateurs réseau. En plus de rechercher le répertoire indiqué par le paramètre CA_GPREFS, les produits recherchent également le répertoire en cours pour le fichier AGPREFS.ORA.

Le fichier CAGPREFS.ORA est créé automatiquement par Oracle Installer. Pour modifier les paramètres des préférences globales, faites appel à un éditeur de texte, tel que le Bloc-notes. Les préférences globales définies dans le fichier CAGPREFS.ORA peuvent être remplacées par celles du fichier des préférences locales CAUPREFS.ORA, qui est défini par le paramètre CA_UPREFS.


CA_UPREFS

Valeur par défaut : ORACLE_HOME

Valeurs valides : tout répertoire sur toute unité

Exemple :

CA_UPREFS=C:\orawin95

Ce paramètre indique l'emplacement du fichier des préférences utilisateur CAUPREFS.ORA. Ce fichier met à jour les préférences de vos produits, définies via Outils [image] Options d'outils. En plus de rechercher le répertoire indiqué par le paramètre CA_UPREFS, les produits recherchent également le répertoire en cours pour le fichier CAUPREFS.ORA.

Plusieurs produits Oracle écrivent leurs préférences dans le fichier CAUPREFS.ORA. Pour modifier les paramètres des préférences utilisateur, faites appel à une éditeur de texte, tel que le Bloc-notes. Les préférences utilisateur définies dans le fichier CAUPREFS.ORA remplacent les préférences globales définies dans le fichier CAGPREFS.ORA, qui est défini par le paramètre CA_GPREFS.


CUE_PREFS

Valeur par défaut : ORACLE_HOME

Valeurs valides : tout répertoire sur toute unité

Exemple :

CUE_PREFS=C:\orawin95

Ce paramètre indique l'emplacement du fichier des préférences des Assistants CUEPREF.RES. Ce fichier met à jour les préférences des Assistants que vous pouvez définir dans la boîte de dialogue d'options des Assistants.

Vos préférences sont enregistrées dans le fichier CUEPREF.RES chaque fois que vous quittez une application. Vous ne pouvez pas modifier ce fichier manuellement.


DEV2000_SOURCECONTROL

Valeur par défaut : aucune

Valeurs valides : mots-clés indiquant le système de contrôle de sources à utiliser avec Oracle Developer

Exemple :

DEV2000_SOURCECONTROL=PVCS

Ce paramètre indique le système de contrôle de sources que vous prévoyez d'utiliser avec Oracle Developer. Vous pouvez n'indiquez aucun système de contrôle de sources ou définir ce paramètre à la valeur 'PVCS'. La prise en charge de systèmes de contrôle de sources supplémentaires étant assurée, vous pourrez également indiquer des mots-clés pour les systèmes de contrôle de sources supplémentaires.


DEV2000_PROJECT

Valeur par défaut : aucune

Valeurs valides : mots-clés indiquant le fichier de projet du système de contrôle de sources à utiliser avec Oracle Developer

Exemple :

DEV2000_PROJECT=c:\pvcs\project1\project1.cfg

Ce paramètre indique le nom du fichier de projet pour le système de contrôle de sources sélectionné dans le paramètre DEV2000_SOURCECONTROL.


DOC60

Valeur par défaut : Oracle_Home\tools\doc60

Valeurs valides : tout répertoire sur toute unité

Exemple :

DOC60=c:\orawin95\tools\doc60

Ce paramètre indique l'emplacement des fichiers de documentation en ligne, dont l'aide en ligne, les Assistants et les Aperçus produit.


FORMS60_DEFAULTFONT

Valeur par défaut : aucune

Valeurs valides : chaîne de texte indiquant toute police valide

Exemple :

FORMS60_DEFAULTFONT="MS Sans Serif.8"

Ce paramètre indique la police par défaut utilisée pour les textes standard dans l'Editeur de présentation de Form Builder.


FORMS60_EDITOR

Valeur par défaut : aucune

Valeurs valides : nom et chemin d'un éditeur système

Exemple :

FORMS60_EDITOR=C:\windows\notepad.exe

Ce paramètre définit l'Editeur pouvant être appelé par des éléments multilignes de Form Builder dans les composants Designer ou Runform. Aucun éditeur défini par l'utilisateur ne peut être lancé à moins que ce paramètre ne soit défini.

Remarque : Lorsque vous quittez l'Editeur, le fichier doit être enregistré sous forme de fichier "ASCII seulement". Aucun format natif de système de traitement de texte n'est pris en charge.


FORMSnn_ERROR_DATE/DATETIME_FORMAT

Objectif : ces deux variables d'environnement établissent les masques de format que Forms utilisera lors de la génération des messages d'erreur Runtime émis lorsqu'un utilisateur final saisit une valeur non valide dans un élément de date ou de date/heure.

Valeur par défaut : reportez-vous à la rubrique d'aide concernant les masques de formats de date.

Valeurs valides : tout masque de format de date/de date et heure valide.

Exemple :

FORMS65_ERROR_DATE_FORMAT YYYY/MM/DD


FORMS60_JAVADIR

Valeur par défaut : Oracle_Home\forms60\java

Valeurs valides : nom et chemin de l'environnement d'exécution Oracle Java

Exemple :

FORMS60_JAVADIR=C:\orant\forms60\java

Ce paramètre définit l'emplacement des fichiers d'environnement d'exécution Oracle Java requis pour utiliser les zones Java Bean et pour afficher un aperçu des formulaires Web dans Form Builder.


FORMS60_MAPPING

Valeur par défaut : aucune

Valeurs valides : l'emplacement virtuel de votre répertoire de travail temporaire

Exemple :

FORMS60_MAPPING=http://monhôte.com/webtemp

Pour traiter des images sur le Web, Forms Server transmet des fichiers temporaires JPEG compressés. Si vous utilisez des images ou des icônes dans vos applications Web Forms, vous devez créer un répertoire temporaire et un répertoire virtuel (par exemple, C:\ORANT\WEBTEMP) où Forms Server stocke les images et les autres fichiers de travail. Vous devez également créer les variables d'environnement FORMS60_OUTPUT et FORMS60_MAPPING sur l'ordinateur où Forms Server est exécuté.


FORMS60_OUTPUT

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité où Forms Server est exécuté

Exemple :

FORMS60_OUTPUT=C:\ORANT\WEBTEMP\

Pour traiter des images sur le Web, Forms Server transmet des fichiers temporaires JPEG compressés. Si vous utilisez des images ou des icônes dans vos applications Web Forms, vous devez créer un répertoire temporaire (par exemple, C:\ORANT\WEBTEMP) où Forms Server stocke les images et les autres fichiers de travail. Vous devez également créer les variables d'environnement FORMS60_OUTPUT et FORMS60_MAPPING sur l'ordinateur où Forms Server est exécuté.


FORMSnn_OUTPUT_DATE/DATETIME_FORMAT

Objectif : ces deux variables d'environnement établissent les masques de format que Forms utilisera lors des opérations de sortie Runtime sur les éléments de date et de date/heure qui ne disposent pas de leur propre masque.

Valeur par défaut : reportez-vous à la rubrique d'aide concernant les masques de formats de date.

Valeurs valides : tout masque de format de date/de date et heure valide.

Exemple :

FORMS65_OUTPUT_DATETIME_FORMAT YYYY/MM/DD HH24:MI:SS


FORMS60_PATH

Valeur par défaut : ORACLE_HOME\FORMS60\PLSQLLIB

Valeurs valides : tout répertoire sur toute unité

Exemple :

FORMS60_PATH=C:\oracle\apps\forms;C:\myfiles

Ce paramètre indique le chemin de recherche pour les fichiers utilisés dans une application Form Builder runtime. Ces fichiers comprennent les fichiers d'application Forms (.fmx), les fichiers de menu (.mmx), les bibliothèques PL/SQL (.pll) et les autres objets que l'application tente de charger depuis un fichier à l'exécution. Par exemple, si vous importez le fichier image scooter.tif, Form Builder effectue sa recherche dans les répertoires indiqués par FORMS60_PATH pour retrouver ce fichier.

FORMS60_PATH peut indiquer plusieurs répertoires. Utilisez un point-virgule pour séparer les noms de répertoire dans une liste de chemins.


FORMS60_REPFORMAT

Valeur par défaut : aucune

Valeurs valides : HTML et PDF

Exemple :

FORMS60_REPFORMAT=HTML

Si vous appelez un navigateur pour exécuter un état de grille via RUN_PRODUCT, vous devez définir la variable d'environnement FORMS60_REPFORMAT. Ce paramètre indique le format de l'état.


FORMS60_TIMEOUT

Valeur par défaut : 15

Valeurs valides : 1 à 1 440 (1 jour)

Exemple :

FORMS60_OUTPUT=1440

Ce paramètre indique le temps écoulé en minutes avant la fermeture du serveur Forms, en l'absence de communication client avec ce serveur.


FORMSnn_USER_DATE/DATETIME_FORMAT

Objectif : ces deux variables d'environnement établissent les masques de format que Forms utilisera lors de l'exécution pour extraire des valeurs des éléments de type DATE et DATETIME lorsque ces derniers ne disposent pas de leur propre masque.

Valeur par défaut : reportez-vous à la rubrique d'aide concernant les masques de formats de date.

Valeurs valides : tout masque de format de date/de date et heure valide. Vous pouvez indiquer plusieurs masques de format en les séparant par des barres verticales. Au moment de l'exécution, lors de la conversion des éléments, les masques de format sont utilisés dans l'ordre indiqué, jusqu'à ce qu'une conversion réussisse (ou jusqu'à ce que tous les masques aient été essayés).

Exemple :

FORMS65_USER_DATE_FORMAT  FXFMDD-MM-RRRR


FORMS60_USEREXITS

Valeur par défaut : aucune

Valeurs valides : toute bibliothèque de liens dynamiques de sortie utilisateur (avec le chemin absolu).

Ce paramètre vous permet de définir plusieurs fichiers DLL de sorte que ceux-ci contiennent des fonctions étrangères pouvant être appelées depuis une interface de sortie utilisateur. Le paramètre FORMS60_USEREXITS inclut une liste de fichiers DLL d'interface utilisateur séparés par des points-virgules.

FORMS60_USEREXITS peut indiquer plusieurs fichiers DLL. Utilisez une barre oblique inverse (\) pour séparer les répertoires dans un chemin, et un point-virgule (;) pour séparer les chemins complets.

Si cette valeur n'est pas définie explicitement, Form Builder prend implicitement la valeur ORACLE_HOME\BIN\F45XTB.DLL.

Exemple :

FORMS60_USEREXITS = C:\mathlib\add.dll;C:\mathlib\mult.dll


GRAPHICS60_PATH

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

GRAPHICS60_PATH=C:\oracle\apps\graphics;C:\myfiles

Ce paramètre indique le chemin de recherche pour les fichiers utilisés dans une application Graphics runtime. Ces fichiers comprennent les fichiers d'affichage (.ogr), les images, les interrogations externes et les autres objets que l'application tente de charger depuis un fichier à l'exécution. Par exemple, si vous importez le fichier image scooter.tif, Graphics Builder effectue sa recherche dans les répertoires indiqués par GRAPHICS60_PATH pour retrouver ce fichier.

GRAPHICS60_PATH peut indiquer plusieurs répertoires. Utilisez une barre oblique inverse (\) pour séparer les répertoires dans un chemin, et un point-virgule (;) pour séparer les chemins complets.


INTERRUPT (utilisateurs DOS SQL*Net seulement)

Valeur par défaut : aucune

Valeurs valides : même valeur qu'indiquée dans votre fichier DOS CONFIG.ORA

Ce paramètre indique l'adresse du vecteur d'interruption que les produits DOS Oracle utiliseront. Si vous vous servez d'un pilote de périphérique DOS SQL*Net pour Windows, vérifiez votre fichier CONFIG.ORA situé dans le répertoire principal (home) DOS Oracle. Si le paramètre INTERRUPT est indiqué dans CONFIG.ORA, vous devez le définir dans la base de registres à la même valeur. Si cette variable n'est pas indiquée dans vos fichiers DOS CONFIG.ORA, vous n'avez pas à les définir dans la base de registres.

Remarque : Ne définissez pas le paramètre INTERRUPT à 103 lorsque vous utilisez un produit de gestion mémoire réalisé par des tiers, tel que QEMM, 386MAX, CEMM ou EMM386. Si vous le faites, vous vous exposez à un comportement inattendu après le lancement de SQLPME et de SQL*Net.


LOCAL

Valeur par défaut : aucune

Valeurs valides : tout préfixe de pilote de périphérique SQL*Net valide, dont les paramètres de chaîne de base de données. Pour plus d'informations, reportez-vous à Oracle Network Administrator's Guide.

Ce paramètre indique le pilote de périphérique SQL*Net et la chaîne de connexion complète que le produit utilisera si vous n'indiquez pas de périphérique de communication lorsque vous vous connectez à la base de données à partir du produit.

Si vous utilisez le paramètre LOCAL, ne l'ajoutez pas à la fin du fichier. Les produits Oracle ne reconnaîtraient pas dans ce cas le paramètre LOCAL.

Remarque : Si vous faites appel à un pilote de périphérique DOS SQL*Net pour Windows, assurez-vous que le paramètre LOCAL est défini dans votre fichier CONFIG.ORA du répertoire principal (home) DOS Oracle. Si le paramètre LOCAL est indiqué dans le fichier CONFIG.ORA, vous devez le définir dans la base de registres à la même valeur.


NLS_LANG

Valeur par défaut : AMERICAN_AMERICA.WE8ISO8859P1

Valeurs valides : Reportez-vous à NLS Reference Manual pour obtenir la liste des valeurs disponibles ou consultez le fichier suivant sur votre CD : \bonus\nls\nlsd2r1.wri

Exemple :

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

Ce paramètre définit la langue dans laquelle s'affichent les fichiers de messages. La syntaxe pour NLS_LANG est la suivante :

NLS_LANG=<langue>_<pays>.<jeu_car>

où :

langue	Langue ainsi que ses conventions pour l'affichage des messages et des noms de jour et de mois.
pays	Pays ainsi que ses conventions pour le calcul des numéros de semaine et de jour.
Jeu_car	Jeu de caractères utilisé pour les fonctions UPPER, LOWER et INITCAP ainsi que pour le type de tri utilisé par une interrogation ORDER BY. Cet argument contrôle également le jeu de caractères utilisé pour afficher les messages.


OleCreateObjPoolInMemory

Valeur par défaut : 0

Valeurs valides : 0 ou 1

Exemple :

OleCreateObjPoolInMemory=0

Pour Report Builder, ce paramètre indique de créer le pool d'objets OLE2 dans des fichiers temporaires (0) ou en mémoire (1). La création du pool en mémoire améliore les performances en réduisant l'accès au disque. Si vous avez un grand nombre d'objets OLE2 ou des objets OLE2 volumineux (par exemple, des images), la quantité de mémoire nécessaire peut devoir être supérieure. Lorsque vous déterminez le nombre d'objets OLE2 dont vous disposez, notez qu'un objet texte standard OLE2 dans un encadrement itératif ne contient qu'un objet OLE2. Un champ OLE2 contient un objet OLE2 pour chaque instance du champ.


OleDoNotUpdateLinks

Valeur par défaut : 0

Valeurs valides : 0 ou 1

Exemple :

OleDoNotUpdateLinks=0

Pour Report Builder, ce paramètre active (0) ou désactive (1) la mise à jour des liens lorsque vous ouvrez l'Editeur de présentation ou que vous lanciez l'état. Les objets OLE2 liés contiennent des représentations en mémoire cache de leurs objets source. Ces représentations sont mises à jour par le serveur OLE2 correspondant, en fonction des données objet continuelles.

Ces mises à jour sont produites automatiquement ou manuellement selon le type de lien. La mise à jour des représentations en mémoire cache exigeant le lancement du serveur OLE2, il se peut que vous souhaitiez désactiver la mise à jour pour améliorer les performances, si vous savez que les objets source n'ont pas été modifiés ou que vous n'ayez pas besoin des dernières modifications. Notez que même si vous n'indiquez pas cette option, vous pouvez toujours annuler les mises à jour depuis la boîte de dialogue standard qui apparaît lors de la mise à jour des objets OLE2.


OleUpdateLinksPrompt

Valeur par défaut : 0

Valeurs valides : 0 ou 1

Exemple :

OleUpdateLinksPrompt=0

Pour Report Builder, ce paramètre indique de solliciter l'intervention de l'utilisateur (0) ou de ne pas solliciter son intervention (1) lorsque la source d'un objet lié est introuvable. Si la source d'un objet est introuvable au cours d'une tentative de mise à jour, une boîte de dialogue s'affiche dans laquelle vous pouvez indiquer à nouveau la source de lien ou de ne pas prendre l'erreur en compte. Si vous n'êtes pas en mesure d'accepter la boîte de dialogue (par exemple, vous exécutez l'état la nuit), il se peut que vous souhaitiez désactiver cette invite pour vous assurer que l'état s'exécute.


ORACLE_HOME

Valeur par défaut : C:\ORAWIN95

Valeurs valides : tout répertoire sur toute unité

Exemple :

ORACLE_HOME=C:\orawin95

Ce paramètre indique le répertoire principal (home) dans lequel les produits Windows Oracle sont installés. Ce répertoire se situe en haut de la hiérarchie des répertoires Oracle.

Notes d'utilisation

•	Si vous utilisez Reports Runtime, le total des longueurs d'ORACLE_HOME et ORACLE_PATH ne doit pas dépasser 255 caractères.


ORACLE_PATH

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

ORACLE_PATH=C:\oracle\apps\forms;C:\oracle\apps\graphics;
C:\oracle\apps\reports

Ce paramètre indique le chemin de recherche pour les fichiers référencés par Forms, Graphics ou Reports Runtime. Notez que les répertoires indiqués par ORACLE_PATH sont recherchés après ceux qui sont mentionnés par un paramètre propre à un produit. : FORMS60_PATH, GRAPHICS60_PATH ou REPORTS60_PATH.

ORACLE_PATH peut indiquer plusieurs répertoires. Utilisez un point-virgule (;) pour séparer les noms de répertoire dans une liste de chemins.

Notes d'utilisation

•	Si vous utilisez Reports Runtime, le total des longueurs d'ORACLE_HOME et ORACLE_PATH ne doit pas dépasser 255 caractères.


ORAINFONAV_DOCPATH

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

ORAINFONAV_DOCPATH=C:\orawin95\oin

Ce paramètre indique l'emplacement de la table des matières et de l'index pour votre documentation en ligne.


REMOTE

Valeur par défaut : aucune

Valeurs valides : tout préfixe et paramètre de pilote de périphérique SQL*Net valide

Exemple :

REMOTE=P:PIPER

Ce paramètre indique le pilote de périphérique SQL*Net par défaut et éloigné à utiliser lors d'une connexion via une base de données locale. Il peut inclure les paramètres SQL*Net par défaut (chaîne de base de données complète).

P: est le préfixe réseau pour les canaux de communication nommés, et Piper le nom de la base de données.

Si un utilisateur se connecte et indique une connexion avec un préfixe de pilote de périphérique explicite correspondant à celui qui est mentionné dans REMOTE, mais sans indiquer de paramètres SQL*Net, les paramètres de REMOTE sont utilisés. Le paramètre REMOTE permet à l'administrateur de bases de données de définir une connexion réseau "normale" pour laquelle l'utilisateur SQL*Net n'a pas à indiquer de paramètres de connexion. Vous pouvez à tout moment redéfinir ce paramètre dans la ligne de commande.

Remarque : Si vous utilisez un pilote de périphérique DOS SQL*Net pour Windows, assurez-vous que le paramètre REMOTE est défini dans votre fichier CONFIG.ORA du répertoire principal (home) DOS Oracle. Si REMOTE est indiqué dans CONFIG.ORA, vous devez le définir à la même valeur dans la base de registres.


REPORTS60_CGIDIAGBODYTAGS

Pour Reports Web CGI, ce paramètre indique les marques HTML insérées en tant que marques <BODY…> dans la sortie de diagnostic/de débogage de RWCGI60. Par exemple, vous pouvez utiliser cette variable d'environnement pour définir la couleur et l'image du texte/de l'arrière-plan.


REPORTS60_CGIDIAGHEADTAGS

Pour Reports Web CGI, ce paramètre indique les marques HTML insérées entre les marques <HEAD> … </HEAD> dans la sortie de diagnostic/de débogage de RWCGI60. Par exemple, vous pouvez utiliser cette variable d'environnement pour définir la marque <TITLE> ou <META…>.


REPORTS60_CGIHLP

Pour Reports Web CGI, ce paramètre définit l'URL/URI du fichier d'aide RWCGI60, à laquelle vous accédez en appelant le fichier RWCGI60 à l'aide de la demande vide :

http://votre_serveurweb/votre_rep_cgi_virtuel/rwcgi60.exe?

Par exemple, si vous définissez REPORTS60_CGIHLP sur http://www.yahoo.com, vous accédez à cette URL ; si vous la définissez sur monfichieraide.htm, le fichier suivant apparaît :

http://votre_serveurweb/monfichieraide.htm

Si cette variable n'est pas définie, un écran d'aide par défaut apparaît.


REPORTS60_CGIMAP

Pour Reports Web CGI, ce paramètre définit l'emplacement/le nom de fichier complet du fichier de correspondance RWCGI60 si le type de configuration suivant est utilisé :

c:\orant\report60\mymap.dat


REPORTS60_CGINODIAG

Pour Reports Web CGI, ce paramètre, s'il est défini, désactive toutes les sorties de débogage/de diagnostic de RWCGI60.

http://votre_serveurweb/cgi-bin/rwcgi60.exe/help?

Note d'utilisation :

Ce paramètre ne fonctionne pas si REPORTS60_CGINODIAG est défini.


REPORTS60_CGIPATHONLYURL

Pour Reports Web CGI, ce paramètre, s'il est défini (quelle que soit sa valeur), contraint RWCGI60 à renvoyer toutes les URL au Navigateur sous la forme d'URL partielles ne comportant que le chemin d'accès ; ainsi, au lieu de renvoyer :

Emplacement : http://votre_serveurweb:port/chemin_accès

il renvoie :

Emplacement : /chemin_accès

Cette variable permet de résoudre les problèmes rencontrés lorsqu'un serveur Web est configuré sur plusieurs ports, y compris un port par défaut.


REPORTS60_COOKIE_EXPIRE

Valeur par défaut : 30

Valeurs valides : toute durée (en minutes)

Exemple :

REPORTS60_COOKIE_EXPIRE=30

Pour Reports Server Security, ce paramètre détermine le temps d'inactivité du cookie (par exemple, REPORTS60_COOKIE_EXPIRE=30). Les cookies enregistrent les noms utilisateur et les mots de passe codés chez le client. Lorsque CGI reçoit un cookie du client, il compare le temps enregistré dans le cookie avec l'heure système actuelle.

Si ce temps écoulé dépasse le nombre de minutes défini dans le paramètre REPORTS60_COOKIE_EXPIRE (par exemple, 30 minutes), CGI rejette le cookie, et renvoie au client la grille d'authentification de la base de données et un message d'erreur. L'utilisateur doit de nouveau s'authentifier pour exécuter l'état.


REPORTS60_DB_AUTH

Valeur par défaut : dbauth.htm

Valeurs valides : tout fichier HTML qui contient des actions d'authentification spéciales. La conservation de la valeur par défaut est recommandée.

Exemple :

REPORTS60_DB_AUTH=dbauth.htm

Indique le modèle d'authentification de base de données utilisé lors de la connexion à la base de données.


REPORTS60_SYS_AUTH

Valeur par défaut : sysauth.htm

Valeurs valides : tout fichier HTML qui contient des actions d'authentification spéciales. La conservation de la valeur par défaut est recommandée.

Exemple :

REPORTS60_SYS_AUTH=sysauth.htm

Indique le modèle d'authentification utilisé pour authentifier le nom utilisateur et le mot de passe lorsque les utilisateurs exécutent des demandes d'état sur un serveur Reports Server à accès restreint.


REPORTS60_ENCRYPTION_KEY

Valeur par défaut : Reports6.0

Valeurs valides : toute clé de chiffrement

Exemple :

REPORTS60_ENCRYPTION_KEY=reports6.0

Indique la clé de chiffrement utilisée pour coder le nom utilisateur et le mot de passe.


REPORTS60_REPORTS_SERVER

Valeurs valides : tout nom d'entrée de service Reports Server

Exemple :

REPORTS60_REPORTS_SERVER=repserver

Indique le serveur Reports Server par défaut pour les demandes Web Cartridge ou Web CGI. Lorsque ce paramètre est défini, vous pouvez omettre l'argument de ligne de commande SERVER dans les demandes d'état pour les traiter sur le serveur par défaut ou inclure l'argument de ligne de commande SERVER pour ignorer le serveur par défaut.


REPORTS60_OWSDIAGBODYTAGS

Pour Reports Web Cartridge, indique les marques HTML insérées comme marque <BODY…> dans la sortie de diagnostic/de débogage de RWOWS60. Par exemple, vous pouvez utiliser cette variable d'environnement pour définir la couleur d'un texte/d'un arrière-plan, son image, etc.


REPORTS60_OWSDIAGHEADTAGS

Pour Reports Web Cartridge, ce paramètre indique les marques HTML insérées entre les marques <HEAD> …</HEAD> dans la sortie de diagnostic/de débogage de RWOWS60. Par exemple, vous pouvez utiliser cette variable d'environnement pour définir les marques <TITLE> ou <META…>, etc.


REPORTS60_OWSHELP

Valeurs valides : tout chemin d'accès et tout nom de fichier, ou toute URL

Pour Reports Web Cartridge, ce paramètre définit l'URL/URI du fichier d'aide RWOWS60, à laquelle vous accédez lorsque vous appelez RWOWS60 à l'aide de la demande vide :

http://votre_serveurweb/rwows60?

Par exemple, si vous la définissez sur http://www.yahoo.com, vous accédez à cette URL ; si vous la définissez sur monfichieraide.htm, le fichier suivant apparaît :

http://votre_serveurweb/monfichieraide.htm

Si ce paramètre n'est pas défini, un écran d'aide par défaut apparaît.


REPORTS60_OWSMAP

Pour Reports Web Cartridge, ce paramètre définit l'emplacement/le nom de fichier complet du fichier de correspondance RWOWS60 (si la configuration suivante est utilisée) :

C:\ORANT\REPORTS60\MYMAP.DAT


REPORTS60_OWSNODIAG

Pour Reports Web Cartridge, ce paramètre, s'il est défini, désactive la sortie de débogage/de diagnostic de RWOWS60 :

http://votre_serveurweb/rwows60/aide

Ce paramètre ne fonctionne pas lorsque REPORTS60_OWSNODIAG est défini.


REPORTS60_OWSPATHONLYURL

Pour Reports Web Cartridge, ce paramètre, s'il est défini (quelle que soit sa valeur), contraint RWOWS60 à utiliser uniquement des URL ne comprenant qu'un chemin d'accès (par exemple, "/rscache/..." au lieu de "http://mywebsrv.com:1550/rscache/...") dans la réorientation HTTP vers la sortie d'état, ainsi que dans la sortie de diagnostic générée par RWOWS60. Ce paramètre est utile lorsque vous voulez contraindre le Navigateur client à conserver la demande d'URL initiale dans son fichier d'emplacement après qu'il a extrait la sortie d'état. En principe, RWOWS60 modifie l'URL pour qu'elle indique l'emplacement de la sortie d'état (le répertoire indiqué par REPORTS60_WEBLOC). Elle affiche également le nom du fichier de sortie d'état, qui est peu significatif (par exemple, 12345679.htm), car ce fichier vient d'être généré. La définition de ce paramètre permet d'éviter cette modification. Cela n'est valable que si toutes les URL utilisent le port par défaut (généralement 80).

La définition de ce paramètre présente cependant un inconvénient : tous les fichiers subsidiaires (comme les fichiers d'images) qui dépendent du fichier principal de sortie d'état ne sont pas extraits par le Navigateur (malgré une création réussie à l'emplacement désigné par REPORTS60_WEBLOC). Pour pallier à ce problème, indiquez une marque <BASE HREF="..."> ou <META HREF="..."> (l'emplacement du fichier principal correspondant à une URL complète ou partielle) dans la définition d'état afin qu'elle soit incluse dans le fichier principal de sortie d'état. Vous pouvez également définir REPORTS60_WEBLOC pour qu'il désigne l'emplacement de l'exécutable RWOWS60.

La définition de REPORTS60_OWSPATHONLYURL permet également de résoudre certains problèmes de configuration Intranet/Internet dans lesquelles un même ordinateur dispose simultanément de plusieurs adresses IP (et de plusieurs cartes réseau). En effet, elle supprime la dépendance de la réorientation HTTP vers le nom de l'ordinateur ou l'adresse IP.


REPORTS60_PATH

Valeur par défaut : ORACLE_HOME\REPORT60\DEMO ; ORACLE_HOME\REPORT60\DEMO\BITMAP ; ORACLE_HOME\REPORT60\DEMO\REQFILES

Valeurs valides : tout répertoire sur toute unité

Exemple :

REPORTS60_PATH=C:\oracle\apps\reports;C:\myfiles

Cette variable d'environnement sert à localiser des états et des objets externes que vous utilisez dans vos états, tels que des bibliothèques PL/SQL, des interrogations externes et des textes standard externes. Elle vous permet de créer des états facilement portables d'un système d'exploitation à l'autre, sans que vous ayez à coder les chemins de répertoire.

Remarque : la variable REPORTSPATH est limitée à 256 caractères.

Définissez la variable REPORTS60_PATH de la même façon que vous le faites pour les autres variables d'environnement sur votre système d'exploitation, sans oublier les règles propres à la plate-forme, telles que la longueur du chemin, etc.

En plus des chemins de répertoire, vous pouvez indiquer le mot-clé DB lorsque vous définissez REPORTS60_PATH. Ce mot-clé ordonne à Report Builder d'effectuer sa recherche dans la base de données à laquelle vous êtes connecté.

Supposons que vous ayez indiqué l'instruction suivante sur une plate-forme Unix :

setenv REPORTS60_PATH
/home/tkostin/pay:/home/tkostin/receive:DB

Report Builder effectue d'abord sa recherche dans le répertoire /home/tkostin/pay. S'il ne trouve pas le fichier en question, il le recherche dans /home/tkostin/receive. S'il ne le trouve toujours pas, il le recherche dans la base de données à laquelle vous vous êtes connecté en début de session Report Builder.


REPORTS60_TERMINAL

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

REPORTS60_TERMINAL=C:\mytermdefs

Cette variable d'environnement permet de localiser les définitions de terminal que vous utilisez dans vos états en mode caractère. Le chemin indiqué pour cette variable a priorité sur la variable d'environnement ORACLE_TERMINAL.

Définissez la variable REPORTS60_TERMINAL de la même façon que vous le faites pour les autres variables d'environnement sur votre système d'exploitation, sans oublier les règles propres à la plate-forme, telles que la longueur du chemin, etc.


REPORTS60_TMP

Valeur par défaut : aucune

Valeurs valides : tout répertoire sur toute unité

Exemple :

REPORTS60_TMP=C:\tmp

Cette variable d'environnement établit le répertoire dans lequel vous souhaitez stocker des fichiers temporaires Report Builder. Report Builder n'utilise à cette fin qu'un seul répertoire ; n'en définissez qu'un.

Définissez la variable REPORTS60_TMP de la même façon que vous le faites pour les autres variables d'environnement sur votre système d'exploitation, sans oublier les règles propres à la plate-forme, telles que la longueur du chemin, etc. Si vous ne définissez pas la variable REPORTS60_TMP, elle prend par défaut la valeur du répertoire de travail en cours.


REPORTS60_USEREXIT

Valeur par défaut : aucune

Valeurs valides : toute bibliothèque de liens dynamiques de sortie utilisateur (avec son chemin absolu)

Exemple :

REPORTS60_USEREXIT=C:\mydll.dll;d:\mynew.dll;e:\bin\speed.dll

Ce paramètre vous permet de définir plusieurs fichiers DLL qui seront utilisés par Report Builder et ses exécutables associés (Reports Runtime, par exemple). Ces fichiers DLL sont des modules de programme créés par vous et qui seront appelés par les exécutables Report Builder.

REPORTSS60_USEREXITS peut indiquer plusieurs fichiers DLL. Utilisez une barre oblique inverse (\) pour séparer les répertoires dans un chemin, et un point-virgule (;) pour séparer les chemins complets.

Si cette valeur n'est pas définie explicitement, Report Builder recherche 60xtb32.dll en fonction de la variable de chemin du système.


UI_ICON

Valeur par défaut : aucune

Valeurs valides : tout répertoire accessible sur toute unité

Exemple :

UI_ICON=C:\icon

Cette variable d'environnement établit le répertoire dans lequel vous souhaitez stocker des icônes pour boutons utilisées dans votre présentation. Report Builder n'utilise à cette fin qu'un seul répertoire ; n'en définissez qu'un.

Définissez la variable UI_ICON de la même façon que vous le faites pour les autres variables d'environnement sur votre système d'exploitation, sans oublier les règles propres à la plate-forme, telles que la longueur du chemin, etc.


USERNAME

Valeur par défaut : aucune

Valeurs valides : tout nom utilisateur Oracle valide (sans le préfixe OPS$)

Exemple :

USERNAME=dsanvita

Ce paramètre indique la partie variable d'un compte de connexion par défaut. Pour plus d'informations sur la définition du paramètre USERNAME, reportez-vous à la documentation de votre base de données.


WIN_REMOTE_SESSIONS

Valeur par défaut : aucune

Valeurs valides : 0-33

Lorsque vous tentez de vous connecter, si vous recevez l'un des messages d'erreur compris entre ORA-3100 et ORA-3199, il se peut que la mémoire réelle soit insuffisante pour établir un tampon de communication avec un serveur Oracle. NETINIT7.EXE résout ce problème en réservant de l'espace mémoire pour les connexions de serveur.

Ce paramètre définit le nombre de connexion à un serveur éloigné pour lequel NETINIT7 doit réserver de l'espace mémoire. Rappelez-vous les règles suivantes lorsque vous définissez le paramètre WIN_REMOTE_SESSIONS :

•	Si vous définissez WIN_REMOTE_SESSIONS à 0, NETINIT7 ne réserve aucun espace mémoire pour les connexions de serveur éloigné.

•	La définition de WIN_REMOTE_SESSIONS aux valeurs 1 à 33 réserve de l'espace mémoire pour le nombre de connexions indiqué. Notez que NETINIT7 réserve 12 Ko de mémoire réelle pour chaque connexion de serveur éloigné.

•	La valeur par défaut proposée pour WIN_REMOTE_SESSIONS est 5. La définition de WIN_REMOTE_SESSIONS à cette valeur doit créer un nombre de sessions suffisant pour vous permettre de lancer plusieurs produits.

•	Si vous n'ajoutez pas le paramètre WIN_REMOTE_SESSIONS, NETINIT7 réserve de l'espace mémoire pour une connexion de serveur éloigné.

Pour utiliser NETINIT7, procédez comme suit :

1	Configurez le nombre de sessions en ajoutant le paramètre WIN_REMOTE_SESSIONS.

2	Créez l'icône NETINIT7 dans votre groupe de programmes Oracle. (Pour plus d'informations sur la création des icônes, reportez-vous à la documentation Microsoft Windows.) Entrez le chemin suivant dans le champ Ligne de commande de la boîte de dialogue Propriétés d'élément du programme Windows :

ORACLE_HOME\bin\netinit7.exe

3	Lancez NETINIT7 en cliquant deux fois sur l'icône dans le groupe de programmes Oracle. Assurez-vous d'avoir lancé NETINIT7 avant de démarrer un produit. Si vous voulez que NETINIT7 soit lancé automatiquement au démarrage de Windows, ajoutez l'icône NETINIT7 dans le groupe de programmes Démarrer de Windows.

NETINIT7 tente de réserver de l'espace mémoire réelle pour le nombre configuré de connexions de serveur. S'il ne peut pas affecter l'espace mémoire nécessaire, il affiche un message d'avertissement et indique le nombre réel de sessions pour lequel il a affecté de l'espace mémoire.

Après avoir affecté de l'espace mémoire, NETINIT7 se minimalise. La remise à l'état initial de NETINIT7 affiche le nombre total de sessions configuré ainsi que la quantité totale de mémoire utilisée. La fermeture de NETINIT7 libère toute la mémoire de session inutilisée. Si une application utilise encore de la mémoire de session, NETINIT7 vous signale que cette application doit être fermée avant que la mémoire de session puisse être libérée.

Remarque : Si vous démarrez un produit avant NETINIT7, celui-ci affecte sa propre mémoire de session, laquelle n'est pas reconnue par NETINIT7. NETINIT7 tente d'affecter la mémoire de session configurée en plus de la mémoire déjà affectée par le produit que vous avez démarré.


XMITTR(utilisateurs DOS seulement)

Valeur par défaut : aucune

Valeurs valides : même valeur qu'indiquée dans votre fichier DOS CONFIG.ORA

Ce paramètre ne s'applique qu'aux utilisateurs d'exécutables en mode protégé Oracle DOS. Vérifiez votre fichier CONFIG.ORA qui se trouve dans le répertoire principal (home) DOS Oracle. Si le paramètre XMMITR est indiqué dans CONFIG.ORA, vous devez le définir à la même valeur dans la base de registres. Si cette variable n'est pas indiquée dans vos fichiers DOS CONFIG.ORA, il n'est pas nécessaire de la définir dans la base de registres.

XMMITR (Extended Memory Manager Interrupt Vector) est une variable indiquant le vecteur d'interruption à utiliser pour le point d'entrée des services d'interruption du gestionnaire de mémoire étendue/pilote de périphérique de transition de mode XMM/MTD. Pour définir un vecteur différent, le nouveau vecteur d'interruption doit être exprimé sous forme décimale. XMMITR ne doit être utilisé que si un autre programme dans votre système nécessite des interruptions de numération décimale 100 ou hexadécimale 64.

Remarque : Ne définissez pas le paramètre XMMITR à 103 lorsque vous utilisez un produit de gestion mémoire réalisé par des tiers, tel que QEMM, 386MAX, CEMM ou EMM386. Si vous le faites, vous vous exposez à un comportement inattendu après le lancement de SQLPME et de SQL*Net.


A propos des fichiers de ressources de Form Builder

  Rubriques connexes

Des ressources sont des ensembles de données apparentées. Une application créée avec le support Oracle Terminal comprend des ressources qui décrivent son comportement et son aspect. Plus précisément, les fichiers de ressources de Form Builder définissent les attributs logiques de conception et d'exécution et les associations de touches pour Form Builder.

En utilisant Oracle Terminal pour éditer le fichier de ressources de Form Builder de votre plate-forme, vous pouvez :

•	associer une séquence de touches à une fonction d'une application en définissant une association de touches.

•	associer une séquence de touches à un déclencheur sur touche de Form Builder en définissant une association de touches.

•	modifier l'aspect (police de caractères, motif, couleur, etc.) d'un élément propre à Form Builder.

Remarque : Les noms de fichiers de ressources sont propres à la plate-forme considérée. Dans Microsoft Windows, la présentation d'une application Form Builder est définie par le fichier de ressources FMRUSW.RES.


A propos de l'utilisation de Oracle Terminal pour reconfigurer les correspondances de touches

  Rubriques connexes

Les fichiers de ressources associent des fonctions d'application à des touches, en utilisant des associations de touches.

Une association de touches permet de lier une touche à une fonction d'une application. Lorsque vous liez une touche à une fonction, le programme exécute la fonction lorsque vous appuyez sur la touche.

En définissant des associations de touches, vous pouvez intégrer plusieurs claviers pour qu'une application semble identique sur chacun d'eux.

Dans certains cas, vous pourrez définir votre propre correspondance de touches pour une fonction Form Builder spécifique. Par exemple, sous Microsoft Windows, la correspondance de touches par défaut de [Afficher touches] est Ctrl+F1. En utilisant Oracle Terminal, vous pouvez reconfigurer la fonction [Afficher touches] en utilisant Ctrl+F2 ou la combinaison de touches de votre choix.

Lorsque vous créez un déclencheur Key-Fn ou Key-Other, vous devez utiliser Oracle Terminal pour associer une touche à la fonction Key-Fn ou Key-Other. Lorsque vous créez une association de touches, le déclencheur est activé dès que la séquence de touches qui lui est associée est effectuée par un utilisateur.

Les associations de touches que vous créez avec Oracle Terminal apparaissent automatiquement dans la fenêtre Afficher touches lorsque l'utilisateur appelle la fonction Afficher touches.

Remarque : Chaque association de touches doit être unique. Lorsque vous en définissez une, confrontez-la à chaque catégorie d'association pour vous assurer qu'il n'en existe pas d'autre.

De plus, certaines fonctions ont plusieurs associations de touches.

Par exemple, [Accept] est associé à la touche F10, ainsi qu'à la touche Retour, selon le contexte. Par conséquent, afin de créer des associations cohérentes entre les séquences de touches et les fonctions, vous devez modifier l'association de touches pour chaque instance.

Sur certaines plate-formes, il n'est pas possible de reconfigurer toutes les touches. Par exemple, dans Microsoft Windows, étant donné que les touches sont définies dans le pilote de périphérique clavier Windows, certaines d'entre elles ne peuvent pas être reconfigurées par Oracle Terminal. Les combinaisons de touches qui font partie intégrante de Windows, comme Alt-F4 (Fermer fenêtre) et F1 (Aide) ne peuvent pas être reconfigurées. En général, les touches faisant partie du clavier « étendu » ne peuvent pas non plus être reconfigurées. Parmi ces touches figurent le pavé numérique, les touches fléchées et les touches d'édition qui sont de couleur grise sur le clavier, Impr écran, Arrêt défil et Pause.

Oracle prend uniquement en charge la reconfiguration des touches F0 à F9.


Reconfiguration d'une association de touches de Form Builder

  Rubriques connexes

Pour reconfigurer une association de touches de Form Builder:

1	Lancez Oracle Terminal.

2	Ouvrez le fichier de ressources Form Builder approprié (sous Microsoft Windows, ouvrez le fichier FMRUSW.RES).

Remarque : Avant de modifier un fichier de ressources de Form Builder, vous devez en créer une copie de sauvegarde.

3	Choisissez Fonctions [image] Editer touches.

L'Editeur d'association de touches apparaît et affiche les associations de touches par catégorie.

4	Cliquez deux fois sur une catégorie et modifiez "Action" et "Association".

Par exemple, pour modifier la correspondance de touches de [Afficher touches], cliquez deux fois sur windows-sqlforms, indiquez l'association de touches souhaitée de Afficher touches, puis cliquez sur OK.

5	Choisissez Fichier [image] Enregistrer pour enregistrer vos modifications.

6	Choisissez Fonctions [image] Générer pour générer vos modifications et créer un nouveau fichier de ressources comprenant les modifications que vous avez apportées à l'association de touches.

Un message d'alerte vous indique que le fichier de ressources a été correctement généré. Validez-le.

7	Choisissez Fichier [image] Enregistrer pour enregistrer vos modifications dans le nouveau fichier de ressources.

8	Exécutez Form Builder pour utiliser votre nouvelle association de touches.


Création d'une association de touches pour un déclencheur sur touche

  Rubriques connexes

Pour créer une association de touches pour un déclencheur sur touche :

1	Dans Form Builder, créez votre déclencheur Key-Fn ou Key-Other.

2	Sous Oracle Terminal, ouvrez le fichier de ressources Form Builder approprié (sous Microsoft Windows, ouvrez le fichier FMRUSW.RES).

3	Choisissez Fonctions [image] Editer touches pour appeler l'Editeur d'association de touches.

4	Dans cet éditeur, cliquez deux fois sur windows-sqlforms pour appeler la fenêtre de définition d'associations de touches.

5	Cliquez sur le bouton Insérer ligne, puis entrez l'action correspondant à votre déclencheur Key-Fn ou Key-Other. (Le tableau ci-après ne s'applique qu'à Microsoft Windows.)

Déclencheur Key-Fn	Action MicrosoftW	Code MicrosoftW
KEY-F0	User Defined Key 0	82
KEY-F1	User Defined Key 1	83
KEY-F2	User Defined Key 2	84
KEY-F3	User Defined Key 3	85
KEY-F4	User Defined Key 4	86
KEY-F5	User Defined Key 5	87
KEY-F6	User Defined Key 6	88
KEY-F7	User Defined Key 7	89
KEY-F8	User Defined Key 8	90
KEY-F9	User Defined Key 9	91
Par exemple, si vous avez créé un déclencheur KEY-F3, entrez :

 User Defined Key 3

dans le champ Action.

6	Indiquez une association de touches pour votre déclencheur Key-Fn, puis cliquez sur OK.

Entrez par exemple :

Action	Association
User Defined Key 3	Ctrl+F2
7	Cliquez sur Actions produit pour appeler l'Editeur d'actions produit.

8	Cliquez deux fois sur la catégorie sqlforms.

9	Cliquez sur le bouton Insérer ligne, entrez l'action, le code et la description de votre déclencheur Key-fn, puis cliquez sur OK.

Par exemple, si vous créez un déclencheur KEY-F3 qui appelle un système d'aide, sous Microsoft Windows, entrez :

Action	Code	Description
User Defined Key 3	85	[Système d'aide]
10	Quittez les éditeurs d'actions produit et d'association de touches en cliquant sur OK pour chacun d'eux, puis choisissez Fichier [image] Enregistrer.

11	Choisissez Fonctions [image] Générer pour générer vos modifications et créer un nouveau fichier de ressources, comprenant vos modifications.

12	Choisissez Fichier [image] Enregistrer pour enregistrer vos modifications dans le nouveau fichier de ressources.

13	(Etape facultative) Dans Form Builder, définissez la propriété Description de l'aide sur touches de votre déclencheur à Vrai si vous voulez que l'association de touches de votre déclencheur s'affiche dans la fenêtre Afficher touches.


A propos de l'utilisation de Oracle Terminal pour modifier les attributs logiques de Form Builder

  Rubriques connexes

Outre la possibilité de définir les attributs visuels nommés et par défaut de Form Builder, vous avez également celle de modifier l'aspect (les attributs logiques) d'une application Form Builder en modifiant les fichiers de ressources de Form Builder.

Les attributs logiques de Form Builder sont répartis en deux groupes : mode-caractère (cm_logicals) et interface graphique (forms_logicals).

Remarque : Comme le nombre d'attributs logiques d'interface graphique pouvant être définis à l'aide d'Oracle Terminal est limité, vous devez utiliser Form Builder pour créer des attributs visuels nommés pour les éléments d'interface graphique de votre choix au lieu d'utiliser Oracle Terminal pour modifier le fichier de ressources de Form Builder.

A propos de la priorité des attributs

Lorsque vous éditez les fichiers de ressources Form Builder, vous indiquez des attributs de police et de couleur pour les attributs logiques d'interface graphique ou en mode-caractère tels que field-current, field-non-current, pushbuttoncurrent, field-queryable, etc.

A la modification des fichiers de ressources de Form Builder, viennent s'ajouter d'autres méthodes de définition des attributs d'affichage des objets Form Builder. Vous pouvez :

•	accepter les attributs par défaut de Form Builder ;

•	définir des attributs visuels personnalisés ;

•	définir des attributs logiques en utilisant Oracle Terminal ;

•	définir des attributs d'affichage en utilisant votre gestionnaire de fenêtres.

Dans de nombreux cas, en fonction de la méthode choisie, vous pouvez créer un attribut qui a priorité sur un attribut défini à un niveau supérieur.

Lors de la définition des attributs des objets, tenez compte des règles de priorité des attributs ci-après :

1	Gestionnaire de fenêtres (niveau inférieur)

Les définitions du gestionnaire de fenêtres ont priorité sur les définitions d'Oracle Terminal, sur les attributs visuels définis dans Form Builder, sur les définitions des variables d'environnement locales (base de registres, CONFIG.ORA, etc.) et sur les attributs par défaut de Form Builder.

Par exemple, sous Microsoft Windows, les attributs de couleur des boutons sont gérés exclusivement par Windows. Les attributs de couleur que vous créez et appliquez aux boutons, dans Form Builder, sont sans effet sur les boutons.

Pour modifier les attributs de couleur d'un bouton dans un environnement Microsoft Windows, utilisez le Panneau de configuration de Microsoft Windows.

2	Définitions d'Oracle Terminal

Les définitions d'Oracle Terminal ont priorité sur les attributs visuels définis dans Form Builder, sur les définitions des variables d'environnement locales et sur les attributs par défaut de Form Builder.

Supposons par exemple que vous créez un attribut visuel personnalisé pour les éléments texte de votre application Forms afin que les éléments texte apparaissent en gris. Supposons également que vous utilisez Oracle Terminal pour définir tous les éléments modifiables de couleur cyan. Lorsque vous exécutez votre application Forms, tous les éléments texte apparaissent en gris, mais lorsque vous appelez le mode Saisie interrogation, ils apparaissent en cyan.

Dans cet exemple, la définition d'Oracle Terminal a priorité sur l'attribut de niveau supérieur (l'attribut visuel personnalisé créé lors de la conception).

3	Attributs visuels créés par Form Builder

Les attributs visuels créés par Form Builder ont priorité sur les définitions des variables d'environnement locales (base de registres, CONFIG.ORA, etc.) et sur les attributs par défaut de Form Builder.

Par exemple, supposons que vous créez et appliquez un attribut visuel nommé aux éléments texte de votre application Forms. Supposons également que vous définissez la variable d'environnement locale FORMS60_DEFAULTFONT dans la base de registre (ou dans CONFIG.INI) de sorte que les libellés d'élément soient affichés en Courier 10.

Lors de l'exécution, votre attribut visuel a priorité, et Forms Builder affiche tous les éléments texte en fonction des propriétés définies par votre attribut visuel nommé.

4	Définition des variables d'environnement locales

Les définitions des variables d'environnement locales (base de registres, CONFIG.ORA, etc.) ont priorité sur les attributs par défaut de Form Builder.

Par exemple, si vous éditez votre fichier de base de registres et définissez la police par défaut (FORMS60_DEFAULTFONT) à Courier 10, Form Builder affiche les libellés d'élément en Courier 10.

Dans cet exemple, la police par défaut de la base de registres a priorité sur les attributs de police par défaut des éléments.

5	Attribut par défaut de Form Builder (niveau supérieur)

Form Builder applique les attributs par défaut à chaque objet. Lors de l'exécution, il recherche les caractéristiques spécifiques de couleur, de motif et de police d'un objet, puis affiche celui-ci avec ses attributs par défaut.


Modification des attributs logiques de Form Builder

  Rubriques connexes

Pour modifier un attribut logique de Form Builder :

1	Lancez Oracle Terminal.

2	Sous Oracle Terminal, ouvrez le fichier de ressources Form Builder approprié (sous Microsoft Windows, ouvrez le fichier FMRUSW.RES).

3	Choisissez Fonctions [image] Editer attributs.

4	Sélectionnez cm_logicals ou form_logicals dans la liste déroulante Liste d'attributs.


A propos des options d'édition de nœuds d'attributs
A propos des options d'édition de noeuds d'attributs

La fenêtre d'édition de noeuds d'attributs comporte des options de définition de police et d'éléments de couleur d'un attribut logique. Ces options sont décrites ci-après.

Attributs de police

Les attributs de police sont les suivants :

•	Police

•	Taille

•	Style

•	Epaisseur

•	Largeur

Lors de l'exécution, Form Builder transmet ces options au gestionnaire de fenêtres. Si la police que vous indiquez n'est pas disponible dans le système d'exploitation runtime, Form Builder utilise la police dont les caractéristiques sont les plus proches de celles que vous avez indiquées.

Attributs de couleur et de motif de remplissage

Dans une définition d'attributs visuels nommés ou personnalisés, vous pouvez définir les attributs de couleur et de motif suivants :

Couleur de premier plan et d'arrière-plan  La couleur est appliquée aux objets en une couche une couche de premier plan et une couche d'arrière-plan. Indiquez la couleur de chaque couche en définissant les attributs Couleur de premier plan et Couleur d'arrière-plan.

Motif  Vous pouvez définir l'attribut Motif à l'un des motifs prédéfinis pour votre système. Les motifs sont identifiés par leur nom. Par exemple, le motif 45thinline est un motif composé de lignes diagonales minces sur un fond uni.

Incidence du motif de remplissage sur les attributs de couleur

Form Builder dessine le motif sélectionné dans les couleurs de premier plan et d'arrière-plan appliquées à un objet, comme le montre la palette de motifs de remplissage, une fois que vous avez sélectionné les couleurs de premier plan et d'arrière-plan.

•	Lorsque le motif en cours est Solid (carré noir dans la palette de motifs), l'objet est affiché dans la couleur indiquée par l'attribut Couleur de premier plan.

•	Lorsque le motif en cours est Transparent (carré blanc dans la palette de motifs de l'Editeur de présentation), l'objet est affiché dans la couleur indiquée par l'attribut Couleur d'arrière-plan.

•	Lorsque le motif en cours est Aucun, l'objet est transparent, mais ni la couleur de premier plan ni la couleur d'arrière-plan ne sont appliquées (ce qui se trouve derrière l'objet transparaît).

Remarque : Vous ne pouvez pas sélectionner le motif Aucun dans la palette des motifs de remplissage, mais seulement des types dans la palette des propriétés, et le motif n'est pas valide pour les éléments. Pour obtenir les meilleurs résultats possibles, utilisez le motif Transparent pour les éléments (carré blanc plein dans la palette de motifs de l'Editeur de présentation).


A propos des attributs logiques en mode caractère de Form Builder

Utilisez Oracle Terminal pour changer les options par défaut des attributs visuels propres à Form Builder pour les terminaux en mode caractère. Ces attributs sont énumérés ci-après.

Nom d'attribut	Contexte d'utilisation de l'attribut
ToolkitDisabled	Attribut générique
ToolkitEnabled	Attribut générique
ToolkitCurrent	Attribut générique
ToolkitDisabledMnemonic	Attribut générique
ToolkitEnabledMnemonic	Attribut générique
ToolkitCurrentMnemonic	Attribut générique
NormalAttribute	Arrière-plan normal pour les fenêtres
Normal	Elément texte
Bold	Gras pour tous les éléments (cases à cocher incluses)
Bold-text	Boilerplate
Bold-inverse	Gras inversé pour tous les éléments
Underline	Souligné pour tous les éléments
Boilerplate	Texte constant
WindowTitleCurrent	Titre de la fenêtre active
Menu	Menu sélectionné
Sub-menu	Sous-menu sélectionné
Full-screen-title	Titre d'écran
Menu-title	Titre du menu en cours
Menu-subtitle	Sous-titre de menu en cours
Menu-bottom-title	Titre en cours au bas du menu
MenuItemEnable	Elément de menu non courant activé
MenuItemDisabled	Elément de menu désactivé
MenuItemSelect	Elément de menu en cours
MenuItemEnableMnemonic	Mnémonique d'un élément de menu activé
MenuItemDisableMnemonic	Mnémonique d'un élément de menu désactivé
MenuItemSelectMnemonic	Mnémonique de l'élément de menu en cours
TextControlCurrent	Editeur de texte ou champ en cours
Field-current	Couleur de l'élément texte en cours
TextControlNonCurrent	Editeur de texte ou champ non courant désactivé
Field-non-current	Couleur d'élément texte non sélectionné
TextControlSelect	Texte sélectionné dans un éditeur de texte ou un champ activé
Field-selected-current	Elément texte en cours sélectionné
Field-selected-non-current	Elément texte non sélectionné
Field-queryable	Champ que l'utilisateur peut interroger.
PushButtonDefault	Bouton par défaut ou en cours
PushButtonNonDefault	Bouton qui n'est pas le bouton par défaut
Button-non-current	Bouton non en cours
Button-current	Bouton en cours
Alerte	Texte d'alerte
AlertIcon	Icône dans une fenêtre d'alerte
AlertMessage	Texte du message dans une fenêtre d'alerte
AlertBackground	Arrière-plan d'alerte
Listtitle	Titre de liste de valeurs (LOV)
ListItemSelect	Elément sélectionné dans une liste de texte
ListItemNonSelect	Elément non sélectionné dans une liste de texte
ListPrefix	Préfixe de liste
ScrollThumb	"Ascenseur" de barre de défilement


A propos des attributs logiques d'interface graphique de Form Builder

Utilisez Oracle Terminal pour changer les valeurs par défaut d'interface graphique des attributs visuels spécifiques de Form Builder. Ces attributs sont énumérés ci-après.

Nom d'attribut	Contexte d'utilisation de l'attribut
TextControlFailValidation	Elément texte dont l'enregistrement a échoué
ItemQueryDisabled	Elément texte explicitement désactivé par l'utilisateur, pour ne pas être inclus comme critère d'interrogation
Status-Message	Message apparaissant dans la barre d'état
Status-Hint	Message d'aide apparaissant dans la barre d'état
Status-Empty	Barre d'état sans texte
Status-Items	Indicateurs (témoins) de la barre d'état
Scroll-bar-fill, Inverse, Inverse-underline, Bold-underline, Bold-inverse-underline	Attributs logiques qui ne sont pas propres à Form Builder. Ils peuvent donc être remplacés par des attributs visuels définis par le gestionnaire de fenêtres.


Définition des paramètres


A propos des paramètres d'application Forms

Les paramètres constituent une solution simple à la définition des valeurs des entrées que demande une application Forms au démarrage. Les paramètres d'application Forms sont des variables de type CHAR, NUMBER ou DATE que vous définissez lors de la conception.

Vous pouvez transmettre des valeurs de paramètre à une application Forms lorsqu'une application exécute les procédures internes CALL_FORM, NEW_FORM, OPEN_FORM ou RUN_PRODUCT.

Les utilisateurs peuvent indiquer des valeurs de paramètre d'application Forms au démarrage de l'application Forms en les entrant dans la ligne de commande, en respectant la syntaxe standard de ligne de commande.

Une valeur de paramètre, entrée dans la ligne de commande, remplace la valeur par défaut indiquée pour le paramètre lors de la conception.

Dans l'exemple ci-dessous, MODULE, USERID et DEBUG sont des paramètres de ligne de commande prédéfinis ; CITY est un paramètre d'application Forms défini par l'utilisateur dans l'application Forms trade lors de la conception.

ifrun60 MODULE=trade USERID=scott/tiger debug=YES city="BOGOTA"

Remarque :  Un paramètre doit avoir été défini lors de la conception pour que vous puissiez indiquer sa valeur lors du démarrage de l'application Forms - c'est-à-dire que l'application Forms doit attendre la valeur de paramètre qu'elle reçoit au démarrage et qui est indiquée soit dans la ligne de commande, soit par une liste de paramètres. Toute tentative de transmission d'une valeur de paramètre qui n'existe pas dans l'application Forms génère une erreur.

Les sections ci-après expliquent comment créer des paramètres d'une application Forms lors de la conception, comment définir des valeurs de paramètre et y faire référence par programme, et comment créer des listes de paramètres pour transmettre des valeurs de paramètre aux applications Forms appelées lors de l'exécution.


Création d'un paramètre

  Rubriques connexes

Lorsque vous créez un paramètre, vous indiquez son nom, son type de données, sa longueur et sa valeur par défaut.

Pour créer un paramètre :

1	Dans le Navigateur d'objet, créez un paramètre.

Pour créer un paramètre, sélectionnez le nœud Paramètres dans le Navigateur d'objet, puis choisissez Navigateur [image] Créer.

2	Dans la Palette de propriétés, définissez les propriétés de paramètres de votre choix :

Type de données de paramètre	Défini à CHAR, NUMBER ou DATE.
Valeur initiale de paramètre	Valeur par défaut du paramètre. Doit être compatible avec le type et la longueur des données du paramètre.
Longueur	Nombre maximum de caractères que le paramètre peut stocker. La longueur n'est valide que pour les paramètres de type CHAR, qui peuvent avoir jusqu'à 64 Ko de long. La valeur par défaut des paramètres NUMBER est de 23 octets, et celle des paramètres DATE de 7 octets.
Nom	Nom interne du paramètre.


Référence à des paramètres

Dans PL/SQL, vous pouvez faire référence aux valeurs des paramètres d'application Forms ou les définir en utilisant la syntaxe des variables de lien.

Pour faire référence à un paramètre :

Faites précéder le nom du paramètre par le mot réservé PARAMETER. Par exemple :

:PARAMETER.nom_paramètre := 'TOKYO';

ou

:block.item := :PARAMETER.nom_paramètre;


A propos des références indirectes à des paramètres

  Rubriques connexes

Vous ne pouvez pas utiliser la syntaxe de variable de lien pour faire directement référence à un paramètre d'un déclencheur, d'une routine nommée par l'utilisateur, d'une commande de menu ou d'une procédure stockée qui n'est pas déclarée dans le même module que le paramètre lui-même.

Pour faire référence indirectement à un paramètre :

Utilisez les procédures internes NAME_IN et COPY pour définir indirectement la valeur du paramètre et y faire référence :

Name_In('PARAMETER.mon_param')
Copy('SAINT-JEAN', 'PARAMETER.mon_param')

Remarque : Lorsque vous faites indirectement référence à des paramètres, leurs noms sont entre apostrophes, mais ne sont pas précédés des deux-points.


A propos des références aux paramètres lorsque vous définissez les propriétés d'objet

Vous pouvez faire référence aux paramètres d'application Forms dans les propriétés d'objet suivantes :

•	Clauses WHERE et ORDER BY pour un bloc de données (indiquées dans la Palette de propriétés lorsque vous sélectionnez le bloc dans le Navigateur d'objet ou par programme, à l'aide de SET_BLOCK_PROPERTY)

•	Propriété Elément récepteur pour une liste de valeurs (indiquée dans la boîte de dialogue Correspondance de colonnes de LOV)

•	Propriété Valeur initiale pour un élément (indiquée dans la Palette de propriétés lorsque vous sélectionnez un élément dans le Navigateur d'objet.)

•	Propriétés Valeur minimum autorisée et Valeur maximum autorisée pour un élément texte (indiquées dans la Palette de propriétés lorsque vous sélectionnez un élément texte).


Création et transmission de listes de paramètres

Les paramètres sont transmis, à l'aide d'une liste de paramètres, aux applications Forms appelées. Une liste de paramètres est un élément nommé par programme, c'est-à-dire une liste de noms de paramètre (appelés clés) et de leurs valeurs.

Vous pouvez transmettre des valeurs de paramètre aux applications Forms appelées par les procédures internes CALL_FORM, OPEN_FORM et NEW_FORM.  Vous pouvez également transmettre des valeurs de paramètre à d'autres outils Oracle à l'aide de la procédure RUN_PRODUCT.

Un paramètre que vous entrez dans une liste de paramètres peut être soit un paramètre de texte, soit un paramètre de données. Le type de paramètre détermine la façon dont sa valeur est interprétée.

Paramètres de texte	La valeur d'un paramètre de texte, transmise à un produit appelé, est une chaîne de type CHAR qui peut représenter :

•	un paramètre d'application Forms défini par l'utilisateur dans une application Forms appelée par les sous-programmes intégrés CALL_FORM, OPEN_FORM ou NEW_FORM ;

•	une ligne de commande ou un paramètre défini par l'utilisateur pour un produit appelé à l'aide du sous-programme intégré RUN_PRODUCT.

Paramètres de données	La valeur d'un paramètre de données, transmis à un produit appelé, est toujours le nom d'un groupe d'enregistrements défini dans l'application Forms en cours. (Un groupe d'enregistrements est une structure de données qui stocke les enregistrements obtenus par une interrogation ou une affectation par programme). Les paramètres de données sont utilisés pour transmettre des données aux produits appelés à l'aide du sous-programme intégré RUN_PRODUCT. Vous ne pouvez pas transmettre de paramètres de données à des applications Forms.

Le tableau suivant indique la structure d'une liste comportant quatre paramètres :

Clé	Type de paramètre	Valeur
CITY	Paramètre_texte	'BOGOTA'
CATEGORY	Paramètre_texte	'EXPORTS'
MULTIPLIER	Paramètre_texte	'.0275'
NEW_DATA	Paramètre_données	'GROUPE_ENR8'


Création d'une liste de paramètres

Pour créer et manipuler une liste de paramètres, utilisez les sous-programmes intégrés suivants :

•	ADD_PARAMETER

•	CREATE_PARAMETER_LIST

•	DELETE_PARAMETER

•	DESTROY_PARAMETER_LIST

•	GET_PARAMETER_ATTR

•	GET_PARAMETER_LIST

•	SET_PARAMETER_ATTR

Conseil :  Lorsque vous créez des listes de paramètres, n'oubliez pas que :

•	la procédure CREATE_PARAMETER_LIST est une fonction dont la valeur de retour est l'ID de la liste en cours de création. Vous devez affecter l'ID à une variable que vous avez déclarée comme étant de type PARAMLIST (type de données Form Builder).

•	Un appel à la procédure CREATE_PARAMETER_LIST crée une liste de paramètres qui ne contient encore aucun paramètre. Pour en ajouter, exécutez la procédure ADD_PARAMETER.

•	Les procédures GET_PARAMETER_ATTR et SET_PARAMETER_ATTR peuvent être utilisées pour extraire et définir le type et la valeur d'un paramètre qui a été ajouté à une liste de paramètres à l'aide de la procédure interne ADD_PARAMETER. N'utilisez pas ces procédures internes pour extraire ou définir la valeur d'un paramètre d'application Forms qui a été défini lors de la conception. Reportez-vous plutôt au paramètre utilisant une syntaxe de variable de lien ou une référence indirecte.

•	La procédure GET_PARAMETER_LIST est une fonction qui retourne l'ID ParamList d'une liste de paramètres indiquée, et qui peut être comparée aux fonctions FIND-* utilisables pour les autres types d'objet.

L'exemple ci-dessous crée une liste de paramètres, y ajoute deux paramètres, puis transmet la liste à une application Forms à l'aide de la procédure CALL_FORM :

/*
** Déclarer une variable de type Paramlist destinée à stocker
** l'ID de liste de paramètres
*/
DECLARE
   list_id   ParamList;
BEGIN
/*
** Créer une liste de paramètres appelée "input_params"
*/
   list_id := Create_Parameter_List('input_params');

/*
** Ajouter deux paramètres à la liste pour transmettre les valeurs de chaque
** paramètre défini par l'utilisateur dans l'application Forms cible ;
** pour chaque paramètre, indiquez sa clé, son type (texte ou données) et sa valeur.
*/
   Add_Parameter(list_id, 'CITY',TEXT_PARAMETER,'BOGOTA');
   Add_Parameter(list_id, 'CATEGORY', TEXT_PARAMETER, 'EXPORTS');

/*
** Puis appeler l'application Forms en faisant référence à
** l'ID de liste de paramètres dans le dernier argument de la procédure CALL_FORM.
*/
   Open_Form('trade',ACTIVATE,NO_SESSION,list_id);
END;

Liste de paramètres par défaut

Chaque application Forms comporte une liste de paramètres par défaut, appelée Default. Cette liste contient tous les paramètres d'application Forms qui ont été définis dans l'application Forms lors de la conception. Par exemple, si vous définissez les paramètres p1, p2 et p3 dans l'application Forms A lors de la conception, ces paramètres sont automatiquement inclus dans la liste de paramètres par défaut de l'application Forms A.

La liste de paramètres par défaut peut être transmise à une application Forms appelée. Pour cela, il suffit de l'inclure dans la liste d'arguments des procédures internes OPEN_FORM, CALL_FORM ou NEW_FORM.

DECLARE
    the_list PARAMLIST:= Get_Parameter_List('default');
BEGIN
    Open_Form('form_B',ACTIVATE, NO_SESSION,'default');
END;


Transmission d'une liste de paramètres

Pour transmettre un ou plusieurs paramètres à une application Forms appelée, l'application Forms appelante doit effectuer les opérations suivantes dans un déclencheur ou une routine nommée par l'utilisateur :

•	exécuter le sous-programme intégré CREATE_PARAMETER_LIST pour créer par programme une liste de paramètres ;

•	exécuter le sous-programme intégré ADD_PARAMETER pour ajouter un ou plusieurs paramètres à la liste de paramètres ;

•	exécuter le sous-programme intégré DELETE_PARAMETER pour supprimer un ou plusieurs paramètres de la liste de paramètres ;

•	exécuter le sous-programme intégré CALL_FORM, NEW_FORM, OPEN_FORM ou RUN_PRODUCT et inclure le nom ou l'ID de la liste de paramètres à transmettre à l'application Forms appelée.


Indication d'attributs de paramètre

  Rubriques connexes

Lorsque vous utilisez ADD_PARAMETER pour ajouter un paramètre à la liste, vous devez indiquer trois attributs de paramètre :

Clé	Nom du paramètre.

Typeparam	Type de paramètre, soit DATA_PARAMETER soit TEXT_PARAMETER.

Valeur	Valeur du paramètre.  Pour un paramètre de texte (TEXT_PARAMETER), la valeur est toute valeur de type CHAR. Pour un paramètre de données DATA_PARAMETER, la valeur est toujours le nom de type CHAR d'un groupe d'enregistrements défini dans l'application Forms en cours.


A propos de PECS

En tant que développeur de Form Builder ou d'administrateur système, il vous arrivera probablement de vous poser des questions sur les performances de Form Builder et de vos propres applications. PECS (Performance Event Collection Services) de Form Builder vous aidera à répondre aux questions de type :

•	Combien de temps faut-il pour utiliser des LOV sur trois champs de mon application Forms ?

•	Combien de temps faut-il pour exécuter ces déclencheurs ?

•	Combien de factures peut-on sortir par heure ?

•	Ai-je testé tous les déclencheurs de mon application Forms ?

•	Ai-je testé toutes les lignes de mon code PL/SQL ?

Système PECS

Le système PECS se compose de trois parties principales :

•	Procédures internes PECS, utilisées pour définir les événements propres à une application.

•	Assistant PECS, application Form Builder que vous pouvez utiliser pour charger et visualiser des données PECS.

•	Etats PECS, qui vous permettent de visualiser les résultats de vos tests en ligne ou de les imprimer.

Mesures PECS

PECS est un outil de mesure de performances qui n'occupe que peu de place en mémoire et que vous pouvez utiliser pour exécuter les tâches suivantes :

•	Mesure de l'utilisation des ressources pour les événements Form Builder.

La façon la plus simple d'utiliser PECS consiste à mesurer uniquement les événements Form Builder. Dans ce cas, vous n'avez pas besoin d'ajouter de procédures internes PECS à votre code PL/SQL, car Form Builder inclut des événements PECS prédéfinis pour mesurer les performances des objets (déclencheurs, fenêtres, canevas, LOV, messages d'alerte, etc.).

•	Mesure de l'utilisation des ressources pour des événements propres à une application (temps CPU et temps écoulé)

Si vous ajoutez à votre code PL/SQL des appels à des procédures PECS, vous pouvez mesurer la performance d'événements propres à une application et d'événements Form Builder.

•	Localiser les problèmes de performance.

•	Mesurer la couverture.

Lorsque vous testez une application Form Builder, vous pouvez être intéressé par le type de couverture offerte par vos cas de test. L'état PECS Object Coverage vous fournit des informations sur la couverture fournie par vos séries de tests en cours.

L'état PECS Line Coverage fournit des informations sur la couverture du code PL/SQL.


Collecte de données de performance sur les événements Form Builder

Comme Form Builder comprend des événements PECS prédéfinis, vous pouvez mesurer la performance et la couverture sans avoir à modifier votre application. PECS mesure :

•	La performance de toute l'application, des déclencheurs et des LOV.

•	La couverture des procédures, fenêtres, canevas, éditeurs et messages d'alerte, ainsi que la couverture ligne à ligne du code PL/SQL.

Ce processus se décompose en trois étapes :

1	Exécutez votre application avec PECS défini à ON pour collecter des données de performance dans un fichier .DAT en utilisant la commande suivante :

ifrun60 module=myform userid=scott/tiger pecs=on

Ou, pour l'option "Collect PECS Data?" de la boîte de dialogue Runform Preferences, sélectionnez ON.

L'exécution de Form Builder avec PECS crée un fichier binaire PECS ayant comme nom par défaut le nom du module avec l'extension .DAT :

myform.dat

Les données sont écrites dans un fichier et non directement dans la base de données.

2	Chargez les données du fichier .DAT et votre application Forms dans la base de données.

Utilisez l'assistant PECS pour charger votre application Forms et le fichier binaire PECS (.DAT) dans la base de données.

Pour toute information sur l'assistant PECS, reportez-vous à "Utilisation de l'assistant PECS" dans le présent chapitre.

3	Analysez les données.

Une fois le fichier de base de données PECS créé, étudiez les résultats :

•	Utilisez les fenêtres PECS Assistant Data ou Summary pour afficher les résultats en ligne, ou

•	Exécutez les états Performance, Object Coverage ou Line Coverage et visualisez les résultats en ligne ou imprimez-les.

Bien que les procédures internes PECS ne soient pas obligatoires pour collecter les données de performance sur les événements Form Builder, vous pouvez les utiliser pour limiter la portée de vos expériences PECS. Par exemple, si vous êtes intéressé uniquement par les événements de LOV, vous pouvez utiliser la procédure interne PECS.DISABLE_CLASS pour désactiver tous les événements, sauf les événements de LOV.


A propos de la collecte de données de performance sur les événements propres à une application

 Exemples

Pour utiliser PECS pour mesurer des événements propres à une application, commencez par définir les événements à mesurer en ajoutant des procédures internes PECS à votre code PL/SQL. (Pour obtenir des résultats optimaux, définissez uniquement quelques événements importants.)

L'utilisation de PECS pour collecter des données de performance sur des événements propres à une application est un processus en cinq étapes :

•	Regroupement des événements propres à l'application.

•	Définition des événements à mesurer, en utilisant les procédures internes PECS.

•	Exécution de votre application avec PECS.

•	Chargement, dans la base de données, de l'application Forms et des données PECS du fichier.

•	Analyse des données.

Groupement des événements propres à une application

Les événements propres à une application sont les transactions commerciales que vous définissez : par exemple, dans une application bancaire, les événements Dépôt, Retrait et Transfert.

Vous pouvez grouper ce type d'événements en classes pour créer des événements qui permettent un affichage significatif du résultat de vos tests. Dans une application bancaire, vous pourriez créer deux classes :

•	Une classe Banque, composée de trois événements :

•	Evénement Dépôt

•	Evénement Retrait

•	Evénement Transfert

•	Une classe Clients composée de trois événements :

•	Evénement AddCustomer

•	Evénement DeleteCustomer

•	Evénement ChangeCustomer

Définition des événements PECS

Lorsque vous avez choisi la série d'événements à mesurer, préparez votre application à utiliser PECS en ajoutant des procédures internes PECS à votre code PL/SQL :

•	Lancement de PECS :

•	Lors de la conception, en ajoutant la procédure interne PECS.COLLECTOR à votre application (pour collecter uniquement des données sur les événement propres à une application), ou

•	Lors de l'exécution, en appelant PECS à partir de la ligne de commande (pour collecter des données sur les événements Form Builder et sur les événements propres à une application).

•	Ajoutez les classes et les événements dont vous avez besoin en utilisant les procédures internes PECS.ADD_CLASS et PECS.ADD_EVENT.

•	Activez la classe ou l'événement à mesurer en utilisant la procédure interne PECS.ENABLE_CLASS.

•	Définissez les événements à mesurer :

•	Entourez-les de procédures internes PECS.START_EVENT et PECS.END_EVENT, ou

•	Marquez-les à l'aide de PECS.POINT_EVENT.

Pour appeler PECS à partir de la ligne de commande, définissez PECS=ON pour la couverture des objets et PECS=FULL pour la couverture des objets et des lignes.

Remarque : Vous pouvez utiliser les procédures internes PECS dans tous les cas où vous pouvez utiliser d'autres procédures internes Form Builder : déclencheurs, routines nommées par l'utilisateur, commandes PL/SQL de menu et procédures stockées. Bien que vous ne puissiez pas mesurer directement la durée d'une procédure PL/SQL, vous pouvez définir un déclencheur qui appelle la procédure, puis mesurer la durée de ce déclencheur.

Exécution de l'application avec PECS

Une fois que vous avez ajouté des procédures internes PECS à votre application, lorsque vous exécutez l'application Forms, PECS crée automatiquement un fichier binaire contenant les données des tests :

•	Si vous avez lancé PECS à partir de la ligne de commande, le nom par défaut du fichier binaire PECS est le nom de l'application Forms avec l'extension .DAT : myform.dat.

•	Si vous avez lancé PECS en ajoutant la procédure interne PECS.COLLECTOR à votre application, le nom par défaut du fichier binaire PECS est le nom de la première classe que vous avez indiquée en utilisant la procédure interne PECS.ADD_CLASS : banking.dat.

Chargement de l'application Forms et des données PECS dans la base de données

Utilisez l'application assistant PECS pour charger votre application Forms et le fichier binaire PECS dans la base de données. Pour plus d'informations, reportez-vous à "Utilisation de l'assistant PECS" dans le présent chapitre.

Remarque : PECS ne vous demande de stocker votre application Forms dans la base de données que si vous voulez les statistiques de couverture. Cependant, PECS dépend de certaines des tables qui sont créées automatiquement par les scripts des tables de Form Builder 5.0 qui sont exécutés pendant l'installation lorsque vous choisissez l'option "Création de tables de base de données". Si vous n'avez pas choisi cette option, vous - ou votre administrateur de bases de données - devez vous connecter en tant que SYSTEM et exécuter ces scripts SQL, qui se trouvent dans le répertoire SQL de Form Builder.

Analyse des données

Lorsque le fichier PECS .DAT a été chargé dans la base de données, vous pouvez étudier les résultats en utilisant l'assistant PECS :

•	Utilisez les fenêtres Data ou Summary pour afficher les résultats en ligne, ou

•	Exécutez les états Performance, Object Coverage ou Line Coverage et visualisez les résultats en ligne ou imprimez-les.

Etape suivante

Lorsque vous avez analysé les données, vous pouvez décider de poursuivre dans l'une des directions suivantes :

•	Au stade du débogage, modifier l'application et exécuter à nouveau les mêmes tests.

•	Au stade du test de la performance, faire plusieurs passages du même test, calculer la moyenne des statistiques et comparer les résultats aux tests précédents.

•	Au stade du test de la couverture, modifier le test pour ajouter des cas permettant de couvrir davantage de conditions, puis exécuter à nouveau le test et comparer les résultats à ceux des tests précédents.


Collecte des données de performance sur les événements propres à une application - Exemples

Vous avez décidé de mesurer les événements internes de Form Builder et trois événements propres à l'application : Dépôt, Retrait et Transfert. Cet exemple explique comment ajouter les procédures internes PECS pour définir ces événements à PECS.

(Comme vous voulez mesurer les deux types d'événements, vous pourriez avoir lancé PECS dans la ligne de commande, mais cet exemple comprend, pour la démonstration, le lancement de PECS par la procédure interne PECS.COLLECTOR.)

PACKAGE globals IS
/* Nous allons créer un package de variables globales et non de                         */
/* variables locales car les types pecs.event et pecs.class peuvent                     */
/* se trouver dans différentes procédures, déclencheurs et même                        */
/* applications Forms.                                                                 */

/*                                                                                     */
/*   Ajouter les classes.                                                              */
/*                                                                                     */
banking PECS.class  := PECS.Add_Class('Banque');
myform  PECS.class  := PECS.Add_Class(PECS.FORMS);
/*                                                                                     */
/*   Ajouter les événements correspondant à la classe 'Banque'.                        */
/*   Il n'est pas nécessaire d'ajouter les événements de la classe 'Application Forms' */
/*   car ce sont des événements internes prédéfinis.                                  */
withdraw pecs.event  := PECS.Add_Event(banque,'Retrait');
deposit pecs.event   := PECS.Add_Event(banque,'Dépôt');
transfer pecs.event  := PECS.Add_Event(banque,'Transfert');

END globals;

/*   Déclencheur : When-New-Form-Instance                                              */
/*   Activation de PECS                                                                */

BEGIN
PECS.Collector(COLLECT_ON);

/*                                                                                     */
/*   Activation des classes                                                            */
/*                                                                                     */

PECS.Enable_Class(GLOBALS.banking);
/*                                                                                     */
/* Lorsque l'application Forms aura été activée,                                       */
/* les événements d'application Forms seront mesurés.                                  */
/* REMARQUE : Cette ligne n'est pas nécessaire si vous utilisez                        */
/*       l'option de ligne de commande PECS=on.                                        */

PECS.Enable_Class(GLOBALS.myform);
END;

PROCEDURE do_withdraw

/*                                                                                     */
/*   Ce code est celui qui exécute l'événement Retrait.                                */
/*                                                                                     */

DECLARE
withdraw_handle number;

BEGIN

/*                                                                                     */
/*   Lancer l'événement Retrait.                                                       */
/*                                                                                     */

withdraw_handle := PECS.Start_Event(GLOBALS.withdraw,
'Retrait d'espèces');

.
.   /effectuer le retrait/
.

PECS.End_Event(GLOBALS.withdraw,withdraw_handle);
END;


Collecte de données de couverture d'objets

Lorsque vous testez une application Form Builder, vous pouvez également utiliser PECS comme outil d'assurance qualité. L'état PECS Object Coverage vous permet d'évaluer le pourcentage de couverture offerte par votre série de cas de tests en cours.

Lorsque vous exécutez PECS pour collecter des informations sur les événements Form Builder, soit séparément soit avec la collecte d'informations sur des événements propres à une application, vous pouvez exécuter l'état Object Coverage et l'état Performance.

L'étude de l'Object Coverage Report vous permet de voir si votre série de cas de tests en cours porte bien sur tous les objets Form Builder de votre application. Par exemple, vous pouvez vérifier si chaque déclencheur, procédure, alerte, fenêtre et canevas est visité pendant l'exécution de votre série de cas de tests et détecter les domaines pour lesquels vous devrez éventuellement créer de nouveaux cas de tests pour augmenter la couverture.

Remarque : Pour obtenir des statistiques de couverture, vous devez stocker votre application Forms dans la base de données.


Collecte de données de couverture de ligne

Aux tests de simple couverture des cas de tests peuvent s'ajouter les tests de couverture ligne à ligne du code PL/SQL dans les déclencheurs et les procédures. L'état PECS Line Coverage vous permet d'évaluer le pourcentage de couverture de ligne PL/SQL offerte par votre série de cas de tests en cours.

Pour obtenir des données sur la couverture des lignes :

•	Compilez l'application Forms avec debug=ON.

•	Exécutez avec PECS=FULL.

•	Dans l'assistant PECS, sélectionnez la case à cocher Line Coverage.

•	Sélectionnez l'état Line Coverage.

Remarque : Pour collecter des données de couverture de ligne, vous devez utiliser l'option de ligne de commande PECS (PECS=FULL), au lieu d'appeler PECS avec la procédure interne PECS.ENABLE_CLASS.


Utilisation de l'assistant PECS

 Exemples

L'assistant PECS offre les fonctions suivantes :

Pour :	Utilisez la fenêtre : Utilisez la fenêtre :
Charger les données PECS dans des tables	Load
Afficher des données	Data, Summary
Afficher des informations sur les classes et les expériences	Class, Experiment
A propos de la hiérarchie PECS

L'assistant PECS vous demande d'indiquer le nom des occurrences, événements, classes, exécutions et expériences.

Ces termes sont utilisés dans la hiérarchie PECS de la manière suivante :

Le groupe :	Se compose de :
Experiment	Un ou plusieurs passages de test. Les Experiments sont propriétaires des runs.
Run	Un passage (du début à la fin) dans votre application. Un fichier .DAT correspond à un passage d'un Experiment.
Class	Un groupe d'événements liés. Les classes sont propriétaires des événements.
Evénement	Une transaction propre à une application ou à une application Forms, avec un début et une fin définis.
Occurrence	Un exemple d'un événement donné.
Comment utiliser l'assistant PECS

Lorsque vous avez exécuté l'application Forms avec PECS=on, vous êtes prêt à utiliser l'assistant PECS.

1	A l'invite système, entrez, pour lancer l'assistant PECS, la commande ifrun60 module=pecs

L'assistant PECS affiche la fenêtre principale. Vous pouvez passer à d'autres fenêtres en utilisant les boutons ou les commandes du menu Windows.

2	Cliquez sur Load.

L'assistant PECS affiche la fenêtre Load.

3	Remplissez la section "PECS Data" pour sélectionner l'expérience que vous voulez charger dans la base de données.

Si le fichier n'existe pas, un message d'erreur d'ouverture s'affiche.

Remarque : Ne remplissez la section "Connect String" que si vous voulez utiliser une chaîne de connexion différente de celle que vous avez utilisée pour lancer l'application Forms. Pour plus d'informations, appuyez sur Aide.

4	Cochez les cases appropriées.

Les cases "Load PECS data in the database" et "Summarize data" sont cochées par défaut.

Si vous voulez inclure des données de couverture de ligne, cochez la case "Prepare for Line Coverage".

Remarque : Le curseur "occupé" reste affiché pendant toute la préparation de la couverture de ligne.

Si vous voulez supprimer les données de détail après la création des fichiers récapitulatifs, cochez la case "Delete details after summary".

5	Cliquez sur Start.

PECS affiche des messages de confirmation pour chacune des cases à cocher que vous avez sélectionnées.

Lorsque vous avez accepté chaque confirmation, PECS traite les données en affichant des messages d'état dans la zone "Status" pendant le traitement et prépare le résultat pour que vous puissiez l'examiner.

6	Pour afficher les résultats, choisissez Navigation [image] Experiment ou Navigation [image] Class.

7	A partir de la fenêtre Experiment ou Class, lancez une interrogation pour sélectionner l'expérience ou la classe que vous voulez étudier.

PECS affiche les résultats de votre interrogation.

8	Mettez en évidence l'expérience ou la classe de votre choix.

9	Cliquez sur Zoom In.

PECS affiche la fenêtre Summary, qui contient la version résumée des données dans un format semblable à celui des états PECS.

10	Cliquez à nouveau sur Zoom In pour examiner le résultat détaillé d'une expérience PECS.

PECS affiche le résultat détaillé dans la fenêtre Données.

Etats PECS

Pour exécuter les états PECS, choisissez le menu Reports :

•	Choisissez Performance Report pour afficher le temps écoulé et le temps CPU.

•	Choisissez Object Coverage Report pour indiquer que certains événements ou certaines occurrences ont été atteintes.

•	Choisissez Line Coverage Report pour indiquer la couverture de votre code PL/SQL.

Par défaut, Performance Report affiche les données dans la séquence des colonnes affichées sur l'écran Data ou Summary. Pour modifier la séquence dans l'état, modifiez la clause Order By dans la fenêtre Data or Summary Performance Report.

Mise à jour PECS

Pour revoir les données sur les classes et les expériences que vous avez définies, revenez à la fenêtre principale et cliquez sur Class ou Exp (Experiment) :

•	Utilisez la fenêtre Class pour afficher les données sur les classes et les événements que vous avez définis en utilisant les procédures internes PECS.

Cette fenêtre permet d'exécuter une mise à jour minimale des classes. Par exemple, de modifier les noms des classes et d'ajouter des informations sur les versions.

•	Utilisez la fenêtre Experiment pour afficher les données sur les expériences et les passages machine que vous avez définis en utilisant les procédures internes PECS.

Cette fenêtre permet d'effectuer une mise à jour minimum des expériences. Par exemple, de modifier les noms des expériences et d'ajouter des informations sur les commentaires. (Vous avez indiqué le nom de l'expérience dans la fenêtre Load ou dans la ligne de commande en utilisant l'option -n.)

Utilisation des fichiers .DAT

PECS vous permet de charger plusieurs fichiers .DAT préalablement créés afin de réexécuter des expériences ou de calculer la moyenne des statistiques de performance. Par exemple, pour l'application A, vous pouvez utiliser les fichiers .DAT dans la séquence suivante :

•	Expérience N° 1, Passage N° 1 : produit le fichier A.DAT d'origine. Vous évaluez les résultats de couverture du passage N° 1 et décidez d'ajouter davantage de cas de test pour améliorer la couverture.

•	Expérience N° 1, Passage N° 2 : produit un nouveau fichier A.DAT.

•	Lorsque vous chargez également le résultat du passage N° 2 dans la base de données, cochez Summarize dans la fenêtre Load pour récapituler les données de tous les passages de cette expérience.

Utilisation de PECSLOAD

Vous pouvez également accéder directement au système PECS à partir de la ligne de commande, sans passer par l'assistant PECS. Appelez l'utilitaire PECSLOAD à partir de la ligne de commande pour charger le fichier binaire PECS dans la base de données. Pendant PECSLOAD, les classes et les événements sont également enregistrés dans la base de données s'ils n'y figurent pas encore.

Emplacement du fichier de données PECS

Lorsque vous utilisez la commande PECS, PECS doit commencer par localiser l'endroit où le fichier binaire (.DAT) a été enregistré. Le fichier de données PECS est généralement enregistré dans un répertoire temporaire défini par une variable d'environnement, comme indiqué ci-dessous.

Environnement	Répertoire/variable d'environnement par défaut de PECS
Microsoft Windows	TMP
UNIX	FORMS_PECS
VMS	SYS$SCRATCH
Si la variable d'environnement n'est pas définie, PECS utilise le répertoire de travail en cours.

Si vous utilisez la commande PECSLOAD et recevez un message vous signalant une erreur d'ouverture de fichier, PECS ne trouve probablement pas le fichier de données qu'il recherche. Dans ce cas, relancez la commande PECSLOAD et indiquez le nom complet d'accès au fichier, et non le nom du module.

Tables de base de données PECS

Dans certains cas, vous voudrez consulter les tables de la base de données PECS pour exécuter des manipulations de données ou obtenir des informations PECS spécifiques (nom ou numéro d'expérience, par exemple). PECS utilise les tables de base de données suivantes :

•	PECS_run

•	PECS_experiment

•	PECS_class

•	PECS_class_events

•	PECS_data

•	PECS_summary

•	PECS_plsql

Utilisez les commandes SQL pour obtenir la liste des colonnes de chaque table.


Utilisation de l'assistant PECS - Exemple

Exemple 1 Utilisation de PECSLOAD avec un nom d'expérience :

PECSLOAD -f mymod.dat -n my_experiment scott/tiger

Exemple 2 Utilisation de PECSLOAD avec un numéro d'expérience :

PECSLOAD -f mymod.dat -e 3 scott/tiger


A propos des procédures internes PECS

Les procédures internes PECS vous permettent de fournir au système PECS la définition des événements propres à une application :

Pour :	Utiliser la procédure interne PECS :
Lancer et arrêter PECS	PECS.COLLECTOR
Enregistrer des classes et des événements	PECS.ADD_CLASSPECS.ADD_EVENT
Activer et désactiver des classes	PECS.ENABLE_CLASSPECS.DISABLE_CLASS
Définir des instances d'événement	PECS.START_EVENTPECS.END_EVENTPECS.POINT_EVENT


PECS.ADD_CLASS

 Exemples

Syntaxe

PECS.ADD_CLASS(nom_de_classe);

PECS.ADD_CLASS(type_de_classe);

Type de procédure interne  procédure non restreinte

Retourne  PECS.CLASS

Description

PECS.ADD_CLASS crée la classe, ou le groupe d'événements, dans PECS et retourne l'ID de cette classe. Utilisez cet ID de classe pour identifier la classe dans les futurs appels à PECS. Les données de l'ID de classe sont de type PECS.CLASS.

Paramètres

type_de_classe	Type de classe à ajouter. Constante numérique valide pour ce paramètre :

PECS.FORMS   Indique Form Builder.

nom_de_classe	Nom de la classe à ajouter. Indiquez le nom de classe (de type CHAR) des classes propres à une application qui n'utilisent pas l'un des types de classe énuméré ci-dessus.

Notes d'utilisation

Si vous avez lancé PECS en ajoutant la procédure interne PECS.COLLECTOR à votre application, le nom du fichier binaire PECS est par défaut celui de la première classe que vous avez indiqué en utilisant la procédure interne PECS.ADD_CLASS :  banking.dat. (Si vous avez lancé PECS à partir de la ligne de commande, le nom du fichier binaire PECS est par défaut le nom de l'application Forms avec l'extension .DAT : myform.dat.)


PECS.ADD_CLASS - Exemples

/*

/*   Pour ajouter la classe FORMS :                          */
/*                                                           */
forms_class pecs.class := PECS.Add_Class(pecs.FORMS);

/*                                                           */
/*   Pour ajouter la classe 'Banque'                         */
/*                                                           */
banking_class pecs.class := PECS.Add_Class('Banque');


PECS.ADD_EVENT

 Exemples

Syntaxe

PECS.ADD_EVENT(id_classe, type_événement);

PECS.ADD_EVENT(id_classe, description_événement);

Type de procédure interne  procédure non restreinte

Retourne  PECS.EVENT

Description

PECS.ADD_EVENT ajoute un événement à une classe indiquée.

Pour un événement Form Builder, indiquez le type d'événement à partir de la liste des types d'événement Form Builder. Pour un événement propre à une application, indiquez l'événement en utilisant description_événement, qui doit être unique parmi les événements de la classe.

Paramètres

id_classe	ID de cette classe. L'ID est créé par un appel à PECS.ADD_CLASS, et est de type PECS.CLASS.

type_événement	Pour les événements Form Builder, indique le type d'événement. Les constantes numériques valides pour ce paramètre sont PECS.LINE, PECS.FORMS_TRIGGER,  PECS.FORMS_LOV, PECS.FORMS_20TRIGGER (événement de déclencheur Form Builder de style V2), PECS.FORMS_PROCEDURE, PECS.FORMS_ALERT, PECS.FORMS_CANVAS, PECS.FORMS_WINDOW, PECS.FORMS_EDITOR.

Pour les événements propres à une application, indiquez le type_événement à partir de la table PECS_EVENTS, ou utilisez le paramètre description_événement.

description_événement	Pour les événements propres à une application, indique l'événement (dont la description est limitée à 32 caractères de type CHAR).


PECS.ADD_EVENT - Exemples

/*

/*   Pour ajouter la classe 'Banque'                             */
/*                                                                */

banking_class pecs.class := PECS.Add_Class('Banque');

/*                                                                */
/*   Pour ajouter l'événement Retrait.                            */
/*   banking_class a été préalablement défini par PECS.ADD_CLASS  */

withdraw pecs.event := PECS.Add_Event(banking_class, 'Retrait');


PECS.COLLECTOR

 Exemples

Syntaxe

PECS.COLLECTOR(état_collecteur);

Type de procédure interne  procédure non restreinte

Description

Utilisez PECS.COLLECTOR pour activer ou désactiver PECS. Cette procédure interne vous permet de lancer PECS ultérieurement, si vous ne l'avez pas appelé à partir de la ligne de commande. PECS.COLLECTOR ne peut être appelé qu'une fois par session.

Paramètres

état_collecteur	Paramètre de type NUMBER qui indique si PECS est activé ou désactivé :

PECS.COLLECT_ON     Le collecteur est activé.

PECS.COLLECT_OFF    Le collecteur est désactivé.

Notes d'utilisation

•	Il n'est pas nécessaire d'utiliser PECS.COLLECTOR si vous avez activé PECS en utilisant l'option de la ligne de commande pecs=on.

•	Bien que vous puissiez passer alternativement de l'état activé à l'état désactivé de PECS.COLLECTOR, cette procédure peut générer des événements sans correspondance. Par exemple, si PECS est désactivé après le lancement d'un événement de déclencheur, il peut ne pas y avoir d'événement de fin correspondant. Pendant la chargement du fichier .DAT, PECS détecte ce problème et émet un message d'avertissement qui indique qu'un événement de départ n'a pas d'événement de fin, ou vice-versa.


PECS.COLLECTOR - Exemples

PECS.COLLECTOR(pecs.collect_on);


PECS.DISABLE_CLASS

 Exemples

Syntaxe

PECS.DISABLE_CLASS(id_classe);

PECS.DISABLE_CLASS(id_classe, type_événement);
PECS.DISABLE_CLASS(id_classe, id_événement);

Type de procédure interne  procédure non restreinte

Description

Pour désactiver tous les événements associés à une classe, indiquez uniquement l'id_classe :

PECS.DISABLE_CLASS(id_classe);

Pour désactiver uniquement un événement spécifique, indiquez l'id_classe et le type_événement ou l'id_événement :

PECS.DISABLE_CLASS(id_classe, type_événement);
PECS.DISABLE_CLASS(id_classe, id_événement);

Paramètres

id_classe	ID de cette classe. L'ID est créé par un appel à PECS.ADD_CLASS, et est de type PECS.CLASS.

type_événement	Pour les événements Form Builder, indique le type d'événement. Les constantes numériques valides pour ce paramètre sont PECS.LINE, PECS.FORMS_TRIGGER,  PECS.FORMS_LOV, PECS.FORMS_20TRIGGER (événement de déclencheur Form Builder de style V2), PECS.FORMS_PROCEDURE, PECS.FORMS_ALERT, PECS.FORMS_CANVAS, PECS.FORMS_WINDOW, PECS.FORMS_EDITOR.

id_événement	ID de ce nom d'événement. L'ID d'événement est créé par un appel à PECS.ADD_EVENT et est de type PECS.EVENT.


PECS.DISABLE_CLASS - Exemples

/*   Désactiver l'événement LOV Form Builder interne.            */

PECS.Disable_Class (forms_class, PECS.FORMS_LOV);

/*  Désactiver l'événement Retrait (withdraw) de Banking_class.  */
/*  Banking_class a été préalablement défini par PECS.ADD_CLASS  */
/*  Retrait (withdraw) a préalablement été défini par PECS.ADD_EVENT */

PECS.Disable_Class(banking_class, withdraw);


PECS.ENABLE_CLASS

 Exemples

Syntaxe

PECS.ENABLE_CLASS(class_id);

PECS.ENABLE_CLASS(class_id, event_type);
PECS.ENABLE_CLASS(class_id, event_id);

Type de procédure interne  procédure non restreinte

Description

Pour activer tous les événements associés à une classe, indiquez uniquement l'id_classe :

PECS.ENABLE_CLASS(class_id);

Pour activer uniquement un événement spécifique, indiquez l'id_classe et le type_événement ou l'id_événement :

PECS.ENABLE_CLASS(class_id, event_type);
PECS.ENABLE_CLASS(class_id, event_id);

Paramètres

id_classe	ID de cette classe. L'ID est créé par un appel à PECS.ADD_CLASS, et est de type PECS.CLASS.

type_événement	Pour les événements Form Builder, indique le type d'événement. Les constantes numériques valides pour ce paramètre sont PECS.LINE, PECS.FORMS_TRIGGER,  PECS.FORMS_LOV, PECS.FORMS_20TRIGGER (événement de déclencheur Form Builder de style V2), PECS.FORMS_PROCEDURE, PECS.FORMS_ALERT, PECS.FORMS_CANVAS, PECS.FORMS_WINDOW, PECS.FORMS_EDITOR.

id_événement	ID de ce nom d'événement. L'ID d'événement est créé par un appel à PECS.ADD_EVENT et est de type PECS.EVENT.


PECS.ENABLE_CLASS - Exemples

/*   Activer l'événement LOV Form Builder interne.               */

PECS.Disable_Class(forms_class);

/*  Activer l'événement Retrait (withdraw) de Banking_class.     */
/*  Banking_class a été préalablement défini par PECS.ADD_CLASS  */
/*  Retrait (withdraw) a préalablement été défini par PECS.ADD_EVENT */

PECS.Disable_Class(banking_class, withdraw);


PECS.END_EVENT

 Exemples

Syntaxe

PECS.END_EVENT(id_événement, identificateur_événement);

Type de procédure interne  procédure non restreinte

Description

Marque la fin d'un événement PECS.

Paramètres

id_événement	ID de ce nom d'événement. L'ID d'événement est créé par un appel à PECS.ADD_EVENT et est de type PECS.EVENT.

event_handle	Identificateur de cette occurrence d'événement. L'identificateur d'événement est créé par un appel à PECS.START_EVENT et est de type NUMBER.


PECS.END_EVENT - Exemples

/*  Mesurer la performance de l'événement Retrait (withdraw)   */

/*  Banking_class a été défini à l'aide de PECS.ADD_CLASS      */
/*                                                             */

withdraw_handle := PECS.Start_Event(withdraw, 'Retrait d'espèces');
.
.   /effectuer le retrait/
.
PECS.End_Event(withdraw, withdraw_handle);


PECS.POINT_EVENT

 Exemples

Syntaxe

PECS.POINT_EVENT(id_événement, commentaire_événement);

Type de procédure interne  procédure non restreinte

Description

Utilisez Use PECS.POINT_EVENT pour déterminer si un événement a été atteint pendant l'exécution du code.

Paramètres

id_événement	ID de ce nom d'événement. L'ID d'événement est créé par un appel à PECS.ADD_EVENT et est de type PECS.EVENT.

commentaire_événement	Commentaire de type CHAR permettant d'identifier l'événement.

Notes d'utilisation

•	Utilisez PECS.POINT_EVENT lorsque vous devez savoir uniquement qu'un événement propre à une application donnée s'est produit, et non sa durée.

•	Vous pouvez utiliser PECS.POINT_EVENT pour regrouper des données de couverture sur certaines parties spécifiques de votre application dans lesquelles vous insérez des événements de point PECS.


PECS.POINT_EVENT - Exemples

/*   Lancer l'événement Retrait (withdraw)               */

/*                                                       */
...

...
IF (do_withdraw = TRUE) then
...
message('Réussite de la collecte de données pour l'événement Retrait');
PECS.Point_Event(GLOBALS.withdraw,'Retrait réussi');
ELSE
...
 message('Erreur de collecte de données pour l'événement Retrait');
PECS.Point_Event(GLOBALS.withdraw,'Erreur de retrait');
END IF;


PECS.START_EVENT

 Exemples

Syntaxe

PECS.START_EVENT(id_événement,commentaire_événement);

Type de procédure interne  procédure non restreinte

Retourne  NUMBER

Description

Marque le début d'un événement PECS. PECS.START_EVENT retourne un identificateur unique pour cette occurrence de cet événement, qui est nécessaire pour mettre fin à l'événement.

Paramètres

id_événement	ID d'événement. Les données sont de type PECS.EVENT.

commentaire_événement	Commentaire de type CHAR permettant d'identifier l'événement.

Notes d'utilisation

PECS.START_EVENT retourne un identificateur à l'événement qui doit être utilisé avec PECS.END_EVENT pour marquer la fin de l'événement.


PECS.START_EVENT - Exemples

/*  Mesurer la performance de l'événement Retrait (withdraw)   */

/*  Banking_class a déjà été défini à l'aide de PECS.ADD_EVENT */
/*                                                             */
/*  withdraw_handle := PECS.Start_Event(withdraw, 'Retrait d'espèces');
.
.   /effectuer le retrait/
.
PECS.End_Event(withdraw, withdraw_handle);


Utilisation de PL/SQL dans Form Builder


A propos de PL/SQL dans Form Builder

PL/SQL est une extension procédurale du langage de base de données SQL d'Oracle qui allie des fonctions de traitement de transactions et de manipulation de données de SQL à des éléments que l'on trouve habituellement dans les langages de programmation procéduraux comme des boucles, des branchements conditionnels, des affectations et des déclarations de constantes et de variables.

Vous pouvez utiliser PL/SQL pour améliorer et modifier les fonctionnalités par défaut qui sont incorporées dans chaque application Form Builder. Pour cela, vous devez connaître les concepts et la syntaxe de PL/SQL. Le langage PL/SQL est documenté dans PL/SQL User's Guide and Reference.

Vous utilisez l'Editeur PL/SQL intégré pour écrire du code PL/SQL dans Form Builder. Dans le Builder, vous écrivez du code PL/SQL lorsque vous exécutez les opérations suivantes :

•	création d'un déclencheur,

•	écriture d'un sous-programme nommé par l'utilisateur,

•	écriture d'un package PL/SQL,

•	création d'un élément de menu de type PL/SQL,

•	définition d'un code de lancement de menu.


A propos des sous-programmes intégrés de Form Builder

  Rubriques connexes

Les sous-programmes intégrés sont des procédures et des fonctions en package de Form Builder. Une procédure est généralement une instruction complète utilisée pour exécuter une action ; une fonction est une expression d'un type de données spécifique qui fait partie d'une instruction utilisée pour calculer une valeur.

Chaque sous-programme intégré se compose de plusieurs instructions de programme qui exécutent une fonction d'une application. Les sous-programmes intégrés peuvent être appelés à partir des déclencheurs, des commandes d'élément de menu et des sous-programmes nommés par l'utilisateur, mais ne peuvent être ni édités, ni modifiés.


Appel des procédures internes de Form Builder

Pour appeler une procédure, entrez le nom de la procédure ainsi que les paramètres nécessaires, sous la forme d'une instruction dans un bloc PL/SQL. Un appel à une procédure intégrée est une instruction complète et doit se terminer par un point-virgule.

Go_Item('client.id_client');

La procédure GO_ITEM fait passer le point d'insertion à l'élément nommé dans sa liste de paramètres, dans le cas présent, l'élément texte id_client dans le bloc client.


Appel des fonctions intégrées de Form Builder

 Exemples

Lorsque vous appelez une fonction, vous devez analyser le type de données de la valeur de retour de la fonction. Les fonctions peuvent être combinées à des constantes, à des variables et à des opérateurs logiques pour former une expression. Comme elles ne retournent qu'une valeur, les fonctions peuvent être utilisées comme des variables locales ou des constantes de même type.


Appel des fonctions intégrées de Form Builder - Exemples

Exemple 1

DECLARE
item_required	VARCHAR2 (5);
BEGIN
item_required := Get_Item_Property('customer.custid',REQUIRED);
END;

La fonction intégrée GET_ITEM_PROPERTY est appelée pour connaître la définition de la propriété Required pour l'élément custid du bloc customer. Comme les données retournées par la fonction GET_ITEM_PROPERTY sont de type CHAR, la variable à laquelle la valeur de retour est attribuée doit être soit de type CHAR, soit de type VARCHAR2.

Exemple 2

:control.item_A := Message_Text;

La fonction MESSAGE_TEXT retourne une valeur de type CHAR qui est attribuée à item_A du bloc control. item_A doit être de même type que la valeur de retour de la fonction MESSAGE_TEXT.

Exemple 3

Go_Item(Get_Block_Property('client',LAST_ITEM));

La fonction GET_BLOCK_PROPERTY est utilisée pour extraire le nom du dernier élément du bloc client. Cette fonction est imbriquée sous la forme d'un paramètre de la procédure GO_ITEM et sa valeur de retour est l'élément cible de l'opération GO_ITEM.

Exemple 4

IF Show_LOV('liste_clients') THEN
Message('Sélection OK.');
ELSE
Message('Aucun client n'a été sélectionné.');
END IF;

Une fonction dont le type la valeur de retour est de type booléen donne soit TRUE soit FALSE, et peut donc être utilisée comme expression d'une instruction conditionnelle.

La fonction SHOW_LOV commence par afficher la liste des valeurs appelée liste_clients, puis attend l'entrée de l'utilisateur ; si l'utilisateur sélectionne un enregistrement dans LOV, la fonction retourne TRUE ; s'il abandonne la LOV en choisissant Annuler, elle retourne FALSE.

Remarque : Les fonctions ne peuvent pas être utilisées dans des instructions DML. Vous pouvez obtenir le même résultat en acceptant la valeur de retour de la fonction à une variable locale, et en faisant ensuite référence à la variable dans l'instruction DML.


Transfert de valeurs de paramètre à des sous-programmes

Les paramètres fournissent à un sous-programme les informations dont il a besoin pour s'exécuter. Dans un appel de procédure ou de fonction, les paramètres sont indiqués après le nom de la fonction ou de la procédure, entre parenthèses.

La spécification d'une fonction d'une procédure définit chacun des paramètres nécessaires. Les noms des paramètres d'une déclaration de fonction ou de procédure sont appelés paramètres formels. Dans l'exemple de syntaxe de procédure ci-dessous, les paramètres formels comprennent nom_fenêtre, largeur et hauteur :

Resize_Window (nom_fenêtre, largeur, hauteur);

Les valeurs des paramètres formels sont fournies par des paramètres réels.

Lorsque vous appelez la procédure RESIZE_WINDOW, vous fournissez des valeurs pur les paramètres formels en faisant référence à une fenêtre spécifique et en indiquant des valeurs de largeur et de hauteur. Les valeurs que vous entrez dans la liste de paramètres sont des paramètres réels. Dans l'appel de procédure ci-dessous, ma_fenêtre, 50, et 35 sont des paramètres réels :

Resize_Window('ma_fenêtre'0,500,35);

Remarque : Pour indiquer qu'un caractère guillemet simple peut être considéré comme un caractère littéral, faites précéder chaque guillemet simple de la chaîne par un autre guillemet simple. Par exemple, le paramètre '''50'' PIXELS' est interprété par le programme appelant comme '50' PIXELS.


Types de données de paramètre

Les paramètres formels, tout comme les variables, ont un type de données spécifique. Dans l'exemple ci-dessous, le type de données apparaît après le nom de chaque paramètre formel :

Show_Window(nom_fenêtre IN CHAR,
 x IN NUMBER,
 y IN NUMBER);
 Retourne BOOLEAN

Cet exemple indique que la fonction SHOW_WINDOW accepte des paramètres de type CHAR et NUMBER. CHAR et NUMBER sont des types PL/SQL natifs.

Dans un appel à un sous-programme intégré, un paramètre réel peut être une expression qui donne une valeur de même type que le paramètre formel auquel elle correspond - ce qui signifie qu'un paramètre réel peut être une variable locale ou globale, une fonction ou toute combinaison de variables, de constantes et d'opérateurs qui donne une valeur du type approprié.


Utilisation de constantes intégrées comme paramètres réels

  Rubriques connexes

Certaines constantes prédéfinies peuvent être utilisées pour de nombreux sous-programmes intégrés. Reportez-vous à la syntaxe de la procédure interne EXIT_FORM ci-dessous. EXIT_FORM a deux paramètres facultatifs, commit_mode et rollback_mode, qui indiquent comment Form Builder doit sortir de l'application Forms en cours. :

Exit_Form(commit_mode, rollback_mode);

Les paramètres commit_mode et rollback_mode sont de type NUMBER.  Lorsque vous appelez EXIT_FORM, vous pouvez utiliser des constantes numériques prédéfinies pour ces paramètres. Les constantes valides pour le paramètre commit_mode sont notamment ASK_COMMIT, DO_COMMIT, NO_COMMIT et NO_VALIDATE. Les constantes valides pour le paramètre rollback_mode sont NO_ROLLBACK et TO_SAVEPOINT.

Les constantes des sous-programmes intégrés sont des littéraux prédéfinis qui sont déclarés au démarrage par Form Builder comme étant de type NUMBER. La valeur numérique réelle de chaque constante est stockée en interne et n'est pas externalisée.

Lorsque vous utilisez des constantes comme paramètres réels, vous devez les entrer exactement comme ils figurent dans la syntaxe, sans guillemets simples :

Exit_Form(DO_COMMIT,NO_ROLLBACK);

Comme les constantes intégrées sont de type NUMBER, elles peuvent être affectées à des variables de type NUMBER. Cependant, les constantes ne peuvent pas figurer dans la partie gauche d'une expression.


Utilisation des valeurs de paramètre par défaut

  Rubriques connexes

Certains paramètres de procédures et de fonctions intégrées ont des valeurs par défaut prédéfinies. Si vous ne fournissez pas de paramètre réel pour un paramètre formel, Form Builder utilise la valeur par défaut définie pour ce paramètre. Prenez par exemple la procédure CALL_FORM, qui appelle un nouveau module Application Forms tout en gardant le module Application Forme en cours actif. L'exemple ci-dessous indique la syntaxe de la procédure CALL_FORM :

Open_Form(nom_appliForms,mode_activation,mode_session);

Les valeurs de paramètre par défaut définies pour les paramètres mode_activation et mode_session sont respectivement les constantes ACTIVATE et NO_SESSION

Lorsque vous appelez OPEN_FORM sans paramètres, Form Builder utilise implicitement des paramètres par défaut :

Open_Form('saisie_commande');

Vous pouvez toujours entrer les valeurs de paramètre par défaut si vous voulez que votre expression soit plus claire. Les appels de procédure ci-dessous sont équivalents ; le premier demande moins de frappe, mais le second est plus détaillé :

Open_Form('saisie_commande');
Open_Form('saisie_commande',ACTIVATE,NO_SESSION);


Utilisation des paramètres de notation par nom et par position

Vous pouvez utiliser la notation par nom ou par position pour transmettre des paramètres à un sous-programme. Si vous utilisez la notation par positon, le compilateur lit les positions relatives des paramètres réels pour déterminer les paramètres formels auxquels ils correspondent.

L'exemple ci-dessous indique la syntaxe d'une procédure nommée par l'utilisateur appelée imagi_stock :

PROCEDURE imagi_stock (entrepôt CHAR,produit NUMBER);

Pour appeler cette procédure en utilisant une notation par position, vous devez entrer les paramètres réels dans l'ordre dans lequel les paramètres formels correspondants apparaissent dans la spécification :

imagi_stock('chicago',10557);

Lorsque vous écrivez des paramètres en utilisant la notation par nom, la correspondance entre un paramètre formel et un paramètre réel est indiquée explicitement dans la liste de paramètres elle-même, et vous pouvez transmettre des paramètres dans l'ordre de votre choix. Les appels de procédure ci-dessous sont donc équivalents sur le plan logique :

imagi_stock(entrepôt => 'chicago',produit => 10557);
imagi_stock(produit => 10557, entrepôt =>'chicago');

Vous pouvez utiliser à la fois la notation par position et la notation par nom, à condition que les paramètres transmis par position précèdent ceux qui sont transmis par nom dans la liste des paramètres :

imagi_stock('chicago', produit => 10557);

Pour la plupart des sous-programmes intégrés, l'utilisation de la notation par position est préférable à la notation par nom, car elle demande moins de frappe. Cependant, la notation par nom peut être particulièrement utile lors de l'appel de sous-programmes intégrés ayant plusieurs paramètres facultatifs. Avec la notation par nom, il suffit de fournir la valeur des paramètres facultatifs que vous voulez transmettre.


Référence à des objets de Form Builder par leur nom

Pour faire référence à un objet Form Builder par son nom dans une instruction PL/SQL, faites précéder et suivre le nom de l'objet de guillemets simples :

'form_module_name'
'block_name'
'window_name'

Par exemple, lorsque vous appelez la procédure RESIZE_WINDOW, vous devez transmettre comme premier paramètre le nom de la fenêtre à redimensionner. Ce nom doit être entre guillemets simples :

Resize_Window('status_window',50,35);

Pour faire référence à un élément par son nom, entrez le nom du bloc auquel l'élément appartient pour former un nom totalement qualifié :

'block_name.item_name'

Par exemple, lorsque vous appelez la procédure interne GO_ITEM pour faire passer le point d'insertion à un autre élément, vous transmettez à GO_ITEM le nom de l'élément cible :

Go_Item('customer.cust_id');

Pour faire référence à une colonne spécifique d'un groupe d'enregistrements :

'record_group_name.column_name'

To reference an item that was a component of a column object or a REF column, include the column name as well as the block name.  For object components, the connector between column name and item name is an underscore:

'blockname.columnname_itemname'


Référence à des valeurs d'élément de Form Builder

Les types d'élément qui stockent des valeurs sont les suivants :

•	cases à cocher,

•	éléments affichés,

•	éléments liste,

•	groupes de boutons d'option,

•	éléments texte,

•	conteneur OLE,

•	contrôle VBX.

Pour faire référence à la valeur stockée dans un élément, entrez deux-points devant le nom de l'élément totalement qualifié. N'utilisez pas de guillemets autour d'un nom d'élément lorsque vous faites référence à sa valeur :

:nom_bloc.nom_élément

Cette syntaxe est semblable à celle utilisée pour la référence à des variables globales dans Form Builder. En fait, les valeurs d'éléments peuvent être utilisées dans des instructions PL/SQL comme des variables locales ou globales - c'est-à-dire que vous pouvez exécuter toutes les opérations suivantes :

Affectation de la valeur d'une expression à un élément :

:ord.total := price * .85;

Affectation la valeur d'un élément à un autre :

:ord.comment := :control.textfield;

Sélection de valeurs de bases de données dans des éléments :

SELECT tel INTO :info.tel_no FROM entrepôt
WHERE id = :info.id_entrepôt;


Référence à des objets de Form Builder par leur ID interne

Form Builder attribue une ID à chaque objet que vous créez. L'ID d'un objet est un pointeur interne dont la valeur réelle n'est jamais externalisée.

Pour connaître l'ID d'un objet, appelez la fonction FIND_ appropriée à la classe de l'objet. Les fonctions FIND_ acceptent comme paramètre un nom d'objet totalement qualifié.

Dans l'exemple ci-dessous, la fonction FIND_WINDOW est utilisée pour attribuer l'ID de la fenêtre appelée ma_fenêtre à la variable id_var:

DECLARE
id_var	WINDOW;
BEGIN
id_var := Find_Window('ma_fenêtre');
END;

Lorsqu'un ID d'objet a été attribué à une variable, vous pouvez utiliser cette variable pour faire référence à l'objet, au lieu de faire référence à l'objet par son nom.

Par exemple, la syntaxe de la procédure RESIZE_WINDOW indique que vous pouvez appeler cette procédure en utilisant soit un nom de fenêtre soit un ID de fenêtre :

Resize_Window(nom_fenêtre CHAR,largeur NUMBER,hauteur NUMBER);
Resize_Window(id_fenêtre WINDOW,largeur NUMBER,hauteur NUMBER);

Les appels ci-dessous sont donc logiquement équivalents :

Resize_Window('ma_fenêtre',50,35);
Resize_Window(id_var,50,35);

Une fonction FIND_ peut également être utilisée comme paramètre réel dans un appel de procédure ou de fonction :

Resize_Window((FIND_WINDOW('ma_fenêtre'),50,35);

Utilisation de noms et d'ID dans des listes de paramètres  Vous pouvez panacher des noms d'objet et des ID d'objet dans une liste de paramètres, à condition que chaque paramètre réel fasse référence à un objet distinct :

Replace_Content_View(id_canevas,'nom-fenêtre');

Cependant, vous ne pouvez pas utiliser un ID d'objet et un nom d'objet pour former un nom d'objet totalement qualifié :

/*  appel de procédure non valide:   */
Set_Group_Char_Cell(id_groupe.'nom_colonne',1,'en_stock');

Types d'ID objet  Les valeurs de retour des fonctions FIND_, c'est-à-dire les ID d'objet eux-mêmes, ont un type de données spécifique. Dans l'exemple de syntaxe de la procédure RESIZE_WINDOW, nous avons vu que le paramètre formel id_fenêtre était déclaré comme de type WINDOW. Dans Form Builder, les types des ID d'objet sont prédéfinis : à chaque classe d'objet correspond un type particulier.

Types de données de Form Builder

Le tableau ci-dessous indique la fonction FIND_ et le type de retour de chaque objet :

Objet	Fonction	Type de retour
Alerte	FIND_ALERT	ALERT
Bloc	FIND_BLOCK	BLOCK
Canevas	FIND_CANVAS	CANVAS
Colonne groupe enregistrements	FIND_COLUMN	GROUPCOLUMN
Editeur	FIND_EDITOR	EDITOR
Application Forms	FIND_FORM	FORMMODULE
Groupe enregistrements	FIND_GROUP	RECORDGROUP
Elément	FIND_ITEM	ITEM
Liste de valeurs	FIND_LOV	LOV
Elément de menu	FIND_MENU_ITEM	MENUITEM
Liste de paramètres	GET_PARAMETER_LIST	PARAMLIST
Relation	FIND_RELATION	RELATION
Etat	FIND_REPORT_OBJECT	REPORT
Page Onglet	FIND_TAB_PAGE	TAB_PAGE
Horloge	FIND_TIMER	TIMER
Noeud de l'arborescence	FIND_TREE_NODE	NODE
Vue	FIND_VIEW	VIEWPORT
Fenêtre	FIND_WINDOW	WINDOW

Déclaration de variables pour des ID d'objet  Avant de pouvoir affecter un ID d'objet à une variable locale, vous devez déclarer que la variable est de même type que l'ID d'objet :

DECLARE
id_var	  WINDOW;
BEGIN
id_var := Find_Window('ma_fenêtre');
IF Get_Window_Property(id_var, HEIGHT) < 25 THEN
Resize_Window (id_var, 50, 35);
END IF;
END;

Pourquoi utiliser des ID d'objet ?  L'utilisation d'ID d'objet dans votre code PL/SQL offre deux avantages :

•	elle améliore les performances,

•	elle rend le code plus générique et plus facile à actualiser.

Chaque fois que vous faites référence à un objet en indiquant son nom dans une instruction PL/SQL, Form Builder exécute le traitement nécessaire pour consulter l'ID de l'objet en interne. Si vous faites référence à un objet en indiquant plusieurs fois son nom dans le même déclencheur, Form Builder recherche à chaque fois l'ID de l'objet. Le code de déclencheur ci-dessous fait trois fois référence à l'objet mon_groupe_enregistrements :

DECLARE
dummy_var	NUMBER;
count	NUMBER;
BEGIN
dummy_var := Populate_Group('mon_groupe_enregistrements');
count := Get_Group_Row_Count('mon_groupe_enregistrements');
IF count > 20 THEN
Delete_Group_Row('mon_groupe_enregistrements', ALL_ROWS);
END IF;
END;

En revanche, si vous faites référence à un objet par son ID, Form Builder ne recherche l'objet qu'une fois - lorsque vous appelez la fonction FIND_ initiale pour rechercher l'ID :

DECLARE
dummy_var	NUMBER;
count	NUMBER;
group	RECORDGROUP := Find_Group('mon_groupe_enregistrements');
BEGIN
dummy_var := Populate_Group(group);
count := Get_Group_Row_Count(group);
IF count > 20 THEN
Delete_Group_Row(group, ALL_ROWS);
END IF;
END;

L'utilisation d'ID d'objet améliore les performances et permet d'avoir un code plus facile à actualiser et réutilisable en d'autres endroits. Lorsque vous devez modifier le nom d'un objet ou que vous voulez réutiliser le même code sur un objet différent, il vous suffit de d'apporter la modification dans la liste des paramètres de la fonction FIND_ initiale, et non dans chaque instruction qui fait référence à cet objet.


Référence indirecte à des éléments de Form Builder

  Rubriques connexes

Vous pouvez faire indirectement référence à des éléments en utilisant des sous-programmes intégrés NAME_IN et COPY.

La fonction NAME_IN retourne le contenu d'une variable ou d'un élément indiqué. Utilisez cette fonction pour obtenir la valeur d'un élément sans y faire directement référence.

Les instructions ci-dessous sont équivalentes :

IF :emp.ename = 'smith' -- direct reference
IF NAME_IN('emp.ename') = 'smith' -- indirect reference

La valeur de retour est toujours une chaîne de caractères. Pour utiliser NAME_IN pour un élément de type DATE ou NUMBER, convertissez la chaîne en type de données voulus en utilisant la fonction de conversion appropriée :

date_var := TO_DATE(Name_In('order.date_item'));
num_var := TO_NUMBER(Name_In('order.number_item'));

Remarques sur NAME_IN :

•	La fonction NAME_IN ne peut pas retourner le contenu d'une variable globale ou locale.

•	Dans les déclencheurs PL/SQL exécutés en mode Saisie interrogation, vous devez utiliser de préférence NAME_IN au lieu de la notation de variable de lien normale pour accéder aux valeurs du bloc de données. (La raison en est que l'utilisateur final pourrait entrer des opérateurs relationnels dans l'élément, produisant ainsi une valeur qui ne pourrait pas être traitée par PL/SQL.)

Procédure COPY  La procédure COPY affecte la valeur indiquée à la variable ou à l'élément indiqués. Cependant, à la différence des affectations PL/SQL standards, l'utilisation de la procédure COPY vous permet de faire indirectement référence à l'élément dont la valeur est définie :

:emp.ename := 'smith';	-- direct reference
Copy('smith','emp.ename');	-- indirect reference

Vous pouvez utiliser COPY avec la fonction NAME_IN pour affecter une valeur à un élément dont le nom est stocké dans un élément ou une variable de référence :

/* put value 'smith' in item whose name is stored in ref_item */
Copy('smith',Name_In('control.ref_item'));

Pourquoi utiliser des références indirectes ?  La référence indirecte des éléments vous permet d'écrire un code plus générique et réutilisable. En utilisant des variables au lieu de noms d'éléments réels, vous pouvez écrire un sous-programme qui agit sur tout élément dont le nom a été attribué à la variable indiquée.

En outre, l'utilisation de références indirectes est obligatoire lorsque vous faites référence à la valeur d'une variable de lien d'application Forms (élément, paramètre, variable globale) dans le code PL/SQL que vous écrivez dans un module de menu ou de bibliothèque. Comme les bibliothèques, les menus et les applications Forms sont des modules d'applications séparés, vous ne pouvez pas faire directement référence à la valeur d'un élément d'application Forms dans une commande d'élément de menu ou une procédure de bibliothèque.


A propos des variables locales

Une variable locale est une variable PL/SQL dont la valeur n'est accessible que dans le déclencheur ou le sous-programme nommés par l'utilisateur dans lequel la variable est déclarée. Form Builder prend en charge l'affectation et la déclaration de variables PL/SQL standards pour les variables locales.


A propos des variables globales

Une variable globale est une variable Form Builder dont la valeur est accessible aux déclencheurs et aux sous-programmes de tout modèle qui est actif pendant la session en cours. Une variable globale stocke une chaîne d'un maximum de 255 caractères.

Les variables globales ne sont pas déclarées formellement comme les variables locales PL/SQL. Vous initialisez une variable globale la première fois que vous lui attribuez une valeur.

:GLOBAL.my_var := TO_CHAR(:order.total * .85);

Pour faire référence à une variable globale, faites précéder son nom du mot GLOBAL et de deux-points. L'exemple ci-dessous indique une variable globale transmise sous la forme d'un paramètre réel à un appel de procédure :

calculate_discount(TO_NUMBER(:GLOBAL.my_var));

Faire référence à une variable globale qui n'a pas été initialisée par une affectation entraîne la génération d'une erreur d'exécution.

Pour détruire une variable globale et libérer la place qu'elle occupe en mémoire, utilisez la procédure interne ERASE. :

Erase('GLOBAL.my_var');


Initialisation de variables globales avec une valeur par défaut

Vous pouvez utiliser la procédure interne DEFAULT_VALUE pour attribuer une valeur à une variable dont la valeur est NULL. Si la valeur de la variable indiquée n'est pas NULL, la procédure DEFAULT_VALUE n'exécute aucune opération. Si la variable à laquelle la valeur est affectée est une variable globale non définie, Form Builder crée la variable.

L'exemple ci-dessous crée une variable globale appelée pays et l'initialise à la valeur FRANCE :

Default_Value('FRANCE','GLOBAL.pays');


Utilisation d'éléments de canevas NULL comme variables

  Rubriques connexes

Un élément de canevas NULL est un élément dont la propriété Canevas n'est pas indiquée, et qui n'est donc pas attribuée à un canevas. Ce type d'élément n'est jamais affiché lors de l'exécution, et les utilisateurs ne peuvent donc ni voir l'élément, ni l'utiliser.

Vous pouvez utiliser un élément de canevas NULL pour stocker temporairement des valeurs de données, comme une variable globale. Par exemple, vous pouvez définir un élément de type NUMMBER dans un bloc de contrôle, puis faire référence à sa valeur dans des déclencheurs et des sous-programmes nommés par l'utilisateur :

IF :control.count > 200 THEN
...

Tout type d'élément qui peut recevoir des valeurs peut être utilisé comme variable d'élément de canevas NULL. Les éléments affichés constituent un bon choix, car ils occupent moins de place en mémoire que les autres types d'éléments.

Lorsque vous devez choisir d'utiliser, ou non, un élément de canevas NULL ou un élément global comme variable, n'oubliez pas que :

•	Les éléments peuvent être définis comme des types de données CHAR, NUMBER ou DATE ; les variables globales ne peuvent recevoir que des chaînes de caractères, et l'utilisation de fonctions de conversion comme TO_DATE et TO_NUMBER demande un traitement supplémentaire.

•	Pour dimensionner des éléments, vous pouvez définir leur propriété Longueur maximum ; les variables locales ont toujours 255 octets de long.

•	Les variables globales sont visibles d'un module à l'autre pendant une session runtime ; les éléments de canevas NULL ne le sont pas.

•	L'opération CLEAR_FORM définit à NULL la valeur d'un élément de canevas NULL dans l'application Forms en cours. La valeur d'une variable globale n'est pas affectée par CLEAR_FORM.

•	Vous pouvez faire référence aux éléments et aux variables globales dans la clause WHERE pour des instructions SQL de groupe d'enregistrements et de bloc de données.


Accès aux variables système de Form Builder

  Rubriques connexes

Form Builder comporte des variables système intégrées qui gardent trace des conditions d'état d'exécution pendant une session Runform de Form Builder. Vous pouvez lire les valeurs de ces variables dans tout sous-programme nommé par l'utilisateur ou déclencheur d'application Forms. Exemple de vérification de la valeur de la variable système System.Mode :

IF :System.Mode = 'ENTER-QUERY' THEN
IF NOT Show_Lov('dept_lov') then
RAISE Form_Trigger_Failure;
END IF;


Ecriture d'unités de programme


A propos des sous-programmes nommés par l'utilisateur

Un sous-programme nommé par l'utilisateur est une procédure ou une fonction PL/SQL nommée que vous écrivez dans un module Application Forms, un menu ou une bibliothèque. Bien que les déclencheurs constituent la solution la plus courante à l'ajout de contrôles par programme à une application Form Builder, les sous-programmes nommés par l'utilisateur viennent en complément pour vous permettre de réutiliser du code sans devoir l'entrer dans plusieurs déclencheurs.

A la différence des déclencheurs qui s'exécutent en réponse à des événements d'application, un sous-programme nommé par l'utilisateur doit être appelé explicitement dans votre application. Une fois défini dans un module Application Forms, le sous-programme peut être appelé à partir de tout déclencheur de ce module.

Tout comme les sous-programmes intégrés vous évitent d'avoir à écrire du code pour des fonctions courantes comme la navigation et l'interaction avec les bases de données, les sous-programmes nommés par l'utilisateur permettent de réutiliser un code propre à une application, que vous pouvez écrire vous-même.

Si vous constatez qu'il vous arrive d'écrire les mêmes lignes de code dans plusieurs déclencheurs ou plusieurs commandes d'élément de menu, l'écriture d'un sous-programme nommé par l'utilisateur permet un gain de temps intéressant.

Dans la plupart des applications, les utilisateurs peuvent exécuter la même opération de plusieurs façons, à partir de plusieurs fenêtres ou menus. Par exemple, une application de saisie de commandes permet à un utilisateur de calculer un total de commandes en appuyant sur une touche, en cliquant sur un bouton ou en sélectionnant un élément d'un menu. Sans sous-programme nommé par l'utilisateur, la même formule de calcul doit être écrite dans un déclencheur sur touche, dans un déclencheur When-Button-Pressed et dans une commande d'élément de menu.

Pour éviter ces différentes opérations, vous pouvez écrire la formule de calcul une seule fois dans un sous-programme, nommé par l'utilisateur, auquel vous donnez un nom significatif comme calculer_totaux. Appelez ensuite le sous-programme en indiquant son nom dans tout déclencheur ou élément de menu dans lequel la formule doit être utilisée.

Comme les sous-programmes intégrés, les sous-programmes nommés par l'utilisateur peuvent comporter des paramètres. Lorsque vous déclarez les paramètres d'un sous-programme, vous indiquez leur type de données, leur mode et leur valeur par défaut, le cas échéant. En utilisant des paramètres pour transmettre des valeurs réelles, vous pouvez créer des sous-programmes plus génériques qui utilisent les valeurs fournies par programme lors de l'exécution.


Création d'un sous-programme nommé par l'utilisateur

Les sous-programmes nommés par l'utilisateur sont des objets nommés que vous définissez dans des modules Application Forms, Menu ou Bibliothèque.

Pour créer un sous-programme nommé par l'utilisateur

1	Dans le Navigateur d'objet, sélectionnez le nœud Unités de programme, puis choisissez Navigateur [image] Créer.

La boîte de dialogue Nouvelle unité de programme s'affiche.

Pour toute information sur les commandes de l'Editeur PL/SQL, reportez-vous au Chapitre 2, "Utilisation des outils de conception".

2	Indiquez le Nom de l'unité de programme à créer, puis son Type (Procédure, Fonction, Spécifs package ou Corps package).

3	Entrez, éditez et compilez la procédure ou la fonction que vous définissez.

Entrez une définition complète de procédure ou de fonction en utilisant la structure et la syntaxe PL/SQL standard.

4	Choisissez Compiler pour compiler votre unité de programme.

Remarque : Form Builder applique automatiquement vos modifications lorsque vous fermez l'Editeur, même si vous n'avez pas réussi à compiler l'unité de programme.

Form Builder affiche chaque nom d'unité de programme avec une annotation précisant son type (corps de procédure, spécification de package, etc.). Par exemple, le corps de procédure peut être annoté de la manière suivante :

calculer_totaux (corps de procédure)

Et une spécification de package peut s'afficher de la manière suivante :

Gestionnaires_erreurs (spécification de package)


Syntaxe des procédures

La spécification de procédure commence par le mot-clé PROCEDURE et se termine par le nom de la procédure ou la liste des paramètres formels. Le corps de procédure commence par le mot-clé IS et se termine par le mot-clé END, suivi du nom (facultatif) de la procédure.

Syntaxe

PROCEDURE nom de procédure [liste d'arguments] IS
   [déclaration de variables locales]
BEGIN
   instructions
   [EXCEPTION gestionnaires d'exceptions]
END;

où

nom de procédure	est le nom unique, défini par l'utilisateur, de la procédure. Ce nom doit respecter les conventions d'appellation ORACLE. Pour plus d'informations, reportez-vous à SQL Language Reference Manual.

liste d'arguments	Is ({nom_var [mode] type [:= valeur]}[,...])

où

nom_var	 est le nom unique d'une variable locale.

mode	Is {IN|OUT|IN OUT}.

type	correspond à tout type PL/SQL autorisé.

valeur	est une expression PL/SQL.

variable_locale_  déclaration	Is {type nom_var [:= valeur]}(,...]

instructions	sont les instructions PL/SQL exécutables.

gestionnaire d'exceptions	Reportez-vous à PL/SQL User's Guide and Reference.


Syntaxe des fonctions

Chaque fonction doit exécuter une instruction RETURN. L'instruction RETURN définit la valeur de retour de la fonction et rend immédiatement le contrôle au déclencheur, au sous-programme nommé par l'utilisateur ou à la commande d'élément de menu qui a appelé la fonction.

Syntaxe

FUNCTION nom de fonction [liste d'arguments] RETURN [type] IS
   [déclaration de variables locales]
BEGIN
   instructions
   RETURN (résultat);
   [EXCEPTION gestionnaires d'exceptions]
   RETURN (résultat);
END;

où

nom de fonction	est le nom unique, défini par l'utilisateur, de la fonction. Ce nom doit respecter les conventions d'appellation ORACLE.

liste d'arguments	Is ({nom_var [mode] type [:= valeur]}[,...])

où

nom_var	 est le nom unique d'une variable locale.

mode	Is {IN|OUT|IN OUT}.

type	Is {BOOLEAN|VARCHAR2|NUMBER| DATE|Type d'objet Form Builder}.

value	est une expression PL/SQL.

variable_locale_  déclaration	Is {type nom_var [:= valeur]}(,...]

instructions	sont les instructions PL/SQL exécutables.

gestionnaire d'exceptions	Reportez-vous à PL/SQL User's Guide and Reference.

résultat	est l'expression indiquant la valeur de la fonction. La valeur de l'expression doit être compatible avec le type indiqué dans la spécification de fonction.

Exemple de procédure :

La procédure ci-après traite une commande en décrémentant le stock d'un produit donné. Pour appeler cette procédure, vous transmettez l'ID de produit, le nombre d'unités commandées et l'entrepôt devant servir la commande :

PROCEDURE do_order (unités_commandées IN NUMBER,
   id_prod IN NUMBER,
   entrepôt IN NUMBER) IS
   unités_en_stock	NUMBER;
BEGIN
   SELECT quantité_en_stock INTO unités_en_stock FROM stock
     WHERE id_produit = id_prod
     AND id_entrepôt = entrepôt;
   IF unités_en_stock >= unités_commandées THEN
     UPDATE stock
     SET quantité_en_stock = unités_en_stock - unités_commandées
       WHERE id_produit = id_prod;
   ELSE
     Message('Stock insuffisant.');
     Raise Form_Trigger_Failure;
   END IF;
END;

Vous pouvez utiliser cette procédure dans un déclencheur de la manière suivante :

do_order (:commande.unités, :commande.id_prod, :id.entrepôt);

Dans cet exemple, les valeurs des trois paramètres formels sont les valeurs courantes des éléments de l'application Forms, indiquées avec une syntaxe de variables de liens standard :

:nom_bloc.nom_élément

Exemple de fonction :

La fonction ci-après retourne le nombre d'unités en stock à un entrepôt donné. Lorsque vous appelez cette fonction, vous transmettez un ID de produit et un ID d'entrepôt :

FUNCTION get_stock (produit NUMBER, entrepôt NUMBER)
   RETURN NUMBER IS
   quantité NUMBER;
BEGIN
   SELECT quantité_en_stock INTO quantité FROM stock
   WHERE id_produit = produit et id_entrepôt = entrepôt;
   RETURN quantité;
EXCEPTION
   WHEN OTHERS THEN
     Message('Nom de produit ou ID d'entrepôt erroné.');
     RETURN (-1);
END;

Vous pouvez utiliser cette fonction dans un déclencheur de la manière suivante :

DECLARE
   stock	NUMBER;
   quantité_requise	NUMBER := :commande_bloc.commande_élément;
BEGIN
   inv := Get_stock (:id.produit, :id.entrepôt);
   IF inv < 0 THEN
   . . . -- gérer l'erreur ici
   ELSE IF stock >= quantité_requise THEN
   ... -- traiter la commande ici
   END IF;
END;


Appel de sous-programmes nommés par l'utilisateur

L'appel de fonctions et de procédures nommées par l'utilisateur est semblable à l'appel de fonctions et de procédures internes ; vous pouvez utiliser une association nommée et une association de positionnement pour transmettre des paramètres. Vous pouvez faire référence à des objets d'application Forms dans des sous-programmes nommés par l'utilisateur comme vous le feriez dans la liste de paramètres d'un sous-programme intégré.

Lorsque vous compilez un module Menu ou Application Forms pour créer un fichier runtime, Form Builder doit pouvoir trouver les sous-programmes appelés par ce module. Le module dans lequel un sous-programme est défini détermine l'endroit où le sous-programme peut être appelé.

Lorsque vous développez une application comprenant plusieurs modules, vous devez respecter les règles suivantes :

•	un sous-programme nommé par l'utilisateur et défini dans un module Application Forms ne peut être appelé qu'à partir de déclencheurs et d'autres sous-programmes nommés par l'utilisateur de ce même module ;

•	un sous-programme nommé par l'utilisateur et défini dans un module Menu ne peut être appelé qu'à partir de commandes d'éléments de menu et du code de démarrage de ce même module ;

•	un sous-programme nommé par l'utilisateur et défini dans un module Bibliothèque peut être appelé à partir de tout déclencheur ou toute commande d'éléments de menu, à condition que la bibliothèque soit attachée au module Application Forms ou Menu.

Pour créer une bibliothèque de sous-programmes nommés par l'utilisateur, écrivez les procédures et les fonctions directement dans un module Bibliothèque ou copiez dans une bibliothèque des sous-programmes provenant d'autres modules. Pour toute information sur les bibliothèques, reportez-vous au Chapitre 20, "Utilisation des bibliothèques".


Définition de paramètres

L'utilisation de paramètres est facultative. Les sous-programmes qui n'acceptent pas de paramètres sont écrits sans parenthèses. Si vous déclarez un paramètre, vous devez indiquer son mode et son type de données dans la liste des paramètres formels.

Types de données de paramètres Dans une fonction, les paramètres peuvent être déclarés de type VARCHAR2, DATE, NUMBER ou BOOLEAN ou de l'un quelconque des types d'objet de Form Builder. Dans une procédure, les paramètres peuvent être d'un type PL/SQL quelconque, à condition qu'il soit valide. Lorsque vous créez une fonction ou une procédure, entrez le type de données après le nom de chaque paramètre formel :

PROCEDURE afficher_expéditions_futures (id_service NUMBER);
FUNCTION crédit_ok (client VARCHAR2) RETURN BOOLEAN;

Modes des paramètres Le mode d'un paramètre peut être IN (par défaut) OUT ou IN OUT. Un paramètre IN transmet une valeur à un sous-programme. Le sous-programme peut lire la valeur du paramètre IN, mais ne peut pas écrire sa valeur. Un paramètre IN réel peut être une constante, un littéral, une variable initialisée ou une expression.

Un paramètre OUT retourne une valeur provenant d'un sous-programme. Un paramètre OUT réel ne peut être qu'une variable locale (et non une variable de lien), et le sous-programme doit attribuer une valeur à la variable. Si cette valeur ne lui est pas attribuée, l'exception PL/SQL prédéfinie NO_DATA_FOUND est générée.

Un paramètre IN OUT transmet une valeur à un sous-programme et retourne une valeur provenant du sous-programme. Un paramètre IN OUT réel peut être une variable locale ou une variable de lien. Un sous-programme peut écrire la valeur d'un paramètre IN OUT, mais cette opération n'est pas obligatoire.

Les fonctions et les procédures acceptent les paramètres OUT et IN OUT. Une procédure qui retourne une valeur au moyen d'un paramètre OUT ou IN OUT fonctionne pratiquement comme une fonction, et peut être utilisée pour effectuer toute opération qu'une fonction permettrait d'exécuter normalement.

Si vous n'indiquez pas explicitement le mode d'un paramètre formel dans la spécification de fonction ou de procédure, le paramètre est déclaré comme paramètre IN. Les spécifications de procédure ci-après sont donc équivalentes :

PROCEDURE calculer_remise(multiplicateur NUMBER);
PROCEDURE calculer_remise(multiplicateur IN NUMBER);

Vous pouvez indiquer explicitement le mode d'un paramètre en entrant IN, OUT ou IN OUT après le nom du paramètre formel dans la spécification de ce programme.

Remarque : Lorsque vous appelez un sous-programme qui accepte un paramètre IN OUT ou OUT, n'oubliez pas qu'une valeur est toujours attribuée au paramètre réel, même si le sous-programme lui-même n'écrit pas explicitement la valeur du paramètre.

Par exemple, si vous faites référence à un élément texte en tant que paramètre réel pour un paramètre IN OUT formel, la valeur de l'élément texte est mise à jour lorsque le sous-programme s'exécute, même si le sous-programme lui-même n'effectue pas d'instruction d'affectation explicite. Cela peut entraîner une MODIFICATION de l'état de l'enregistrement qui est alors marqué en vue de sa mise à jour ou de son insertion.

Attribution de valeurs par défaut aux paramètres IN Vous pouvez attribuer une valeur par défaut à un paramètre formel IN lorsque vous le déclarez. La plupart des sous-programmes intégrés de Form Builder utilisent cette technique. Lorsque vous appelez ces sous-programmes, vous n'avez à entrer de paramètre réel pour le paramètre formel par défaut que si vous voulez remplacer la valeur par défaut du paramètre.

Pour attribuer une valeur par défaut à un paramètre formel, utilisez l'utilisateur d'attribution PL/SQL de la liste des paramètres formels. La valeur que vous attribuez doit être une constante ou une expression dont le type de données est le même que celui du paramètre formel :

PROCEDURE calculer_remise(multiplicateur IN NUMBER := 15);

Lorsque vous appelez cette procédure, vous pouvez omettre le paramètre multiplicateur si vous voulez que la procédure s'exécute avec la valeur par défaut (15) :

calculer_remise;

Vous pouvez également remplacer la valeur par défaut en fournissant un paramètre réel :

calculer_remise(10);

Notez que lorsque vous utilisez la notation de position, seuls les paramètres de fin peuvent avoir des valeurs par défaut.


A propos des packages PL/SQL

Un package est un élément PL/SQL qui regroupe des fonctions, des procédures, des objets et des types ayant un lien logique entre eux. Les packages se composent généralement de deux parties, une spécification et un corps, mais le corps n'est pas toujours nécessaire.

La spécification est l'interface avec le package. Elle déclare les types, variables, constantes, exceptions, curseurs et sous-programmes (procédures et fonctions) qui peuvent être utilisés. Le corps définit complètement les curseurs et les sous-programmes, et met donc la spécification en œuvre.

Form Builder offre plusieurs packages prédéfinis, mais vous pouvez également définir vos propres packages dans des modules Application Forms, Menu ou Bibliothèque, ou encore, définir des packages dans le Oracle Server, puis faire référence à leur contenu à partir des applications côté client. Pour toute information sur l'utilisation des procédures stockées avec Form Builder, reportez-vous à A propos des programmes stockés.

La syntaxe d'un package est semblable à celle d'une procédure :

PACKAGE nom IS  -- spécification
-- type public et déclarations d'objet
-- spécifications de sous-programme
END [nom];
PACKAGE BODY nom IS  --corps (partie cachée)
-- type privé et déclarations d'objet
-- corps de sous-programme
[BEGIN
-- instructions d'initialisation]
END [nom];

La spécification contient les déclarations publiques qui sont visibles par votre application. Le corps contient les détails de mise en œuvre et les déclarations privées, qui ne sont pas visibles par votre application.

Seuls les sous-programmes et les curseurs ont une définition ou une mise en œuvre sous-jacente. Cela étant, si une spécification ne déclare que des types, des constantes, des variables et des exceptions, le corps de package n'est pas nécessaire.

Seules les déclarations dans la spécification de package sont visibles et accessibles par votre application. Les détails de mise en œuvre du corps du package sont masqués et inaccessibles. Vous pouvez coder et compiler la spécification séparément. Lorsque la spécification a été compilée, vous pouvez compiler les déclencheurs ou les sous-programmes, nommés par l'utilisateur, qui font référence à la spécification. Vous ne devez définir totalement le corps de package que lorsque vous êtes prêt à achever l'application.

Remarque : Lorsque vous modifierez un package par la suite, vous devrez peut-être recompiler aussi les grilles ou les menus qui appellent ce package.


Création de packages PL/SQL

 Exemples

Vous pouvez créer un package en organisant vos procédures et vos fonctions pour former un ensemble d'objets PL/SQL.

Les packages peuvent contenir des variables qui persistent pendant toute la session d'un utilisateur (comme une variable GLOBAL côté serveur, et tout aussi utile) ainsi que des curseurs qui peuvent rester ouverts pendant les appels aux fonctions et aux procédures du package.

Pour plus d'informations sur les packages, reportez-vous à PL/SQL User's Guide and Reference.

Remarque : La première fois qu'un package est appelé (par un utilisateur par exemple), ce package est totalement chargé dans Oracle SGA pour accélérer l'appel ultérieur des procédures ou des fonctions qu'il contient.

Restrictions Form Builder offre un support direct pour l'appel des fonctions et des procédures stockées, mais non pour la référence directe aux curseurs de package ou aux variables en package. Pour manipuler les variables en package et les curseurs de package dans le code côté serveur, vous devez écrire une fonction ou une procédure. Les types de données disponibles sont les suivants :

•	VARCHAR2--maximum VARCHAR2(2000)

•	NUMBER

•	DATE

•	BOOLEAN

Si vous utilisez ces types de données pour écrire des fonctions ou des procédures, les valeurs des variables en package et les données des curseurs extraits peuvent être retournées au module ayant appelé Form Builder par des paramètres ou une valeur de retour de fonction.

Form Builder demande que la spécification et le corps de package soient valides pour compiler un bloc PL/SQL de Form Builder faisant référence au package.


Création de packages PL/SQL - Exemples

CREATE OR REPLACE PACKAGE LIB_HR AS

    -- Extraire le numéro de Sécurité Sociale d'un employé
    FUNCTION get_nss(leNoEmp NUMBER) RETURN NUMBER;
   -- Embaucher un nouvel employé et retourner son numéro matricule
  FUNCTION embaucher_employé(leNom VARCHAR2,
                  leServ NUMBER,
                  leSal  NUMBER,
                  laDate DATE,
                  lenss  NUMBER) RETURN NUMBER;

   -- Licencier un employé
   PROCEDURE licencier_employé(lenoEmp NUMBER,
                  leMotif VARCHAR2);

   -- Définir une variable de signature de prime
   PROCEDURE définir_prime(nouvelleValeur NUMBER);

   END LIB_HR;

CREATE OR REPLACE PACKAGE BODY LIB_HR AS
   -- Variables package --
   signatureprime NUMBER := 1000;

   -- Curseur package --
   CURSOR next_idemp
      IS SELECT idemp_séquence.NEXTVAL
         FROM dual;

   -- Extraire le numéro de Sécurité Sociale d'un employé
   FUNCTION get_nns(leNoEmp NUMBER) RETURN NUMBER IS
      tmpSSN NUMBER;
   BEGIN
      SELECT ssn
         INTO tmpSSN
         FROM emp
         WHERE noemp = leNoEmp;
         RETURN(tmpSSN);
   EXCEPTION
      WHEN NO_DATA_FOUND THEN
         RETURN(-1);
    END;

   -- Embaucher un nouvel employé et retourner son numéro matricule
   FUNCTION embaucher_employé(leNom VARCHAR2,
                  leServ NUMBER,
                  leSal  NUMBER,
                  laDate DATE,
                  leNNS  NUMBER) RETURN NUMBER IS
      NoEmptmp NUMBER;
   BEGIN
      IF (NOT next_empid%ISOPEN) THEN
         OPEN next_empid;
      END IF;
      FETCH next_empid INTO NoEmptmp;
      -- Il n'est pas nécessaire de FERMER le curseur car il
      -- reste ouvert d'un appel à l'autre.

      INSERT INTO EMP(noemp, nome, noserv, sal,
                       dateemb, nss, prime)
      VALUES(NoEmptmp, leNom, leServ, leSal,
         laDate, leNNS, signatureprime);
      RETURN(NoEmptmp);
   EXCEPTION
      WHEN OTHERS THEN
      RETURN(-1);
   END;
   -- Licencier un employé
   PROCEDURE licencier_employé(lenoEmp NUMBER,
                     leMotif VARCHAR2) IS
   BEGIN
      DELETE FROM emp
         WHERE noemp = lenoEmp;
      INSERT INTO licenciements(noemp, motif)
         VALUES(lenoEmp, leMotif);
   END;

   -- Définir une variable de signature de prime
   PROCEDURE signature_prime(nouvelleValeur NUMBER) IS
   BEGIN
      signaturePrime := nouvelleValeur;
   END;

END LIB_HR;


Référence au contenu d'un package PL/SQL

Vous pouvez faire référence au contenu d'un package en utilisant une notation par point PL/SQL standard :

nom_package.nom_objet
nom_package.nom_unité de programme

Par exemple, pour appeler la procédure arrange_windows définie dans le package win_manage, vous pouvez écrire dans un déclencheur ou un sous-programme nommé par l'utilisateur :

win_manage.arrange_windows

Les mêmes règles s'appliquent aux packages concernant des sous-programmes nommés par l'utilisateur.


A propos des packages de Form Builder

  Rubriques connexes

Form Builder offre les packages prédéfinis suivants :

Extensions STANDARD	Le package Extensions STANDARD contient des fonctions et des procédures internes de Form Builder

TOOL_ENV	Le package TOOL_ENV vous permet une interaction avec les variables d'environnement Oracle.

ORA_NLS	Le package ORA_NLS vous permet d'extraire des informations de haut niveau sur l'environnement de langue que vous utilisez.

TOOL_RES	Le package TOOL_RES vous permet d'extraire des ressources en chaîne d'un fichier de ressources.

ORA_FFI	Le package ORA_FFI vous permet d'accéder aux fonctions étrangères (L3G).

ORA_DE	Le package ORA_DE est un package interne. Ne l'utilisez pas.

STPROC	Le package STPROC est un package interne. Ne l'utilisez pas.

TEXT_IO	Le package TEXT_IO vous permet de lire et d'écrire des informations dans un fichier du système de fichiers.

PECS	Le package PECS vous permet d'évaluer les performances des applications Forms.

FORMS_OLE	Le package FORMS_OLE contient des procédures et des fonctions OLE de Form Builder.

VBX	Le package VBX contient des procédures et des fonctions VBX de Form Builder.

Standard	Le package Standard contient des procédures et des fonctions PL/SQL.

Remarque : PL/SQL met également à votre disposition des packages fournis dont les procédures peuvent être appelées à partir du code PL/SQL d'une application Forms. Cependant, une telle procédure avec un nom commençant par DBMS_ n'est disponible que sur le serveur (et non sur le client).


Traitement des interrogations

Chaque bloc de données est associé à une source de données. Pour faire suite à une action de l'application ou de l'utilisateur, Form Builder peut générer une interrogation portant sur la source de données. Les paragraphes suivants décrivent la manière dont Form Builder crée et traite les interrogations.

Les propriétés du bloc de données et de ses éléments de table de base définissent l'instruction SQL SELECT que Form Builder exécute en l'absence d'autres instructions. Form Builder définit automatiquement la plupart de ces propriétés. Toutefois, le créateur de l'application peut définir les propriétés suivantes :

•	Clause WHERE.

•	Clause ORDER BY.

•	Copier valeur de l'élément.

L'application peut également définir des propriétés à l'aide de procédures internes, au moment de l'exécution.

A l'exécution, l'utilisateur final peut initier des interrogations via un processus en deux étapes :

1	Il doit mettre l'application Forms en mode Saisie interrogation et entrer les conditions query-by-example dans les champs appropriés. Un enregistrement exemple est ainsi créé. Lorsque l'utilisateur final entre le caractère deux-points dans un champ, Form Builder ouvre la boîte de dialogue Interrogation Where, dans laquelle l'utilisateur final peut indiquer les conditions qui sont trop complexes pour être définies en entrant des valeurs dans des champs. Ce cas peut survenir lors de l'indication d'une clause ORDER BY.

2	Il doit demander à Form Builder d'exécuter l'interrogation en utilisant l'enregistrement exemple.

L'application peut modifier l'enregistrement exemple que l'utilisateur a créé ou en créer un sans l'intervention de ce dernier. Pour générer l'interrogation à envoyer à la base de données, Form Builder associe l'enregistrement exemple aux propriétés de bloc définies au préalable.

Pour créer une instruction SELECT à envoyer à la base de données, Form Builder procède comme suit :

1	Il génère une instruction SELECT à l'aide des noms de colonne qui correspondent aux éléments de la table de base du bloc.

2	Il ajoute une clause WHERE résultant de l'association, via l'opérateur AND, de la propriété de bloc Clause WHERE et d'autres conditions WHERE provenant de l'enregistrement exemple. Par exemple, si l'utilisateur final entre la valeur 10 dans le champ DEPTNO, Form Builder ajoute la condition supplémentaire DEPTNO=10 à la clause WHERE. Si la propriété Copier valeur de l'élément de l'un des éléments de la table de base du bloc est paramétrée sur une valeur non nulle, Form Builder inclut cette valeur dans la clause WHERE.

3	Il ajoute la clause ORDER BY de l'enregistrement exemple. Si cet enregistrement ne contient pas de clause ORDER BY, Form Builder utilise le contenu de la propriété de bloc Clause ORDER BY.

Form Builder réinitialise l'enregistrement exemple chaque fois qu'une instruction de programme, une sélection de menu ou une touche de fonction lui demande d'exécuter la procédure interne ENTER_QUERY, EXECUTE_QUERY ou COUNT_QUERY, ou d'entrer dans l'un des modes interactifs correspondants.

Les développeurs peuvent attribuer des valeurs aux éléments via un déclencheur PRE-QUERY. Notez que les modifications apportées à une instruction SELECT par un déclencheur PRE-QUERY remplacent celles que l'utilisateur final a entrées en mode Saisie interrogation. Cette fonctionnalité permet aux développeurs de repérer les interrogations non autorisées.

Boîte de dialogue Interrogation Where  L'utilisateur final peut appeler la boîte de dialogue Interrogation Where en entrant le caractère deux-points dans un champ en mode Saisie interrogation. Il peut ainsi renseigner la clause WHERE en entrant des conditions d'interrogation à l'aide de la fonction de comparaison avec un modèle et des opérateurs relationnels.

Traitement en mode Saisie interrogation

Form Builder modifie les règles de traitement des applications Forms en mode Saisie interrogation de la manière suivante :

•	Il n'effectue aucune validation.

•	Il utilise les définitions de touches de fonction standard (et non celles des déclencheurs sur touche).

•	Il désactive les touches de fonction suivantes :

Menu Bloc	Bloc suivant
Effacer application Forms/Annulation	Enregistrement suivant
Enregistrement dans la base de données (Commit)	Ensemble d'enregistrements suivant
Bas	Bloc précédent
Dupliquer élément	Enregistrement précédent
Dupliquer enregistrement	Défilement vers le bas
Insérer enregistrement	Défilement vers le haut
Verrouiller enregistrement	Haut


Initialisation

Form Builder initialise une application Forms en créant un enregistrement NULL dans chacun des blocs de l'application. Chaque élément d'un enregistrement non renseigné est NULL. Lorsqu'il entre pour la première fois dans un bloc, Form Builder remplace l'enregistrement NULL par un enregistrement initialisé. Il attribue alors des valeurs initiales à certains éléments. La propriété Valeur initiale d'un élément indique la valeur initiale de ce dernier.

Remarque : Si un déclencheur attribue une valeur à un élément d'un enregistrement NULL, l'enregistrement n'est plus nul. Form Builder n'attribuera pas de valeur initiale aux éléments de l'enregistrement. Par exemple, un déclencheur PRE-FORM est activé alors que l'application Forms ne contient que des enregistrements NULL. Si ce déclencheur attribue une valeur à un élément, il doit vérifier que tous les autres éléments de l'enregistrement reçoivent les valeurs initiales appropriées.

Des caractéristiques spéciales s'appliquent à certains types d'éléments.

Cases à cocher

La valeur initiale détermine si la case à cocher est sélectionnée ou non à l'origine. Vous devez indiquer une valeur initiale valide sauf si l'une des conditions suivantes est remplie :

•	La propriété Correspondance d'autres valeurs de l'élément est définie sur Coché ou sur Non coché.

•	La valeur associée à l'état coché ou non coché est Null.

Remarque : Les cases à cocher des enregistrements Null apparaissent non cochées.

Eléments de liste

Vous devez indiquer une valeur initiale valide sauf si l'une des conditions suivantes est remplie :

•	La propriété Correspondance d'autres valeurs de l'élément comporte une valeur non Null.

•	La valeur associée à l'un des éléments de la liste est Null.

Remarque : Un élément de liste d'un enregistrement Null apparaît en blanc.

Groupes de boutons d'options

Vous devez indiquer une valeur initiale valide sauf si l'une des conditions suivantes est remplie :

•	La propriété Correspondance d'autres valeurs de l'élément comporte une valeur non nulle.

•	La valeur associée à l'un des boutons d'option dans le groupe est Null.

Remarque : Dans un enregistrement Null, aucun bouton d'option n'est sélectionné dans le groupe de boutons d'options affiché.

Eléments synchronisés

Si la propriété Option Synchroniser avec de certains éléments (par exemple, B et C) est définie sur le nom d'un autre élément (A), A, B et C forment un ensemble d'éléments synchronisés. A est l'élément maître de l'ensemble, et B et C sont des éléments secondaires. Les éléments synchronisés sont appelés éléments miroir dans les versions antérieures de Form Builder.

Les éléments d'un ensemble synchronisé ont en commun une même valeur de données, mais leurs propriétés peuvent être différentes. Form Builder utilise les propriétés et les déclencheurs ci-dessous propres aux données de l'élément maître et ignore ceux des éléments secondaires.

Form Builder initialise les éléments synchronisés via la propriété Valeur initiale de l'élément maître. Il utilise également le déclencheur ON-SEQUENCE-NUMBER de cet élément.

Si le développeur indique la propriété Valeur initiale ou le déclencheur ON-SEQUENCE-NUMBER d'un élément secondaire, Form Builder les ignore et affiche un avertissement.

Form Builder ignore la propriété Valeur initiale d'un élément si toutes les conditions suivantes sont remplies pour cet élément (ou pour l'un des éléments avec lequel il est synchronisé) :

•	L'élément est une case à cocher, une liste instantanée (déroulante), une liste de sélection (liste texte) ou un groupe de boutons d'options.

•	L'élément ne contient aucun élément correspondant à la valeur initiale indiquée.

•	La propriété Correspondance d'autres valeurs de l'élément comporte une valeur Null.


Validation

Form Builder valide un élément en vérifiant que celui-ci est conforme aux règles qui lui sont attachées. Les déclencheurs peuvent mettre en œuvre d'autres validations.

Unité de validation

La propriété Unité de validation d'une application Forms contrôle le degré de finesse de sa validation. L'unité de validation peut être un élément, un enregistrement, un bloc ou une application Forms. La plupart des applications de Form Builder effectuent la validation au niveau de l'élément.

Conditions de validation

Form Builder effectue une validation lorsque :

•	Form Builder sort de l'unité de validation. Cela se produit lorsque l'utilisateur final appuie sur certaines touches de fonction ou bien clique à l'extérieur de l'unité de validation ou lorsqu'un déclencheur exécute certaines procédures internes.

•	Un déclencheur appelle la procédure interne ENTER ou lorsque l'utilisateur final appuie sur [Entrée].

•	Un déclencheur appelle la procédure interne COMMIT_FORM ou lorsque l'utilisateur final appuie sur [Validation]. Dans ce cas, Form Builder valide l'application Forms quelle que soit l'unité de validation.

•	Un déclencheur appelle la procédure interne VALIDATE.

Form Builder n'effectue aucune validation en mode Saisie interrogation. Ceci permet à l'utilisateur final d'entrer des critères d'interrogation considérés comme non valides par Form Builder.

Fonctionnement de la validation

Form Builder consigne de façon interne l'état de chaque élément, enregistrement, bloc et application Forms. Chaque unité de validation éventuelle dispose d'un état de validation, qui peut prendre l'une des deux valeurs suivantes :

•	Valide

•	Non validé

L'état Valide signifie que Form Builder n'a pas besoin d'examiner l'unité de validation. L'état Non validé, qui correspond à une combinaison d'états connus en interne comme Nouveau et Modifié, signifie que Form Builder doit valider les éléments de l'unité de validation. La différence entre les états Nouveau et Modifié n'apparaît que très rarement au cours du processus de validation (reportez-vous à la remarque dans le tableau suivant).

En cas d'échec de la validation, un troisième état apparaît. Dans ce cas, Form Builder ne poursuit l'opération qu'une fois le problème résolu. Par conséquent, l'état d'échec ne fait pas partie du processus de validation.

Form Builder valide les unités de validation en procédant de l'une des manières suivantes :

Elément	Si l'état de l'élément est Valide, le processus s'arrête. Si l'état de l'élément est Non validé, Form Builder effectue une vérification de la validation standard, puis active le déclencheur WHEN-VALIDATE-ITEM.(Voir toutefois la propriété Différer la mise en vigueur obligatoire.)
Enregistrement	Si l'état de l'enregistrement est Valide, le processus s'arrête. Si l'état de l'enregistrement est Non validé, Form Builder valide chaque élément de l'enregistrement, puis active le déclencheur WHEN-VALIDATE-RECORD. Remarque : Si la validation est due à l'appel du déclencheur VALIDATE et que l'état interne de l'enregistrement est Nouveau, le processus s'arrête.
Bloc	Form Builder valide tous les enregistrements du bloc.
Application Forms	Form Builder valide tous les blocs de l'application Forms.
Etat de validation d'un élément

Non validé  Form Builder définit l'état d'un élément comme étant Non validé dans les cas suivants :

•	Form Builder crée un enregistrement.

•	L'utilisateur final attribue une valeur à l'élément ou un déclencheur stocke une valeur dans l'élément.

Remarque : Form Builder définit l'état de l'élément comme étant Non validé même si la nouvelle valeur est identique à l'ancienne. Par exemple, si un élément dont l'état est Valide comporte la valeur 10 et que l'utilisateur final entre 10 dans cet élément, Forms Builder définit l'état de l'élément comme étant Non validé.

•	Lorsque Form Builder copie un enregistrement (en réponse à la procédure interne DUPLICATE_RECORD ou à la touche [Dupliquer enregistrement]), tout élément dont l'état est Non validé dans l'enregistrement d'origine conserve cet état dans la copie.

Valide  Form Builder définit l'état d'un élément comme étant Valide dans les cas suivants :

•	Lorsque la validation d'un élément est terminée, Form Builder définit son état comme étant Valide, même si la validation modifie la valeur de l'élément (via un déclencheur WHEN-VALIDATE-ITEM, WHEN-VALIDATE-RECORD ou POST-CHANGE). Form Builder ne valide pas de nouveau la valeur modifiée.

Avertissement : Ce comportement évite l'apparition de boucles de validation. Toutefois, en cas d'erreur du déclencheur, Form Builder peut enregistrer une valeur non valide dans la base de données.

•	Lorsque Form Builder extrait des enregistrements de la base de données, il définit leur état comme étant Valide, même si un déclencheur Post-Change activé au cours de l'extraction a modifié la valeur des éléments.

•	Lorsque Form Builder enregistre (commit) des données dans la base, il définit l'état de tous les éléments de l'application comme étant Valide. Form Builder ne valide pas les modifications apportées par les déclencheurs activés au cours de l'opération commit.

Remarque : Pour connaître les exceptions à cette règle, reportez-vous à la rubrique Modification des données au cours du processus de validation.

•	Lorsque Form Builder copie un enregistrement (en réponse à la procédure interne DUPLICATE_RECORD ou à la touche [Dupliquer enregistrement]), tout élément dont l'état est Valide dans l'enregistrement d'origine conserve cet état dans la copie.

Etat de validation d'un enregistrement

L'état de validation de chaque enregistrement doit être Non validé ou Valide.

Remarque : L'état de validation d'un enregistrement et la valeur de la variable système SYSTEM.RECORD_STATUS sont deux notions différentes.

Non validé  Form Builder définit l'état d'un enregistrement comme étant Non validé dans les cas suivants :

•	Lorsqu'il crée un enregistrement.

•	Lorsqu'il définit l'état d'un élément de l'enregistrement comme étant Non validé.

•	Lorsqu'il copie un enregistrement (en réponse à la procédure interne DUPLICATE_RECORD ou à la touche [Dupliquer enregistrement]).

Valide  Form Builder définit l'état d'un enregistrement comme étant Valide dans les cas suivants :

•	Lorsqu'il valide un enregistrement, Form Builder valide chaque élément dont l'état n'est pas défini comme étant Valide. Si tous les éléments présentent cet état à la fin de ce processus et qu'aucun déclencheur WHEN-VALIDATE-RECORD ne provoque d'exception Form_Trigger_Failure, Form Builder définit l'état de l'enregistrement comme étant Valide.

•	Form Builder définit l'état des enregistrements extraits de la base de données comme étant Valide.

•	Lorsque Form Builder enregistre (commit) des données dans la base de données, il définit l'état de tous les enregistrements de l'application comme étant Valide. Form Builder ne valide pas les modifications apportées par les déclencheurs activés au cours de l'opération commit.

Remarque : Pour connaître les exceptions à cette règle, reportez-vous à la rubrique Modification des données au cours du processus de validation.

•	Lorsqu'il copie un enregistrement (en réponse à la procédure interne DUPLICATE_RECORD ou à la touche [Dupliquer enregistrement]) dont l'état est défini comme étant Valide, il définit l'état de l'enregistrement copié comme étant Valide.

Vérification des validations standard

Form Builder suit les exigences indiquées dans les sections Données et Listes de valeurs (LOV) de la Palette de propriétés pour valider un élément.

Séquence de validation des éléments Texte

En ce qui concerne les éléments texte, Form Builder effectue l'une des séquences de validation suivantes, selon que la valeur de l'élément et Null ou non Null. Si l'élément texte échoue à une étape de validation, Form Builder note l'échec et ignore les étapes ultérieures.

Si la valeur de l'élément est null :

1	Si la propriété Obligatoire de l'élément est activée, la validation de l'élément échoue sauf si une validation de niveau élément se produit et si l'une des conditions suivantes est remplie :

•	La propriété Différer la mise en vigueur obligatoire de l'application est définie à Ou ou 4.5. (Pour une explication du comportement de validation dans un tel cas, voir la propriété Différer la mise en vigueur obligatoire.)

•	L'instance de l'élément n'autorise pas la mise à jour par l'utilisateur.

Dans les conditions exceptionnelles ci-dessus, Form Builder diffère la validation de l'élément Null jusqu'à la validation au niveau enregistrement. (Notez que si l'instance de l'élément ne permet pas de mise à jour par l'utilisateur, la validation est différée même si la propriété Différer la mise en vigueur obligatoire est désactivée.)

2	Si la propriété Obligatoire de l'élément est définie à Non, le déclencheur WHEN-VALIDATE-ITEM est activé. Si le déclencheur génère une exception Form_Trigger_Failure, cette étape de validation échoue.

Si la valeur de l'élément n'est pas Null :

1	Form Builder vérifie le type de données. Si la valeur ne correspond pas au type de données de l'élément, ce dernier échoue à cette étape de validation.

Form Builder tente de convertir une valeur entrée par l'utilisateur pour qu'elle corresponde au type de données de l'élément.

Form Builder utilise le masque de format de l'élément (s'il existe). Si l'élément ne dispose d'aucun masque de format et que son type de données correspond à DATE ou à DATETIME, Form Builder utilise le masque de format d'entrée défini au démarrage de Form Builder.

Si l'élément ne présente aucun masque de format et que son type de données correspond à NUMBER ou à ALPHA, Form Builder recherche une chaîne de texte numérique ou alphabétique valide.

2	Form Builder vérifie la longueur de l'élément. Si la valeur ne correspond pas à la propriété Longueur fixe de l'élément, ce dernier échoue à cette étape de validation.

3	Form Builder vérifie la plage de l'élément. Si la valeur ne correspond pas aux propriétés Valeur minimum autorisée et Valeur maximum autorisée de l'élément, ce dernier échoue à cette étape de validation.

4	Si la propriété Valider via la liste de valeurs de l'élément est activée, Form Builder vérifie que la valeur apparaît dans la liste des valeurs de l'élément.

5	Form Builder active le déclencheur POST-CHANGE. Si le déclencheur fait apparaître l'exception Form_Trigger_Failure, l'élément échoue à cette étape de validation.

6	Form Builder active le déclencheur WHEN-VALIDATE-ITEM. Si le déclencheur fait apparaître l'exception Form_Trigger_Failure, l'élément échoue à cette étape de validation.

Séquence de validation des autres éléments

Si la propriété Type d'élément de l'élément n'est pas paramétrée sur Elément Texte, Form Builder réalise la séquence de validation ci-dessus en ignorant les étapes 3 à 5. Il ignore également l'étape 2, sauf si la propriété Type d'élément est paramétrée sur Elément Liste et la propriété Type de liste sur Zone de liste déroulante.

Validation des éléments synchronisés

Si la propriété Option Synchroniser avec de certains éléments (par exemple, B et C) est définie sur le nom d'un autre élément (A), A, B et C forment un ensemble d'éléments synchronisés. A est l'élément maître de l'ensemble, et B et C sont des éléments secondaires. Les éléments synchronisés sont appelés éléments miroir dans les versions antérieures de Form Builder.

Les éléments d'un ensemble synchronisé ont en commun une même valeur de données, mais leurs propriétés peuvent être différentes. Form Builder utilise les propriétés et les déclencheurs ci-dessous propres aux données de l'élément maître et ignore ceux des éléments secondaires.

Lorsqu'il valide la valeur attribuée à un ensemble synchronisé d'éléments, Form Builder utilise les propriétés et les déclencheurs propres aux données de l'élément maître, à savoir :

•	la propriété Obligatoire ;

•	la propriété Valeur maximum autorisée ;

•	la propriété Valeur minimum autorisée ;

•	la valeur initiale ;

•	le déclencheur POST-CHANGE ;

•	le déclencheur WHEN-VALIDATE-ITEM.

Si l'élément secondaire dispose de valeurs pour ces propriétés ou de spécifications pour ces déclencheurs, Form Builder les ignore et affiche un avertissement.

Par programme ou par intervention de l'utilisateur, Form Builder se procure les autres propriétés de validation à partir de l'élément qui définit de la valeur de données. Form Builder utilise notamment les propriétés Longueur fixe et Valider à partir de la liste de cet élément.

La variable SYSTEM.TRIGGER_ITEM contient le nom de l'élément qui définit la valeur de données. Le code du déclencheur POST-CHANGE ou WHEN-VALIDATE-ITEM peut ainsi faire référence aux propriétés de cet élément, bien que ces déclencheurs soient définis pour l'élément maître.

Form Builder considère qu'une valeur qui n'a pas été définie par programme ou par l'utilisateur est définie par l'élément maître, car cet élément est la source que Form Builder utilise pour définir la valeur initiale.

Au cours de la validation au niveau de l'enregistrement, Form Builder valide l'élément via lequel la valeur de données a été définie. Si la validation échoue, Form Builder tente de placer le point d'insertion dans cet élément, sauf si l'instance de l'élément n'autorise pas l'utilisateur final à saisir des données. Dans ce cas, Form Builder tente de placer le point d'insertion dans un autre élément de l'ensemble synchronisé autorisant l'intervention de l'utilisateur. S'il ne parvient pas à en trouver un, il tente de placer le point d'insertion dans un élément de l'ensemble dont la propriété Activé est paramétrée sur Oui.


Traitement de l'enregistrement dans la base de données (commit)

Par ce traitement, Form Builder va tenter de faire correspondre les données de la base de données avec celles de l'application Forms. Form Builder procède habituellement de la manière suivante :

1	Il lit les enregistrements de la base de données.

2	Il permet à l'utilisateur final d'effectuer des insertions, des mises à jour et des suppressions provisoires. Ces modifications apparaissent uniquement dans l'application Forms. La base de données reste inchangée.

3	Il effectue une opération post pour inscrire les modifications dans la base de données. Form Builder effectue tous les autres traitements et envoie les données à la base de données. Une fois les données inscrites, Form Builder peut uniquement les enregistrer (commit) dans la base de données ou les annuler (via la touche de fonction [Effacer application Forms] ou la procédure interne CLEAR_FORM).

4	Form Builder enregistre les données inscrites. Ces modifications apportées à la base de données deviennent permanentes.

Le terme traitement de l'enregistrement dans la base de données fait référence aux étapes 3 et 4 du cycle ci-dessus. Ces étapes sont généralement simultanées. En réponse à la touche [Commit] ou à l'appel de la procédure interne COMMIT_FORM, Form Builder inscrit les données dans la base de données, puis les enregistre.

L'inscription peut être effectuée avant l'enregistrement. Vous ne pouvez pas transmettre de commandes d'inscription, mais les déclencheurs peuvent appeler la procédure interne POST.

Remarque : Form Builder ne prend pas en charge une opération d'enregistrement qui ne comprend pas le traitement habituel des opérations commit de Form Builder. Par exemple, Form Builder ne prend pas en charge une opération commit émise par un user exit d'Oracle Precompiler ou par une procédure stockée.

Traitement des insertions, des mises à jour et des suppressions

L'opération d'inscription (post) revient à envoyer les modifications provisoires de l'application Forms à la base de données. Il s'agit d'enregistrements marqués pour l'insertion, la mise à jour ou la suppression depuis la dernière inscription. Au cours de l'inscription, Form Builder traite les insertions, les mises à jour et les suppressions de tous les blocs d'une application Forms. Form Builder effectue cette opération de manière standard. Les déclencheurs permettent d'adapter ce comportement standard.

Insertion  Correspond à l'insertion en attente d'une ligne dans la base de données. Chaque insertion est associée à une instruction SQL que Form Builder exécute lorsqu'il inscrit l'insertion. Cette instruction est au format suivant :

INSERT INTO table [(column, column, . . .)]
  VALUES (value, value, . . .);

table	Nom de la table de base du bloc en cours.
column	Colonne correspondant à un élément de la table de base. Si l'élément est une colonne dérivée, il n'apparaît pas dans la clause column.
valeur	Valeur à insérer dans la colonne correspondante.
Mise à jour  Correspond à la mise à jour en attente d'une ligne existante dans la base de données. Chaque mise à jour est associée à une instruction SQL, que Form Builder exécute lorsqu'il inscrit la mise à jour. Cette instruction est au format suivant :

UPDATE table
  SET (column=value, column=value, . . .)
  WHERE ROWID=rowid_value;

table	Nom de la table de base du bloc en cours.
column	Colonne correspondant à un élément de la table de base. Si l'élément est une colonne dérivée, il n'apparaît pas dans la clause column.
valeur	Valeur de mise à jour pour la colonne correspondante.
rowid_value	Valeur ROWID de la ligne que Form Builder met à jour.
Remarque :

•	La clause WHERE n'indique qu'une valeur ROWID. Elle identifie la ligne unique qui doit être mise à jour. Form Builder n'utilise l'élément ROWID que lorsque la propriété Mode clé du bloc est paramétrée sur Unique_Key (valeur par défaut).

•	Si l'utilisateur final ne dispose pas des privilèges de mise à jour et que la propriété Imposer sécurité sur colonne du bloc est activée, Form Builder n'inclut pas la colonne dans l'instruction UPDATE. Des utilisateurs différents peuvent disposer d'instructions UPDATE différentes selon leurs privilèges. Cependant, l'instruction reste inchangée au cours d'une session utilisateur de Form Builder.

Suppression  Correspond à la suppression en attente d'une ligne de la base de données. Chaque suppression est associée à une instruction SQL, que Form Builder exécute lorsqu'il inscrit la suppression. Cette instruction est au format suivant :

DELETE FROM table WHERE ROWID=rowid_value;

table	Nom de la table de base du bloc en cours.
rowid_value	Valeur ROWID de la ligne que Form Builder supprime.
Remarque : La clause WHERE n'indique qu'une valeur ROWID. Elle identifie la ligne unique qui doit être supprimée. Form Builder n'utilise pas la valeur ROWID dans les sources de données autres qu'Oracle.

Avertissement : Si l'opération commit échoue, la valeur ROWID n'est peut-être pas nulle. Pour savoir si la validation a réussi ou a échoué, utilisez l'état d'enregistrement plutôt que la valeur ROWID.

Conditions du traitement de l'enregistrement dans la base de données

Form Builder lance le traitement de l'enregistrement dans la base de données lorsque :

•	Un déclencheur ou la touche [Commit] appelle la procédure interne COMMIT_FORM.

•	Les éléments de base de données du bloc en cours ont été modifiés depuis la dernière opération commit et un déclencheur appelle la procédure interne CLEAR_BLOCK (avec l'argument DO_COMMIT).

•	Les éléments de base de données de l'application Forms ont été modifiés depuis la dernière opération commit et un déclencheur appelle la procédure interne CLEAR_FORM (avec l'argument DO_COMMIT).

•	L'utilisateur final répond Oui au message d'alerte suivant :

  Voulez-vous enregistrer les modifications ? Ce message apparaît dans les cas suivants :

L'alerte s'affiche à la suite de l'une des conditions suivantes :

•	Les éléments de base de données du bloc actuel ont été modifiés depuis la dernière opération Commit et l'un des événements suivants se produit :

CLEAR_BLOCK (avec l'argument ASK_COMMIT ou sans argument)

COUNT_QUERY

ENTER_QUERY

EXECUTE_QUERY

NEW_FORM

•	Les éléments de base de données de l'application Forms ont été modifiés depuis la dernière opération commit et l'un des événements suivants survient :

CLEAR_FORM (avec l'argument ASK_COMMIT ou sans argument)

Sortir de l'application Forms

Remarque : Lorsqu'un bloc PL/SQL effectue une opération commit dans la base de données depuis Form Builder (via l'instruction SQL COMMIT), le traitement de l'enregistrement depuis Form Builder survient comme si la procédure interne COMMIT_FORM avait été appelée.

Modification des données au cours du traitement de l'enregistrement dans la base de données

Le traitement de l'enregistrement dans la base de données comprend des validations et peut activer des déclencheurs. Un événement commit peut donc modifier des éléments de base de données. Pour certains déclencheurs, Form Builder tente d'enregistrer les modifications dans la base de données pendant l'événement commit en cours.

Avertissement : Form Builder peut enregistrer des modifications de base de données non validées apportées par les déclencheurs PRE-DELETE, PRE-INSERT et PRE-UPDATE.

Par exemple, supposez qu'un déclencheur PRE-INSERT sélectionne une valeur dans un élément de table de base.

•	Si Form Builder n'a pas traité les mises à jour de l'enregistrement concerné, il enregistre les modifications dans la base de données pendant l'événement commit en cours sans leur donner l'état Valide.

•	Si Form Builder a traité les mises à jour de l'enregistrement concerné, il n'enregistre pas les modifications dans la base de données mais il signale que les enregistrements proviennent de la base de données. Une erreur survient si vous tentez par la suite de mettre à jour l'enregistrement avant son enregistrement dans la base de données.

Avertissement : Form Builder peut enregistrer des modifications de base de données non validées apportées par les déclencheurs POST-COMMIT, POST-DELETE, POST-INSERT et POST-UPDATE.

Par exemple, supposez qu'un déclencheur POST-INSERT sélectionne une valeur dans un élément de table de base.

•	Si l'enregistrement concerné fait partie d'un bloc enregistré dans la base de données ou en cours d'enregistrement, Form Builder n'enregistre pas les modifications pendant l'événement commit en cours. Si l'opération commit réussit, Form Builder marque tous les éléments et les enregistrements comme étant valides. Ceci entraîne une erreur lors des traitements suivants.

•	Si l'enregistrement concerné fait partie d'un bloc non enregistré, Form Builder donne aux modifications l'état Valide et les enregistre dans la base de données pendant l'événement commit en cours.

Remplacement du traitement standard de l'enregistrement dans la base de données (commit)

Les déclencheurs ON-INSERT, ON-UPDATE et ON-DELETE remplacent le traitement standard de l'opération commit.


Verrouillage

  Rubriques connexes

Les bases de données Oracle permettent à plusieurs utilisateurs d'examiner et de modifier des données en même temps. Les verrouillages permettent à Oracle d'empêcher les modifications simultanées d'interférer. Le verrouillage des tables et des lignes contribue à conserver la cohérence et l'intégrité des données. Le manuel Oracle Server Concepts Manual explique de manière exhaustive les méthodes et les types de verrouillage d'Oracle.

En général, Form Builder gère le verrouillage de manière automatique ; toutefois, les développeurs et les utilisateurs peuvent contrôler le moment où les ressources sont verrouillées et la manière dont l'opération est effectuée.

Lorsque l'utilisateur final met à jour une ligne, Form Builder la verrouille pour empêcher les autres utilisateurs de la mettre à jour tant que le premier utilisateur n'a pas enregistré (commit) ou annulé (rollback) les modifications. Form Builder tente systématiquement d'obtenir des verrouillages de ligne exclusifs en réponse aux événements utilisateur et au traitement par déclencheur et par transaction, sauf si la propriété Mode de verrouillage du bloc est paramétrée sur Différé.

Un verrouillage de ligne exclusif :

•	empêche d'autres utilisateurs de mettre à jour ou de supprimer la ligne, ou d'acquérir des verrouillages sur cette ligne.

•	permet à d'autres utilisateurs d'interroger la ligne.

Verrouillages utilisateur  Lorsque l'utilisateur final modifie la valeur d'un élément de la table de base ou demande explicitement un verrouillage sur un enregistrement, Form Builder tente de placer un verrouillage exclusif sur la ligne correspondante dans la base de données. L'instruction du verrouillage exclusif de ligne est au format suivant :

SELECT <tous les éléments de la table de base du bloc>
  FROM <table de base du bloc>
  WHERE ROWID = <ID de ligne unique de la ligne à verrouiller>
  FOR UPDATE OF <tous les éléments de la table de base du bloc>

L'utilisation de l'instruction SELECT FOR UPDATE garantit que les données que l'utilisateur final modifie au cours de son travail dans une application Forms sont identiques aux données correspondantes de la base de données.

Verrouillages par déclencheur  Lorsqu'un déclencheur modifie une table via une commande DML (Data Manipulation Language - Langage de manipulation de données), la base de données tente de placer un verrouillage exclusif sur la ligne concernée. Form Builder ne gère pas les verrouillages générés par instructions DML.

Form Builder tente de placer un verrouillage exclusif sur la ligne correspondant à un enregistrement extrait lorsqu'un déclencheur utilise l'une des procédures internes suivantes :

•	DELETE_RECORD

•	LOCK_RECORD

En général, toute action (appel de procédure interne, attribution de PL/SLQ, opération de mise à jour) modifiant une valeur d'un enregistrement interrogé entraîne une demande de verrouillage exclusif par Form Builder.

Verrouillage de ligne implicite et explicite

Deux types de verrouillage existent : implicite et explicite. Leurs fonctions sont identiques mais ils ne surviennent pas au même moment.

Verrouillage implicite  Toutes les applications Form Builder utilisent le verrouillage implicite ; par conséquent, l'utilisateur final n'a pas à utiliser le verrouillage explicite sur les lignes. Form Builder tente de placer un verrouillage exclusif sur une ligne à l'instant déterminé par la propriété Mode de verrouillage du bloc. Elle peut présenter l'une des trois valeurs suivantes : Automatique, Immédiat ou Différé.

Dans les bases de données Oracle, les valeurs Automatique et Immédiat sont équivalentes : Form Builder tente de placer un verrouillage exclusif sur une ligne dès que l'utilisateur final modifie un élément dans l'enregistrement correspondant. La valeur Automatique demande à Form Builder de repérer les capacités de la base de données et de s'y adapter, sans que les propriétés ou le code de déclencheur aient besoin d'être changés.

Si la propriété Mode de verrouillage du bloc est paramétrée sur Différé, Form Builder ne verrouille les lignes qu'au moment de l'enregistrement (commit) des modifications dans la base de données. Form Builder recherche alors les différences existant entre les valeurs actuelles de la base de données et celles qui ont été renvoyées par l'interrogation initiale. Si des différences existent, il en avertit l'utilisateur et n'enregistre pas les modifications dans la base de données.

Remarque : Lorsque Form Builder effectue une validation au niveau de l'élément, il n'accepte pas la modification s'il ne parvient pas à acquérir le verrouillage. S'il y parvient, il accepte la modification et tente de placer un verrouillage exclusif sur la ligne pendant la validation de l'enregistrement.

Verrouillage explicite  Un utilisateur ou un déclencheur peut demander explicitement à Form Builder de verrouiller immédiatement une ligne précise. Pour ce faire, l'utilisateur sélectionne Enregistrement [image] Verrouiller dans le menu par défaut. Un déclencheur demande un verrouillage explicite en appelant la procédure interne LOCK_RECORD. Un déclencheur ON-LOCK doit procéder de cette manière pour obtenir un verrouillage de manière explicite, car son action est prioritaire sur la procédure de verrouillage standard de Form Builder.

Echec de l'obtention de verrouillage

Form Builder tente plusieurs fois (nombre de tentatives déterminé) d'obtenir un verrouillage, puis il demande s'il doit tenter l'opération de nouveau. L'utilisateur final peut choisir d'attendre le verrouillage ou d'arrêter cette procédure.

Si un utilisateur verrouille une table de manière exclusive, les autres utilisateurs peuvent interroger les enregistrements de la table, mais ils ne peuvent pas mettre à jour ou supprimer des lignes. Cette condition persiste, sans avertissement, jusqu'à ce que la ressource devienne disponible. Par conséquent, Oracle recommande d'utiliser les verrouillages exclusifs de table le moins fréquemment possible.

Conditions de libération des verrouillages

La base de données libère les verrouillages lorsque :

•	L'application Forms réussit l'enregistrement (commit) des données dans la base.

•	L'application Forms s'arrête.

•	Form Builder annule toutes ses modifications (l'annulation ne s'arrête pas au point d'enregistrement).

•	Form Builder se déconnecte de la base de données.

Lorsqu'il annule les modifications apportées jusqu'à un point d'enregistrement, par exemple suite à l'échec d'une opération commit, Form Builder conserve les verrouillages. L'utilisateur peut ainsi apporter les modifications nécessaires et relancer l'opération commit.

Remarque :

•	Si un déclencheur verrouille des lignes de manière explicite via l'argument FOR_UPDATE, il doit interroger de nouveau ces lignes suite à une opération commit afin d'obtenir de nouveaux verrouillages.

•	La suppression d'un enregistrement ou d'un bloc ne libère aucun verrouillage sur les lignes correspondantes.

•	Si vous utilisez une instruction ROLLBACK ou COMMIT dans un déclencheur ou une procédure au niveau de l'application Forms, Form Builder libère tous les verrouillages. Form Builder interprète une instruction ROLLBACK comme une procédure interne CLEAR_FORM sans argument. Il interprète une instruction COMMIT comme une procédure interne COMMIT_FORM.

Remplacement du verrouillage standard

Le déclencheur ON-LOCK est activé dans les cas où Form Builder tente habituellement d'obtenir un verrouillage. Le code du déclencheur On-Lock remplace entièrement la procédure de verrouillage standard de Form Builder. Par conséquent, un déclencheur ON-LOCK tente habituellement d'appeler la procédure interne LOCK_RECORD.


Qu'est-ce qu'une propriété ?

 Toutes les propriétés

Chaque objet d'une application Form Builder a des caractéristiques appelées propriétés. Les propriétés d'un objet déterminent son aspect et ses fonctions.


A propos de la définition et de la modification de propriétés

  Rubriques connexes

Chaque description de propriété comporte un en-tête qui explique comment vous pouvez définir la propriété : de manière déclarative dans Form Builder (en utilisant la Palette de propriétés) et/ou par programme, lors de l'exécution.

Définition de propriétés par programme

Pour modifier dynamiquement les propriétés d'objet par programme, utilisez les sous-programmes intégrés Form Builder suivants :

•	SET_APPLICATION_PROPERTY

•	SET_BLOCK_PROPERTY

•	SET_CANVAS_PROPERTY

•	SET_FORM_PROPERTY

•	SET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_LOV_PROPERTY

•	SET_MENU_ITEM_PROPERTY

•	SET_PARAMETER_ATTR

•	SET_RADIO_BUTTON_PROPERTY

•	SET_RECORD_PROPERTY

•	SET_RELATION_PROPERTY

•	SET_REPORT_OBJECT_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	SET_VIEW_PROPERTY

•	SET_WINDOW_PROPERTY

Vous pouvez définir par programme la plupart des propriétés en utilisant les procédures internes correspondantes pour accéder aux propriétés (par exemple, GET_ITEM_PROPERTY).


Lecture de descriptions de propriété

Description

Les descriptions de propriété suivent un schéma général. Le nom de la propriété apparaît en gras, suivi d'une brève description.

Les en-têtes de colonne du tableau suivant concernent les propriétés auxquelles ils s'appliquent.

Intitulé	Description
S'applique	La ou les classes d'objet pour lesquelles cette propriété est significative.
Définition	Façon dont vous pouvez définir la propriété : dans Form Builder (en utilisant la Palette de propriétés) et/ou par programme lors de l'exécution.
Reportez-vous aux procédures internes suivantes :	Procédures internes que vous pouvez utiliser pour définir la propriété, si la définition par programme est possible.
Valeur par défaut	Valeur par défaut de la propriété.
Obligatoire/Facultatif	Indication du caractère obligatoire ou facultatif de la propriété.
Restrictions	Restrictions pouvant avoir une incidence sur l'utilisation de la propriété.
Notes d'utilisation	Notes que vous devez avoir présentes à l'esprit lorsque vous utilisez la propriété.


A propos de Control - Propriété

 Toutes les propriétés

Description

Propriété réservée aux éléments de contrôle ActiveX (OCX) dans l'éditeur de présentation. Fournit un lien concernant l'écran décrivant le contrôle OCX en cours.

Application  éléments ActiveX

Définition  Form Builder

Obligatoire/Facultatif  facultatif


Touche d'accès - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer le caractère utilisé comme touche d'accès, permettant à l'opérateur de sélectionner ou d'exécuter un élément en appuyant sur une combinaison de touches (Alt-C, par exemple).

Le caractère de touche d'accès est souligné dans le libellé de l'élément.

Supposons, par exemple, que le libellé de Push_Button1 est "Valider" et que la touche d'accès est "v". Lorsque l'opérateur appuie sur Alt-V (sous Microsoft Windows), Form Builder exécute la commande "Valider".

Application bouton, bouton d'option et case à cocher

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  facultatif

Notes d'utilisation

•	Lorsque l'opérateur déclenche une action en utilisant une touche d'accès, les déclencheurs associés à l'action sont activés. Supposons, par exemple, qu'une touche d'accès a été attribuée à Push_Button1. Supposons également qu'un déclencheur When-Button-Pressed est associé à Push_Button1. Lorsque l'opérateur appuie sur la touche d'accès, le déclencheur When-Button-Pressed est activé pour Push_Button1.


Touche d'accès - Restrictions

•	Les boutons dont la propriété Icône est activée ne peuvent pas avoir de touche d'accès.


Type d'alerte - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le type de l'alerte : Avertissement, Attention ou Information. Sur les plates-formes à interface graphique, le type d'alerte détermine l'icône bitmap qui est affichée dans l'alerte.

Application alerte

Définition  Form Builder

Valeur par défaut

Attention


Alias - Propriété

 Toutes les propriétés

Description

Définit un alias pour la table à laquelle le bloc de données est associé.

S'applique à  table/colonnes associées à un bloc de données

Définition  Form Builder

Valeur par défaut

L'assistant Bloc de données paramètre la propriété Alias sur la première lettre du nom de la table. (Par exemple, la table intitulée DEPT a la lettre D comme alias par défaut.)

Obligatoire/Facultatif obligatoire pour les tables Oracle8 contenant des objets colonne ou REF.

Notes d'utilisation

Pour les tables Oracle8, les instructions SELECT contenant des objets colonne ou des colonnes REF doivent identifier à la fois le nom et l'alias de la table. Elles doivent en outre qualifier le nom de la colonne en utilisant l'alias comme préfixe.

Par exemple :

     CREATE TYPE ADDRESS_TYPE AS OBJECT

                 (STREET   VARCHAR2(30),

                  CITY     VARCHAR2(30),

                  STATE    VARCHAR2(2));

      CREATE TABLE EMP

                  (EMPNO     NUMBER,

                   ADDRESS   ADDRESS_TYPE);

Si l'alias de la table EMP est E, l'instruction SELECT doit être qualifiée comme suit :

      SELECT EMPNO, E.ADDRESS.CITY FROM EMP E;

Dans ce cas, l'alias est E. L'objet colonne ADDRESS.CITY est qualifié par cet alias, qui est également annexé au nom de la table. (La colonne EMPNO qui est une colonne relationnelle standard n'exige pas une telle qualification.)

En règle générale, Form Builder gère l'attribution d'alias. Il établit un nom d'alias au moment de la conception et utilise automatiquement le nom qualifié lors de l'exécution, lorsqu'il extrait les données du serveur Oracle8. Vous ne devez vous occuper vous-même de cette opération que lorsque vous écrivez le code d'une clause WHERE de bloc, par exemple.


Autoriser développement - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si Form Builder peut développer automatiquement un cadre trop petit pour son contenu.

Application cadre

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Autoriser les branches vides - Propriété

 Toutes les propriétés

Description

Indique s'il peut exister des nœuds de branche sans fils. Lorsque cette propriété est paramétrée sur FALSE, les nœuds de branche sans fils sont convertis en nœuds de feuille. Lorsqu'elle est paramétrée sur TRUE, une branche vide apparaît sous la forme d'un nœud réduit.

Application  arborescence

Définition Form Builder, par programme

Valeur par défaut

Faux

Obligatoire/Facultatif  obligatoire


Autoriser invites multilignes - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si Form Builder peut conserver de l'espace dans un cadre en fractionnant une invite en plusieurs lignes. Les invites ne peuvent pas occuper plus de deux lignes.

Application cadre

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Autoriser invites de début attachées - Propriété

 Toutes les propriétés

Description

Permet d'indiquer s'il est possible d'optimiser la gestion de l'espace lors de la réorganisation des éléments dans des cadres de type tabulaire.

Par défaut, cette propriété est désactivée, et les invites sont attachées au bord supérieur de l'élément. Si vous activez cette propriété, vous pouvez attacher des invites au début de l'élément si la place disponible le permet.

Application cadre

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  obligatoire


Autoriser invites supérieures attachées - Propriété

 Toutes les propriétés

Description

Permet d'indiquer s'il est possible d'optimiser la gestion de l'espace lors de la réorganisation des éléments dans des cadres de type formulaire.

Par défaut, cette propriété est désactivée, et les invites sont attachées au début de l'élément. Si vous activez cette propriété, vous pouvez attacher des invites au bord supérieur de l'élément si la place disponible le permet.

Application cadre

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  obligatoire


Instance d'application - Propriété

 Restrictions

Description

Permet d'indiquer une référence à une instance d'une application sur la plate-forme Microsoft Windows. Les autres plates-formes retournent toujours la valeur NULL.

S'applique à application Forms, bloc ou élément

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Valeur par défaut

NULL

Notes d'utilisation

Indiquez la propriété APPLICATION_INSTANCE dans GET_APPLICATION_PROPERTY pour obtenir la valeur de pointeur d'un identificateur d'instance. Pour utiliser ce dernier lors de l'appel de Windows API, vous devez convertir cette valeur de pointeur à l'aide de TO_PLS_INTEGER.


Instance d'application - Restrictions

Valide uniquement sur Microsoft Windows (sur les autres plates-formes, retourne la valeur NULL).


Style de flèche - Propriété

 Toutes les propriétés

Description

Spécifie le style de flèche de la ligne : Aucun, Début, Fin, Deux extrémités, Du milieu vers début ou Du milieu vers fin.

Application  ligne graphique

Définition  Form Builder

Valeur par défaut

Aucune

Obligatoire/Facultatif  obligatoire


Menus associés - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer le nom du menu du module auquel est associé le paramètre. Lorsque l'opérateur passe à un menu auquel un paramètre est associé, un message de Form Builder lui demande d'entrer une valeur dans la boîte de dialogue de saisie des valeurs de paramètre.

Application paramètre de menu

Définition  Form Builder

Obligatoire/Facultatif facultatif


Menus associés - Restrictions

Ne s'applique qu'aux menus plein écran.


Canaux audio - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nombre de canaux avec lesquels l'élément son sera stocké dans la base de données : Automatique, Mono ou Stéréo.

Lorsque vous utilisez le sous-programme intégré WRITE_SOUND_FILE pour écrire des données son dans le système de fichiers, contrôlez au moyen du paramètre canaux le nombre de canaux avec lesquels les données son seront écrites dans le système de fichiers.

Application élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

• WRITE_SOUND_FILE

Valeur par défaut

Automatique

Obligatoire/Facultatif  obligatoire


Largeur automatique de colonne - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer si la largeur de la colonne LOV est définie automatiquement.

•	Lorsque Largeur automatique de colonne est activée, la largeur de chaque colonne est définie automatiquement à la plus grande des deux valeurs suivantes :

•	la largeur indiquée par la propriété Largeur d'affichage

ou

•	la largeur nécessaire pour afficher le titre de la colonne, indiqué dans la propriété Titre de colonne.

•	Lorsque Largeur automatique de colonne est désactivée, la largeur de chaque colonne est définie à la valeur spécifiée par la propriété Largeur d'affichage.

Application LOV

Définition  Form Builder

Valeur par défaut

Non


Affichage automatique - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si Form Builder affiche automatiquement la LOV lorsque l'opérateur ou l'application passe à un élément Texte auquel est attachée la LOV.

Application LOV

Définition  Form Builder

Valeur par défaut

Non


Position automatique - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si Form Builder positionne automatiquement la LOV près du champ à partir duquel elle a été appelée.

Application LOV

Définition  Form Builder

Valeur par défaut

Non


Interrogation automatique - Propriété

 Toutes les propriétés

Description

Voir Coordination.


Régénération automatique - Propriété

 Restrictions	   Toutes les propriétés

Description

Permet de déterminer si Form Builder réexécute l'interrogation pour charger une LOV basée sur un groupe d'enregistrements d'interrogation. Par défaut, Form Builder exécute l'interrogation pour charger un groupe d'enregistrements sous-jacent de la LOV chaque fois que la LOV est appelée, c'est-à-dire lorsque la LOV est affichée ou que Form Builder valide un élément Texte dont la propriété Valider via la LOV est activée.

•	Lorsque Régénération automatique est activée (valeur par défaut), Form Builder exécute l'interrogation chaque fois que la LOV est appelée. Cette opération garantit que le groupe d'enregistrements sous-jacent de la LOV contient les valeurs de base de données les plus récentes.

•	Lorsque Régénération automatique est désactivée, Form Builder n'exécute l'interrogation que si le groupe d'enregistrements sous-jacent de la LOV ne comporte pas d'indicateur spécifiant qu'elle a été chargée par une interrogation découlant de l'appel de cette LOV ou d'une autre. (N'oubliez pas que plusieurs LOV peuvent être basées sur le même groupe d'enregistrements.) Si le groupe d'enregistrements sous-jacent de la LOV a déjà été chargé à la suite de l'affichage d'une LOV, Form Builder ne réexécute pas l'interrogation, mais affiche la LOV en utilisant les enregistrements stockés dans le groupe d'enregistrements.

La propriété de régénération automatique détermine également la durée de stockage des enregistrements extraits par l'interrogation dans le groupe d'enregistrements sous-jacent :

•	Lorsque Régénération automatique est activée, les enregistrements retournés par l'interrogation ne sont stockés dans le groupe d'enregistrements sous-jacent que pendant que la LOV est nécessaire. Lorsque l'opérateur exclut la LOV ou que la validation est terminée, le cache d'enregistrements est détruit.

•	Lorsque Régénération automatique est désactivée, les enregistrements de l'interrogation initiale restent stockés dans le groupe d'enregistrements sous-jacent de la LOV jusqu'à ce qu'ils soient supprimés ou remplacés. Vous pouvez manipuler ces enregistrements par programme. Par exemple, vous pouvez remplacer explicitement les enregistrements d'un groupe d'enregistrements sous-jacent de la LOV en appelant la procédure interne POPULATE_GROUP. D'autres procédures internes de groupes d'enregistrements vous permettent d'extraire et de définir les valeurs des cellules d'un groupe d'enregistrements.

Application LOV

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

Valeur par défaut

Oui

Notes d'utilisation

•	Lorsque plusieurs LOV sont basées sur le même groupe d'enregistrements, il est généralement conseillé d'utiliser pour chacune la même définition de Régénération automatique. Cependant, cette règle n'est pas absolue. Le scénario ci-dessous décrit le principe de la régénération lorsque Régénération automatique est activée pour une LOV et désactivée pour une autre.

LOV1 et LOV2 sont basées sur le même groupe d'enregistrements. La Régénération automatique de LOV1 est activée, celle de LOV2 est désactivée. Lorsque LOV1 est appelée, Form Builder exécute l'interrogation pour charger le groupe d'enregistrements sous-jacent. Lorsque l'opérateur exclut LOV1, Form Builder détruit le cache d'enregistrements et efface le groupe d'enregistrements.

Lorsque LOV2 est appelée à son tour, Form Builder exécute à nouveau l'interrogation pour charger le groupe d'enregistrements, bien que la Régénération automatique de LOV2 soit désactivée. Comme le groupe d'enregistrements sous-jacent de LOV2 a été effacé lorsque LOV1 a été exclue, Form Builder ne considère pas qu'elle a été interrogée par un appel LOV, et réexécute donc l'interrogation.

En revanche, si la Régénération automatique de LOV1 et de LOV2 était désactivée, Form Builder réexécuterait l'interrogation lors de l'appel de LOV1, mais ne réexécuterait pas l'interrogation pour LOV2. Ce principe est également valable si l'interrogation initiale n'a retourné aucune ligne.

•	Lorsque Régénération automatique est désactivée, vous pouvez remplacer par programme les lignes qui ont été retournées par l'interrogation initiale en utilisant POPULATE_GROUP. Form Builder ne tient pas compte de cette opération lorsqu'il décide de réexécuter l'interrogation. (Form Builder ne consulte que l'indicateur interne qui permet de savoir si une interrogation a eu lieu, et non les lignes renvoyées par l'interrogation elle-même.)


Régénération automatique - Restrictions

Cette propriété n'est valide que pour une LOV basée sur un groupe d'enregistrements d'interrogation, et non sur un groupe d'enregistrements statiques ou sans interrogation.


Sélection automatique - Propriété

 Toutes les propriétés

Description

Permet d'indiquer ce qui se produit lorsqu'une LOV est appelée et que l'utilisateur réduit la liste à un seul choix via la réduction automatique ou la recherche :

•	Lorsque la propriété de confirmation automatique est paramétrée sur Oui, vous quittez automatiquement la LOV et les valeurs de colonne de la ligne unique sont attribuées à leurs éléments récepteurs correspondants.

•	Lorsque la propriété de confirmation automatique est paramétrée sur Non, la LOV reste affichée, ce qui permet à l'opérateur de faire d'autres choix ou de quitter la LOV.

Application LOV

Définition  Form Builder

Valeur par défaut

Non


Saut automatique - Propriété

 Toutes les propriétés

Saut automatique (élément) - Propriété

Saut automatique (LOV) - Propriété


Saut automatique (élément) - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet de faire passer le curseur sur le prochain élément de navigation autorisée lors de l'ajout ou de la modification de données dans le dernier caractère de l'élément en cours. Le dernier caractère est défini par la propriété Longueur maximum.

Application élément texte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Notes d'utilisation

Combinez les propriétés Saut automatique et Longueur fixe pour faire passer le curseur sur le prochain élément texte applicable lorsqu'un opérateur entre le dernier caractère obligatoire.


Saut automatique (élément) - Restrictions

•	Cette propriété n'est valide que pour les éléments texte monoligne.

•	Le déclencheur Key-NXT-ITEM n'est pas activé lorsque le curseur se déplace à la suite de l'utilisation de cette propriété du fait que l'opérateur n'a pas appuyé sur [Elément suivant].


Saut automatique (LOV) - Propriété

 Restrictions	   Toutes les propriétés

Description

Permet de faire passer le curseur sur le prochain élément de navigation autorisée lorsque l'opérateur effectue une sélection à partir d'une LOV affectée à un élément texte. Lorsque la propriété Saut automatique est désactivée, le point d'insertion reste dans l'élément texte après que l'opérateur a effectué une sélection à partir de la LOV.

Application LOV

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

SET_ITEM_PROPERTY

Valeur par défaut

Non


Saut automatique (LOV) - Restrictions

•	Le déclencheur Key-NXT-ITEM n'est pas activé lorsque le curseur se déplace à la suite de l'utilisation de cette propriété du fait que l'opérateur n'a pas appuyé sur [Elément suivant].


Background_Color - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la couleur de la zone d'arrière-plan de l'objet.

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

• SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Relief - Propriété

 Restrictions	   Toutes les propriétés

Description

Permet d'indiquer l'aspect du bord de l'objet : RELACHE, ENFONCE, INCRUSTE, RESSORTI ou AUCUN. Peut également être paramétré par programme au niveau de l'instance de l'élément pour indiquer que la propriété n'est pas déterminée à ce niveau. En d'autres termes, si vous paramétrez cette propriété par programme au niveau de l'instance de l'élément via SET_ITEM_INSTANCE_PROPERTY, le relief de la bordure est déterminé par la valeur au niveau élément indiquée au moment de la conception ou par la propriété SET_ITEM_PROPERTY lors de l'exécution.

Application  élément graphique, élément image, élément personnalisé, canevas empilés, éléments texte (Microsoft Windows uniquement).

Définition Form Builder, par programme [BORDER_BEVEL]

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

LOWERED

Notes d'utilisation

•	Pour créer une fenêtre déroulante, vous devez paramétrer la propriété Relief sur RELACHE ou ENFONCE.


Relief - Restrictions

•	Avec les gestionnaires de fenêtres qui ne prennent pas en charge le relief, les options RELACHE, ENFONCE et AUCUN sont équivalentes et indiquent uniquement que l'élément doit avoir un bord.

•	Si la propriété Relief de l'élément est paramétrée sur Aucun dans Form Builder, vous ne pouvez pas paramétrer BORDER_BEVEL par programme.

•	Vous ne pouvez pas attribuer la valeur AUCUN à la propriété BORDER_BEVEL par programme.


Description de blocs - Propriété

 Toutes les propriétés

Description

Voir description à Menu Bloc/Bloc


Titre de bas de page - Propriété

 Toutes les propriétés

Titre de bas de page (éditeur) - Propriété


Titre de bas de page (éditeur) - Propriété

 Toutes les propriétés

Description

Permet d'indiquer un titre d'un maximum de 72 caractères, qui doit figurer au bas de la fenêtre de l'éditeur.

Application éditeur

Définition  Form Builder

Obligatoire/Facultatif facultatif


Boîte englobante variable - Propriété

 Toutes les propriétés

Description

Indique si la boîte englobante de l'objet texte doit être redimensionnée lorsque l'objet texte change de taille.

Application  texte graphique

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Builtin_Date_Format - Propriété

 Toutes les propriétés

Description

Cette propriété détermine le masque de format utilisé lors de la conversion d'une date en une chaîne que l'utilisateur ne peut pas visualiser ou lors de la conversion d'une telle chaîne en date. Ce masque est généralement utilisé lors de l'exécution d'un sous-programme intégré.

S'applique à application (valeur globale)

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_APPLICATION_PROPERTY built-in

•	SET_APPLICATION_PROPERTY built-in

Obligatoire/Facultatif  facultatif. Cependant, il est FORTEMENT RECOMMANDE, pour une nouvelle application, de définir cette propriété à un masque de format contenant des informations complètes sur le siècle et sur l'heure. Il est également recommandé que ce masque de format soit identique à celui indiqué dans la propriété PLSQL_DATE_FORMAT.

Valeur par défaut

Comme l'indique la rubrique précédente, il est fortement conseillé de paramétrer cette valeur de manière explicite dans une nouvelle application. Cependant, si vous ne le faites pas, la valeur par défaut utilisée dépend du contexte.

Forms détermine en premier lieu si l'élément est un objet de type DATE2, DATE4 ou DATETIME, auquel il tente d'appliquer l'ensemble de masques de format approprié. (Ces masques par défaut sont utilisés pour permettre la compatibilité avec les versions antérieures.)

Le tableau ci-dessous indique la manière dont les types d'objet sont déterminés :

Objet date	Type
Elément de type DATETIME	DATETIME
Elément de type DATE :
…avec un masque de format contenant yyyy, YYYY, rrrr ou RRRR	DATE4
…avec un masque de format ne contenant pas yyyy, YYYY, rrrr ni RRRR	DATE2
…sans masque de format, et dont la longueur (maximale) est de 10 caractères ou plus	DATE4
…sans masque de format, et dont la longueur (maximale) est de 9 caractères ou moins	DATE2
Paramètre (comme :PARAMETRE.monparam) de type DATE. (Notez qu'il n'existe pas de paramètre de type DATETIME et que la propriété Longueur maximum d'un paramètre s'applique uniquement aux paramètres CHAR.)	DATE2
Colonne LOV de type DATE. (Notez qu'il n'existe pas de colonne LOV DATETIME.)	DATE2
Valeur interne des variables système CURRENT_DATETIME et EFFECTIVE_DATE	DATETIME
Après avoir défini le type d'objet de l'élément à convertir, Forms utilise l'un des masques répertoriés ci-dessous. Il existe deux ensembles de masques, le premier réservé aux opérations YY et l'autre aux opérations RR.

Pour effectuer une conversion de date en chaîne, seul le premier masque de format (masque principal) est utilisé. Pour l'opération inverse, Form Builder essaie d'abord d'utiliser ce même masque. Si la conversion se solde par un échec, il tente d'utiliser les autres masques (secondaires), dans l'ordre indiqué.

Opérations YY :

Type d'objet	Masque de format utilisé
DATE2	JJ-MOI-AA DD-MM-SYYYY HH24:MI:SS
DATE4	DD-MON-YYYY DD-MM-SYYYY HH24:MI:SS
DATETIME	JJ-MOI-AAAA HH24:MI:SS DD-MON-YYYY HH24:MI DD-MM-SYYYY HH24:MI:SS

Opérations RR :

Type d'objet	Masque de format utilisé
DATE2	DD-MON-RR DD-MM-SYYYY HH24:MI:SS
DATE4	DD-MON-RRRR DD-MM-SYYYY HH24:MI:SS
DATETIME	DD-MON-RRRR HH24:MI:SS DD-MON-RRRR HH24:MI DD-MM-SYYYY HH24:MI:SS


Libellé Bouton 1, libellé Bouton 2, libellé Bouton 3

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer les libellés de texte des trois boutons d'alerte.

Application alerte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

SET_ALERT_BUTTON_PROPERTY

Obligatoire/Facultative Au moins un bouton doit avoir un libellé.

Valeur par défaut

Libellé Bouton 1 : OK, libellé Bouton 2 : Annuler, libellé Bouton 3 : NULL


Mode de calcul - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer la méthode de calcul de la valeur d'un élément calculé. Les valeurs valides sont les suivantes :

Aucun	Valeur par défaut. Indique que l'élément n'est pas un élément calculé.

Formule	Indique que la valeur de l'élément sera calculée par une formule écrite par l'utilisateur. Pour la formule d'un élément, vous ne devez entrer qu'une expression PL/SQL. L'expression peut calculer une valeur, mais peut aussi appeler un sous-programme Form Builder ou un sous-programme écrit par l'utilisateur.

Récapitulatif	Indique que la valeur de l'élément sera calculée par une opération récapitulative sur un seul élément d'application Forms. Vous devez indiquer le type de récapitulation et l'élément concerné.

Application élément

Définition  Form Builder

Obligatoire/Facultatif facultatif

Valeur par défaut

Aucune


Calling_Form - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nom de l'application Forms appelante, indiqué par la propriété Nom du module d'application Forms.

S'applique à application

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Valeur par défaut

NULL

Notes d'utilisation

Cette propriété n'est valide que dans une application Forms appelée - c'est-à-dire une application Forms qui a été appelée à partir d'une application Forms appelante par l'exécution d'une procédure interne CALL_FORM.


Canevas - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer le canevas sur lequel vous voulez que l'élément soit affiché.

Application élément

Définition  Form Builder

Valeur par défaut

Attribution du canevas en cours pour l'élément.

Obligatoire/Facultatif facultatif

Notes d'utilisation

•	Les éléments sont attribués à un canevas spécifique, qui est à son tour attribué à une fenêtre spécifique.

•	Si vous laissez la propriété Canevas en blanc, l'élément est un élément canevas NULL, c'est-à-dire un élément qui n'est pas attribué à un canevas et ne peut donc pas être affiché dans l'Editeur de présentation ou lors de l'exécution.

•	Si vous modifiez le nom d'un canevas dans Form Builder, celui-ci actualise automatiquement la propriété Canevas pour tous les éléments attribués à ce canevas.


Canevas - Restrictions

Le canevas indiqué doit déjà exister dans l'application Forms.


Type de canevas - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer le type de canevas : Intégral, Empilé, Canevas à barre d'outils verticale ou Canevas à barre d'outils horizontale. Le type détermine la façon dont le canevas est affiché dans la fenêtre à laquelle il est attribué, ainsi que les propriétés qui sont valides pour le canevas.

Contenu	Valeur par défaut. Permet d'indiquer que le canevas doit occuper toute la superficie de la fenêtre à laquelle il a été attribué. La plupart des canevas sont de ce type.
Empilé	Permet d'indiquer que le canevas doit être affiché dans sa fenêtre en même temps que le canevas intégral de la fenêtre. Les vues empilées sont généralement affichées par programme et recouvrent partiellement la vue intégrale affichée dans la même fenêtre.
Canevas à barre d'outils verticale	Permet d'indiquer que le canevas doit être affiché sous la forme d'une barre d'outils verticale, sous la barre de menu de la fenêtre. Vous pouvez définir des boutons icônes, des listes instantanées et d'autres éléments de la barre d'outils, si nécessaire.
	Permet d'indiquer que le canevas doit être affiché sous la forme d'une barre d'outils horizontale à gauche de la fenêtre à laquelle il est attribué.
Application canevas

Définition  Form Builder

Valeur par défaut

Contenu

Notes d'utilisation

Dans la Palette de propriétés, les propriétés énumérées sous le titre Vue empilée ne sont valides que pour un canevas ayant Empilé comme propriété de Type de canevas.


Style des extrémités - Propriété

 Toutes les propriétés

Description

Précise le style des extrémités des bords de l'objet graphique : Bout à bout, Arrondi ou Projection.

Application  graphique

Définition  Form Builder

Valeur par défaut

Bout à bout

Obligatoire/Facultatif  obligatoire


Interrogation sans distinction maj/min - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet de déterminer si l'opérateur peut effectuer des interrogations sur l'élément texte sans faire la distinction entre les majuscules et les minuscules.

Application élément texte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Notes d'utilisation

Les interrogations sans distinction entre majuscules et minuscules sont optimisées pour utiliser un index. Supposons, par exemple, que vous exécutiez les opérations suivantes :

•	Création d'un index sur la table EMP.

•	Activation de la propriété Interrogation sans distinction maj/min sur NOM_E.

•	En mode Saisie interrogation, entrée du nom 'BLANC' dans NOM_E.

•	Exécution de l'interrogation.

Form Builder construit l'instruction suivante :

SELECT * FROM EMP WHERE UPPER(NOM_E) = 'BLANC' AND
   (NOM_E LIKE 'Bl%' OR NOM_E LIKE 'bL%' OR
   NOM_E LIKE 'BL%' OR NOM_E LIKE 'bl%');

La dernière partie de la clause WHERE est exécutée en premier, en utilisant l'index. Lorsque la base de données a trouvé une entrée commençant par bl, elle lit la partie UPPER(NOM_E) = 'BLANC' de l'instruction et établit la correspondance exacte.


Interrogation sans distinction maj/min - Restrictions

Lorsque vous paramétrez cette propriété sur Oui, l'exécution des interrogations dure plus longtemps.


Respecter maj/min - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer la "casse" (majuscules ou minuscules) du texte entré dans l'élément texte ou dans le paramètre de substitution de menu. Les valeurs autorisées pour cette propriété sont les suivantes :

Valeur	Résultat
MIXTE	Le texte apparaît tel qu'il a été saisi.
MAJUSCULES	Le texte en minuscules est converti en majuscules au fur et à mesure de la saisie.
MINUSCULES	Le texte en majuscules est converti en minuscules au fur et à mesure de la saisie.

 Application élément texte, paramètres de substitution de menu

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM _PROPERTY


Propriété Respecter maj/min - Restrictions
Respecter maj/min - Restrictions

•	Les valeurs attribuées à l'élément texte par des déclencheurs ne sont pas modifiées.

•	Le respect des majuscules et des minuscules s'applique à l'affichage de toutes les chaînes, qu'elles soient entrées par un opérateur ou attribuées par programme, car Respecter maj/min sert de masque de format, appliqué par l'interface utilisateur, pour l'entrée et pour la sortie.

Si vous attribuez par programme des valeurs de chaîne incompatibles avec l'option choisie pour Respecter maj/min, vous ne verrez pas l'effet de l'opération sur l'élément texte car son affichage sera obligatoirement rendu conforme à l'option Respecter maj/min en cours. Cela signifie également que si les données qui ne respectent pas l'option choisie pour Respecter maj/min sont interrogées ou attribuées par programme à un élément, la valeur interne de cet élément texte peut être différente de ce que l'opérateur voit à l'écran. Par exemple, si l'option Respecter maj/min est paramétrée sur MAJUSCULE et si les données récupérées de la source de données contiennent des majuscules et des minuscules, l'application Forms affiche le document en MAJUSCULES, mais la valeur réelle des données reste en majuscules et en minuscules. Toutefois, si les données de ce champ sont modifiées ultérieurement et que la modification soit enregistrée dans la base de données, elles sont effectivement transformées en majuscules.


Hauteur/largeur de la cellule de caractère
Character Cell WD/HT

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer la largeur et la hauteur d'une cellule de caractère lorsque la propriété Système de coordonnées est définie à Réel et non à Caractère. La largeur et la hauteur sont exprimées en unités réelles en cours (centimètres, pouces ou points), indiquées par la définition de la propriété Unité réelle.

Application module Application Forms

Définition  Form Builder

Obligatoire/Facultatif facultatif

Notes d'utilisation

La taille de la cellule des caractères est précisée en pixels dans la boîte de dialogue Système de coordonnées mais apparaît en points dans l'Editeur de présentation.


Type de graphique - Propriété

 Toutes les propriétés

Description

Indique le type de graphique de base. Les types de graphique disponibles sont Colonne, Secteur, Barre, Tableau, Ligne, Nuages de points, Combiné, Haut-Bas, Double-Y et Gantt.

Application  élément graphique

Définition  Form Builder

Valeur par défaut

Colonne


Sous-type de graphique - Propriété

 Toutes les propriétés

Description

Indique un sous-type de graphique. Chaque sous-type est basé sur le type de graphique indiqué, dont plusieurs propriétés sont paramétrées pour obtenir une apparence différente.

Application  élément graphique

Définition  Form Builder

Valeur par défaut

Colonne


Case à cocher Correspondance d'autres valeurs - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer comment doit être interprétée une valeur, extraite ou attribuée, qui n'est pas une valeur prédéfinie d'état "coché" ou "non coché".

Application case à cocher

Définition  Form Builder

Valeur par défaut

NON AUTORISE

Notes d'utilisation

Les options valides pour cette propriété sont les suivantes :

Définition	Description
Non autorisé	Tout enregistrement interrogé qui contient une valeur autre que les valeurs cochées et non cochées définies par l'utilisateur est rejeté, et aucune erreur n'est signalée. Toute tentative d'attribution d'une autre valeur est interdite.
Coché	Tout état autre que Non coché, défini par l'utilisateur, est interprété comme Coché.
Non coché	Tout état autre que Coché, défini par l'utilisateur, est interprété comme Non coché.


Coché - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer l'état d'un élément de menu de type bouton d'option ou d'une case à cocher : COCHE ou NON COCHE.

Application élément de menu

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Coché - Restrictions

Cette propriété n'est valide que pour un élément de menu dont la propriété Type d'élément de menu est définie à Coché ou à Bouton d'option.


Hauteur de découpage - Propriété

 Toutes les propriétés

Description

Indique la hauteur d'une image découpée (tronquée) en unités de présentation. Si vous indiquez une valeur inférieure à celle de l'image d'origine, l'image est découpée à partir du bas.

Application  image graphique

Définition  Form Builder

Valeur par défaut

Hauteur de l'image d'origine

Obligatoire/Facultatif  obligatoire


Largeur de découpage - Propriété

 Toutes les propriétés

Description

Indique la largeur d'une image découpée (tronquée) en unités de présentation. Si vous indiquez une valeur inférieure à celle de l'image d'origine, l'image est découpée à partir de la droite.

Application  image graphique

Définition  Form Builder

Valeur par défaut

Largeur de l'image d'origine

Obligatoire/Facultatif  obligatoire


Position X de découpage - Propriété

 Toutes les propriétés

Description

Indique la quantité (en unités de présentation) de l'image à découper à partir de son bord gauche.

Application  image graphique

Définition  Form Builder

Valeur par défaut  0

0

Obligatoire/Facultatif  obligatoire


Position Y de découpage- Propriété

 Toutes les propriétés

Description

Indique la quantité (en unités de présentation) de l'image à découper à partir de son bord supérieur.

Application  image graphique

Définition  Form Builder

Valeur par défaut  0

0

Obligatoire/Facultatif  obligatoire


Fermeture autorisée - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer si la commande Fermer, propre au gestionnaire de fenêtres, est activée ou désactivée pour une fenêtre. Avec les gestionnaires de fenêtres à interface graphique, la commande Fermer est accessible dans le menu système de la fenêtre ou en cliquant deux fois sur la case de fermeture située dans l'angle supérieur gauche de la fenêtre.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Oui

Notes d'utilisation

•	L'activation de Fermeture autorisée active la commande Fermer afin que l'événement de fermeture de fenêtre puisse être envoyé à Form Builder lorsque l'opérateur émet la commande Fermer. Cependant, pour fermer réellement la fenêtre en réponse à cet événement, vous devez écrire un déclencheur When-Window-Closed qui ferme explicitement la fenêtre. Vous pouvez fermer une fenêtre par programme en appelant HIDE_WINDOW, SET_WINDOW_PROPERTY ou EXIT_FORM.

•	Dans Microsoft Windows, si l'opérateur ferme la fenêtre père MDI, Form Builder exécute par défaut DO_KEY('Exit_Form').


Fermeture autorisée - Restrictions

Cette propriété ne peut pas être activée pour une fenêtre principale : une fenêtre principale est toujours de type Fermeture autorisée.


Fermé - Propriété

 Toutes les propriétés

Description

Précise si un arc est fermé.

Application  arc graphique

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Propriétés de correspondance de colonnes - Propriété

 Toutes les propriétés

Description

Le groupe Propriétés de correspondance de colonnes regroupe Nom de colonne, Titre de colonne, Largeur d'affichage et Elément récepteur.

Application LOV

Définition  Form Builder

Nom de colonne

Permet d'indiquer les noms des colonnes d'une LOV.

Obligatoire/Facultative Vous devez définir au moins une colonne.

Valeur par défaut

Nom des colonnes du groupe d'enregistrements sous-jacent.

Notes d'utilisation

Les noms de colonne doivent respecter les règles de désignation d'objets.

Titre de colonne

Permet d'indiquer le titre qui s'affiche au-dessus de la colonne sélectionnée dans la liste Nom de colonnes.

Largeur d'affichage

Permet d'indiquer la largeur de la colonne sélectionnée dans la liste Nom de colonne.

Obligatoire/Facultatif facultatif

Notes d'utilisation

•	Paramétrez la largeur de la propriété Largeur d'affichage selon l'unité appropriée (points, pixels, centimètres, pouces ou caractères en fonction de la propriété Système de coordonnées de l'application Form) que Form Builder doit réserver pour la colonne dans la fenêtre LOV. La valeur de cette colonne risque d'être tronquée si la largeur de l'affichage est inférieure à celle de la colonne. Pour contourner ce problème, augmentez la valeur Largeur d'affichage de la colonne.

•	Pour que la colonne soit cachée, donnez à Largeur d'affichage la valeur 0. (Vous pouvez indiquer un élément récepteur pour une colonne masquée, comme vous le feriez pour une colonne affichée.)

•	Pour ajouter de l'espace entre les colonnes de la fenêtre LOV, attribuez à la propriété Largeur d'affichage une valeur supérieure à la largeur par défaut de la colonne. Seule exception à la règle : vous ne pouvez pas augmenter l'espace figurant entre une colonne de type NUMBER et une colonne d'un autre type en augmentant la largeur d'affichage de la première. En effet, les valeurs figurant dans les LOV sont justifiées à droite. Par exemple, supposez que votre LOV contienne 3 colonnes. Les colonnes 1 et 3 sont de type CHAR, et la colonne 2 est de type NUMBER. Pour augmenter la largeur de l'espace situé entre chaque colonne, attribuez une valeur supérieure à la propriété Largeur d'affichage pour les colonnes 1 et 3.

Elément récepteur

Permet d'indiquer le nom de l'élément d'application Forms ou de la variable, auquel Form Builder doit attribuer la valeur de la colonne lorsque l'opérateur sélectionne un enregistrement de la LOV.

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif

Notes d'utilisation

L'élément récepteur peut être l'une des entrées suivantes :

•	élément d'application Forms (nom_bloc.nom_élément)

•	paramètre d'application Forms (PARAMETER.mon_paramètre)

•	paramètre global (GLOBAL.mon_global)

Ne mettez pas de signe deux-points (:) devant le nom de l'objet.


Nom de colonne - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'établir la correspondance entre un élément et une colonne de la table associée au bloc de données.

Application tout élément, sauf bouton, graphique, contrôles VBX (sous Microsoft Windows 3.x 16 bits) ou ActiveX (sous Windows 32 bits)

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

Oui

Obligatoire/Facultatif facultatif

Notes d'utilisation

Lorsqu'un élément sélectionné est issu d'un objet colonne ou d'une colonne REF d'un tableau, Form Builder crée un nom composé via la notation à point : NomObjetColonne.NomAttribut.

Par exemple, supposez que dept_type soit un type d'objet comportant les attributs dnum, dname et dloc, et qu'il existe un objet colonne intitulé dept, défini sur la base de dept_type. Si dname est sélectionné pour devenir un élément du bloc de données, la propriété du nom de la colonne correspondante devient dept.dname.


Spécifications de colonne - Propriété

 Restrictions	   Toutes les propriétés

Description

Le groupe de propriétés Spécifications de colonne regroupe Nom de colonne, Valeur de colonne, Type de données et Longueur.

Application groupe d'enregistrements

Définition  Form Builder

Nom de colonne

Permet d'indiquer le nom des colonnes d'un groupe d'enregistrements.

Obligatoire/Facultative Vous devez définir au moins une colonne.

Valeur par défaut

Noms des colonnes du groupe d'enregistrements sous-jacent.

Notes d'utilisation

Les noms de colonne doivent respecter les règles de désignation d'objets. Un groupe d'enregistrements peut comporter jusqu'à 255 colonnes.

Valeur de colonne

Pour un groupe d'enregistrements statiques, permet d'indiquer les valeurs des lignes de la colonne sélectionnée dans la liste Nom de Colonne.

Valeur par défaut

NULL

Type de données

Permet d'indiquer le type de données d'une colonne d'un groupe d'enregistrements donné.

Valeur par défaut

CHAR, sauf lorsque vous définissez un groupe d'enregistrements d'interrogation, auquel cas le type de données de chaque colonne est par défaut le type de données de la colonne de la base de données correspondante.

Restrictions

Le type de données d'une colonne de groupe d'enregistrements ne peut être que CHAR, NUMBER ou DATE.

Longueur

Permet d'indiquer, en caractères, la longueur de la colonne de groupe d'enregistrements, sélectionnée dans la liste Nom de colonne.

Valeur par défaut

Pour un groupe d'enregistrements d'interrogation, la valeur par défaut est la largeur indiquée pour la colonne dans la base de données. Pour un groupe d'enregistrements statiques, la valeur par défaut est 30.

Obligatoire/Facultatif  obligatoire


Spécifications de colonne - Restrictions

•	Vous ne pouvez pas faire référence à un élément ou à une variable non initialisée pour cette propriété, car cette action constitue une référence que Form Builder ne peut pas valider lors de la conception.

•	Le type de données de la valeur doit correspondre au type de données de la colonne qui lui est associée, indiqué dans la propriété Nom de colonne.


Titre de colonne (LOV) - Propriété

 Toutes les propriétés

Description

Voir Propriétés de correspondance de colonnes .


Valeur de colonne (groupe d'enregistrements) - Propriété

 Toutes les propriétés

Description

Voir Spécifications de colonne.


Texte de commande - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer le texte de la commande de l'élément de menu en cours. Les valeurs valides dépendent de l'option choisie pour Type de commande de l'élément de menu. Par exemple lorsque le Type de commande est MENU, le texte de commande valide est le nom d'un sous-menu dans le module menu. Lorsque la commande est de type PL/SQL, le texte valide est toute instruction PL/SQL valide.

Application élément de menu

Définition  Form Builder

Obligatoire/Facultative obligatoire pour tous les types de commande, sauf NULL.


Texte de commande - Restrictions

La valeur peut comporter jusqu'à 240 caractères.


Type de commande - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer la nature de la commande de l'élément de menu. Cette propriété détermine la façon dont Form Builder interprète le texte de la propriété Texte de commande.

Application élément de menu

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif  obligatoire

Type de commande	Description
Null	Permet d'indiquer que l'élément de menu n'émet pas de commande. La commande NULL est obligatoire pour les éléments de menu séparateurs et facultative pour tous les autres types d'éléments.
Menu	Appelle un sous-menu. Le texte de commande valide est le nom du sous-menu à appeler.
PL/SQL	Type de commande par défaut. Exécute une commande PL/SQL. Le texte de commande valide est toute instruction PL/SQL comprenant des appels à des sous-programmes intégrés et nommés par l'utilisateur.  Remarque : PL/SQL dans un module menu ne peut pas faire directement référence aux valeurs des éléments, des variables ou des paramètres d'un module d'application Forms. Vous devez utiliser les procédures internes NAME_IN et COPY pour faire une référence indirecte à ces valeurs.
Plus*	A éviter. Pour appeler SQL*Plus, utilisez le type de commande PL/SQL et exécutez la procédure interne HOST pour lancer SQL*Plus. (Sur les plates-formes Windows, utilisez plus80.exe comme nom d'exécutable.)
Current Forms*	A éviter. Pour appeler Form Builder, utilisez le type de commande PL/SQL et exécutez les procédures internes HOST ou RUN_PRODUCT pour effectuer une connexion Form Builder valide.
Macro*	A éviter. Exécute une macro SQL*Menu.
*Ce type de commande n'est inclus que pour des raisons de compatibilité avec les versions précédentes. Ne l'utilisez pas dans les nouvelles applications.


Commentaires - Propriété

 Toutes les propriétés

Description

La propriété Commentaires fournit des informations d'ordre général sur l'objet Form Builder que vous créez. Utilisez-la pour enregistrer des informations qui seront utiles à ceux qui développent, mettent à jour et déboguent vos applications.

Application tous les objets

Définition  Form Builder

Obligatoire/Facultatif facultatif


Mode de communication - Propriété

 Toutes les propriétés

Mode de communication (graphique) - Propriété

Mode de communication (état) - Propriété


Mode de communication (graphique) - Propriété

 Toutes les propriétés

Description

Lors de l'appel de Graphics Builder à partir de Form Builder pour créer un graphique, permet d'indiquer le mode de communication à utiliser (Synchrone ou Asynchrone). Le mode synchrone indique que le contrôle retourne à l'application appelante uniquement une fois que l'opération effectuée par le produit appelé est terminée. L'utilisateur ne peut pas travailler dans l'application Forms pendant que le produit appelé est en cours d'exécution. Le mode asynchrone indique que le contrôle retourne immédiatement à l'application appelante, même si l'application appelée n'a pas fini d'afficher les données.

Lorsque des données sont retournées par le produit appelé, comme lors de la mise à jour d'un élément graphique, le mode de communication doit être synchrone.

Application  élément graphique

Définition  Form Builder

Valeur par défaut

Synchrone

Obligatoire/Facultatif  obligatoire


Mode de communication (état) - Propriété

 Toutes les propriétés

Description

Réservée à l'intégration d'états dans des applications Forms. Indique le mode de communication entre l'application Forms et l'état (mode synchrone ou asynchrone). Le mode synchrone indique que le contrôle retourne à l'application appelante uniquement une fois que l'opération effectuée par le produit appelé est terminée. L'utilisateur ne peut pas travailler dans l'application Forms pendant que le produit appelé est en cours d'exécution. Le mode asynchrone indique que le contrôle retourne immédiatement à l'application appelante, même si l'application appelée n'a pas fini d'afficher les données.

Lorsque des données sont retournées par le produit appelé, le mode de communication doit être synchrone.

Application  intégration d'états

Définition  Form Builder

Valeur par défaut

Synchrone

Obligatoire/Facultatif  obligatoire


Compression - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer si un objet son en cours de transfert d'un fichier à une application Forms doit être compressé lors de la conversion au format interne Oracle.

Application élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

• WRITE_SOUND_FILE

Valeur par défaut

Automatique (utilise l'option de compression de données son, le cas échéant).


Qualité de la compression - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer si un objet image en cours de transfert d'un fichier à une application Forms ou en cours d'écriture dans un fichier (par la procédure interne WRITE_IMAGE_FILE) doit être compressé et, dans l'affirmative, à quel degré. Les valeurs valides sont :

•	Aucune

•	Minimum

•	Basse

•	Moyenne

•	Elevée

•	Maximum

Application élément image

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Aucune


Masquer données - Propriété

 Restrictions	     Toutes les propriétés

Description

Permet de masquer les caractères que l'opérateur entre dans l'élément texte. Cette propriété est généralement utilisée pour la protection par mot de passe.

Les valeurs autorisées pour cette propriété sont les suivantes :

Oui	Désactive le renvoi en écho des données entrées par l'opérateur.

Non	Active le renvoi en écho des données entrées par l'opérateur.

Application élément texte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non


Masquer données - Restrictions

Cette propriété n'est valide que pour les éléments texte monoligne.


Connect_String - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer la chaîne de connexion SQL*NET de l'opérateur d'application Forms.

Si l'opérateur en cours n'a pas de chaîne de connexion SQL*NET, Form Builder retourne la valeur NULL.

S'applique à application

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY


Fenêtre de commande - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer le nom de la fenêtre qui doit afficher la fenêtre de commande Form Builder. Celle-ci comprend la ligne d'état et la ligne de message et est affichée au bas de la fenêtre.

Sous Microsoft Windows, la fenêtre de commande est toujours affichée dans la fenêtre d'application MDI, et non dans une fenêtre particulière de l'application Forms. Cependant, vous devez toujours donner à cette propriété le nom d'une fenêtre d'application Forms pour indiquer que vous voulez que la fenêtre de commande soit affichée.

Si vous ne voulez pas qu'une application Forms ait une fenêtre de commande, donnez à cette propriété la valeur <Null>.

S'applique à application Forms

Définition  Form Builder

Valeur par défaut

WINDOW1

Obligatoire/Facultatif facultatif


Aide sur contrôle - Propriété

 Toutes les propriétés

Description

Réservée aux éléments de contrôle ActiveX (OCX) de l'éditeur de présentation. Fournit un lien vers la documentation d'aide OCX concernant le contrôle OCX en cours.

Application contrôle ActiveX

Définition  Form Builder

Valeur par défaut  Suite...

More…

Obligatoire/Facultatif facultatif


Propriétés de contrôle - Propriété

 Toutes les propriétés

Description

Permet d'activer la fenêtre de propriété pour le contrôle OLE ou ActiveX sélectionné. Le contrôle doit être visible dans l'Editeur de présentation de façon à afficher sa fenêtre de propriété.

Application   contrôle OLE/ActiveX

Définition  Form Builder


Système de coordonnées - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer si les valeurs de taille et de position d'objet doivent être interprétées comme des valeurs de cellule de caractère ou comme des unités réelles (centimètres, pouces, pixels ou points). Les valeurs valides pour cette propriété sont les suivantes :

Caractère	Définit le système de coordonnées à une mesure basée sur une cellule de caractère. La taille et la position réelles des objets dépendront de la taille d'un caractère par défaut sur la plate-forme que vous utilisez.

Réelle	Définit le système de coordonnées à une unité de mesure indiquée par la propriété Unité réelle (centimètres, pouces, pixels ou points).

Le changement de système de coordonnées de l'application Forms change les unités de règle affichées dans les règles de l'Editeur de présentation, mais ne change pas les options d'espacement (pas) de grille et de points magnétiques.

S'applique à application Forms

Définition  Form Builder

Valeur par défaut

Centimètre

Notes d'utilisation

Le système de coordonnées que vous sélectionnez est appliqué lors de la conception et de l'exécution. Par exemple, si vous déplacez une fenêtre par programme en utilisant SET_WINDOW_PROPERTY, les coordonnées de position que vous passez à la procédure interne sont interprétées en unités de coordonnées de l'application Forms en cours.

Lorsque vous passez d'un système de coordonnées à un autre, Form Builder convertit automatiquement les valeurs de taille et de position d'objet qui ont été déclarées lors de la conception. La conversion en unités moins précises entraîne parfois une perte de précision.

Si la portabilité est un critère important, vous pouvez définir la propriété Système de coordonnées à Caractère pour avoir une portabilité maximum d'une plate-forme à l'autre mais, dans ce cas, la grossièreté de la grille diminue les possibilités d'affinage de la présentation. Si votre application fonctionne en mode caractère et en mode interface graphique, le choix du système de coordonnées à utiliser dépend du type d'interface que vous voulez optimiser.

Pour le mode interface graphique, Réelle offre une souplesse maximum pour les polices proportionnelles, mais peut demander un réglage fin pour éviter le chevauchement des champs en mode caractère.

Pour le mode caractère, choisissez Caractère. Cette option offre moins de souplesse pour les polices proportionnelles utilisées sur les interfaces graphiques, mais permet d'aligner précisément les limites des cellules de caractère.

Pour le type d'application...	Définissez la propriété Système de coordonnées à...
Interface graphique uniquement	Réelle : pouces, centimètres ou points
Mode caractère uniquement	Caractère
Mode caractère et interface graphique:
Optimiser pour mode interface graphique	Réelle
Optimiser pour mode caractère	Caractère


Coordination - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer comment et quand le chargement de la coordination des blocs doit avoir lieu. Indiquez la coordination voulue en définissant les propriétés Différée et Interrogation automatique. Lorsque vous définissez les propriétés au stade de la conception, Form Builder crée ou modifie les déclencheurs maître-détail appropriés pour appliquer vos options de coordination.

Définition:

relation

Définition:

Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_RELATION_PROPERTY

•	SET_RELATION_PROPERTY

Valeur par défaut

Coordination immédiate (Différée Non, Interrogation automatique Non)

Notes d'utilisation

Lorsque l'enregistrement en cours dans le bloc maître change lors de l'exécution (événement de coordination), Form Builder doit charger le bloc détail en y entrant un nouvel ensemble d'enregistrements. Vous pouvez indiquer exactement quand et comment ce chargement doit avoir lieu en définissant cette propriété par l'une des trois options possibles :

Différée=Non,Interrogation automatique non prise en compte	Option par défaut. Lorsqu'un événement de coordination se produit dans le bloc maître, les enregistrements détail sont immédiatement extraits.
Différée=Oui, Interrogation automatique =Oui	Lorsqu'un événement de coordination se produit, Form Builder diffère l'extraction des enregistrements détail associés jusqu'à ce que l'opérateur passe au bloc détail.
Différée=Oui, Interrogation automatique =Non	Lorsqu'un événement de coordination se produit, Form Builder diffère l'extraction des enregistrements détail associés jusqu'à ce que l'opérateur passe au bloc détail et exécute explicitement une interrogation.
Différée=Non,Interrogation automatique =Oui	Non valide.


Coordination - Restrictions

La possibilité de définir ces propriétés et d'y accéder par programme n'est incluse que pour les applications nécessitant un système maître-détail personnalisé. Lorsque la relation maître-détail par défaut est créée au stade de la conception, Form Builder génère les déclencheurs appropriés pour appliquer la coordination, et la définition des propriétés de coordination lors de l'exécution est sans effet sur le texte du déclencheur par défaut.


Coordination_Status - Propriété

 Toutes les propriétés

Description

Pour un bloc détail d'une relation de blocs maître-détail, cette propriété indique l'état de la coordination du bloc par rapport à son ou ses blocs maître. Cette propriété est définie à la valeur COORDINATED lorsque le bloc est coordonné avec tous ses blocs maître. S'il n'est pas coordonné avec tous ses blocs maître, cette propriété est définie à NON_COORDINATED.

Dès que les enregistrements sont entrés dans le bloc détail, l'état du bloc passe à COORDINATED. Lorsqu'un autre enregistrement devient l'enregistrement en cours dans le bloc maître, l'état du bloc détail redevient NON_COORDINATED.

Application relation

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Notes d'utilisation

Cette propriété a été ajoutée pour les programmeurs qui appliquent par programme un système personnalisé de coordination de blocs maître-détail. Son utilisation n'est pas obligatoire lorsque vous utilisez une coordination maître-détail déclarative de Form Builder.


Copier valeur de l'élément - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer l'origine de la valeur utilisée par Form Builder pour charger l'élément. Lorsque vous définissez une relation maître-détail, Form Builder définit automatiquement cette propriété pour le ou les éléments clé étrangère du bloc détail. La propriété Copier valeur de l'élément fournit alors le nom de l'élément clé primaire du bloc maître dont la valeur est copiée dans l'élément clé étrangère du bloc détail lorsqu'un enregistrement détail est créé ou interrogé.

Application tous les éléments, sauf les boutons, les éléments graphiques et les éléments image.

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Obligatoire/Facultatif facultatif

Notes d'utilisation

•	Indiquez cette propriété sous la forme <nom_bloc>.<nom_élément_bloc>.

•	La définition de la propriété Copier valeur de l'élément est sans effet sur l'état des enregistrements lors de l'exécution, car la copie a lieu pendant le traitement des enregistrements par défaut.

•	Pour empêcher les opérateurs d'annuler l'utilisation de la relation de clé étrangère, désactivez la propriété Activée pour les éléments clé étrangère.

•	Pour lire par programme la propriété Copier valeur de l'élément au moyen de GET_ITEM_PROPERTY, utilisez la constante ENFORCE_KEY.


Groupe d'attributs visuels d'enregistrement en cours - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'attribut visuel nommé qui est utilisé lorsqu'un élément fait partie de l'enregistrement en cours.

S'applique à application Forms, bloc, élément

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

• SET_FORM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Obligatoire/Facultatif facultatif

Notes d'utilisation

Cette propriété peut être définie au niveau application Forms, bloc ou élément, ou à toute combinaison de niveaux. Si vous indiquez des attributs visuels nommés à chaque niveau, l'attribut de niveau élément a priorité sur tous les autres, et le niveau bloc a priorité sur le niveau application Forms.

Notez que si vous définissez un attribut visuel d'enregistrement en cours au niveau de l'application Forms, toute barre d'outils de cette application est affichée via cet attribut. Pour ne pas appliquer cette configuration, paramétrez les attributs visuels d'enregistrement en cours au niveau des blocs qui en ont besoin au lieu de les paramétrer au niveau de l'application. Pour conserver les attributs définis au niveau de votre application Forms, vous pouvez attribuer une valeur autorisée à l'attribut visuel d'enregistrement en cours au niveau bloc de la barre d'outils.

La propriété Attribut visuel d'enregistrement en cours est fréquemment utilisée au niveau bloc pour afficher dans une couleur particulière la ligne en cours d'un bloc multienregistrement. Par exemple, si vous définissez Vis_Att_Blue pour le bloc Emp qui affiche quatre enregistrements détail, l'enregistrement en cours sera affiché en bleu, car il contient l'élément qui fait partie de l'enregistrement en cours.

Si vous définissez la propriété Attribut visuel d'enregistrement en cours au niveau élément, vous pouvez afficher dans une couleur spéciale un élément prédéfini s'il fait partie de l'enregistrement en cours, mais vous ne pouvez pas mettre en évidence de manière dynamique l'élément en cours, car le point d'insertion change. Par exemple, si vous définissez le paramètre Attribut visuel d'enregistrement en cours de NoEmp à Vis_Att_Green, l'élément NoEmp de l'enregistrement en cours sera affiché en vert. Lorsque le point d'insertion passera à NomEmp, NoEmp restera vert et NomEmp ne changera pas.


Current_Form - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer le nom du fichier .FMX de l'application Forms en cours d'exécution.

S'applique à application

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Notes d'utilisation

Recherchez la valeur de cette propriété pour déterminer le nom du fichier dont provient l'application Forms en cours dans une application comportant plusieurs applications Forms appelées.

Current_Form au niveau application correspond à File_Name au niveau application Forms. Pour rechercher File_Name, utilisez GET_FORM_PROPERTY.


Current_Form_Name - Propriété

  Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer le nom de l'application Forms en cours, indiqué par la propriété Nom de module d'application Forms.

S'applique à application

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Notes d'utilisation

Recherchez la valeur de cette propriété pour déterminer le nom de l'application Forms en cours dans une application comportant plusieurs applications Forms appelées.

Current_Form_Name au niveau application correspond à Form_Name au niveau application Forms. Pour rechercher Form_Name, utilisez GET_FORM_PROPERTY.


Current_Record - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le numéro de l'enregistrement en cours dans la liste des enregistrements du bloc.

Application bloc

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY


Current_Row_Background_Color - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la couleur de la zone d'arrière-plan de l'objet.

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Current_Row_Fill_Pattern - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le motif à utiliser pour la zone de remplissage de l'objet. Les motifs sont fournis dans les deux couleurs indiquées par Background_Color et Foreground_Color.

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Current_Row_Font_Name - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type de police à utiliser pour le texte de l'objet. La liste des polices disponibles varie en fonction du système.

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Current_Row_Font_Size - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la taille de la police en points.

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Current_Row_Font_Spacing - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la largeur de la police (c'est-à-dire la quantité d'espace entre les caractères, ou crénage).

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Current_Row_Font_Style - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le style de la police.

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Current_Row_Font_Weight - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le poids de la police.

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Current_Row_Foreground_Color - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la couleur de la zone de premier plan de l'objet. Dans le cas des éléments, définit la couleur du texte affiché dans l'élément.

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Current_Row_White_on_Black, propriété;
Current_Row_White_On_Black - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que l'objet doit apparaître sur une unité d'affichage bitmap monochrome sous forme de texte blanc sur fond noir.

Application  élément, bloc, application Forms

Définition programme

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY


Mode curseur - Propriété

 Toutes les propriétés

Remarque :

Depuis la version 5.0, le mode curseur est automatiquement géré par Form Builder. Cette propriété est désormais obsolète et ne doit plus être utilisée. Veillez à ne jamais paramétrer le mode curseur sur Fermer. Les informations suivantes ne sont fournies qu'à titre d'historique et pour des raisons de maintenance.

Description

Permet de définir l'état du curseur pendant différentes transactions. Le curseur fait référence à la zone de mémoire dans laquelle les instructions SQL sont exécutées. Pour plus d'informations sur les curseurs, reportez-vous à ORACLE RDBMS Database Administrator's Guide. Cette propriété est utile pour les applications qui utilisent une source de données autre qu'ORACLE.

Les définitions valides pour la propriété Mode curseur sont les suivantes :

Définition	Description
Ouvert (par défaut)	Permet d'indiquer que les curseurs doivent rester ouverts pendant toutes les transactions.
Fermer	Permet d'indiquer que les curseurs doivent être fermés lorsqu'une opération COMMIT est lancée.

S'applique à application Forms

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

• SET_FORM_PROPERTY

Valeur par défaut

OPEN_AT_COMMIT

Notes d'utilisation

•	Comme ORACLE autorise l'actualisation de l'état de la base de données pendant toutes les transactions, Form Builder permet aux curseurs de rester ouverts pendant les opérations de validation (COMMIT), ce qui diminue la charge système découlant de l'exécution ultérieure de la même instruction SQL, car le curseur n'a pas besoin d'être rouvert et l'instruction SQL ne doit pas être constamment ré-analysée.

•	Certaines bases de données non ORACLE ne permettent pas d'actualiser l'état de la base de données d'une application à l'autre. Vous pouvez donc indiquer le paramètre CLOSE_AT_COMMIT de l'option Mode curseur pour répondre à ces besoins.

•	La fermeture des curseurs lors de l'opération COMMIT et leur réouverture lors de l'exécution peuvent dégrader les performances à trois niveaux :

•	pendant la validation (COMMIT) ;

•	pendant l'exécution ultérieure des autres instructions SQL portant sur les mêmes enregistrements ;

•	pendant les interrogations.

•	Form Builder ne ferme pas explicitement les curseurs après une opération COMMIT si vous définissez la propriété à CLOSE_AT_COMMIT. Cette définition est essentiellement un message qui indique à Form Builder que l'état des curseurs ne peut pas être défini après une opération COMMIT.

Form Builder actualise un ID de transaction pendant tous les types de traitement de transactions. Par exemple, Form Builder incrémente l'ID de transaction chaque fois qu'il ouvre un curseur ou effectue une opération COMMIT ou une annulation.

Lorsque Form Builder tente de réexécuter un curseur, il vérifie l'ID de transaction. Si cet ID n'est pas celui de la transaction en cours, Form Builder ouvre, analyse et exécute un nouveau curseur. Seul le dernier ID de transaction est actualisé.

•	Si vous lancez une interrogation, modifiez des données, puis effectuez une opération COMMIT, Form Builder incrémente l'ID de transaction. Les extractions ultérieures ne rouvrent pas et n'exécutent pas le curseur pour les raisons suivantes :

•	Form Builder ne tente pas de gérer les problèmes de cohérence de lecture ou le repositionnement dans le curseur.

•	Form Builder s'attend à ce que ORACLE ou la connexion retourne une erreur de fin d'extraction lors d'une tentative d'extraction à partir d'un curseur implicitement fermé.

Lors d'une exécution ultérieure de l'interrogation, Form Builder ouvre un nouveau curseur.

•	Lors de l'utilisation de cette propriété avec des déclencheurs transactionnels, c'est vous qui, en tant que programmeur, devez gérer vos curseurs. Par exemple, vous pouvez vouloir fermer les interrogations ouvertes sur le bloc lorsque vous exécutez une opération COMMIT.


Cursor_Style - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le type de curseur de la souris. Utilisez cette propriété pour modifier dynamiquement la forme du curseur.

Les valeurs valides pour la propriété Cursor_Style sont les suivantes :

Paramètre	Description

BUSY	Affiche un symbole d'occupation propre à l'interface graphique.

CROSSHAIR	Affiche un symbole en croix propre à l'interface graphique.

DEFAULT	Affiche un symbole en flèche propre à l'interface graphique.

HELP	Affiche un symbole d'aide propre à l'interface graphique.

INSERTION	Affiche un symbole d'insertion propre à l'interface graphique.

S'applique à application

Définition programme

Reportez-vous aux procédures internes suivantes :

•	GET_APPLICATION_PROPERTY

•	SET_APPLICATION_PROPERTY

Valeur par défaut

Symbole en forme de flèche

Notes d'utilisation

Lorsque Form Builder exécute une opération de longue durée, il affiche un message indiquant qu'il est en train de réaliser cette opération et remplace le type de curseur indiqué par le curseur d'occupation.

Par exemple, si vous choisissez le type de curseur d'aide et si l'opérateur lance une longue interrogation, le curseur d'aide est remplacé par le curseur d'occupation pendant la durée de l'interrogation. Une fois l'interrogation terminée, le curseur d'occupation est remplacé par le curseur d'aide.

Notez cependant que si vous modifiez le type de curseur pendant que Form Builder affiche le curseur d'occupation, le type de curseur change immédiatement, sans attendre que Form Builder ait achevé l'opération.


Espacement personnalisé - Propriété

 Toutes les propriétés

Description

Indique l'espacement personnalisé de l'objet texte, en unités de présentation.

Application  texte graphique

Définition  Form Builder

Valeur par défaut  0

0

Obligatoire/Facultatif  obligatoire


Type de tiret - Propriété

 Toutes les propriétés

Description

Permet de paramétrer le type de tiret de la bordure de l'objet graphique sur Plein, Pointillé, Tireté, Trait mixte, Double-point, Discontinu long ou Mixte double-point.

Application  graphique

Définition  Form Builder

Valeur par défaut

Plein

Obligatoire/Facultatif  obligatoire


Description du bloc de données - Propriété

 Toutes les propriétés

Description

Permet de décrire le bloc de données.

Application  base de données du bloc de données

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Interrogation - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la source de données basée sur l'interrogation.

Application  arborescence

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

ADD_TREE_DATA

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Bloc de données de source de données - Propriétés

 Toutes les propriétés

Bloc de données de source de données (graphique) - Propriété ;

Bloc de données de source de données (état) - Propriété.


Bloc de données de source de données (graphique) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Lorsque vous exécutez Graphics Builder à partir de Form Builder pour créer un graphique, cette propriété permet d'indiquer le bloc de données à utiliser comme source d'un élément graphique.

Application  élément graphique

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Bloc de données de source de données (état) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Pour l'intégration d'état/d'application Forms, permet d'indiquer le bloc de données à utiliser comme source de l'état en tant que valeur Null ou en tant que nom de bloc.

Application  intégration d'états

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Axe X de source de données - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la colonne de bloc de données à utiliser comme base de l'axe des X d'un élément graphique.

Application  élément graphique

Définition  Form Builder


Axe Y de source de données - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la colonne de bloc de données à utiliser comme base de l'axe des Y d'un élément graphique.

Application  élément graphique

Définition  Form Builder


Type de données - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type des valeurs que Form Builder accepte en entrée et comment Form Builder affiche ces valeurs.

Application case à cocher, élément affiché, élément liste, groupe de boutons d'option, élément texte, élément personnalisé et paramètre d'application Forms (ce paramètre supporte uniquement CHAR, DATE, DATETIME et NUMBER).

Remarque : Les types de données ne s'appliquent pas tous à chaque type d'élément.

Définition  Form Builder

Notes d'utilisation

•	Dans Form Builder 6.0 et les versions ultérieures, il est recommandé de n'utiliser que les types standard CHAR, DATE, DATETIME et NUMBER pour les données. Ces types, basés sur des types de données ORACLE natifs, offrent des performances et une portabilité optimales des applications. Les autres types de données valides uniquement pour des éléments texte, sont inclus essentiellement pour des raisons de compatibilité avec les versions précédentes. Vous pouvez obtenir les mêmes caractéristiques de mise en forme en utilisant un type de données standard avec un masque de format approprié.

•	Le type de données d'un élément de table de base doit être compatible avec le type de données de la colonne de la base de données correspondante. Utilisez le type de données CHAR pour les éléments qui correspondent aux colonnes de base de données ORACLE VARCHAR2.

•	Ne créez pas d'éléments correspondant aux colonnes CHAR de la base de données si ces éléments doivent être utilisés dans des interrogations ou comme condition de jointure d'une relation maître-détail ; utilisez à la place les colonnes de base de données VARCHAR2.

•	Form Builder exécute sur les éléments les opérations suivantes, le cas échéant :

suppression des blancs de fin ;

changement de l'élément en NULL s'il ne se compose que de blancs ;

suppression des zéros en-tête si le type de données est NUMBER, INT, MONEY, RINT, RMONEY ou RNUMBER (à moins que le masque de format de l'élément n'autorise les zéros en-tête)

•	La propriété Type de données de paramètre du paramètre d'application Forms supporte les types de données CHAR, DATE et NUMBER.

ALPHA

Contient toute combinaison de caractères alphabétiques (en majuscules et/ou en minuscules)

Valeur par défaut	Null
Exemple	"Employé", "DUPONT"

CHAR

Supporte VARCHAR2 jusqu'à 2000 caractères. Contient toute combinaison des caractères suivants :

•	caractères alphabétiques (en minuscules et/ou majuscules)

•	chiffres

•	blancs

•	caractères spéciaux ($, #, @ et _)  Valeur par défaut

Valeur par défaut	Null
Exemple	"100 rue du Chemin Vert", "CHAR_EXAMPLE_2"

DATE

Contient une date valide. Vous pouvez afficher un élément de type DATE dans tout autre format valide en modifiant le masque de format de l'élément.

Valeur par défaut	JJ-MOI-AA
Restrictions	Fait référence à une colonne de type DATE de la base de données et est traité comme une date réelle, et non comme une chaîne de caractères.
	Le type de données DATE n'a pas pour fonction de stocker un composant d'heure.
Exemple	01-JAN-92

DATETIME

Contient une date et une heure valides.

Valeur par défaut	JJ-MOI-AA HH24:MI[:SS]
Restrictions	Fait référence à une colonne de type DATE de la base de données et est traité comme une date réelle, et non comme une chaîne de caractères.
	Le type de données DATETIME contient une année à quatre chiffres. Si l'année d'un type de données DATETIME est entrée sous la forme de deux chiffres, l'année est interprétée comme 00AA.
Exemple	31-DEC-88 23:59:59

EDATE

Contient une date européenne valide.

Valeur par défaut	DD/MM/YY
Restrictions	Type de données V3.
	Doit faire référence à une colonne de type NUMBER de la base de données.
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données DATE.
	Appliquez un masque de format pour obtenir le format de date européen.
	Faites référence à une colonne de type DATE de la base de données, et non à une colonne de type NUMBER.
Exemple	23/10/92 (October 23, 1992)
	01/06/93 (June 1, 1993)
INT

Contient un entier (signé ou non signé).

Valeur par défaut	0
Exemple	1, 100, -1000

JDATE

Contient une date de calendrier julien valide.

Valeur par défaut	MM/DD/YY
Restrictions	Type de données V3.
	Doit faire référence à une colonne de type NUMBER de la base de données.
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données DATE.
	Appliquez un masque de format pour obtenir le format de date de calendrier julien.
	Faites référence à une colonne de type DATE de la base de données, et non à une colonne de type NUMBER.
Exemple	10/23/92 (23 octobre 1992)
	01.01.97 (June 1, 1993)

LONG

Contient une combinaision de caractères. Stocké dans ORACLE sous la forme de chaînes de caractères de longueur variable. L'application Forms accepte des champs LONG jusqu'à 65.534 octets. Cependant, PL/SQL est limité à 32.760 octets. Si une variable LONG est utilisée comme variable de lien dans une instruction PL/SQL, elle ne doit pas dépasser cette limite de 32.760 octets.

Valeur par défaut	Null
Restrictions	Non autorisée comme référence dans les clauses WHERE ou ORDER BY d'une instruction SELECT.
	Les éléments de type LONG ne peuvent pas être interrogés en mode Saisie interrogation.

MONEY

Contient une valeur numérique, signée ou non, représentant une somme d'argent.

Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes. Utilisez à la place un masque de format comportant une valeur numérique pour obtenir le même résultat.
Exemple	10.95, 0.99, -15.47

NUMBER

Contient des nombres, en virgule flottante ou fixe, compris entre 1.0x10-129 et 9.99x10124, et ayant une ou plusieurs des caractéristiques suivantes :

•	signé

•	non signé

•	contenant une décimale

•	en notation classique

•	en notation scientifique

•	jusqu'à 38 chiffres de précision

Les éléments de type NUMBER ou FLOAT font référence aux colonnes de type NUMBER de la base de données ; Form Builder traite leurs valeurs comme des nombres réels (et non comme des chaînes de caractères).

Valeur par défaut	0
Restrictions	Un élément numérique ne peut pas contenir de virgule (par exemple, 99,999). Utilisez un masque de format.
Exemple	-1, 1, 1.01, 10.001, 1.85E3

RINT

Affiche les valeurs entières justifiées à droite.

Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données de type NUMBER.
	Appliquez un masque de format tel que 999 pour obtenir un nombre justifié à droite.

RMONEY

Affiche des valeurs de type MONEY, justifiées à droite.

Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données NUMBER.
	Appliquez un masque de format tel que $999.99 pour obtenir un nombre justifié à droite.

RNUMBER

Affiche des valeurs de type NUMBER, justifiées à droite.

Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données de type NUMBER.
	Appliquez un masque de format tel que 999.99 pour obtenir un nombre justifié à droite.

TIME

Contient des valeurs numériques et des signes deux-points qui font référence à des colonnes de type NUMBER de la base de données.

Valeur par défaut	HH24:MI[:SS]
Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données DATETIME.
	Appliquez un masque de format pour n'obtenir que l'heure.
	Non autorisé comme référence à des colonnes DATE dans la base de données.
Exemple	:10:23:05
	21:07:13


Type de données (groupe d'enregistrements) - Propriété

Description

Voir Spécifications de colonne.


Bloc de base de données - Propriété

 Toutes les propriétés

Description

Permet d'indiquer que le bloc est basé sur l'un des types de source de données suivants : table, procédure, déclencheur transactionnel ou sous-interrogation.(La source de table comprend des tables relationnelles, des tables d'objets et des tables relationnelles qui contiennent des objets colonne ou REF.) Permet également d'indiquer que le bloc n'est pas un bloc de contrôle. Lorsque la propriété Bloc de base de données est désactivée, Form Builder fait apparaître en grisé les propriétés de source de données du bloc et les ignore.

Application  bloc

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Database_Value - Propriété

 Toutes les propriétés

Description

Pour un élément de table de base qui fait partie d'un enregistrement de base de données dont l'état est QUERY ou UPDATE, Database_Value retourne la valeur extraite initialement de la base de données. Lorsqu'une valeur extraite a été mise à jour, puis ultérieurement enregistrée dans la base de données, Database_Value retourne la valeur enregistrée.

Pour un élément de contrôle qui fait partie d'un enregistrement de base de données, Database_Value retourne la valeur attribuée à l'origine à l'élément, lorsque l'enregistrement a été extrait de la base de données.

Pour tout élément appartenant à un enregistrement non-base de données dont l'état est NEW ou INSERT, Database_Value retourne la valeur en cours de l'élément.

Remarque : Vous pouvez étudier la propriété Database_Value pour déterminer la valeur d'un élément d'un enregistrement de base de données avant sa modification par l'utilisateur.

Remarque : Vous pouvez examiner la variable SYSTEM.RECORD_STATUS ou utiliser la procédure interne GET_RECORD_PROPERTY pour savoir si un enregistrement a été interrogé à partir de la base de données.

Application :

tous les éléments, sauf boutons, éléments graphiques et éléments image.

Définition  non définissable

Reportez-vous à la procédure interne suivante :

GET_ITEM_PROPERTY


Source des données - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nom de la base de données utilisée.

S'applique à  application

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Valeur par défaut

ORACLE

Notes d'utilisation

Cette propriété est utilisée avec les sources de données non Oracle. Elle retourne le nom de la base de données pour les connexions établies par Form Builder, mais non pour les connexions établies par les déclencheurs On-Logon. Les définitions valides pour cette propriété sont les suivantes :

•	ORACLE

•	DB2

•	NULL (base de données non spécifiée ou non connectée)

•	NONSTOP

•	TERADATA

•	NCR/3600

•	NCR/3600

•	SQLSERVER


Date_Format_Compatibility_Mode property

 Toutes les propriétés

Description

Etablit les masques de format date à utiliser dans certaines opérations de conversion. La définition de 4.5 choisit les types de conversions effectuées dans la version 4.5 et antérieures. La définition de 5.0 choisit les types de conversions effectuées dans la version 5.0 et plus récentes.

Les opérations et masques de conversion influencés par ce choix figurent dans  A propos des masques de format de date

S'applique à  application

Définition  définissable depuis Form Builder.

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

SET_APPLICATION_PROPERTY

Valeur par défaut

5.0

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Si cette propriété Date_Format_Compatibility_Mode est définie à 4.5 mais la propriété Runtime_Compatibility_Mode à 5.0,, la valeur 5.0 écrase la définition Date_Format_Compatibility_Mode.


Bouton d'alerte par défaut - Propriété

 Toutes les propriétés

Description

Permet d'indiquer, parmi les trois boutons d'alerte possibles, celui qui sera le bouton d'alerte par défaut. En général, ce bouton n'a qu'une bordure ou est mis en évidence d'une façon quelconque pour qu'il soit facile à identifier.

Application  alerte

Définition  Form Builder

Valeur par défaut

Bouton 1

Obligatoire/Facultatif facultatif


Bouton par défaut - Propriété

 Toutes les propriétés

Description

Permet d'indiquer que le bouton doit être identifié comme bouton par défaut. Lors de l'exécution, l'utilisateur peut appeler le bouton par défaut en appuyant sur [Select] si le point d'insertion se trouve dans la fenêtre qui contient le bouton par défaut.

Dans certains gestionnaires de fenêtres, ce bouton par défaut n'a qu'une bordure ou est mis en évidence d'une façon quelconque pour qu'il soit facile à identifier.

Application  bouton

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif facultatif


Echelle de police par défaut - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que la police à utiliser dans une application Forms est, par défaut, mise à l'échelle relative de l'unité d'affichage utilisée.

Application  module Application Forms

Définition  Form Builder

Valeur par défaut

Oui


Echelle de police par défaut - Restrictions

Cette propriété n'est valide que lorsque la propriété Système de coordonnées est définie à Cellule de caractère.


Différé - Propriété

 Toutes les propriétés

Description

Voir Coordination.


Différer la mise en vigueur obligatoire - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Pour un élément dont la propriété Obligatoire est définie sur Vrai, permet d'indiquer si Form Builder doit différer l'application de l'attribut d'élément requis jusqu'à ce que l'enregistrement soit validé.

Trois définitions sont possibles pour cette propriété :  Oui, 4.5 et No.

S'applique à  application Forms

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Valeur par défaut

Non

Notes d'utilisation

Cette propriété n'est appliquée que lorsque la validation au niveau de l'élément est activée. Par défaut, lorsque la propriété Obligatoire est paramétrée sur Vrai, Form Builder ne permet pas de sortir de l'élément tant qu'une valeur valide n'a pas été entrée.  Ce comportement est de vigueur si vous définissez Différer la mise en vigueur obligatoire à No.  (Une exception est faite lorsque l'instande de l'élément ne permet de mise à jour utilisateur ; dans ce cas plutôt rare, la définition de Différer la mise en vigueur obligatoire à No est ignorée et la validation au niveau élément n'a pas lieu.)

En définissant la propriété Différer la mise en vigueur obligatoire à Oui (PROPERTY_TRUE pour l'exécution) ou à 4.5 (PROPERTY_4_5 pour l'exécution), vous permettez à l'utilisateur de se déplacer librement parmi les éléments de l'enregistrement, même s'ils sont Null, en différant la mise en vigueur de l'attribut Obligatoire jusqu'à ce que la validation intervient au niveau enregistrement.

Lorsque la propriété Différer la mise en vigueur obligatoire est définie à Oui, les éléments Obligatoires de valeur Null ne sont pas validés en cas de sortie. Cela signifie que le déclencheur WHEN-VALIDATE-ITEM (s'il existe) n'est pas activé et que la propriété  Elément valide de l'élément reste inchangée. Si la valeur de l'élément est toujours null au moment de la validation au niveau enregistrement, Form Builder signal une erreur.

Lorsque la propriété Différer la mise en vigueur obligatoire est définie à Oui, les éléments Obligatoires de valeur Null ne sont pas validés en cas de sortie, et la propriété Elément valide de l'élément reste inchangée. Toutefois, le déclencheur WHEN-VALIDATE-ITEM (s'il existe) est activé. En cas d'échec (génère Form_Trigger_Failure), on considère que l'élément a échoué à la validation et Form Builder signale une erreur. Si le déclencheur se termine normalement, le traitement se poursuit également normalement. Si la valeur de l'élément est toujours Null lors de la validation au niveau enregistrement, Form Builder signalera l'erreur le moment venu.

La définition d'une valeur de 4.5 pour la propriété Différer la mise en vigueur obligatoire vous permet d'écrire du code pour un déclencheur WHEN-VALIDATE-ITEM qui est exécuté dès que l'utilisateur modifie la valeur de l'élément (même à Null) et sort.  Un tel code peut, par exemple, mettre à jour les valeurs d'autres éléments. (Le nom «4.5» de cette définition reflète le fait que, dans la version 4.5 et suivantes s'exécution en mode 4.5, le déchencheur WHEN-VALIDATE-ITEM était toujours activié pendant la validation au niveau élément.)


Suppression autorisée - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si les enregistrements peuvent être supprimés du bloc.

Application  bloc

Définition Form Builder, par programme

Valeur par défaut

Oui

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY


Supprimer les arguments de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms, types de données et valeurs des arguments qui doivent être passés à la procédure en vue de la suppression des données. La propriété Supprimer les arguments de procédure n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application  bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Supprimer le nom de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la procédure à utiliser pour supprimer des données. La propriété Supprimer le nom de procédure n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application  bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Supprimer les colonnes de paramètres de résultat de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms et les types de données des colonnes de paramètres de résultat associées à la procédure de suppression de données. La propriété Supprimer les colonnes de paramètres de résultat de procédure n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application  bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Supprimer comportement de l'enregistrement - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

(Remarque : Dans les versions précédentes, cette propriété était appelée propriété Suppressions maître.)

Permet d'indiquer comment la suppression d'un enregistrement du bloc maître doit affecter les enregistrements du bloc détail :

Définition	Description
Non isolé	Paramètre par défaut. Empêche la suppression d'un enregistrement maître lorsque la base de données contient des enregistrements détail associés.
Isolées	Permet la suppression de l'enregistrement maître, mais n'a aucun effet sur les enregistrements détail associés de la base de données.
En cascade	Permet la suppression de l'enregistrement maître et supprime automatiquement les enregistrements détail associés, dans la table de base du bloc détail, lors de l'opération commit. Dans une relation maître-détail-détail avec relations imbriquées, seuls les enregistrements du bloc détail immédiat sont supprimés. (Les suppressions ne sont pas automatiquement répercutées en cascade sur les différents niveaux d'une chaîne de relations.)

Application  relation

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_RELATION_PROPERTY

•	SET_RELATION_PROPERTY

Valeur par défaut

Non isolé


Supprimer comportement de l'enregistrement - Restrictions

•	La définition de cette propriété lors de l'exécution est sans effet pour une relation maître-détail. Lors de la programmation, Form Builder crée les déclencheurs nécessaires à l'application de la relation, et changer la propriété Supprimer comportement de l'enregistrement lors de l'exécution ne modifie pas le texte du déclencheur par défaut. La possibilité de définir et de rechercher cette propriété par programme n'est incluse que pour les programmeurs qui écrivent une coordination maître-détail personnalisée.


Bloc détail - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer le nom du bloc détail d'une relation de blocs maître-détail.

Application  relation

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_RELATION_PROPERTY (Nom_détail)

Valeur par défaut

NULL

Obligatoire/Facultatif  obligatoire


Bloc détail - Restrictions

Le bloc indiqué doit exister dans l'application Forms active.


Elément Référence détail - Propriété

 Toutes les propriétés

Description

Permet d'identifier l'élément REF dans le bloc de données détail de la relation qui forme le lien avec le bloc de données maître. Cette propriété n'est appliquée que lorsque la propriété Type de la relation est paramétrée sur REF.

Application  Relation

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Null

Notes d'utilisation

Cette propriété n'est appliquée que lorsque la propriété Type de la relation est paramétrée sur REF.


Direction - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Remarque : Cette propriété est propre aux applications NLS (National Language Support) bidirectionnelles.

Elle permet d'indiquer le sens de la présentation des objets bidirectionnels.

Pour cette propriété, supposez que Local fasse référence aux langues affichées de Droite à gauche, et Roman à celles qui sont affichées de Gauche à droite.

Direction est une propriété globale qui offre pour chaque objet un maximum de fonctionnalités. Pour tous les objets, sauf les éléments Texte et les éléments affichés, Direction est la seule propriété bidirectionnelle et son paramètre contrôle les autres aspects de la fonction bidirectionnelle. (Les éléments Liste ont cependant une propriété Direction et une propriété Etat initial clavier.)

La propriété Direction de niveau application Forms est le paramètre de niveau le plus élevé de la propriété. Lorsque vous acceptez la valeur par défaut de cette propriété, le sens de la présentation de l'application Forms est hérité du sens naturel d'écriture indiqué par la variable d'environnement de langue NLS.

Dans la plupart des cas, vous obtiendrez les fonctionnalités voulues en laissant toutes les autres propriétés Direction définies sur Par défaut (c'est-à-dire que le sens de présentation de la variable d'environnement de langue NLS redescend à chaque niveau inférieur). Vous devez indiquer les propriétés bidirectionnelles uniquement lorsque vous voulez remplacer les valeurs par défaut héritées.

Le tableau suivant résume les caractéristiques d'héritage de la propriété Direction.

	Le paramètre par défaut tire sa valeur de l'objet
Application Forms	Variable d'environnement NLS
Tous les objets comme Alerte, Bloc, LOV, Fenêtre et Canevas	Application Forms
Tous les éléments (élément Texte, élément affiché, case à cocher, bouton, groupe de boutons d'option et élément Liste)	Canevas

 Le tableau suivant résume les fonctions contrôlées par la propriété Direction pour chaque type d'objet. (Les éléments Texte et les éléments affichés n'ont pas de propriété Direction ; dans Form Builder, vous pouvez définir spécifiquement les propriétés Justification, Séquence de lecture et Etat initial clavier pour ces éléments. Cependant, vous ne pouvez extraire et définir par programme la propriété Direction que pour l'intégralité des éléments, y compris les éléments Texte et les éléments affichés.)

	Sens de la présentation	Séquence de lecture de texte	Alignement de texte	Position de la barre de défilement	Etat initial clavier
Application Forms	X
Alerte	X	X			X
Bloc(pour utilisation ultérieure)
LOV(pour utilisation ultérieure)
Fenêtre	X(de menu)	X			X
Canevas	X(également point d'origine)	X(texte standard)		X(et règles)
Case à cocher	X	X			X
Bouton	X	X			X
Groupe de boutons d'option	X	X			X
Elément Liste	X	X	X	X

Remarque : Les en-têtes ci-dessus représentent des fonctions, et non des propriétés : par exemple, la propriété Direction des alertes ne définit pas la propriété Etat initial clavier, mais contrôle la fonction de l'état initial du clavier.

Les valeurs autorisées pour cette propriété sont les suivantes :

Valeur	Description
Valeur par défaut	Sens fondé sur la propriété indiquée dans le tableau.
Droite-gauche	Sens : de droite à gauche.
Gauche-droite	Sens : de gauche à droite.

Application  tous les objets figurant dans le tableau

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_WINDOW_PROPERTY

•	GET_VIEW_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_FORM_PROPERTY

• SET_WINDOW_PROPERTY

•	SET_VIEW_PROPERTY

• SET_ITEM_PROPERTY

Notes d'utilisation générales :

•	Pour que tous les éléments de votre application Forms aient par défaut le sens d'écriture naturel indiqué par la variable d'environnement de langue, paramétrez Direction de langue au niveau application Forms et toutes les autres propriétés Direction sur Par défaut.

•	Dans la plupart des cas, le paramètre Valeur par défaut offre les fonctionnalités dont vous avez besoin. Cependant, vous voudrez, dans certains cas, remplacer le paramètre par défaut en définissant la propriété Direction d'un objet à afficher différemment de la propriété Direction de niveau supérieur. Par exemple, vous pouvez souhaiter que la plupart des éléments d'un canevas héritent leur Direction de la propriété Direction du canevas mais, pour un élément Texte particulier, vous pouvez définir la propriété Direction de manière à remplacer la valeur par défaut.

•	Si vous développez une application bilingue et que vous voulez afficher des menus de type Local et Roman, créez un déclencheur qui affiche la version correcte du menu, en fonction de la propriété USER_NLS_LANG de la procédure interne GET_APPLICATION_PROPERTY.

•	Lors du choix d'une valeur de propriété Direction, suivez les instructions ci-après :

•	Si vous développez une application bilingue et que vous voulez afficher un objet de type Local en mode Droite-Gauche et un objet de type Roman en mode Gauche-Droite, utilisez la valeur Par défaut.

•	Si l'objet contient normalement du texte de type Local, choisissez la valeur Droite-Gauche.

•	Si l'objet contient normalement du texte de type Roman, choisissez la valeur Gauche-Droite.

Direction (alerte)

Permet d'indiquer le sens de la présentation des éléments d'interface d'alerte et notamment la séquence de lecture du texte affiché dans la fenêtre d'alerte.

Direction (bouton)

Permet d'indiquer la séquence de lecture du texte du bouton et l'état initial du clavier lorsque le bouton reçoit le point d'insertion.

Direction (canevas)

Permet d'indiquer le sens de la présentation du canevas, notamment :

•	le sens de la présentation utilisé dans l'Editeur de présentation ;

•	le point d'origine (pour Droite-Gauche, l'angle supérieur droit ; pour Gauche-Droite, l'angle supérieur gauche) ;

•	l'affichage des règles et des barres de défilement ;

•	la séquence de lecture du texte standard.

Notes sur l'utilisation du canevas :

•	Pour déterminer la valeur à choisir, reportez-vous aux Notes d'utilisation de la propriété Direction de niveau application Forms.

•	Pour développer une application comportant des blocs dans différentes directions, placez chaque bloc dans un canevas distinct, ce qui permet :

•	De présenter automatiquement des blocs dans la propriété Direction du canevas.

•	De définir par défaut la séquence de lecture du texte standard comme l'indique la propriété Direction du canevas.

•	Si un bloc occupe plusieurs canevas, la propriété Direction du canevas doit être la même pour tous les canevas, à moins qu'une partie du bloc ne doive être affichée avec une propriété Direction différente.

•	Dans Form Builder, si vous modifiez la propriété Direction du canevas alors que l'Editeur de présentation est ouvert, la modification n'entre en vigueur que lorsque vous ouvrez de nouveau l'Editeur de présentation.

Direction (case à cocher)

Permet d'indiquer le sens de la présentation d'une case à cocher, notamment :

•	la position de la case par rapport au texte ;

•	la séquence de lecture du libellé de la case ;

•	l'état initial du clavier lorsque la case reçoit le point d'insertion.

Direction (application Forms)

Permet d'indiquer le sens de la présentation d'une application Forms. Le paramétrage sur Par défaut de la propriété Direction de niveau application Forms permet à l'application Forms d'hériter le sens de présentation correspondant au sens naturel d'écriture de la langue, indiqué dans la variable d'environnement NLS.

Notes sur l'application Forms :

•	Si vous développez une application bilingue qui doit être exécutée de Gauche à droite et de Droite à gauche, utilisez la valeur Par défaut.

•	Pendant les tests, paramétrez Direction sur Droite-Gauche ou sur Gauche-Droite pour tester votre application Forms dans le sens Local ou Roman. Avant de générer l'exécutable final, revenez à Par défaut.

•	Si votre application doit être exécutée dans un seul sens, choisissez la valeur correspondante.

Direction (élément Liste)

Permet d'indiquer le sens de la présentation des éléments Liste dans les listes instantanées et les zones de liste déroulante, notamment :

•	la position de la barre de défilement ;

•	l'alignement du texte de la liste ;

•	la séquence de lecture du texte de la liste ;

•	l'état initial du clavier lorsque l'élément Liste reçoit le point d'insertion.

Direction (groupe de boutons d'option)

Permet d'indiquer le sens de la présentation des boutons d'option du groupe (position du cercle par rapport au texte), notamment :

•	la séquence de lecture du texte ;

•	l'état initial du clavier lorsque le groupe de boutons d'option reçoit le point d'insertion.

Direction (fenêtre)

Permet d'indiquer le sens de la présentation de l'objet fenêtre, notamment :

•	le sens de la présentation du menu ;

•	la séquence de lecture du texte qui est affiché dans la zone de la fenêtre et qui ne fait pas partie d'un objet ayant sa propre propriété Direction (par exemple, le titre de la fenêtre).


Affichage automatique des messages d'aide - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet de déterminer quand le texte d'aide indiqué par la propriété d'élément Message d'aide s'affiche :

•	Activez Affichage automatique des messages d'aide pour que Form Builder affiche le texte lorsque le point d'insertion entre dans l'élément.

•	Désactivez Affichage automatique des messages d'aide pour que Form Builder n'affiche le texte de l'aide que lorsque le point d'insertion est dans l'élément et que l'utilisateur appuie sur [Aide] ou sélectionne la commande Aide dans le menu par défaut.

Application tous les éléments, sauf élément graphique, élément affiché et élément personnalisé.

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Notes d'utilisation

Si un déclencheur fait naviguer Form Builder dans plusieurs éléments avant arrêt sur l'élément cible, le texte d'aide ne s'affiche pas pour les éléments traversés, mais seulement pour l'élément cible.


Affichage automatique des messages d'aide - Restrictions

Cette propriété n'est pas applicable lorsque la propriété Message d'aide est NULL.


Display in Keyboard Help - Propriété
Afficher aide sur touches; Keyboard Text - Propriétés

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si une description de déclencheur de touches s'affiche dans l'écran d'aide Touches lors de l'exécution. Une entrée dans l'écran Touches comprend un texte décrivant le nom de la touche et la séquence de touches physiques qui lui est associée, par exemple Ctrl-S.

Application  déclencheur

Définition  Form Builder

Valeur par défaut

Non

Notes d'utilisation

•	Si vous ne voulez pas que le nom ou la description apparaisse dans la fenêtre Afficher touches, désactivez la propriété Display Keyboard Help. Cette option est l'option par défaut.

•	Si vous voulez que le nom de la touche qui correspond au déclencheur et sa description par défaut soient affichés dans la fenêtre Touches, activez la propriété Afficher Aide sur touches et laissez en blanc Texte de l'aide sur les touches.

•	Si vous voulez remplacer la description de touche par défaut, activez la propriété Afficher Aide sur touches, puis entrez la description de votre choix dans le champ Texte de l'aide sur les touches.


Display in Keyboard Help - Restrictions

Cette propriété n'est valide que pour les déclencheurs sur touche.


Qualité de l'affichage - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet de déterminer le niveau de qualité utilisé pour afficher un élément image, en vous permettant de contrôler l'équilibre entre la qualité de l'image et les performances/la mémoire.

Les options valides pour cette propriété sont les suivantes :

Elevée	Affiche l'image en haute qualité, ce qui demande davantage de ressources.

Moyenne	Affiche l'image en qualité moyenne.

Basse	Affiche l'image en basse qualité, ce qui demande moins de ressources.

Application  élément image

Définition  Form Builder

Valeur par défaut

Elevée


Qualité de l'affichage - Restrictions

aucun


Largeur d'affichage (LOV) - Propriété

 Toutes les propriétés

Description

Voir Propriétés de correspondance de colonnes .


Afficher sans privilège - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet de déterminer si l'élément Menu en cours s'affiche lorsque l'utilisateur de l'application Forms en cours n'est pas membre d'un rôle autorisé ayant des autorisations d'accès à l'élément :

•	Lorsque Afficher sans privilège est désactivé, Form Builder n'affiche pas l'élément si l'utilisateur n'a pas le droit d'y accéder.

•	Lorsque Afficher sans privilège est activé, Form Builder affiche l'élément sous la forme d'un élément Menu désactivé (grisé). L'utilisateur peut voir l'élément dans le menu, mais ne peut pas exécuter la commande associée à l'élément.

Vous ne pouvez accorder des autorisations d'accès qu'aux membres des rôles affichés dans la liste des rôles. Pour ajouter un rôle de base de données à la liste, définissez la propriété de module de menu, Rôles associés au module Menu. Pour plus d'informations sur la création des listes de rôle et l'attribution d'un accès rôle aux éléments de menu, reportez-vous au système d'aide en ligne de Form Builder.

Application  élément de menu

Définition  Form Builder

Valeur par défaut

Non


Afficher sans privilège - Restrictions

Cette propriété n'est valide que lorsque la liste des rôles contient le nom d'au moins un rôle de base de données.


Display_Height - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la hauteur de l'écran, en unités spécifiées par le paramètre en cours de la propriété d'application Forms Coordinate Units. Utilisez cette propriété pour calculer dynamiquement la position optimale d'affichage des fenêtres à l'écran.

S'applique  à application

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY


Display_Width - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la largeur de l'écran, en unités spécifiées par le paramètre en cours de la propriété d'application Forms Coordinate Units. Utilisez cette propriété pour calculer dynamiquement la position optimale d'affichage des fenêtres à l'écran.

S'applique à  application

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY


Displayed property

 Restrictions	   Toutes les propriétés

Description

Active/supprime le masquage ou désactive/masque un élément. Lorsqu'un élément est désactivé et masque, il n'est ni navigable, ni interrogeable ni modifiable.

Valeurs : TRUE/FALSE

Application : élément

Définition : par programme

Notes d'utilisation

Assurez-vous que l'élément n'est pas sélectionné avant de définir la propriété Affiché à FALSE. Le fait de définir la propriété Affiché d'un élément à False provoque une erreur : FRM-41016.

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

SET_ITEM_PROPERTY


Displayed property restrictions

Vous ne pouvez pas définir la propriété Affiché d'un élément s'il est sélectionné ou mis en surbrillance.


Distance entre enregistrements - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer l'espace séparant des instances d'éléments dans un bloc multi-enregistrement. Un bloc multi-enregistrement est un bloc dont la propriété Nombre d'enregistrements affichés a une valeur supérieure à 1.

Application  élément

Définition  Form Builder

Valeur par défaut

0

Obligatoire/Facultatif facultatif

Notes d'utilisation

Si vous travaillez sur des unités de règles en cellule de caractère, l'espace entre deux instances d'élément doit être au moins aussi grand que la hauteur d'une cellule.

Par exemple, pour augmenter l'espace entre deux instances d'élément dans un élément de 5 enregistrements, vous devez définir la propriété Distance entre enregistrements à au moins 4, une cellule par espace entre les instances d'élément.


Trame - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si des points sont juxtaposés lors de l'affichage de l'image.

Application  image graphique

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  obligatoire


Taille de tableau DML - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la taille maximum d'un tableau pour insérer, mettre à jour et supprimer des enregistrements dans la base de données à un moment donné.

Application  bloc

Définition  Form Builder

Valeur par défaut

1

Notes d'utilisation

Une valeur plus élevée diminue le temps de traitement des transactions en réduisant le trafic entre le réseau et la base de données, mais demande davantage de mémoire. La taille optimale est le nombre d'enregistrements qu'un utilisateur modifie au cours d'une transaction.


Taille de tableau DML - Restrictions

•	Le nombre minimum d'enregistrements est fixé à 1. Il n'y a pas de maximum.

•	Lorsque la propriété Taille de tableau DML est supérieure à 1 et que la propriété Insertion autorisée est activée, vous devez indiquer un ou plusieurs éléments comme clé primaire, car vous ne pouvez pas lire l'élément ROWID des enregistrements, c'est-à-dire l'élément par défaut qu'ORACLE utilise pour identifier chaque enregistrement. Lors du traitement d'un seul enregistrement, le système recherche le ROWID pour pouvoir y faire référence ultérieurement (mise à jour ou suppression). Pendant le traitement par tableau, le ROWID de chaque enregistrement du tableau n'est pas retourné et vous devez donc désigner un ou plusieurs éléments de clé primaire dans le bloc. La clé primaire sert à indiquer la ligne à verrouiller, et le ROWID est utilisé pour la mise à jour et la suppression. BLOCK.ROWID n'est pas utilisable tant que l'enregistrement n'est pas verrouillé. Vous devez indiquer un ou plusieurs éléments du bloc comme clé primaire, même si la valeur de Mode clé est Unique (par défaut).

•	Lorsque la propriété Taille de tableau DML est supérieure à 1, la propriété Mettre à jour colonnes modifiées seulement est toujours désactivée lors de l'exécution même si elle est activée dans Form Builder. La propriété Mettre à jour colonnes modifiées seulement indique que seules les colonnes dont les valeurs sont réellement modifiées doivent être incluses dans l'instruction UPDATE pendant une validation (COMMIT).

•	Si un élément de type LONG RAW (une image, un son ou un élément OLE, par exemple) figure dans le bloc, la propriété Taille de tableau DML est toujours définie à 1 lors de l'exécution.


Nom de cible de données DML - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la cible de données DML du bloc. La propriété Nom de cible de données DML n'est valide que lorsque la propriété Type de cible de données DML est définie à Table.

Application  bloc

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Nom de cible de données DML - Restrictions

Avant de définir la propriété Nom de cible de données DML, vous devez exécuter une opération COMMIT_FORM ou CLEAR_FORM.


Type de cible de données DML - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type de cible de données DML d'un bloc : Table, Procédure ou Déclencheur transactionnel.

Application  bloc

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Valeur par défaut

Table

Obligatoire/Facultatif  obligatoire


Valeur de retour DML - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si l'application Forms doit utiliser un nouveau comportement ou un ancien comportement lorsqu'elle met à jour des données client à l'aide des valeurs modifiées suite à des mises à jour ou à des insertions dans une base de données. Lorsque cette propriété est définie sur Oui, le nouveau comportement est utilisé (comportement de la version 6). Lorsqu'elle est définie sur Non, l'ancien comportement est utilisé (comportement de la version 5 et des versions antérieures).

Les mises à jour ou les insertions dans une base de données peuvent activer des déclencheurs côté serveur, qui remanient ou modifient les données. Dans la version 6, lorsque vous utilisez un serveur de base de données Oracle8, Forms utilise la clause Retour DML pour rapporter immédiatement ces modifications. Lorsque cette propriété est paramétrée sur Oui, Forms met automatiquement à jour les données client ; vous n'avez pas à réinterroger la base de données pour obtenir les données modifiées.

Lorsque cette propriété est paramétrée sur Non, Forms ne met pas automatiquement à jour les données client. (Ce qui correspond au comportement antérieur à la version 6.) Dans ce cas, si l'utilisateur tente de mettre à jour une ligne dont les valeurs ont été modifiées du côté serveur, vous recevez un message d'avertissement et vous devez réinterroger la base de données pour obtenir les valeurs les plus récentes. La valeur Non est disponible en tant qu'option de compatibilité.

Application  bloc

Définition  Form Builder

Valeurs valides  Oui/Non

Valeur par défaut  Non

Obligatoire/Facultatif  obligatoire

Restrictions

•	Forms n'utilise la clause Retour DML qu'avec un serveur de base de données Oracle8. Cette propriété est ignorée avec les serveurs autres qu'Oracle8.

•	Forms utilise la clause Retour avec les instructions Insertion et Mise à jour, mais pas (encore) avec les instructions Suppression.

•	Forms n'utilise pas la clause Retour pour traiter les paramètres LONG.

•	La mise à jour des colonnes non modifiées dépend du paramétrage de la propriété Mettre à jour colonnes modifiées seulement, qui dépend du paramétrage de la propriété Taille de tableau DML.


Couleur d'arrière-plan du bord - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la couleur d'arrière-plan du bord de l'objet graphique.

Application  police et couleur du graphique

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Couleur de premier plan du bord - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la couleur de premier plan du bord de l'objet graphique.

Application  police et couleur du graphique

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Motif du bord - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le motif du bord de l'objet graphique.

Application  police et couleur du graphique

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Editeur - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer que l'un des éditeurs ci-après doit être utilisé comme éditeur par défaut pour cet élément texte :

•	un éditeur nommé par l'utilisateur, que vous avez défini dans l'application Forms ou

•	un éditeur système, en dehors de Form Builder, que vous avez indiqué en définissant la variable d'environnement SYSTEM_EDITOR.

Application  élément texte

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

blanc, pour indiquer l'éditeur par défaut de Form Builder

Obligatoire/Facultatif  facultatif

Notes d'utilisation

Pour indiquer un éditeur système :

•	Définissez l'éditeur système en positionnant la variable d'environnement FORMS60_EDITOR.

•	Entrez la valeur SYSTEM_EDITOR dans le champ Nom éditeur.


Editeur - Restrictions

L'éditeur indiqué doit exister dans l'application Forms active.


Position X de l'éditeur, Position Y de l'éditeur

 Toutes les propriétés

Description

Permet d'indiquer les coordonnées horizontale (x) et verticale (y) de l'angle supérieur gauche de l'éditeur par rapport à l'angle supérieur gauche du canevas intégral de la fenêtre. Lorsque vous définissez la propriété Editeur, vous pouvez définir les propriétés de position de l'Editeur qui remplaceront les coordonnées d'affichage par défaut de l'éditeur.

Application  élément texte

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

0, 0; pour indiquer que Form Builder doit utiliser les coordonnées par défaut d'affichage de l'éditeur, indiquées par la propriété Position de l'éditeur.

Obligatoire/Facultatif facultatif


Eléments Liste - Propriété

 Restrictions	 Toutes les propriétés

Description

Le groupe de propriétés Eléments liste comprend les propriétés de Valeurs d'élément liste et d'Elément liste.

Application  élément liste

Définition  Form Builder

Elément Liste

Permet d'indiquer le libellé du texte de chaque élément d'un élément liste.

Obligatoire/Facultatif  obligatoire

Valeur d'élément liste

Permet d'indiquer la valeur associée à un élément spécifique d'un élément liste.

Valeur par défaut

NULL

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Lorsque vous laissez le champ Valeur d'élément liste en blanc, la valeur associée à l'élément est NULL.


Eléments Liste - Restrictions

•	Cette propriété doit être unique parmi les valeurs associées aux valeurs d'élément.


Activé - Propriétés

 Toutes les propriétés

Activé (élément) - Propriété

Activé (élément de menu) - Propriété

Activé (page onglet) - Propriété


Activé (élément) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si les utilisateurs peuvent utiliser la souris pour manipuler un élément.

Dans la plupart des gestionnaires de fenêtres, Activé défini à NON transforme l'élément en élément grisé.

Application tous les éléments sauf boutons, éléments graphiques et éléments affichés

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

Valeur par défaut

Oui

Notes d'utilisation

Si Activé est défini à Oui, Keyboard Navigable peut être défini à Oui ou Non. Si Activé est Non,  la navigation au clavier d'un élément est toujours interdite. Lors de l'exéctuion, si la propriété Activé est définie à PROPERTY_FALSE, la propriété Keyboard_Navigable est également définie à PROPERTY_FALSE.

La propriété Activé, définie à Non, transforme l'élément en élément grisé. Si vous voulez que l'élément s'affiche normalement, pour que l'utilisateur puisse le consulter sans le modifier, définissez à la place les propriétés suivantes :

•	Insertion autorisée (élément) désactivée ;

•	Mise à jour autorisée (élément) désactivée ;

•	Activé à Oui.


Activé (élément de menu) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si l'élément de menu doit être affiché sous la forme d'un élément activé (normal) ou désactivé (grisé).

Application  élément de menu

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_MENU_ITEM_PROPERTY

Valeur par défaut

Oui


Activé (élément de menu) - Restrictions

Vous ne pouvez pas activer ou désactiver par programme un élément de menu masqué à la suite de l'une des conditions suivantes :

•	La propriété Sécurité du module Menu est activée.

•	La propriété Afficher sans privilège de l'élément Menu est désactivée.

•	L'utilisateur actuel n'est pas membre d'un rôle qui a accès à l'élément Menu.


Activé (page onglet) - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si la page onglet doit être affichée sous la forme activée (normale) ou désactivée (grisée).

Application  page onglet

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

Valeur par défaut

Oui


Angle de fin - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'angle de fin de l'arc, en utilisant l'axe horizontal comme origine.

Application  arc graphique

Définition  Form Builder

Valeur par défaut

180

Obligatoire/Facultatif  obligatoire


Imposer sécurité sur colonne - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer quand Form Builder doit appliquer les autorisations de mise à jour colonne par colonne, pour la table de base du bloc. Si un utilisateur n'est pas autorisé à mettre à jour une colonne particulière de la table de base, Form Builder désactive la mise à jour de l'élément correspondant par cet utilisateur uniquement, en désactivant la propriété Mise à jour autorisée de l'élément lors du lancement de l'application Forms.

Le tableau suivant décrit les effets des valeurs autorisées pour cette propriété :

Etat	Effet
Oui	Form Builder applique les autorisations de mise à jour définies dans la base de données pour l'utilisateur.
Non	Form Builder n'applique pas les autorisations de mise à jour définies.

 Application  bloc

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Valeur par défaut

Non


Imposer clé primaire (bloc) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer qu'un enregistrement inséré ou mis à jour dans le bloc doit avoir une clé qui lui est propre, pour éviter l'enregistrement de lignes faisant double emploi dans la table de base du bloc.

Application  bloc

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Non


Imposer clé primaire (bloc) - Restrictions

•	La propriété Clé primaire de l'élément doit être activée pour un ou plusieurs éléments du bloc.


Modifiable - Propriété

  Rubriques connexes	 Toutes les catégories

Description

Permet d'indiquer si le bloc peut être modifié.

Application  bloc

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Notes d'utilisation

•	Un bloc est modifiable lorsque son enregistrement en cours contient une instance d'élément dont la propriété Navigation autorisée au clavier dispose d'une valeur vraie en vigueur. Pour plus d'informations sur les valeurs réelles de cette propriété, reportez-vous à la propriété Navigation autorisée au clavier et à la procédure interne SET_ITEM_INSTANCE_PROPERTY.


Error_Date/Datetime_Format - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Contient le masque de format de date ou date/heure d'erreur actuel établi par la variable d'environnement FORMSnn_ERROR_DATE_FORMAT ou FORMSnn_ERROR_DATETIME_FORMAT. L'application Forms utilise ces masques de format comme valeurs par défaut lors du traitement des erreurs d'exécution.

Il y a deux propriétés différentes : Error_Date_Format et Error_Datetime_Format.

S'applique à  application

Définition  non définissable depuis Form Builder.

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY


Mode d'exécution - Propriété

 Toutes les propriétés

Mode d'exécution (graphique) - Propriété

Mode d'exécution (état) - Propriété


Mode d'exécution (graphique) - Propriété

 Toutes les propriétés

Description

Lors de l'exécution de Graphics Builder à partir de Form Builder pour créer un graphique, cette propriété permet d'indiquer le mode d'exécution à utiliser (Traitement par lots ou Exécution). Le mode Traitement par lots exécute l'état ou le graphique sans intervention de l'utilisateur. Le mode Exécution permet à l'utilisateur d'intervenir au cours de l'exécution.

Application  élément graphique

Définition  Form Builder

Valeur par défaut

Traitement par lots

Obligatoire/Facultatif  obligatoire


Mode d'exécution (état) - Propriété

 Toutes les propriétés

Description

Pour l'intégration d'état avec une application Forms, cette propriété indique si le mode d'exécution de l'état est Traitement par lots ou Exécution. Le mode Traitement par lots exécute l'état ou le graphique sans intervention de l'utilisateur. Le mode Exécution permet à l'utilisateur d'intervenir au cours de l'exécution.

Application  intégration d'état Developer

Définition  Form Builder

Valeur par défaut

Traitement par lots

Obligatoire/Facultatif  obligatoire


Ordre d'exécution - Propriété

 Toutes les propriétés

Description

Permet d'indiquer comment le code du déclencheur en cours doit s'exécuter s'il y a, à un niveau plus élevé de la hiérarchie des objets, un déclencheur ayant le même nom.

Les options valides pour cette propriété sont les suivantes :

Override	Indique que le déclencheur en cours est activé à la place d'un déclencheur ayant le même nom à un niveau plus élevé. Ce comportement est appelé "override parent".

Before	Indique que le déclencheur en cours est activé avant le même déclencheur au niveau immédiatement supérieur. Ce comportement est appelé "fire before parent".

After	Indique que le déclencheur en cours est activé après le même déclencheur au niveau immédiatement supérieur. Ce comportement est appelé "fire after parent".

Application  déclencheur

Définition  Form Builder

Valeur par défaut

Override


Nom de fichier - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du fichier dans lequel est stockée l'objet nommé.

Application  application Forms, état

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_FORM_PROPERTY

Obligatoire/Facultatif facultatif

Notes d'utilisation

Nom de fichier au niveau application Forms correspond à Current_Form au niveau application. Pour accéder à Current_Form, utilisez GET_APPLICATION_PROPERTY.


Propriété Nom de fichier - Restrictions

Si plusieurs applications Forms ont le même nom, Nom de fichier fournit le nom du fichier dans lequel est stockée l'application Forms utilisée le plus récemment.


Remplissage - Propriété

 Toutes les propriétés

Description

Permet de paramétrer le type de remplissage de l'arc sur Secteur ou Corde. Si vous sélectionnez Secteur, l'arc est affiché à partir du point central du cercle qu'il décrit. Si vous sélectionnez Corde, l'arc est affiché depuis un segment de ligne entre ses deux extrémités.

Application  arc graphique

Définition  Form Builder

Valeur par défaut

Secteur

Obligatoire/Facultatif  obligatoire


Fill_Pattern - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le motif à utiliser pour la zone de remplissage de l'objet. Les motifs sont fournis dans les deux couleurs indiquées par Background_Color et Foreground_Color.

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition  par programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Filtrer avant afficher - Propriété

 Restrictions	 Toutes les propriétés

Description

Lorsque la propriété Filtrer avant afficher est activée, Form Builder affiche une boîte de dialogue de critères d'interrogation avant d'afficher la LOV. Les utilisateurs peuvent entrer une valeur dans la boîte de dialogue des critères d'interrogation pour limiter davantage les lignes qui sont retournées par l'instruction SELECT par défaut, qui charge le groupe d'enregistrements sur lequel est fondée la LOV. Form Builder utilise la valeur entrée dans la boîte de dialogue sur critères d'interrogation pour construire une clause WHERE de l'instruction SELECT. La valeur est appliquée à la première colonne affichée dans la LOV. Une colonne de LOV masquée n'est pas affichée.

La clause WHERE construite par Form Builder ajoute le caractère générique à la valeur entrée par l'utilisateur. Par exemple, si l'utilisateur entre le chiffre 7, la clause devient WHERE lit LIKE '7%, et retourne les valeurs 7, 712 et 7 290.

N'oubliez pas que lorsque vous entrez une valeur dans la boîte de dialogue sur critères d'interrogation et que la LOV est affichée, cette dernière ne contient que les lignes qui correspondent à l'instruction SELECT par défaut et à la clause WHERE créée par la valeur de cette boîte de dialogue. Par exemple, supposez que l'instruction SELECT par défaut de la LOV retourne les valeurs FOO, FAR et BAZ. Si vous entrez la valeur F pour F% dans la boîte de dialogue sur critères d'interrogation, la LOV résultante ne contient que les valeurs FOO et FAR. Si l'utilisateur final entre ensuite la valeur B% dans le champ de sélection de la LOV, aucune valeur n'est retournée, car la valeur BAZ a déjà été filtrée dans la boîte de dialogue sur critères d'interrogation.

Application  LOV

Définition  Form Builder

Valeur par défaut

Non


Filtrer avant afficher - Restrictions

•	Si l'instruction SELECT du groupe d'enregistrements sur lequel est fondée la LOV joint des tables, le nom de la première colonne affichée dans la LOV doit être unique parmi toutes les colonnes de toutes les tables jointes. Dans le cas contraire, une erreur est générée lorsque l'utilisateur tente d'utiliser la fonction Filtrer avant afficher. Par exemple, lors de la jointure des tables EMP et DEPT, la colonne NODEPT n'est pas unique, car elle se retrouve dans les deux tables. Vous pouvez également créer une vue dans la base de données, et attribuer un nom unique à la colonne à laquelle vous voulez que les utilisateurs fassent référence dans la boîte de dialogue de critères d'interrogation.

•	Lorsqu'une longue LOV est utilisée pour la validation des éléments, comme la boîte de dialogue de critères d'interrogation n'est pas affichée, la validation de la LOV est transparente pour l'utilisateur de l'application Forms. Form Builder utilise plutôt la valeur en cours de l'élément texte pour construire la clause WHERE utilisée pour diminuer la taille de la liste en appliquant des critères génériques à la première colonne visible de la LOV.


Activer en mode Saisie interrogation

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que le déclencheur doit être activé lorsque l'application Forms est en mode Saisie interrogation, aussi bien qu'en mode Normal.

Application  déclencheur

Définition  Form Builder

Valeur par défaut

non

Notes d'utilisation

Cette propriété ne s'applique qu'aux déclencheurs suivants :

•	Key

•	On-Error

•	On-Message

•	Déclencheurs When, sauf :

•	When-Database-Record

•	When-Image-Activated

•	When-New-Block-Instance

•	When-New-Form-Instance

•	When-Create-Record

•	When-Remove-Record

•	When-Validate-Record

•	When-Validate-Item


Premier bloc de navigation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du bloc auquel Form Builder doit passer au lancement de l'application Forms et après une opération CLEAR_FORM. Par défaut, le First_Navigation_Block est le premier bloc de la séquence d'enregistrement de l'application Forms, comme indiqué par la séquence de blocs dans le Navigateur d'objet. Vous pouvez définir la propriété First_Navigation_Block par programme pour indiquer un premier bloc de navigation différent.

Application  module Application Forms

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Valeur par défaut

Le premier bloc de l'application Forms, c'est-à-dire celui qui figure en premier dans le Navigateur d'objet.

Obligatoire/Facultatif facultatif

Notes d'utilisation

Vous pouvez définir cette propriété à partir d'un déclencheur When-New-Form-Instance, activé lors du démarrage de l'application Forms, avant que Form Builder ne passe en interne au premier bloc de l'application Forms.


First_Block - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que le bloc est le premier de l'application Forms, comme indiqué par la séquence des blocs dans le Navigateur d'objet. Au démarrage, Form Builder passe au premier élément du premier bloc.

S'applique à  application Forms

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_FORM_PROPERTY


First_Detail_Relation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la première relation de bloc maître-détail dans laquelle le bloc indiqué est le bloc détail.

Application  bloc

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Notes d'utilisation

Cette propriété est utile lorsque vous écrivez votre propre programme de coordination maître-détail. Elle peut être utilisée avec les propriétés Next_Master_Relation et Next_Detail_Relation pour balayer une liste de relations.


First_Item - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que l'élément est le premier du bloc, comme indiqué par la séquence des éléments du Navigateur d'objet. Lors du démarrage, Form Builder passe au premier élément du premier bloc.

Application  bloc

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY


First_Master_Relation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la première relation de bloc maître-détail dans laquelle le bloc donné est le bloc maître.

Application  bloc

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Notes d'utilisation

Cette propriété est utile lorsque vous écrivez votre propre programme de coordination maître-détail. Elle peut être utilisée avec les propriétés Next_Master_Relation et Next_Detail_Relation pour balayer une liste de relations.


Boîte englobante prédéfinie - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si la boîte englobante de l'objet texte doit conserver une taille fixe. Si cette propriété est paramétrée sur Oui, les valeurs des propriétés Largeur et Hauteur déterminent la taille de la boîte englobante.

Application  texte graphique

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  obligatoire


Longueur fixe (élément) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Lorsqu'elle est activée, la propriété Longueur fixe indique que l'élément doit être considéré comme valide uniquement lorsqu'il contient le nombre maximum de caractères autorisés. Ce nombre maximum est déterminé par la propriété Longueur maximum.

Application  élément texte

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non


Longueur fixe (élément) - Restrictions

•	Les propriétés Visible et Activé doivent être définies à Oui.

•	Une valeur d'élément texte ayant pour type de données NUMBER ne peut pas contenir de zéros en-tête. Form Builder supprime automatiquement les zéros en-tête et interprète l'élément texte comme "non rempli".


Longueur fixe (paramètre de substitution de menu) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Lorsqu'elle est activée, la propriété Longueur fixe indique que le paramètre doit être considéré comme valide uniquement lorsqu'il contient le nombre maximum de caractères autorisés. Ce nombre maximum est déterminé par la propriété Longueur maximum.

Application  paramètre de substitution de menu

Définition  Form Builder

Valeur par défaut

Non


Flag User Value Too Long - Propriété

 Toutes les propriétés

Description

Indique comment l'application Forms doit gérer les valeurs définies par l'utilisateur qui dépassent la propriété Longeur maximum de l'élément.

Cette propriété ne s'applique qu'à un environnement à trois niveaux dans lequel le niveau du milieu (le serveur d'application Forms) indique un jeu de caractères sur plusieurs octets autre que UTF8.

S'applique à  application

Définition  par programme

Valeur par défaut

Property_False (‘FALSE’)

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

SET_APPLICATION_PROPERTY

Notes d'utilisation

Dans un environnement à trois niveaux avec jeu de caractères multi-octets autre que UTF8, l'utilisateur peut entrer dans un élément plus d'octets qu'indiqué dans la propriété Longueur maximum de l'élément.

Si la propriété "Flag User Value Too Long" a été définie à FALSE (ou si c'est sa valeur par défaut) et que cette situation se produit, la valeur entrée par l'utilisateur est tronquée (sur une frontière de caractère) de manière que sa taille en octets ne dépasse pas la Longueur maximum de l'élément. Lorsque la validation au niveau élément est effectuée, la valeur tronquée est validée. Si la validation (et tous les déclencheurs de navigation) réussit, l'utilisateur est autorisé à sortir de l'élément. Aucun message d'erreur ou d'avertissement n'est affiché.

Si la propriété "Flag User Value Too Long" a été définie à TRUE et que cette situation se produit, la valeur entrée par l'utilisateur n'est pas tronquée. Lorsque la validation au niveau élément est effectuée, elle échoue (et un message d'erreur indique qu'une troncature est nécessaire). Ceci signifie que l'utilisateur n'est pas autorisé à quitter l'unité de validation en cours (comme indiqué par la propriété Unité de validation de l'application Forms actuelle).


Font_Name - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type de police à utiliser pour le texte de l'objet. La liste des polices disponibles varie en fonction du système.

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition  par programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Font_Size - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la taille de la police en points.

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition  par programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Font_Spacing - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la largeur de la police (c'est-à-dire la quantité d'espace entre les caractères, ou crénage). Les valeurs valides sont.

FONT_NORMAL

FONT_ULTRADENSE

FONT_EXTRADENSE

FONT_DENSE

FONT_SEMIDENSE

FONT_SEMIEXPAND

FONT_EXPAND

FONT_EXTRAEXPAND

FONT_ULTRAEXPAND

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition  par programme

Valeur par défaut

FONT_NORMAL

Reportez-vous aux procédures internes suivantes :

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_VA_PROPERTY

•	SET_VA_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Font_Style - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Indique le style de la police. Les valeurs valides sont :

FONT_PLAIN

FONT_ITALIC

FONT_OBLIQUE

FONT_UNDERLINE

FONT_OUTLINE

FONT_SHADOW

FONT_INVERTED

FONT_OVERSTRIKE

FONT_BLINK

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition  par programme

Valeur par défaut

FONT_PLAIN

Reportez-vous aux procédures internes suivantes :

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_VA_PROPERTY

•	SET_VA_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Font_Weight - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Indique l'épaisseur de la police. Les valeurs valides sont :

FONT_MEDIUM

FONT_ULTRALIGHT

FONT_EXTRALIGHT

FONT_LIGHT

FONT_DEMILIGHT

FONT_DEMIBOLD

FONT_BOLD

FONT_EXTRABOLD

FONT_ULTRABOLD

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition  par programme

Valeur par défaut

FONT_MEDIUM

Reportez-vous aux procédures internes suivantes :

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_VA_PROPERTY

•	SET_VA_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Foreground_Color - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la couleur de la zone de premier plan de l'objet. Dans le cas des éléments, définit la couleur du texte affiché dans l'élément.

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition  par programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Canevas à barre d'outils horizontale d'application Forms - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Sous Microsoft Windows, permet d'indiquer le canevas qui doit être affiché sous la forme d'une barre d'outils horizontale dans la fenêtre d'application MDI. La propriété Type de canevas du canevas indiqué doit être définie à Barre d'outils horizontale.

S'applique à  application Forms

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Canevas à barre d'outils horizontale d'application Forms - Restrictions

Cette propriété n'est valide que sous Microsoft Windows. Sur les autres plates-formes, elle n'est pas prise en compte et le canevas est copié dans la fenêtre indiquée par la définition de sa propriété Fenêtre.


Canevas à barre d'outils verticale d'application Forms - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Sous Microsoft Windows, permet d'indiquer le canevas qui doit être affiché sous la forme d'une barre d'outils verticale dans la fenêtre d'application MDI. La propriété Type de canevas du canevas indiqué doit être définie à Barre d'outils verticale.

S'applique à  application Forms

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Canevas à barre d'outils verticale d'application Forms - Restrictions

Cette propriété n'est valide que sous Microsoft Windows. Sur les autres plates-formes, elle n'est pas prise en compte et le canevas est copié dans la fenêtre indiquée par la définition de sa propriété Fenêtre.


Masque de format - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le format d'affichage et l'entrée acceptés pour les données des éléments texte.

Application  élément texte

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Obligatoire/Facultatif facultatif

Notes d'utilisation

Les masques de format valides pour les chaînes de caractères, les valeurs numériques et les dates sont décrits dans les tableaux ci-après :

Chaînes de caractères

Les masques de format valides pour les chaînes de caractères sont décrits ci-après :

Elément	Exemple	Description
FM	FMXX99	Mode de remplissage : accepte la chaîne telle qu'elle est entrée, sans justification à droite. La chaîne d'entrée peut être plus courte que le masque de format.
X	XXXX	Tout caractère, alphabétique, numérique ou spécial. La chaîne d'entrée doit être exactement de la longueur indiquée par le masque de format.
9	9999	Caractères numériques uniquement. La chaîne d'entrée doit être exactement de la longueur indiquée par le masque de format.
A	AAAA	Caractères alphabétiques uniquement. La chaîne d'entrée doit être exactement de la longueur indiquée par le masque de format.
Chaîne de caractères - Exemples

Masque de format	Description
XXAA	Accepte --ab, abcd, 11ab; n'accepte pas --11, ab11, ou ab--(vous devez utiliser XX pour que les tirets et les autres caractères spéciaux soient acceptés).
XXXX	Accepte toute combinaison de caractères alphabétiques, numériques ou spéciaux comme --ab, abcd, 11ab, --11, ab11, ou ab--. Accepte 1234 ou abcd ; n'accepte pas 123 ou abc. (Pour qu'une chaîne d'entrée plus courte que le masque soit acceptée, utilisez FMXXXX.)
FMXX99	Accepte ab12, ab1, ab suivi de deux blancs ; n'accepte pas 12ab ou abcd. (Pour obtenir un type de données Alpha version 3.0 Form Builder, utilisez FMAAAAAA.)
•	Pour incorporer des caractères supplémentaires, un tiret (-) ou une virgule (,) par exemple, faites-les précéder et suivre de doubles guillemets (").

•	Les caractères incorporés sont séparés des valeurs des éléments texte et ne sont pas classés avec les valeurs de ces éléments, même lorsque l'utilisateur les entre.

NOMBRES

Les masques de format valides pour les nombres sont décrits ci-après :

Elément	Exemple	Description
9	9999	Le nombre de neuf (9) détermine la largeur de l'affichage. Tous les zéros en-tête sont affichés sous la forme d'un blanc.
0	0999	Affiche les zéros en-tête.
0	9990	Affiche la valeur zéro sous la forme d'un "0" (zéro), et non d'un blanc.
$	$9999	Fait précéder la valeur du signe dollar.
B	B9999	Affiche la valeur zéro sous la forme d'un blanc, et non d'un "0" (zéro).
MI	9999MI	Affiche "-" après une valeur négative.
PR	9999PR	Affiche une valeur négative entre <crochets>.
Virgule	9,999	Affiche une virgule à cette position. Pour un comportement correct dans les applications multilingues, utilisez G pour retourner le séparateur de groupe approprié (milliers).
Point	99.99	Affiche une virgule décimale à cette position. Pour un comportement correct dans les applications multilingues, utilisez J pour retourner le séparateur décimal approprié.
E	9.999EEEE	Affiche en notation scientifique (le format doit contenir exactement quatre "E").
FM	FM999	Mode de remplissage : accepte la chaîne telle qu'elle est entrée, sans justification à droite.
•	Lorsque vous masquez un nombre en utilisant des neuf (9), Form Builder ajoute un blanc devant le nombre pour le signe plus (+) ou moins (-). Cependant, comme le signe plus n'est pas affiché, le nombre apparaît comme si Form Builder l'avait fait précéder d'un espace. (Le signe moins est affiché.)

•	Pour incorporer des caractères supplémentaires, un tiret (-) ou une virgule (,) par exemple, faites-les précéder et suivre de doubles guillemets (").

•	Les caractères incorporés sont séparés des valeurs des éléments texte et ne sont pas classés avec les valeurs de ces éléments, même lorsque l'utilisateur les entre.

NOMBRE Exemples

Masque de format	Description
FM099"-"99"-"9999	Affiche le numéro de sécurité sociale tel qu'il est mis en forme, y compris les tirets, même si l'utilisateur n'entre que neuf chiffres. Pour créer une colonne Sécurité sociale, créez une colonne de 11 caractères de longueur fixe, avec un masque de format 099"-"99"-"9999. Ce masque acceptera les numéros de Sécurité sociale commençant par zéro (012-34-5678 ou 012345678, tous deux stockés sous la forme 012345678).
99999PR	Accepte -123 qui devient <123> après remise en forme.
999MI	Accepte -678 qui devient 678- après remise en forme.
9.999EEEE	S'affiche sous la forme 1.00E+20.
Méthode de gestion utilisée par Forms pour la non-concordance de longueur

A l'exécution, si vous entrez une chaîne numérique dont la longueur dépasse celle qui est indiquée dans le masque de format, la valeur saisie est refusée. Par exemple :

Masque de format	Valeur entrée par l'utilisateur	Résultat
99.9	321.0	Non valide
99.9	21.01	Non valide
99.9	21.1	21.1
99.9	01.1	1.1
A l'inverse, si une valeur numérique extraite de la base de données dépasse la valeur indiquée dans le masque de format pour son champ d'affichage, la valeur apparaît sous une forme tronquée et arrondie afin de correspondre au masque. (Dans l'application Forms, l'élément lui-même conserve l'intégralité de sa valeur.) Par exemple, si la base de données contient la valeur 2,0666 et que le format de masque est 99,9, la valeur affichée est 2,1. Cependant, la valeur de l'élément dans l'application Forms reste 2,0666.

Dates

Les masques de format valides pour les dates sont décrits ci-après :

Elément	Description
AAAA ou SAAAA	Année exprimée sous la forme de 4 chiffres ; "S" fait précéder la date "BC" de "-".
AAA ou AA ou A	Les trois ou deux derniers chiffres de l'année (ou uniquement le dernier).
A,AAA	Année avec une virgule dans cette position.
BC ou AD	Indicateur BC/AD.
B.C. ou A.D.	Indicateur BD/AD avec des points.
RR	Par défaut égal au siècle correct. Déduit le siècle d'une date saisie en comparant l'année à 2 chiffres entrée avec l'année et le siècle définis dans l'horloge interne de l'ordinateur. Les années de 00 à 49 seront du 21ème siècle (année 2000) et les années de 50 à 99 du 20ème siècle (année 1900).
MM	Mois (01-12; JAN = 01).
MOIS	Nom du mois, rempli de blancs jusqu'à 9 caractères.
MOI	Nom du mois, abrégé en 3 lettres.
JJJ	Jour de l'année (1-366).
JJ	Jour du mois (1-31).
J	Jour de la semaine (1-7; Dimanche=1).
JOUR	Nom du jour, rempli de blancs jusqu'à 9 caractères.
JO	Nom du jour, abrégé en 3 lettres.
J	Jour du calendrier Julien. Nombre de jours depuis le 1er janvier 4712 BC.
AM ou PM	Indicateur de méridien.
A.M. ou P.M.	Indicateur de méridien avec points.
HH ou HH12	Heure du jour (1-12).
HH24	Heure du jour (0-23).
MI	Minute (0-59).
SS	Seconde (0-59).
SSSSS	Secondes après minuit (0-86399).
/. , .	Reproduction de la ponctuation dans le résultat.
"..."	Reproduction de la chaîne entre guillemets dans le résultat.
FM	Mode de remplissage : suppose des caractères implicites comme O ou espace ; affiche les caractères significatifs justifiés à gauche. Permet une entrée utilisateur plus courte que le masque de format (à utiliser avec FX pour demander des délimiteurs spécifiques).
FX	Tous les littéraux de date doivent correspondre exactement au masque de format, délimiteurs inclus.
•	Lorsque vous faites précéder un masque de date de FX, l'utilisateur doit entrer la date exactement comme vous avez défini le masque, délimiteurs indiqués inclus :

Exemples de date

Masque de format	Description
FXJJ-MOI-AA	Accepte 12-JAN-94, mais n'accepte pas 12.JAN.94 ou 12/JAN/94, car les délimiteurs ne correspondent pas au masque. N'accepte pas 12JAN94 car il ne comporte aucun délimiteur. Accepte 01-JAN-94 mais n'accepte pas 1-JAN-94 et
FMJJ-MOI-AA	Accepte le 01-JAN-94. Accepte également la saisie d'autres delimiteurs, par exemple 01/JAN/94 et 01 JAN 94. Mais n'accepte pas le 01JAN94. Accepte le 1-JAN-94 en le convertissant en 01-JAN-94.
JJ-MOI-AA	Accepte 12.JAN.94, 12/JAN/94 ou 12-JAN-94. Remarque : Tous les caractères de délimitation sont acceptés mais, si les délimiteurs sont omis par l'utilisateur, ce masque interprète les caractères de date comme des délimiteurs. Accepte 12-JAN94 (qu'il interprète à tort comme 12-JAN-04) mais n'accepte pas 12JAN94, car "AN" n'est pas un nom de mois valide.
•	L'utilisation d'un masque de format n'affecte que la présentation des données. Form Builder stocke les données en précision totale, quelle que soit la façon dont elles se présentent.

•	Les caractères incorporés sont séparés des valeurs des éléments texte et ne sont pas classés avec les valeurs de ces éléments, même lorsque l'utilisateur les entre.

•	Pour incorporer des caractères supplémentaires, un tiret (-) ou une virgule (,) par exemple, faites-les précéder et suivre de doubles guillemets ("). Remarquez, toutefois, que les guillemets eux-mêmes ne peuvent pas servir de caractère. Autrement dit, vous ne pouvez pas obtenir la sortie JJ"MM en entrant le masque JJ"""MM.

Masque de format	Description
FMMOIS" "JJ", "AAAA	Affiche les données des éléments texte dans le format de date spécifié : JANVIER 12 1994, blancs et virgule inclus, le cas échéant.
FMJJ-MOIS-AAAA	Affiche 12-JANVIER-1994.
JO-JJJ-AAAA	Affiche MER-012-1994. Remarque : pour que l'entrée, jour de la semaine inclus, soit validée, vous devez entrer un masque permettant une détermination spécifique du jour, comme dans cet exemple ou JA-JJ-MM-AA.
•	Lorsque vous utilisez des formats de jour de semaine, assurez-vous que les données comportent les informations concernant le jour. Pour éviter les masques non logiques, affichez également soit le quantième de l'année (1-366), soit le mois, dans un format quelconque.

Masque de format	Description
JJ-MOIS-AAAA	Affiche 12-JANVIER-1994.
JO-JJJ-AAAA	Affiche MER-012-1994.
JO-JJ-MOI-AA	Affiche MER -12-JAN-94. N'oubliez pas d'inclure le mois. Evitez les masques de type JO-JJ-AA, qui pourraient générer une erreur.
Masques de format NLS

Les masques de format NLS sont décrits ci-après :

Elément	Exemple	Description
C	C999	Retourne le symbole de devise internationale.
L	L9999	Retourne le symbole de devise locale.
J	99D99	Retourne le séparateur décimal.
G	9G999	Retourne le séparateur de groupe (milliers).
Virgule	9,999	Affiche une virgule dans cette position.
Point	9.999	Affiche un séparateur décimal dans cette position.
Exemples de masque de format NLS

Masque de format	Description
L99G999D99	Affiche le symbole de devise locale, ainsi que les séparateurs de groupes et décimaux. Si NLS_LANG=Français, cet élément est affiché sous la forme F1.600,00. Si NLS_LANG=Norvégien, cet élément est affiché sous la forme Kr.1.600,00.
C99G999D99	Affiche le symbole de devise internationale approprié. Si NLS_LANG=Americain, cet élément est affiché sous la forme USD1,600.00; si NLS_LANG=Français, cet élément est affiché sous la forme FRF1.600,00.


Masque de format - Restrictions

•	Lors de la définition de la propriété Longueur maximum d'un élément texte, insérez un espace pour tout caractère incorporé inséré par le masque de format que vous indiquez.

•	Les masques de format ne peuvent pas avoir plus de 30 caractères.

•	Form Builder supporte uniquement les masques de format ORACLE utilisés à la fois pour l'entrée et la sortie. Les masques de format de sortie seule, comme WW, ne sont pas pris en charge.


Form_Name - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de l'application Forms.

S'applique à  application Forms

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_FORM_PROPERTY

Notes d'utilisation

Form_Name au niveau application Forms correspond à Current_Form_Name au niveau application. Current_Form_Name est lu par GET_APPLICATION_PROPERTY.


Formule - Propriété

 Toutes les propriétés

Description

Permet d'indiquer une seule expression PL/SQL qui détermine la valeur d'un élément calculé par formule. L'expression peut faire référence à des sous-programmes internes ou écrits par l'utilisateur.

Application  élément

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

RECALCULATE

Notes d'utilisation

Comme vous ne pouvez pas entrer comme formule une instruction PL/SQL entière, ne terminez pas votre expression de calcul par un point virgule. Form Builder ajoute en interne le code d'attribution réel à la formule, et vous n'avez donc pas à le programmer. Par exemple, au lieu d'écrire une instruction d'attribution complète, écrivez simplement l'expression :

   :sal.emp + :comm.emp

Form Builder convertit en interne cette instruction en une instruction complète, par exemple :

   :calc_brut.emp := (:sal.emp + :comm_emp);

Obligatoire/Facultatif  obligatoire si la propriété Mode de calcul est définie à Formule


Alignement de cadre - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer l'alignement des objets dans la largeur du cadre : Début, Fin, Centre, Remplissage ou Colonne. Cette propriété n'est valide que lorsque la propriété Style de présentation est définie à Application Forms.

Application  cadre

Définition  Form Builder

Valeur par défaut

Remplissage

Obligatoire/Facultatif  obligatoire


Alignement de cadre


Titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le titre du cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

blanc

Obligatoire/Facultatif facultatif


Alignement de titre de cadre - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer l'alignement du titre d'un cadre : Début, Fin ou Centre.

Remarque : Le titre est aligné par rapport à la Direction du canevas sur lequel apparaît le canevas.

Application  cadre

Définition  Form Builder

Valeur par défaut

Début

Obligatoire/Facultatif  obligatoire


Alignement de titre de cadre


Couleur d'arrière-plan de titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la couleur à appliquer à l'arrière-plan du titre de cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

Couleur de police standard du système d'exploitation (blanc, en général).

Obligatoire/Facultatif  obligatoire


Nom de police de titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nom de la police à appliquer au titre de cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

Police standard du système d'exploitation

Obligatoire/Facultatif  obligatoire


 Taille de police de titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la taille de la police à appliquer au titre de cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

Taille de police standard du système d'exploitation

Obligatoire/Facultatif  obligatoire


 Espacement de police de titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'espacement à appliquer au texte du titre de cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

Espacement de police standard du système d'exploitation

Obligatoire/Facultatif  obligatoire


Style de police de titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le style typographique (Italique, par exemple) à appliquer au texte du titre de cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

Style de police standard du système d'exploitation

Obligatoire/Facultatif  obligatoire


Epaisseur de police de titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la graisse typographique (Gras, par exemple) à appliquer au texte du titre de cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

Epaisseur de police standard du système d'exploitation

Obligatoire/Facultatif  obligatoire


Couleur de premier plan de titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la couleur à appliquer au texte du titre de cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

Couleur de police standard du système d'exploitation (noir, en général).

Obligatoire/Facultatif  obligatoire


Décalage de titre de cadre - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer la distance entre le cadre et son titre.

Application  cadre

Définition  Form Builder

Valeur par défaut

2 cellules de caractère (ou l'équivalent, en fonction du système de coordonnées de l'application Forms)

Obligatoire/Facultatif  obligatoire


Décalage de titre de cadre - Montrez-moi


Séquence de lecture de titre de cadre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'ordre de lecture des titres de cadre : Par défaut, Gauche-droite ou Droite-gauche.

Application  cadre

Définition  Form Builder

Valeur par défaut

Valeur par défaut

Obligatoire/Facultatif  obligatoire


Espacement de titre de cadre - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer l'espace réservé de part et d'autre du titre du cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

1 cellule de caractère (ou l'équivalent, en fonction du système de coordonnées de l'application Forms)

Obligatoire/Facultatif  obligatoire


Espacement de titre de cadre


Groupe d'attributs visuels de titre de cadre - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le mode de dérivation des paramètres d'attribut individuel du titre de cadre (Nom de police, Couleur d'arrière-plan, Motif de remplissage, etc.). Les paramètres suivants sont valides pour cette propriété :

Valeur par défaut	Permet d'indiquer que l'objet doit être affiché avec les options de couleur, de motif et de police par défaut. Lorsque la propriété Groupe d'attributs visuels est définie à Par défaut, les options d'attribut reflètent les options par défaut du système utilisé. Les options réelles sont déterminées par une combinaison de facteurs, comprenant le type d'objet, le fichier de ressources utilisé et la plate-forme.
Attribut visuel nommé	Permet d'indiquer un attribut visuel nommé qui doit être appliqué à l'objet. Les attributs visuels nommés sont des objets distincts que vous créez dans le Navigateur d'objet et qui s'appliquent aux objets d'interface, comme les styles d'un programme de traitement de texte. Lorsque la propriété Groupe d'attributs visuels est définie à un attribut visuel nommé, les options d'attributs visuels reflètent les options d'attributs définies pour l'objet d'attributs visuels nommé. Lorsque l'application Forms en cours ne contient pas d'attribut visuel nommé, la liste instantanée de cette propriété affiche la valeur par défaut.

Application  titre de cadre

Définition  Form Builder

Valeur par défaut

Valeur par défaut

Notes d'utilisation

•	Les attributs par défaut et les attributs visuels nommés peuvent comprendre les attributs individuels ci-après, énumérés dans leur ordre d'apparition dans la Palette de propriétés :

Nom de police  Nom de la police devant être utilisé pour le texte de l'objet. La liste de polices disponibles varie selon le système.

Taille de police  Taille de la police, indiquée en points.

Style de police  Style de la police.

Espacement de police  Largeur de la police ou espace entre caractères (crénage).

Epaisseur de police  Graisse de la police.

Couleur de premier plan  Couleur de la région de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

Couleur d'arrière-plan Couleur de la région d'arrière-plan de l'objet.

Motif de remplissage Motif à utiliser pour la région de remplissage de l'objet. Les motifs sont dessinés en deux couleurs, indiquées par Couleur d'arrière-plan et Couleur de premier plan.

Attribut logique mode caractère Permet d'indiquer le nom d'un attribut logique en mode caractère défini dans un fichier de ressources Oracle Terminal, à utiliser comme base des attributs d'unité pour une version en mode caractère de votre application.

Blanc sur noir Permet d'indiquer que, sur un écran monochrome, l'objet doit apparaître en mode bitmap sous la forme de caractères blancs sur fond noir.

Les attributs ne sont pas tous valides pour chaque type d'objet. Par exemple, la définition des attributs de police pour un objet de fenêtre est sans effet. (La police utilisée dans la barre d'outils d'une fenêtre est dérivée du système.)

•	Un nouvel objet dans une nouvelle application Forms a les attributs visuels par défaut. Les paramètres par défaut sont définis de façon interne. Remplacez la police par défaut pour de nouveaux objets ou textes standard en définissant la variable d'environnement facultative FORMS60_DEFAULTFONT. Par exemple, sous Microsoft Windows, définissez cette variable dans le fichier ORACLE.INI de la façon suivante : FORMS60_DEFAULTFONT="COURIER.10". La police par défaut indiquée détermine la police utilisée pour de nouveaux textes standard générés par la fenêtre Nouveau bloc et pour tout élément ayant la propriété Groupe d'attributs visuels définie à Défaut.

•	Lorsque vous créez un élément dans l'Editeur de présentation, les options de ses attributs visuels sont, au départ, déterminés par les options de l'Editeur de présentation en cours pour les polices, les couleurs et les motifs, comme indiqué dans la boîte de dialogue de police et les palettes de couleurs et de motifs.

•	Sous Microsoft Windows, les couleurs des boutons, des barres de titre des fenêtres et des cadres de fenêtre sont gérées par les options de couleur du Panneau de configuration de Windows, indiquées pour ces éléments. Vous ne pouvez pas modifier ces couleurs sous Form Builder.

•	Lorsque la propriété d'application Forms Utiliser contrôles 3D est activée sous Microsoft Windows (par défaut), les éléments sont tracés avec des ombres qui leur donnent un aspect sculpté, en trois dimensions. L'effet secondaire de la définition de cette propriété est que les canevas dont la propriété Groupe d'attributs visuels est définie à Par défaut tirent leurs options de couleurs du Panneau de configuration de Windows (gris pour la plupart des systèmes couleur). Vous pouvez remplacer cette définition en appliquant explicitement au canevas les attributs visuels nommés.

•	Un élément ayant la propriété Groupe d'attributs visuels définie à Défaut ou dont les paramètres d'attribut individuel ne sont pas référencés hérite ces paramètres du canevas auquel il est attribué. De la même façon, un canevas ayant la propriété Groupe d'attributs visuels définie à Défaut ou dont les paramètres d'attribut individuel ne sont pas référencés hérite ces paramètres de la fenêtre dans laquelle il est affiché. Par exemple, si vous définissez la couleur d'arrière-plan d'une fenêtre à CYAN et que vous laissiez ensuite la couleur d'arrière-plan non référencée pour le canevas attribué à la fenêtre, à l'exécution, ce canevas hérite la couleur d'arrière-plan CYAN de sa fenêtre. Les paramètres d'attribut visuel dérivés de l'héritage fenêtre/canevas ou canevas/élément ne figurent que lors de l'exécution, non lors de la conception.

•	Vous pouvez appliquer des classes de propriété aux objets pour indiquer des options d'attributs visuels. Une classe de propriété peut contenir soit la propriété Groupe d'attributs visuels, soit une ou plusieurs des propriétés d'attributs individuels. (Si une classe de propriété contient à la fois des attributs individuels et un Groupe d'attributs visuels, la propriété Groupe d'attributs visuels a priorité.)

•	Si vous appliquez à un objet à la fois un attribut visuel nommé et une classe de propriété contenant des options d'attributs visuels, les options d'attributs visuels nommés ont priorité et les options d'attributs visuels de classe de propriété ne sont pas prises en compte.

•	Les définitions d'attributs logiques fournies dans le fichier de ressources ont priorité sur les attributs visuels indiqués dans Form Builder sur les définitions de variable d'environnement local et sur les attributs Form Builder par défaut. Pour éditer le fichier de ressources, utilisez l'utilitaire Oracle Terminal.


Type de graphique - Propriété

 Toutes les propriétés

Description

Propriété en lecture seule indiquant le type de l'objet graphique. Les valeurs possibles sont les suivantes : Arc, Graphique, Groupe, Image, Ligne, Polygone, Rectangle, Rectangle arrondi, Symbole et Texte. (Ces valeurs sont les mêmes que celles de la propriété Type d'objet de Graphics Builder.)

Application  graphiques, propriété générale

Définition  Form Builder

défaut

le type

Obligatoire/Facultatif  obligatoire


Group_Name - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nom du groupe d'enregistrements sur lequel est fondée une LOV.

Application LOV

Définition  par programme

Internes suivantes :

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

Valeur par défaut

Nom du groupe d'enregistrements sous-jacent.

Notes d'utilisation

Définissez Group_Name pour remplacer le groupe d'enregistrements en cours par un autre lors de l'exécution. Les noms et les types de colonne du nouveau groupe d'enregistrements doivent correspondre aux noms et aux types de colonne du groupe d'enregistrements que vous remplacez.


Aide - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Sur les plates-formes en mode caractère, permet d'indiquer le texte de l'aide sur l'élément menu. Ce texte est affiché dans une fenêtre lorsque l'utilisateur appuie sur [Aide] alors que l'élément menu est sélectionné.

Application élément de menu

Définition  Form Builder

Obligatoire/Facultatif facultatif


Aide - Restrictions

Cette propriété s'applique uniquement aux applications en mode caractère.


Masquer sur sortie - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si Form Builder doit masquer automatiquement une fenêtre sans mode lorsque l'utilisateur passe à un élément d'une autre fenêtre.

Application fenêtre

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY

Valeur par défaut

Non


Masquer sur sortie - Restrictions

•	Cette propriété ne peut pas être définie pour une fenêtre principale : une fenêtre principale reste toujours visible lorsque l'utilisateur passe à un élément d'une autre fenêtre.


Valeur maximum autorisée/Valeur minimum autorisée
Valeur maximum autorisée/Valeur minimum autorisée - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la valeur minimum ou la valeur maximum (incluse) autorisée par Form Builder dans l'élément texte.

Application élément texte

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Obligatoire/Facultatif facultatif

Notes d'utilisation

•	Les valeurs valides pour les définitions de plage sont les suivantes :

•	toute constante valide

•	élément d'application Forms (:nom_bloc.nom_élément)

•	variable globale (:GLOBAL.ma_globale)

•	paramètre d'application Forms (:PARAMETRE.mon_param)

•	Form Builder évalue les valeurs des éléments par type de données, de la manière suivante :

ALPHA	alphabétique, selon la séquence de tri de votre système

CHAR	alphabétique, selon la séquence de tri de votre système

DATE	chronologique

DATETIME	chronologique

INT	numérique croissant

NUMBER	numérique croissant

•	Pour tous les éléments, vous pouvez entrer les dates de l'une des façons suivantes :

•	format par défaut pour votre paramètre NLS_LANG ou

•	format que vous avez indiqué comme masque de format

•	Pour assurer la compatibilité avec les versions précédentes, vous pouvez indiquer une référence à un élément d'application Forms ou à une séquence avec en tête une perluète (&) au lieu d'un signe deux-points (:).

•	Pour indiquer une valeur brute commençant par une perluète (‘&’) ou un signe deux-points (‘:’), tapez-en deux (c'est-à-dire ‘&&’ ou ‘::’). (Cette modification du comportement de l'application Forms commence à la version 6.5.)


Message d'aide - Propriétés

 Toutes les propriétés

Message d'aide (élément) - Propriété

Message d'aide (élément menu) - Propriété

Message d'aide (paramètre de substitution de menu) - Propriété


Message d'aide (élément) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le texte d'aide, propre à l'élément concerné, qui peut être affiché dans la ligne de message de la fenêtre principale lors de l'exécution. Le texte du message d'aide est disponible lorsque le point d'insertion se trouve dans l'élément.

Application tous les éléments, sauf éléments graphiques, éléments affichés et éléments personnalisés

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY (HINT_TEXT)

Valeur par défaut

"Entrez la valeur pour : <nom élément>"	Pour un élément créé à l'aide de l'assistant Bloc de données
NULL	Pour tous les autres éléments
Obligatoire/Facultatif facultatif

Notes d'utilisation

Laissez la propriété Message d'aide positionnée à NULL si vous ne voulez pas que l'élément ait un message d'aide.


Message d'aide (élément menu) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Pour une application en mode caractère, permet d'indiquer le texte du message d'un élément menu. Dans les affichages de menu de type barre ou de menu déroulant, le texte du message d'aide est affiché dans la ligne de message lorsque le point d'insertion se trouve dans l'élément menu.

Dans les affichages plein écran le texte du message d'aide, s'il est indiqué, est affiché comme descripteur d'élément, et le nom de l'élément menu n'est pas pris en compte. (Si aucun texte de message d'aide n'est indiqué, Form Builder affiche comme descripteur le nom de l'élément.)

Application élément de menu

Définition  Form Builder

Obligatoire/Facultatif facultatif


Message d'aide (élément menu) - Restrictions

•	Cette propriété s'applique uniquement aux applications en mode caractère.


Message d'aide (paramètre de substitution de menu) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer une description ou une instruction qui doit figurer dans la ligne de message lorsque l'utilisateur entre une valeur pour le paramètre de substitution de menu.

Application paramètre de substitution de menu

Définition  Form Builder

Obligatoire/Facultatif facultatif


Justification horizontale - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si la justification horizontale de l'objet texte est Gauche, Droite, Centre, Début ou Fin.

Application  texte graphique

Définition  Form Builder

Valeur par défaut

Début

Obligatoire/Facultatif  obligatoire


Marge horizontale - Propriétés

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer la distance entre les bordures droite et gauche du cadre et les objets situés dans le cadre.

Application cadre

Définition  Form Builder

Valeur par défaut

1 cellule de caractère (ou l'équivalent, en fonction du système de coordonnées de l'application Forms)

Obligatoire/Facultatif  obligatoire


Marge horizontale


Décalage d'objet horizontal - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer la distance horizontale entre les objets d'un cadre.

Application cadre

Définition  Form Builder

Valeur par défaut

2 cellules de caractère (ou l'équivalent, en fonction du système de coordonnées de l'application Forms)

Obligatoire/Facultatif  obligatoire


Décalage d'objet horizontal


Origine horizontale - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si la position horizontale de l'objet texte par rapport à son point d'origine est Gauche, Droite ou Centre.

Application  texte graphique

Définition  Form Builder

Valeur par défaut

Gauche

Obligatoire/Facultatif  obligatoire


Canevas à barre d'outils horizontale - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le canevas qui doit être affiché comme barre d'outils horizontale dans la fenêtre. Le canevas indiqué doit être un canevas à barre d'outils horizontale (propriété Type de canevas définie à Barre d'outils horizontale) et doit être attribué à la fenêtre en cours par définition de la propriété Fenêtre.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultative obligatoire si vous créez une barre d'outils horizontale

Notes d'utilisation

•	Dans la fenêtre de Propriétés, la liste instantanée de cette propriété affiche uniquement les canevas dont la propriété Type de canevas est définie à Barre d'outils horizontale.

•	Lors de l'exécution, Form Builder tente d'afficher dans la fenêtre la barre d'outils horizontale indiquée. Cependant, si plusieurs barres d'outils de même type ont été attribuées à la même fenêtre (par définition de la propriété Fenêtre du canevas de manière à pointer sur la fenêtre indiquée), Form Builder peut afficher une barre d'outils différente en réponse à des événements de navigation ou à un contrôle par programme.

•	Sous Microsoft Windows, le canevas à barre d'outils horizontale indiqué ne sera pas affiché dans la fenêtre si vous avez indiqué qu'il doit être affiché dans la fenêtre d'application MDI en définissant la propriété d'application Forms Canevas à barre d'outils horizontale.


Nom de fichier d'icône - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la ressource d'icône qui doit représenter le bouton d'icône, l'élément menu ou la fenêtre.

Application bouton, élément menu, fenêtre

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif

Notes d'utilisation

Lors de la définition de la propriété Nom de fichier d'icône, n'incluez pas l'extension du fichier d'icône (.ico, .xpm, etc.). Par exemple, entrez mon_icône,et non mon_icône.ico.

Le nom de fichier de l'icône ne doit pas se terminer par l'une des cinq lettres suivantes : A, L, M, S et X. (Ni majuscules ni minuscules ne sont autorisées.) Ce sont des lettres réservées utilisées en interne pour spécifier la taille des icônes. Vous pouvez obtenir de mauvais positionnements si le nom de fichier de l'icône se termine par l'une de ces lettres.

Utilisez la variable d'environnement propre à la plate-forme pour indiquer le répertoire dans lequel se trouvent les ressources d'icône. Par exemple, le nom Microsoft Windows de cette variable est UI60_ICON. (Pour plus d'informations sur le nom de cette variable, reportez-vous à la documentation Form Builder de votre système d'exploitation.)


Nom de fichier d'icône - Restrictions

•	Pour une fenêtre, n'est valide que lorsque la propriété Réduction autorisée est activée.

•	Les ressources d'icône doivent exister dans le système d'exploitation runtime ; elles ne sont pas incorporées dans la définition de l'application Forms. Les fichiers de ressources d'icône ne sont donc pas portables d'une plate-forme à l'autre.


Icône dans menu - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si une icône doit être affichée dans le menu à côté de l'élément de menu. Si tel est le cas, la propriété Nom de fichier d'icône indique l'icône à afficher.

Application  élément de menu

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  facultatif


Icône - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer qu'un bouton doit être un bouton d'icône.

Application  bouton

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultatif  facultatif

Notes d'utilisation

Lorsque la propriété Icône est activée, la propriété Nom de fichier d'icône du bouton indique la ressource d'icône que Form Builder doit afficher pour le bouton.


Icône - Restrictions

Vous devez fournir un nom de fichier de ressources d'icône valide.


Profondeur d'image - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la profondeur d'image que Form Builder applique à une image lue ou écrite dans un fichier du système de fichiers. Les valeurs valides sont les suivantes :

•	Originale

•	Monochrome

•	Gris

•	LUT (Table de consultation)

•	RVB (Rouge, Vert, Bleu)

Application élément image

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	WRITE_IMAGE_FILE

Valeur par défaut

Originale

Obligatoire/Facultatif  obligatoire


Format d'image - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le format dans lequel un élément image est stocké dans la base de données. Les valeurs valides sont les suivantes :

•	BMP

•	CALS

•	GIF

•	JFIF

•	PICT

•	RAS

•	TIFF

•	TPIC

Application élément image

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	WRITE_IMAGE_FILE

Valeur par défaut

TIFF

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

•	Le format de stockage d'images Oracle par défaut n'est plus valide.

•	La valeur que vous définissez pour cette propriété remplace le format d'origine d'une image lorsque l'enregistrement contenant l'élément image est stocké dans la base de données. Par exemple, si la propriété Format d'image d'élément image est définie à GIF et si une image TIFF est collée dans l'élément image lors de l'exécution, l'image collée est stockée en format GIF lorsque l'enregistrement est entré dans la base de données.


Classe de mise en oeuvre - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Identifie le nom de classe du conteneur d'un composant JavaBean ou d'une mise en œuvre personnalisée pour un type d'élément de contrôle, lorsque vous souhaitez disposer d'une alternative au contrôle standard de Form Builder.

Application

Les types d'élément de contrôle suivants :

•	Zone de composant JavaBean

•	Case à cocher

•	Elément Liste

•	Bouton de commande

•	Groupe de boutons d'option

•	Elément Texte

Définition

Form Builder

Valeur par défaut

Aucune

Obligatoire/Facultatif

Toujours obligatoire pour la zone JavaBean. Cette propriété identifie le nom de classe du conteneur du composant JavaBean que vous ajoutez à l'application. (Si cette propriété n'est pas fournie, l'utilisateur de l'application Forms verra un carré vide.)

Egalement obligatoire pour tout autre type d'élément de contrôle listé ci-dessus si l'application Forms doit utiliser une mise en œuvre personnalisée, fournie par l'utilisateur, de ce contrôle. Ceci identifie le nom de classe de l'autre contrôle que vous fournissez.

Définie à l'exécution

Non.

Notes d'utilisation

•	La propriété Classe de mise en oeuvre est uniquement disponible pour les types d'élément de contrôle répertoriés ci-dessus, et non pas pour tous les types d'élément de contrôle.


Inclure l'élément REF - Propriété

 Toutes les propriétés

Description

Permet de créer pour ce bloc un élément masqué nommé REF. Cet élément est utilisé en interne pour coordonner les relations maître-détail construites sur un lien REF. Cet élément peut aussi être utilisé par programme pour accéder à l'ID d'objet (IDO) d'une ligne dans une table d'objets.

Application

Aux blocs basés sur les tables d'objets ; en particulier, aux liens REF maître-détail.

Définition  Form Builder

Valeur par défaut

La valeur par défaut est Non.  Cependant, lors de la création d'une relation basée sur un pointeur REF, Form Builder définit cette propriété à Oui.

Obligatoire/Facultatif

Obligatoire pour un bloc maître dans une relation maître-détail basée sur un pointeur REF.

Notes d'utilisation

Cet élément REF est utilisé pour l'obtention de l'ID d'objet (IDO) des lignes d'une table d'objets.

Chaque ligne d'une table d'objets est identifiée par un ID d'objet unique. Cet identificateur est unique pour cette ligne. Les IDO forment une colonne implicite dans une table d'objets.

Dans une relation de pointeur REF entre deux tables, la colonne REF de la table d'origine contient des copies des IDO (adresses) de la table de destination. Cela établit un lien entre les deux tables.

L'assistant Bloc de données définit cette propriété à Oui et crée l'élément REF lorsque vous construisez une relation maître-détail basée sur un pointeur REF. L'élément est appelé REF et se trouve dans le bloc maître. Il est invisible pour l'utilisateur final. De plus, l'assistant définit la propriété Copy_Value_From_Item dans le bloc détail pour accéder à cette nouvelle valeur REF. Cette propriété permet la coordination de la relation maître-détail au cours de l'exécution.


Menu hérité - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer si la fenêtre doit afficher le menu d'application Forms en cours dans les gestionnaires de fenêtres qui supportent cette fonction.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif facultatif


Menu hérité - Restrictions

•	Cette propriété n'est pas valide sous Microsoft Windows.


Etat initial clavier - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Remarque : Cette propriété est propre aux applications NLS (National Language Support) bidirectionnelles.

Comme cette propriété permet de définir le clavier pour qu'il génère des caractères de type Local ou Roman lorsque l'élément reçoit le point d'insertion, l'utilisateur peut commencer à entrer immédiatement ses données, sans changer l'état du clavier.

Valeur	Description
Valeur par défaut	L'état initial du clavier est basé sur la valeur de la propriété Séquence de lecture.
Local	L'état initial du clavier est Local (langue de droite à gauche).
Roman	L'état initial du clavier est Roman (langue de gauche à droite).
Application élément affiché, élément texte

Définition  Form Builder

Notes d'utilisation

•	La plupart du temps, vous utiliserez cette propriété uniquement pour des éléments texte.

•	L'utilisateur peut annuler la définition de la propriété Etat initial clavier en appuyant sur la touche de changement d'état du clavier.


Menu initial - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer le nom du menu du module Menu que Form Builder doit utiliser comme menu principal, ou menu supérieur, pour cet appel. Les utilisateurs ne peuvent pas aller au-delà du menu indiqué comme menu de démarrage.

Par défaut, le menu de démarrage est celui dont le nom est indiqué dans la propriété de module Menu principal. La propriété Menu initial vous permet de remplacer la propriété Menu principal.

Application module Application Forms

Définition  Form Builder

Valeur par défaut

blanc (par défaut, Form Builder utilise le menu principal comme menu de démarrage.)

Obligatoire/Facultatif facultatif


Menu initial - Restrictions

•	Le menu indiqué doit exister dans le module Menu.


Valeur initiale (élément) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la valeur par défaut que Form Builder doit attribuer à l'élément lors de la création d'un enregistrement. La valeur par défaut peut être l'une des valeurs suivantes :

•	valeur brute (216, 'TOKYO')

•	élément d'application Forms (:nom_bloc.nom_élément)

•	variable globale (:GLOBAL.ma_globale)

•	paramètre d'application Forms (:PARAMETRE.mon_param)

•	une séquence (:SEQUENCE.ma_séq.NEXTVAL)

S'applique aux cases à cocher, éléments affichés, éléments Liste, groupes de boutons d'option, éléments texte et zones utilisateur.

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif  Facultatif pour tous les éléments sauf les groupes de boutons d'option, cases à cocher et éléments de liste.

Pour un groupe de boutons d'option, la présence d'une valeur initiale valide est obligatoire à moins que :

a) 	le groupe de boutons d'option indique Correspondance ou Autres valeurs ou que

b) 	la valeur associée à l'un des boutons d'option du groupe soit NULL.

Pour un élément liste, la présence d'une valeur initiale valide est obligatoire à moins que :

a) 	l'élément liste indique Correspondance ou Autres valeurs ou que

b) 	la valeur associée à l'un des éléments liste soit NULL.

Pour une case à cocher, la présence d'une valeur initiale est obligatoire à moins que :

a) 	la case à cocher indique Correspondance ou Autres valeurs ou que

b) 	la valeur associée à Coché ou Non coché soit NULL.

Notes d'utilisation

•	Lorsque vous utilisez la valeur par défaut pour initialiser l'état des éléments de type cases à cocher, groupes de bouton d'option ou éléments liste, n'oubliez pas que la valeur par défaut n'est attribuée que lorsque Form Builder crée un enregistrement dans le bloc.

•	Les éléments miroir secondaires sont initialisés à partir de la propriété Valeur initiale de l'élément miroir maître. Le déclencheur ON-SEQUENCE-NUMBER est aussi dérivé de l'élément maître. Si l'élément miroir secondaire indique Valeur initiale et ON-SEQUENCE-NUMBER, Form Builder les ignore et lance un message d'avertissement.

•	Lors de l'exécution, la valeur initiale définie par cette propriété est ignorée si toutes les conditions suivantes sont vraies pour l'élément (ou pour un élément lui servant de miroir) :

•	l'élément est une liste instantanée, une liste de sélection, un groupe de boutons d'option ou une case à cocher

•	aucun élément ne correspond à la valeur initiale

•	l'élément n'accepte aucune autre valeur

•	Pour assurer la compatibilité avec les versions précédentes, vous pouvez indiquer une référence à un élément d'application Forms ou à une séquence commençant par une perluète (&) au lieu de deux points (:).

•	Pour indiquer une valeur de ligne commençant par une perluète en tête (‘&’) ou deux points en tête (‘:’), indiquez-en deux (c'est-à-dire, ‘&&’ or ‘::’).  (Cette modification du comportement de l'application Forms commence à la version 6.5.)


Valeur initiale (élément) - Restrictions

•	Pour un élément texte, la valeur ne peut pas se trouver en dehors de la plage définie par les propriétés Valeur minimum autorisée et Valeur maximum autorisée.

•	Pour un groupe de boutons d'option, la valeur par défaut doit être soit le nom (et non le libellé) de l'un des boutons d'option, soit la valeur associée à l'un de ces boutons. Form Builder recherche d'abord un nom de bouton d'option.

•	Pour un élément liste, la valeur par défaut doit être soit le nom de l'un des éléments liste, soit la valeur associée à l'un de ces éléments. Form Builder commence par rechercher un nom d'élément liste.


Insertion autorisée (bloc) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si des enregistrements peuvent être insérés dans le bloc.

Application bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Oui


Insertion autorisée (élément) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet de déterminer si un utilisateur peut modifier la valeur d'un élément dans un nouvel enregistrement (c'est-à-dire lorsque Record_Status est NEW ou INSERT).

Si vous désactivez Insertion autorisée pour un élément, l'utilisateur ne pourra pas manipuler l'élément dans un nouvel enregistrement. Par exemple, il ne pourra pas entrer de données dans un élément texte, vérifier une case à cocher ou sélectionner un bouton d'option.

Application élément texte, case à cocher, élément liste, bouton d'option, élément image, élément personnalisé

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Notes d'utilisation

•	Désactivez Insertion autorisée lorsque vous voulez que l'utilisateur puisse consulter un élément sans le modifier. Par exemple, pour un champ clé généré par le système, vous pourriez désactiver Insertion autorisée pour empêcher la modification de la clé, mais qu'elle reste affichée normalement (ne soit pas grisée).

•	Désactivez la propriété Activé si vous voulez empêcher qu'un élément réagisse aux événements de souris. Les éléments désactivés sont grisés pour que l'utilisateur sache qu'ils ne sont pas applicables au moment considéré, alors que les éléments activés, avec Insertion autorisée désactivée, lui permettent de parcourir la valeur d'un élément à l'aide de la souris ou du clavier, mais pas de modifier cette valeur.

•	Insertion autorisée est semblable à Mise à jour autorisée, qui s'applique aux enregistrement dont la propriété Record_Status est QUERY ou CHANGED. Pour les éléments de bloc de base de données, Insertion autorisée, combinée à Mise à jour autorisée, vous permet de contrôler si l'utilisateur peut entrer ou modifier la valeur affichée par un élément. Pour les éléments des blocs qui n'appartiennent pas à une base de données, la désactivation de Insertion autorisée vous permet de créer, sans le désactiver, un élément qui ne peut être qu'affiché.

•	Si Activé ou Visible est défini à Non (ou à PROPERTY_FALSE pour l'exécution), la propriété Insertion autorisée de l'élément ou de l'instance d'élément est effectivement fausse.

•	La définition d'INSERT_ALLOWED à Oui (ou à PROPERTY_TRUE pour l'exécution) n'a pas d'effet au niveau de l'instance d'élément sauf si vous avez défini cette propriété de la même manière aux niveaux du bloc et de l'élément. Par exemple, votre utilisateur ne peut pas entrer de données dans une instance d'élément si INSERT_ALLOWED est vrai au niveau de l'instance, mais non aux niveaux du bloc ou de l'élément.


Insertion autorisée (élément) - Restrictions

•	Si vous utilisez SET_ITEM_PROPERTY pour définir Insertion autorisée à vrai, vous devez définir les propriétés de l'élément de la manière suivante :

•	Activé à Oui (PROPERTY_TRUE pour l'exécution)

•	Visible à Oui (PROPERTY_TRUE pour l'exécution)

•	Lorsqu'Insertion autorisée est indiquée à plusieurs niveaux (instance d'élément, élément et bloc), les valeurs sont ajoutées les unes aux autres à l'aide de l'opérateur AND. Cela signifie que la définition d'INSERT_ALLOWED à Oui (PROPERTY_TRUE pour l'exécution) n'a pas d'effet au niveau de l'instance d'élément sauf si vous avez défini cette propriété de la même manière aux niveaux du bloc et de l'élément. Par exemple, votre utilisateur ne peut pas entrer de données dans une instance d'élément si INSERT_ALLOWED est vrai au niveau de l'instance, mais non aux niveaux du bloc ou de l'élément.


Insérer les arguments de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms, les types de données et les valeurs des arguments à transmettre à la procédure pour insérer des données dans le bloc de données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif  facultatif


Insérer le nom de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la procédure à utiliser pour insérer des données dans le bloc de données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif  facultatif


Insérer les colonnes de paramètres de résultat de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms et les types de données des colonnes de paramètres de résultat associés à la procédure pour insérer des données dans le bloc de données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif  facultatif


Mode interaction - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le mode d'interaction pour le module Application Forms. Le mode d'interaction détermine la manière dont un utilisateur peut interagir avec une application Forms au cours d'une interrogation. Si Mode interaction est défini à Bloquant, les utilisateurs sont dans l'incapacité de redimensionner l'application Forms ou d'interagir avec elle jusqu'à ce que les enregistrements de l'interrogation en cours soient extraits de la base de données. S'il est défini à Non bloquant, les utilisateurs finaux peuvent interagir avec l'application Forms pendant l'extraction des enregistrements.

Le mode d'interaction non bloquant est utile si vous pensez que l'interrogation va prendre du temps et voulez que l'utilisateur puisse l'interrompre ou l'annuler. Dans ce mode, l'application Forms affiche lors de l'exécution une boîte de dialogue permettant à l'utilisateur d'annuler l'interrogation.

Vous ne pouvez pas définir le mode d'interaction par programme ; cependant, vous pouvez l'obtenir en utilisant la procédure interne GET_FORM_PROPERTY.

Application module Application Forms

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

Valeur par défaut  Bloquant

Obligatoire/Facultatif  obligatoire


Mode isolation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si les transactions d'une session doivent être sérialisables. Si Mode isolation a la valeur Sérialisable, l'utilisateur a une vue homogène de la base de données pour toute la durée de la transaction, indifféremment des mises à jour enregistrées par d'autres utilisateurs dans d'autres sessions. Si l'utilisateur final lance une interrogation et modifie une ligne, et qu'un second utilisateur met à jour et valide le même enregistrement dans une autre session, le premier utilisateur reçoit le message d'erreur Oracle ORA-08177.

Application module Application Forms

Définition  Form Builder

Notes d'utilisation

Le mode sérialisable convient mieux pour une mise en application lorsque peu d'utilisateurs exécutent un nombre limité de transactions sur une grosse base de données, c'est-à-dire une mise en application où il existe peu de chance que deux transactions concurrentes modifient le même enregistrement et où les transactions de longue durée sont des interrogations. Pour des mises en applications où le nombre de transactions est élevé, laissez Mode isolation défini à Read Committed (valeur par défaut). Il est préférable d'utiliser le mode sérialisable conjointement avec la propriété de niveau bloc Mode bloquant définie à Différé.

Valeur par défaut

Read Committed

Obligatoire/Facultatif  obligatoire


Rôles élément - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les rôles de menu qui ont accès à un élément menu.

Application élément de menu

Définition  Form Builder

Obligatoire/Facultatif facultatif

Notes d'utilisation

Vous ne pouvez accorder d'autorisation qu'aux membres des rôles affichés dans la liste de rôles. Pour ajouter un rôle à la liste, définissez la propriété Rôles du module Menu.


Rôles élément - Restrictions

Cette propriété n'est valide que lorsque la liste de rôles du module Menu contient au moins un nom de rôle.


Type d'élément - Propriété

 Rubriques connexes [image] Toutes les propriétés

Description

Permet d'indiquer le type d'un élément. Les différents types possibles sont les suivants :

•	Contrôle ActiveX (plate-formes Windows 32 bits)

•	Zone de composant JavaBean

•	Elément d'un graphique

•	Case à cocher

•	Elément graphique

•	Arborescence

•	Image

•	Elément Liste

•	Conteneur OLE

•	Bouton de commande

•	Groupe de boutons d'option

•	Son

•	Elément Texte

•	Zone utilisateur

•	Contrôle VBX (uniquement Microsoft Windows 3.1)

Application  éléments

Définition  Form Builder

Valeur par défaut  élément texte

Obligatoire/Facultatif  obligatoire


Item_Is_Valid - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si un élément est marqué en interne comme étant valide.

Application élément

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

élément d'un nouvel enregistrement : Non ; élément d'un enregistrement interrogé : Oui

Notes d'utilisation

•	Utilisez Item_Is_Valid pour vérifier la validité de l'état en cours d'un élément texte.

•	Activez Item_Is_Valid pour demander à Form Builder de traiter les données en cours dans un élément comme des données valides et sauter toute validation ultérieure. Désactivez Item_Is_Valid pour demander à Form Builder de traiter les données en cours dans un élément texte comme des données non valides et les soumettre à une validation ultérieure.


Item_Tab_Page - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la page onglet sur laquelle est placé un élément.

Application élément

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

Valeur par défaut

Aucune


Item_Tab_Page - Restrictions


Condition de jointure - Propriété

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet de définir la relation entre un enregistrement du bloc détail et un enregistrement du bloc maître.

Application relation

Définition  Form Builder

Obligatoire/Facultatif  obligatoire pour un objet relation

Notes d'utilisation

Vous pouvez indiquer une condition de jointure en utilisant les entrées suivantes :

•	un nom d'élément qui existe à la fois dans le bloc maître et dans le bloc détail (bloc_2.élément_3)

•	une condition d'égalisation de deux noms d'élément, dans laquelle un élément existe dans le bloc maître et l'autre dans le bloc détail

•	une combinaison de noms d'élément et de conditions d'égalisation


Condition de jointure - Restrictions

•	Une condition de jointure ne peut pas avoir plus de 255 caractères.


Condition de jointure - Exemples

Exemples:

Pour lier un bloc détail à son bloc maître par l'élément texte IDCDE qui est commun aux deux blocs, définissez la condition de jointure suivante :

IDCDE

Pour lier le bloc détail à son bloc maître par un certain nombre d'éléments texte, définissez les conditions de jointure de la manière suivante :

bloc1.élément1 = bloc2.élément1 AND bloc1.élément2 = bloc2.élément2

N'oubliez pas que la condition de jointure indique la relation entre les éléments de chaque bloc, et non entre les colonnes des tables sur lesquelles sont fondés ces blocs. Les éléments indiqués doivent donc exister réellement dans l'application Forms pour que la condition de jointure soit valide.


Type de jointure - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le type de jointure de l'objet graphique en tant que Angle droit, Biseau ou Arrondi.

Application  graphique

Définition  Form Builder

Valeur par défaut

Angle droit

Obligatoire/Facultatif facultatif


Justification - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la justification du texte dans l'élément. Les valeurs autorisées pour cette propriété sont les suivantes :

Valeur	Description
Gauche	Texte justifié à gauche, quelle que soit la propriété Séquence de lecture.
Centre	Texte centré, quelle que soit la propriété Séquence de lecture.
Droite	Texte justifié à droite, quelle que soit la propriété Séquence de lecture.
Début	Texte aligné sur le bord gauche de la boîte englobante de l'élément. Le bord gauche dépend de la valeur de la propriété Séquence de lecture de l'élément. Début équivaut à un alignement à droite lorsque la séquence de lecture est Droite-gauche et à un alignement à gauche lorsque cette séquence est Gauche-droite.
Fin	Le texte de l'élément est aligné sur le bord de fin de la boîte englobante de l'élément. Le bord de fin dépend de la valeur de la propriété Séquence de lecture de l'élément.  Fin équivaut à un alignement à gauche lorsque la séquence de lecture est Droite-gauche et à un alignement à droite lorsque cette séquence est Gauche-droite.

Application élément affiché, élément texte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Début

Notes d'utilisation

•	Dans les applications unidirectionnelles (séquence de lecture Gauche-droite), acceptez dans la plupart des cas la valeur par défaut, Début ; Début donne exactement le même résultat que Gauche, et Fin le même résultat que Droite.

•	Dans les applications bidirectionnelles :

•	Si vos données doivent être alignées sur la séquence de lecture de l'élément, choisissez Début (valeur par défaut).

•	Si vos données doivent être alignées à l'inverse de la séquence de lecture de l'élément, choisissez Fin.

•	Cette propriété n'est pas prise en charge par tous les gestionnaires de fenêtres.


Conserver position du curseur - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer que le curseur doit être repositionné sur l'élément texte actif avant la dernière sortie.

Application élément texte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Notes d'utilisation

Cette propriété permet de faire passer le curseur sur un élément et de le faire revenir à la fin de  l'élément partiellement rempli.


Conserver position du curseur - Restrictions

Cette propriété n'est pas prise en charge par tous les gestionnaires de fenêtres.


Mode clé - Propriété

 Toutes les propriétés

Description

Permet d'indiquer comment Form Builder doit identifier individuellement les lignes de la base de données. Cette propriété concerne les applications exécutées sur des sources de données non ORACLE. Pour les applications exécutées sur ORACLE, utilisez la valeur par défaut.

Par défaut, la base de données ORACLE utilise des valeurs ROWID uniques pour identifier chaque ligne. Les bases de données non ORACLE ne comportent pas d'élément ROWID, et utilisent donc seulement des valeurs de clé primaire uniques pour identifier individuellement les lignes. Si vous créez une application Forms qui doit s'exécuter sur une source de données non ORACLE, utilisez des clés primaires et définissez en conséquence la propriété de bloc Mode clé.

Valeur	Description
Automatique (par défaut)	Indique à Form Builder d'utiliser des éléments ROWID pour identifier individuellement les lignes d'une source de données uniquement si celle-ci prend en charge des éléments ROWID.
Mise à jour autorisée	Indique que Form Builder doit émettre des instructions UPDATE comportant des valeurs de clé primaire. Utilisez ce paramètre si votre base de données permet la mise à jour des colonnes de clé primaire et si vous voulez que l'application mette à jour les valeurs de clé primaire.
Unique	Indique que Form Builder ne doit pas inclure de colonnes de clé primaire dans les instructions UPDATE. Utilisez ce paramètre si votre base de données ne permet pas la mise à jour des valeurs de clé primaire.
Unique)	Indique à Form Builder d'utiliser des éléments ROWID pour identifier individuellement les lignes d'une source de données ORACLE.

Application bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Unique

Notes d'utilisation

Lorsque la propriété Mode clé est définie à l'un des modes de clé primaire, vous devez identifier les éléments de clé primaire dans votre application Forms en activant la propriété de bloc Enforce Primary Key et la propriété d'élément Clé primaire pour au moins un élément du bloc.


Raccourci-clavier - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer une touche de fonction logique à associer à un élément de menu. Les raccourcis-clavier sont appelés ACCELERATOR1, ACCELERATOR2, et ainsi de suite jusqu'à ACCELERATOR5. Les utilisateurs peuvent sélectionner l'élément de menu en appuyant sur la touche (ou les touches) à laquelle correspond le raccourci-clavier logique.

Application élément de menu

Définition  Form Builder

Obligatoire/Facultatif facultatif

Notes d'utilisation

La correspondance des raccourcis-clavier logiques et des touches d'unité physique est définie dans le fichier de ressources runtime. Vous devez éditer ce fichier dans Oracle Terminal pour modifier les correspondances de touches. Vous pouvez également créer des raccourcis-clavier supplémentaires dans Oracle Terminal (ACCELERATOR6, ACCELERATOR7, etc.) pour les associer à des éléments de menu dans un module Menu.


Raccourci-clavier - Restrictions

•	Cette propriété n'est pas valide pour les éléments de menu séparateur.

•	La correspondance des touches ne doit pas interférer avec les correspondances de touches Form Builder standard.

•	Avec les menus de type barre, les raccourcis-clavier ne peuvent être utilisés que pour les éléments du menu affiché.


Description de l'aide sur les touches - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la description de déclencheurs sur touche affichée dans l'écran d'aide Touches si la propriété Afficher Aide sur touches est activée. Une entrée dans l'écran Touches comporte une description de la touche et la façon de la manipuler, par exemple Ctrl-S.

Application déclencheur

Définition  Form Builder

Valeur par défaut

vide

Notes d'utilisation

•	Si vous ne voulez pas que le nom ou la description apparaisse dans la fenêtre Touches, désactivez la propriété Afficher Aide sur touches. Cette option est l'option par défaut.

•	Si vous voulez que le nom de la touche qui correspond au déclencheur et sa description par défaut soient affichés dans la fenêtre Touches, activez la propriété Afficher Aide sur touches et laissez en blanc Description de l'aide sur les touches.

•	Si vous voulez remplacer la description de touche par défaut, activez la propriété Afficher Aide sur touches, puis entrez la description de votre choix dans le champ Description de l'aide sur les touches.


Description de l'aide sur les touches - Restrictions

Cette propriété n'est valide que pour les déclencheurs sur touche.


Navigation autorisée au clavier - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet de déterminer si l'utilisateur ou l'application peut placer le point d'insertion dans l'élément pendant la navigation par défaut. Lorsque cette propriété est activée pour un élément, la navigation est autorisée pour cet élément. Dans le cas contraire, Form Builder saute l'élément et entre le prochain élément de navigation autorisée dans la séquence de navigation par défaut. La séquence de navigation par défaut des éléments est définie par l'ordre des éléments dans le Navigateur d'objet.

Application tous les éléments, sauf les éléments graphiques et les éléments affichés

Définition Form Builder, par programme [NAVIGABLE]

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Notes d'utilisation

•	Si Activé ou Visible est défini à Non (PROPERTY_FALSE pour l'exécution), la propriété Navigation autorisée au clavier (Keyboard_Navigable) de l'élément ou de l'instance d'élément est effectivement False. Si; lors de l'exécution, la propriété Activé est définie à PROPERTY_FALSE, la propriété Keyboard_Navigable est également définie à PROPERTY_FALSE. Mais, si la propriété Activé est ensuite remis à PROPERTY_TRUE, la propriété Keyboard_Navigable N'EST PAS définie à PROPERTY_TRUE et doit être modifiée explicitement.

•	Lorsque la propriété Navigation autorisée au clavier est indiquée à plusieurs niveaux (instance d'élément, élément et bloc), les valeurs sont ajoutées les unes aux autres à l'aide de l'opérateur AND. Cela signifie que la définition de Navigation autorisée au clavier à Oui (ou de NAVIGABLE à PROPERTY_TRUE pour l'exécution) n'a pas d'effet au niveau de l'instance d'élément, sauf si vous avez défini cette propriété de la même manière au niveau de l'élément. Par exemple, votre utilisateur ne peut pas naviguer vers une instance d'élément si Navigation autorisée au clavier est vraie au niveau de l'instance mais pas au niveau de l'élément.

•	Vous pouvez utiliser la procédure interne GO_ITEM pour passer à un élément dont la propriété Navigation autorisée au clavier est désactivée (PROPERTY_FALSE) pour l'exécution.


Navigation autorisée au clavier - Restrictions

•	Si vous utilisez SET_ITEM_PROPERTY pour définir NAVIGABLE à vrai, vous devez définir les propriétés de l'élément de la façon suivante :

•	Activé à Oui (PROPERTY_TRUE pour l'exécution)

•	Visible à Oui (PROPERTY_TRUE pour l'exécution)


Etat clavier - Propriété

 Toutes les propriétés

Description

Permet d'indiquer les états de prise en charge des diverses version du clavier, comme Tous, Roman seulement ou Local seulement.

Application  élément international

Définition  Form Builder

Valeur par défaut

Tous

Obligatoire/Facultatif  obligatoire


Libellé - Propriété

 Toutes les propriétés

Libellé (élément) - Propriété

Libellé (élément de menu) - Propriété

Libellé (paramètre de substitution de menu) - Propriété

Libellé (page onglet) - Propriété


Libellé (élément) - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le libellé de texte affiché pour un bouton, une case à cocher ou un bouton d'option dans un groupe de boutons d'option.

Application bouton, case à cocher, groupe de boutons d'option

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

Valeur par défaut

vide

Obligatoire/Facultatif facultatif


Libellé (élément menu) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le libellé de texte de chaque élément menu.

Application élément de menu

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY

Obligatoire/Facultatif facultatif

Notes d'utilisation

Chaque élément menu a un nom et un libellé. Le libellé,  utilisé uniquement dans l'interface graphique runtime, peut être différent du nom utilisé par programme.

A la différence du nom, qui doit respecter les conventions d'appellation PL/SQL, le libellé peut comporter plusieurs mots et signes de ponctuation. Par exemple, Autres info... est un libellé acceptable, alors que le nom correspondant serait autres_info.

Lorsque vous créez un nouvel élément menu dans l'éditeur de menu, Form Builder lui donne un nom par défaut, comme ELEM2, et un libellé par défaut <Nouvel élément>. Lorsque vous éditez le libellé élément dans l'éditeur de menu, pour le remplacer par exemple par "Afficher les touches", le nom de l'élément menu reste ELEM2 jusqu'à ce que vous le modifiiez dans le Navigateur d'objet ou dans la Palette de propriétés.


Libellé (paramètre de substitution de menu) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le libellé qui demandera à l'utilisateur de fournir une valeur pour le paramètre de substitution.

Application paramètre de substitution de menu

Définition  Form Builder

Obligatoire/Facultatif facultatif


Libellé (paramètre de substitution de menu) - Restrictions

aucun


Libellé (page onglet) - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer le libellé qui identifie la page onglet. Les utilisateurs cliquent sur l'onglet comportant un libellé pour afficher les pages onglet sur un canevas onglet.

Application page onglet

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

Obligatoire/Facultatif facultatif


Libellé (page onglet) - Restrictions

aucun


Last_Block - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du bloc ayant le numéro de séquence le plus élevé dans l'application Forms, indiqué par la séquence des blocs énumérés dans le Navigateur d'objet.

Application module Application Forms

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_FORM_PROPERTY


Last_Item - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de l'élément ayant le numéro de séquence le plus élevé dans le bloc indiqué, tel que précisé par la séquence des éléments énumérés dans le Navigateur d'objet.

Application bloc

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY


Last_Query - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'instruction SQL de la dernière interrogation du bloc indiqué.

Application bloc

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY


Bloc de données de présentation - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nom du bloc de données auquel est associé le cadre ; les éléments du bloc sont disposés dans le cadre. Un bloc ne peut être associé qu'à un cadre. Vous ne pouvez pas répartir les éléments d'un bloc dans plusieurs cadres.

Application cadre

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif  obligatoire


Style de présentation - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer le style de présentation des éléments dans le cadre.

Formulaire	Style par défaut. Lorsque Style de présentation est défini à Formulaire, Form Builder dispose les éléments en deux colonnes, avec les invites de texte graphique à gauche de chaque élément.

Tabulaire	Lorsque Style de présentation est défini à Tabulaire, Form Builder dispose les éléments côte à côte sur une seule ligne, avec les invites de texte graphique au-dessus de chaque élément.

Application cadre

Définition  Form Builder

Valeur par défaut

Application Forms

Obligatoire/Facultatif  obligatoire


Style de présentation


Longueur (groupe d'enregistrements) - Propriété

 Toutes les propriétés

Description

Voir Spécifications de colonne.


Espacement de trait - Propriété

 Toutes les propriétés

Description

Permet de définir l'espacement de trait de l'objet texte en tant que Un, Un et demi, Deux, Personnalisé. Si Personnalisé est sélectionné, la propriété Espacement personnalisé détermine l'espacement de trait.

Application  texte graphique

Définition  Form Builder

Valeur par défaut

Un

Obligatoire/Facultatif  obligatoire


Largeur de trait - Propriété

 Toutes les propriétés

Description

Permet de préciser la largeur du bord de l'objet en points (1/72 pouce). (Identique à la propriété Largeur de l'extrémité de Graphics Builder.)

Application  graphique

Définition  Form Builder

Obligatoire/Facultatif facultatif


Valeur d'élément liste - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer la valeur associée à un bouton d'option spécifique.

Application bouton d'option

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Lorsque vous laissez en blanc le champ Valeur d'élément liste, la valeur associée au bouton d'option est NULL.


Valeur d'élément liste - Restrictions

•	Cette propriété doit être unique parmi toutes les valeurs associées au bouton d'option.


Liste de valeurs - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la liste de valeurs (LOV) à attacher à l'élément texte. Lorsqu'une LOV est attachée à un élément texte, les utilisateurs peuvent passer à l'élément et appuyer sur [Liste de valeurs] pour appeler la LOV. Pour signaler aux utilisateurs qu'une LOV est disponible, Form Builder affiche le témoin de liste LOV dans la ligne de message lorsque le point d'insertion est dans un élément texte auquel une LOV est attachée.

Application élément texte

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Obligatoire/Facultatif facultatif


Liste de valeurs - Restrictions

La LOV doit exister dans le module Application Forms actif.


Style de liste - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le type d'affichage de chaque élément liste : liste instantanée, zone de liste déroulante ou liste de sélection. La liste instantanée et la zone de liste déroulante occupent moins de place qu'une liste de sélection, mais les utilisateurs doivent les "ouvrir" pour voir les éléments de la liste. Une liste de sélection reste ouverte et les utilisateurs peuvent voir plusieurs valeurs à la fois si la liste est suffisamment grande pour afficher plusieurs valeurs.

Application élément liste

Définition  Form Builder

Valeur par défaut

Liste instantanée

Notes d'utilisation

Le type d'affichage que vous sélectionnez pour l'élément liste est sans effet sur la structure des données de cet élément.


Type de liste - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer la façon dont vous souhaitez faire référence à l'objet de groupe d'enregistrements sur lequel sera fondée la LOV. A chaque LOV est associé un groupe d'enregistrements dont elle tire sa valeur lors de l'exécution.

Définition:

Liste de valeurs (LOV)

Définition  Form Builder

Valeur par défaut

Interrogation

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Les options valides pour cette propriété sont les suivantes :

Groupe d'enregistrements	Indique que vous souhaitez fonder la LOV sur un groupe d'enregistrements existant. Lorsque vous sélectionnez cette option, vous devez choisir le groupe d'enregistrements dans la liste déroulante de propriétés Groupe d'enregistrements. Le groupe d'enregistrements que vous indiquez peut être soit un groupe d'enregistrements statique soit un groupe d'enregistrements d'interrogation, et doit déjà exister dans l'application Forms active.

Old	Cette option est incluse pour assurer la compatibilité avec les versions précédentes de Form Builder. Elle ne peut pas être utilisée dans les nouvelles applications.


Type de liste - Restrictions

aucun


Position X de la liste - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la coordonnée horizontale (X) de l'angle supérieur gauche de la LOV par rapport à l'écran. Lorsque vous attachez une LOV à un élément texte en définissant la propriété Liste de valeurs, vous pouvez également définir les propriétés Position X de la liste et Position Y de la liste de manière à remplacer les coordonnées d'affichage par défaut indiquées pour la LOV.

Application élément texte

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

0 pour indiquer que Form Builder doit utiliser la coordonnée horizontale (X) d'affichage par défaut de la LOV, fournie par la propriété Position X de la liste.

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

•	Si vous laissez à 0 les propriétés Position X de la liste et Position Y de la liste, Form Builder affiche la LOV aux coordonnées d'affichage que vous avez indiquées lorsque vous avez créé la LOV. Si vous indiquez des coordonnées de position, elles remplacent les coordonnées de position par défaut de la LOV.

•	 La propriété Liste de valeurs doit être indiquée.


Position Y de la liste - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la coordonnée verticale (Y) de l'angle supérieur gauche de la LOV par rapport à l'écran. Lorsque vous attachez une LOV à un élément texte en définissant la propriété Liste de valeurs, vous pouvez également définir les propriétés Position X de la liste et Position Y de la liste de manière à remplacer les coordonnées d'affichage par défaut indiquées pour la LOV.

Application élément texte

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

0 pour indiquer que Form Builder doit utiliser la coordonnée verticale (Y) d'affichage par défaut de la LOV, fournie par la propriété Position Y de la liste.

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

•	Si vous laissez à 0 les propriétés Position X de la liste et Position Y de la liste, Form Builder affiche la LOV aux coordonnées d'affichage que vous avez indiquées lorsque vous avez créé la LOV. Si vous indiquez des coordonnées de position, elles remplacent les coordonnées de position par défaut de la LOV.

•	 La propriété Liste de valeurs doit être indiquée.


Répertorié dans le menu Bloc/Description de bloc - Propriétés

 Restrictions

Permet d'indiquer si le bloc doit figurer dans le menu Bloc et, dans l'affirmative, la description à utiliser pour le bloc.

Form Builder comporte un menu Bloc intégré qui permet aux utilisateurs d'appeler une liste de blocs de l'application Forms en cours en appuyant sur [Menu Bloc]. Lorsque l'utilisateur sélectionne un bloc de la liste, Form Builder passe au premier élément modifiable du bloc.

Application bloc

Définition  Form Builder

Valeur par défaut

Oui. Description du bloc : pour un nouveau bloc, NULL. Pour un bloc existant, le nom du bloc au moment où il a été créé.

Obligatoire/Facultatif facultatif


Répertorié dans le menu Bloc/Description de bloc - Restrictions

Le bloc n'apparaît pas dans le Menu Bloc si vous activez la propriété Répertorié dans le menu Bloc, mais laissez la propriété Description de bloc en blanc.


Verrouiller les arguments de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms, les types de données et les valeurs des arguments qui doivent être passés à la procédure pour le verrouillage des données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Verrouiller le nom de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la procédure à utiliser pour le verrouillage des données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Verrouiller les colonnes de paramètres de résultat de procédure - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms et les types de données des colonnes de paramètres de résultat associées à la procédure de verrouillage des données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif  facultatif


Verrouiller l'enregistrement - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer que Form Builder doit tenter de verrouiller la ligne de la base de données qui correspond à l'enregistrement en cours dans le bloc chaque fois que la valeur de l'élément texte est modifiée, soit par l'utilisateur soit par programme.

Application élément texte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Valeur par défaut

Non

Notes d'utilisation

•	Activez cette propriété lorsque l'élément texte est un élément de contrôle (un élément non associé à une colonne de table de base), mais que vous voulez quand même que Form Builder verrouille la ligne de la base de données qui correspond à l'enregistrement en cours dans le bloc.

•	Cette propriété est utile pour la consultation des éléments texte lorsque le verrouillage des enregistrements sous-jacents doit être effectué.

•	Pour définir cette propriété avec SET_ITEM_PROPERTY, utilisez la constante LOCK_RECORD_ON_CHANGE.


Verrouiller l'enregistrement - Restrictions

Cette propriété n'est valide que lorsque l'élément est un élément de contrôle (propriété Elément Table de base désactivée) dans un bloc de données.


Mode de verrouillage - Propriété

 Toutes les propriétés

Description

Permet d'indiquer quand Form Builder tente d'obtenir des verrous de base de données sur les lignes qui correspondent aux enregistrements interrogés dans l'application Forms. Les paramètres autorisés pour la propriété Mode de verrouillage sont les suivants :

Valeur	Description
Automatique (par défaut)	Identique à Immédiat si la source des données est une base de données Oracle. Pour les autres sources de données, Form Builder détermine les fonctions de verrouillage disponibles et se comporte, dans la mesure du possible, comme Immédiat.
Immédiat	Form Builder verrouille la ligne correspondante dès que l'utilisateur final appuie sur une touche pour saisir ou modifier la valeur d'un élément texte.
Différé	Form Builder ne verrouille la ligne que le temps de l'envoi de la transaction à la base de données, et non pendant que l'utilisateur modifie l'enregistrement. Form Builder empêche le traitement de l'opération Commit si les valeurs des champs du bloc sont modifiées lorsque l'utilisateur exécute cette opération.

Application bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Automatique

Notes d'utilisation

Pour la plupart des applications, utilisez le paramètre par défaut Automatique.

Le paramètre Immédiat reste compatible avec les applications existantes, mais il n'y a aucune raison de l'utiliser dans les nouvelles applications. A la place, utilisez Automatique.

Le paramètre Différé est utile pour les applications devant minimiser le nombre de verrous ou le temps de verrouillage des lignes. Utilisez le verrouillage différé si la propriété Mode isolation de l'application Forms a la valeur Sérialisable.

Les inconvénients principaux du verrouillage différé sont les suivants :

•	Lors de l'opération commit, l'utilisateur final risque de devoir recommencer les modifications apportées à un bloc.

•	Un verrou défini par un autre utilisateur peut forcer le premier utilisateur à choisir entre attendre indéfiniment ou abandonner les modifications.


Elément de menu magique - Propriété

 Restrictions	    Rubriques connexes	   Toutes les propriétés

Description

Permet d'indiquer pour les menus personnalisés l'un des éléments de menu prédéfinis suivants : Couper, Copier, Coller, Effacer, Annuler, A propos de, Aide, Quitter ou Fenêtre. Les éléments de menu magique sont automatiquement affichés dans le mode natif de la plate-forme sur laquelle l'application Forms est exécutée, avec attribution des raccourcis-clavier appropriés.

Couper, Copier, Coller, Effacer, Fenêtre et Quitter ont des fonctionnalités intégrées fournies par Form Builder, alors que les autres éléments de menu magique peuvent avoir des commandes associées.

Application élément de menu

Définition  Form Builder

Valeur par défaut

Couper

Obligatoire/Facultatif facultatif

Notes d'utilisation

Les options valides pour cette propriété sont les suivantes :

Définition	Description
Couper, Copier, Coller, Effacer	Ces éléments permettent d'effectuer les opérations classiques de manipulation de texte. Comme Form Builder fournit leur fonctionnalité, le programmeur n'a pas à entrer les commandes correspondantes.
Annuler, A propos de	Comme ces éléments n'ont pas de fonctionnalité native, le développeur doit entrer les commandes correspondantes. Ces éléments acceptent tout type de commande, sauf Menu.
Aide	La commande de l'élément de menu Aide doit être Menu. Le programmeur fournit la fonctionnalité des éléments sur ce sous-menu.
Quitter	Comme Quitter a aussi des fonctionnalités intégrées, le programmeur peut ne pas attribuer de commandes à cet élément.
Fenêtre	L'élément de menu magique Fenêtre présente un sous-menu de toutes les fenêtres ouvertes pour permettre à l'utilisateur d'activer l'une d'elles. Si l'élément de menu magique Fenêtre comporte une commande qui appelle un sous-menu, ce sous-menu contiendra à la fois la liste des fenêtres ouvertes et les éléments des sous-menus définis par l'utilisateur, dans l'ordre défini par Form Builder. Le type de commande d'un élément Fenêtre de menu magique est Null ou Menu.


Elément de menu magique - Restrictions

•	Un élément de menu magique donné ne peut apparaître qu'une fois dans toute la hiérarchie des menus d'un module Menu donné. Par exemple, un menu contenant l'élément de menu magique Couper ne peut pas être un sous-menu de deux options différentes du module Menu.

•	Laissez en blanc les propriétés Icône Message d'aide et Raccourci-clavier de l'élément de menu magique.


Menu principal - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du menu du document qui doit être le menu principal ou le menu de démarrage lors de l'exécution.

Si vous créez un menu déroulant, il n'est pas nécessaire de modifier cette propriété. Elle est automatiquement définie au nom du premier menu que vous créez, puis mise à jour si vous modifiez le nom de ce menu.

La propriété Menu principal est utilisée essentiellement avec les menus plein écran pour limiter le nombre de menus auxquels les utilisateurs ont accès. Les utilisateurs ne peuvent pas passer à un menu se trouvant au-dessus du Menu principal dans la hiérarchie du module Menu.

Application module Menu

Définition  Form Builder

Valeur par défaut

blanc

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Lorsque vous attachez le module Menu à une application Forms en définissant les propriétés appropriées dans la fenêtre de propriété Module Application Forms, vous pouvez indiquer qu'un autre menu du document sera le Menu principal en définissant la propriété Menu initial.


Correspondance d'autres valeurs - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer comment une valeur extraite ou attribuée, qui n'est pas l'une des valeurs prédéfinies associées à un élément de liste ou à un bouton d'option spécifique, doit être interprétée.

Application élément liste, groupe de boutons d'option

Définition  Form Builder

Valeur par défaut

blanc

Obligatoire/Facultatif facultatif

Notes d'utilisation

•	Laissez cette propriété en blanc pour indiquer qu'aucune autre valeur n'est autorisée pour cet élément ou ce groupe de boutons d'option. Tout enregistrement interrogé qui contient une valeur autre que la valeur d'élément définie par l'utilisateur est rejeté silencieusement. Toute tentative d'attribution d'une autre valeur est désactivée.

n	 Toute valeur que vous indiquez doit donner comme résultat l'une des références suivantes :

n	la valeur associée à l'un des éléments liste ou l'un des groupes de boutons d'option ;

n	le nom (et non le libellé) de l'un des éléments liste.


Agrandissement autorisé - Propriété

 Restrictions	 	 Toutes les propriétés

Description

Permet d'indiquer que les utilisateurs peuvent redimensionner la fenêtre à l'aide des fonctions de zoom fournies par le gestionnaire de fenêtres runtime.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Oui


Agrandissement autorisé - Restrictions

•	Cette propriété n'est valide que lorsque la propriété Redimensionnement autorisé est désactivée.


Longueur maximum - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la longueur maximum de la valeur des données qui peuvent être stockées dans l'élément.

Application tous les éléments, sauf boutons, éléments image et éléments graphiques

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

•	Pour un élément de table de base de données, la longueur de la colonne correspondante, dans la table de base de données. Remarque : Si le type de données de l'élément est NUMBER, la longueur maximale est définie comme égale à la longueur de colonne définie plus deux, afin de permettre l'utilisation d'un signe moins (-) pour les valeurs négatives et d'un séparateur décimal.

•	Pour un élément de contrôle, 30.

•	Pour un élément de type LONG, 240 octets.

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

1	Au cours de l'exécution, Forms augmente la valeur de la propriété Longueur Maximum si le masque de format de l'élément requiert une longueur plus importante. (Ce masque peut être soit un masque explicite indiqué par le concepteur de l'application Forms pour cet élément, soit l'un des masques implicites utilisés par Forms au cours de ses opérations de conversion internes.)

2	Pour les valeurs de type CHAR, la longueur maximum est de 2 048 caractères.

Remarque : Si vous écrivez des applications pour un jeu de caractères sur plusieurs octets, n'oubliez pas que :

•	Form Builder permet aux utilisateurs d'entrer le nombre complet de caractères sur un octet, jusqu'à la Longueur maximum indiquée.

•	Si l'utilisateur entre une combinaison de caractères sur un octet et plusieurs octets, donnant une chaîne dont la longueur totale en octets est supérieure à la longueur maximum de l'élément, la chaîne est tronquée au caractère entier le plus proche et un message d'avertissement est affiché. Pour éviter ce problème, prévoyez d'augmenter la longueur maximum de l'élément. (Si la longueur maximum est supérieure à la largeur d'affichage de l'élément, Form Builder permet automatiquement à l'utilisateur de faire défiler le contenu de l'élément.)


Longueur maximum (paramètre dapplication Forms) - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer la longueur maximum, en caractères, d'un paramètre d'application Forms de type CHAR.

Application paramètre d'application Forms

Définition  Form Builder

Valeur par défaut

Pour un paramètre de type CHAR, 30

Obligatoire/Facultatif  obligatoire


Longueur maximum (paramètre dapplication Forms) - Restrictions
Longueur maximum (paramètre d'application Forms) - Restrictions

•	Un paramètre de type CHAR ne peut pas avoir plus de 2 048 octets.


Longueur maximum (paramètre de substitution de menu) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la longueur maximum, en caractères, d'un paramètre de substitution de menu.

Application paramètre de substitution de menu

Définition  Form Builder

Valeur par défaut

30

Obligatoire/Facultatif  obligatoire


Nombre maximum d'objets par ligne - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nombre maximum d'objets qui peuvent figurer sur chaque ligne d'un cadre.

Lorsque le paramètre Nombre maximum d'objets de cadre est défini à 0 (valeur par défaut), il n'y a pas de maximum : Form Builder dispose le nombre maximum d'objets sur chaque ligne d'un cadre.

Cette propriété est valide lorsque la propriété Type de cadre est définie à Application Forms et que la propriété Remplissage vertical est définie à Non.

Application cadre

Définition  Form Builder

Valeur par défaut

0

Obligatoire/Facultatif  obligatoire


Durée maximum d'interrogation - Propriété

 Toutes les propriétés

Description

Cette propriété permet de mettre fin à une interrogation lorsque la durée de l'interrogation excède la valeur définie.

S'applique à application Forms, bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

•	GET_BLOCK_PROPERTY

Obligatoire/Facultatif facultatif

Notes d'utilisation

Cette propriété n'est intéressante que lorsque la propriété Interrogation de tous les enregistrements est activée.


Nombre maximum d'enregistrements extraits - Propriété

 Toutes les propriétés

Description

Indique le nombre d'enregistrements extraits lors de l'exécution d'une interrogation avant son interruption.

S'applique à application Forms, bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

•	GET_BLOCK_PROPERTY

Obligatoire/Facultatif facultatif

Notes d'utilisation

La propriété Nombre maximum d'enregistrements extraits n'est utile que si les propriétés Interrogation autorisée et Interroger tous les enregistrements sont activées. Définissez cette propriété pour limiter les enregistrements retournés par une interrogation de l'utilisateur.


Description de menu - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Dans le cas d'applications fonctionnant en mode caractère, dans les styles d'affichage des menus Déroulant et Barre, cette propriété indique la chaîne apparaissant sur la ligne de message lorsque l'utilisateur se déplace jusqu'au menu. En style d'affichage en plein écran, cette propriété indique la chaîne identifiant le module associé au menu.

Application module Menu

Définition  Form Builder

Valeur par défaut

Le nom du document par défaut

Obligatoire/Facultatif facultatif


Description de menu - Restrictions

•	Applicable uniquement dans le cas des applications en mode caractère.


Répertoire de menu - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le répertoire dans lequel Form Builder doit rechercher le fichier d'exécution de menu .MMX. Cette propriété n'est applicable que lorsque vous voulez que Form Builder localise le fichier d'exécution de menu .MMX par consultation de la base de données, et non par référence directe.

Pour pouvoir consulter la base de données, le module Menu doit y être stocké. Lors de l'exécution, Form Builder interroge la définition du module Menu stockée dans la base de données pour trouver le répertoire et le nom du fichier d'exécution de menu .MMX. Les propriétés de module Menu Nom de fichier de menu et Répertoire de menu indiquent le chemin dans lequel Form Builder devra rechercher le fichier d'exécution de menu .MMX.

Application module Menu

Définition  Form Builder

Valeur par défaut

blanc

Obligatoire/Facultatif facultatif

Notes d'utilisation

Si vous n'indiquez pas le chemin d'accès au répertoire, Form Builder commence par rechercher le fichier dans le répertoire par défaut, puis dans les chemins de recherche prédéfinis. Pour plus d'informations sur les chemins de recherche, reportez-vous à la documentation Form Builder de votre plate-forme.


Répertoire de menu - Restrictions

Ce paramètre n'est pas valide lorsqu'une référence directe est utilisée pour indiquer l'emplacement du fichier d'exécution de menu .MMX. Vous devez utiliser la référence directe lorsque vous attachez un menu à une application Forms en activant la propriété de module Application Forms Source du menu.


Nom de fichier de menu - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du fichier d'exécution de menu .MMX que Form Builder doit rechercher lors du démarrage de l'application Forms. Cette propriété n'est applicable que lorsque vous voulez que Form Builder localise le fichier d'exécution de menu par consultation de la base de données, et non par référence directe.

Pour pouvoir consulter la base de données, le module Menu doit y être stocké. Lors de l'exécution, Form Builder interroge la définition du module Menu stockée dans la base de données pour connaître le répertoire et le nom du fichier d'exécution de menu .MMX. Les propriétés de module Menu Répertoire de menu et Nom de fichier de menu indiquent le chemin dans lequel Form Builder doit rechercher le fichier d'exécution de menu .MMX.

Application module Menu

Définition  Form Builder

Valeur par défaut

Propriété Nom de module

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Si vous n'indiquez pas de répertoire, Form Builder commence par rechercher le fichier dans le répertoire par défaut, puis dans les chemins de recherche prédéfinis. Pour plus d'informations sur les chemins de recherche, reportez-vous à la documentation Form Builder de votre plate-forme.


Nom de fichier de menu - Restrictions

•	L'extension de fichier .MMX est facultative.


Code d'option de menu - Propriété

 Toutes les propriétés

Description

Contient les commandes PL/SQL d'un élément de menu.

Application  éléments de menu

Définition  Form Builder

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

En cliquant sur le bouton Suite, vous ouvrez l'Editeur PL/SQL de l'élément de menu : vous pouvez ainsi modifier les commandes PL/SQL.


Groupe de boutons associé à l'option de menu - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du groupe de boutons auquel appartient l'élément (option) de menu Bouton d'option.

Application élément de menu

Définition  Form Builder

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Indiquez le même groupe de boutons pour tous les éléments (options) bouton qui appartiennent au même ensemble logique.


Groupe de boutons associé à l'option de menu - Restrictions

•	Les éléments (options) bouton doivent être côte à côte sur le même menu.

•	Vous ne pouvez avoir qu'un groupe de boutons par menu.


Type d'option de menu - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type d'élément (option) de menu : Simple, Case à cocher, Magique, Bouton d'option ou Séparateur. Le type détermine la façon dont l'élément (option) est affiché et s'il peut avoir une commande associée.

Définition:

éléments de menu

Définition  Form Builder

Valeur par défaut

Simple

Notes d'utilisation

Les types d'élément de menu disponibles sont les suivants :

Simple	Par défaut. Elément de menu texte standard.

Case à cocher	Indique un élément de menu booléen qui a la valeur Oui ou Non, coché ou non.

Lorsque l'utilisateur sélectionne un élément de menu Case à cocher, Form Builder inverse l'état de cet élément et exécute la commande associée à cet élément de menu, si elle existe.

Magique	Indique l'un des éléments de menu prédéfinis suivants : Couper, Copier, Coller, Effacer, Annuler, A propos de, Aide, Quitter et Fenêtre. Les éléments de menu magique sont automatiquement affichés dans le mode natif de la plate-forme sur laquelle l'application Forms est exécutée, à la position déterminée par les conventions de la plate-forme, avec attribution des raccourcis-clavier appropriés. Couper, Copier, Coller, Effacer, Fenêtre et Quitter ont des fonctionnalités intégrées fournies par Form Builder, alors que les autres éléments de menu magique demandent que des commandes leur soient associées.

Bouton d'option	Indique un élément de menu BOOLEEN qui fait partie d'un groupe de boutons d'option. Entrez un nom de groupe de boutons d'option dans le champ de propriété Groupe de boutons. Il n'est pas possible de sélectionner simultanément plusieurs éléments de menu Bouton d'option dans un groupe.

Lorsque l'utilisateur sélectionne un élément de menu Bouton d'option, Form Builder inverse l'état de sélection de l'élément et exécute sa commande, si elle existe.

Séparateur	Trait ou autre élément esthétique. Vous indiquez un élément de menu Séparateur pour séparer d'autres éléments du menu. Un élément de menu Séparateur ne peut pas être sélectionné, et ne peut donc pas avoir de commande associée.

•	Vous pouvez utiliser GET_MENU_ITEM_PROPERTY et SET_MENU_ITEM_PROPERTY pour lire et définir l'état des éléments de menu Bouton d'option et Case à cocher.

•	Les éléments de menu magique Couper, Copier, Effacer et Coller sont automatiquement activés et désactivés par Form Builder. Vous pouvez également utiliser GET_MENU_ITEM_PROPERTY et SET_MENU_ITEM_PROPERTY pour lire et définir par programme les éléments de menu magique, mais le résultat de la désactivation de ces éléments dépendra du comportement de la plate-forme native.


Type d'option de menu - Restrictions

Le menu de niveau supérieur doit uniquement avoir des éléments (options) de menu de type Magique ou Simple.


Module Menu - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du menu à utiliser avec cette application Forms. Lorsque cette propriété est définie à Par défaut, Form Builder exécute l'application Forms avec le menu par défaut incorporé dans chaque application Forms. Si cette propriété est laissée à NULL, Form Builder exécute l'application Forms sans aucun menu.

Lorsqu'une valeur autre que Par Défaut ou Null est indiquée, la propriété Source du menu détermine comment le paramètre de la propriété Module Menu est interprété :

•	Lorsque la propriété Source du menu est activée, la propriété Module Menu indique le nom du fichier d'exécution de menu .MMX que Form Builder doit utiliser avec cette application Forms.

•	Lorsque la propriété Source du menu est désactivée, la propriété Module Menu indique le nom du module Menu dans la base de données que Form Builder doit interroger, lors du démarrage de l'application Forms, pour connaître le nom du fichier d'exécution de menu .MMX à utiliser avec cette application Forms.

Application module Application Forms

Définition  Form Builder

Valeur par défaut

Par défaut indiquant que Form Builder doit exécuter l'application Forms avec le menu d'application Forms par défaut.

Obligatoire/Facultatif facultatif


Rôle associé au menu - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le rôle autorisé que Form Builder doit utiliser pour exécuter le menu. Lorsque cette propriété est indiquée, Form Builder exécute le menu indiqué comme si l'utilisateur était membre du rôle autorisé indiqué.

Application module Application Forms

Définition  Form Builder

Obligatoire/Facultatif facultatif

Notes d'utilisation

La propriété Rôle associé au menu est incluse uniquement pour des raisons de compatibilité avec les précédentes versions. Son utilisation n'est pas conseillée dans les applications en cours.

Dans les versions précédentes de Form Builder, la propriété Rôle associé au menu permettait aux programmeurs de tester un menu en créant un rôle maître qui avait accès à tous les éléments du menu, puis en exécutant le menu sous ce rôle. Vous pouvez obtenir le même résultat en désactivant la propriété Sécurité du module Menu. Lorsque cette propriété est désactivée, tous les utilisateurs ont accès à tous les éléments de menu, et vous n'avez pas besoin d'être membre d'un rôle particulier pour tester votre application.


Source de menu - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer l'emplacement du fichier d'exécution .MMX lorsque vous attachez un menu personnalisé à un module Application Forms. Form Builder charge le fichier .MMX lors du démarrage de l'application Forms.

Application module Application Forms

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif facultatif

Notes d'utilisation

La définition de la propriété Source du menu vous permet d'indiquer l'emplacement du fichier d'exécution de menu .MMX soit par référence directe, soit par consultation de la base de données. Dans la plupart des cas, vous voudrez utiliser la référence directe au système de fichiers. La consultation de la base de données est incluse pour des raisons de compatibilité avec les versions précédentes.

Référence directe	Pour faire référence directement au fichier .MMX, activez la propriété Source du menu, puis entrez le chemin/nom du fichier .MMX dans le champ Module Menu.
Consultation de base de données	Pour faire référence au menu par consultation de la base de données, désactivez la propriété Source du menu, puis entrez le nom du Module Menu stocké dans la base de données. Au démarrage de l'application Forms, Form Builder interroge la définition du module Menu à la recherche du nom du fichier d'exécution .MMX dont il a besoin. (Le Nom de fichier de menu et le Répertoire de menu du module Menu définissent le chemin d'accès au fichier d'exécution .MMX dans le système de fichiers.)  Lorsque l'application Forms est chargée lors de l'exécution, Form Builder localise le fichier .MMX en interrogeant la base de données pour consulter le pointeur du fichier .MMX défini par les propriétés Nom de fichier de menu et Répertoire de menu du module Menu.
Les paramètres de propriétés et les conditions de base de données nécessaires pour le rattachement d'un menu à une application Forms par référence directe ou par consultation de la base de données sont résumés ci-après :

Condition ou Propriété	Référence directe	Consultation de base de données
Propriété module Application Forms : "Source du menu"	Oui	Non
Propriété module Application Forms : "Module Menu"	Nom du fichier d'exécution .MMX	Nom du document de conception de menu .MMB dans la base de données
Propriété module Menu: "Répertoire de menu/Fichier de menu"	n/a	Chemin/nom du fichier .MMX dans le système de fichiers
Connexion à la base de données	Facultatif	Obligatoire lors du démarrage de l'application Forms
Emplacement du menu .MMB lors du chargement	n/a	Doit être stocké dans la base de données
Les schémas suivants comparent l'utilisation de la référence directe et de la consultation de la base de données lors de l'attachement d'un menu personnalisé à une application Forms.


Type de menu - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type d'affichage de menu que Form Builder doit utiliser pour exécuter le menu personnalisé indiqué par la propriété Module Menu. Les options d'affichage sont Déroulant ou Barre.

Application module Application Forms

Définition  Form Builder

Valeur par défaut

Déroulant

Obligatoire/Facultatif facultatif


Type de menu - Restrictions

Cette propriété n'est pas valide lorsque la propriété Module Menu est définie à PAR DEFAUT. (Le menu par défaut ne s'exécute qu'en mode d'affichage déroulant.)


Message - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer le message qui doit s'afficher dans une alerte.

Application alerte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

SET_ALERT_PROPERTY

Obligatoire/Facultatif facultatif


Message - Restrictions

Le message ne peut pas avoir plus de 200 caractères. Notez cependant que plusieurs facteurs affectent le nombre maximum de caractères affichés, y compris la police choisie et les limitations du gestionnaire de fenêtres runtime.


Réduction autorisée - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer qu'une fenêtre peut être icônisée dans les gestionnaires de fenêtres qui supportent cette fonction.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif facultatif


Réduction autorisée - Restrictions

Cette propriété ne peut pas être définie pour une fenêtre principale, car celle-ci est toujours icônifiable.


Titre réduit - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la chaîne de texte qui devra apparaître sous une fenêtre icônifiée.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif facultatif


Titre réduit - Restrictions

Cette propriété ne s'applique que lorsque la propriété Réduction autorisée est activée.


Modale - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si une fenêtre doit être modale. Les fenêtres modales requièrent qu'un utilisateur ferme la fenêtre avant de traiter toute interaction d'un autre utilisateur.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Non


Modale - Restrictions

•	Lorsque la propriété Modale est activée, les propriétés de fenêtre qui ne sont pas prises en compte sont les suivantes :

• Fermeture autorisée	• Dimensionnement autorisé
• Nom de fichier d'icône	• Titre réduit
• Réduction autorisée	• Menu hérité
• Déplacement autorisé	• Agrandissement autorisé
• Afficher la barre de défilement verticale/horizontale


Module_NLS_Lang - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la valeur complète de la variable d'environnement NLS_LANG définie pour l'application Forms, pour le support de langue nationale. MODULE_NLS_LANG équivaut à chaîner les propriétés suivantes :

•	MODULE_NLS_LANGUAGE (langue uniquement)

•	MODULE_NLS_TERRITORY (territoire uniquement)

•	MODULE_NLS_CHARACTER_SET (jeu de caractères uniquement)

S'applique à application Forms

Définition non définissable à partir de Form Builder. Définie au niveau de votre système d'exploitation.

Reportez-vous aux procédures internes suivantes :

GET_FORM_PROPERTY

Valeur par défaut

Généralement "America_American.WE8ISO8859P1", mais toutes les valeurs par défaut peuvent être propres au port utilisé.


Rôles du module Menu - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les rôles de base de données disponibles pour les éléments de ce module Menu.

Application module Menu

Définition  Form Builder

Obligatoire/Facultatif facultatif

Notes d'utilisation

Utilisez Rôles associés au module Menu pour construire toute la liste des rôles permettant d'accéder à ce module Menu, puis utilisez Options de menu - autorisation d'accès pour indiquer les rôles qui doivent avoir accès à un élément de menu spécifique.


Navigation à la souris - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si Form Builder doit passer à l'élément lorsque l'utilisateur active cet élément à la souris.

Application bouton, case à cocher, élément liste, groupe de boutons d'option

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Notes d'utilisation

Lorsque la propriété Navigation à la souris est désactivée, Form Builder ne passe pas à l'élément lorsque l'utilisateur active cet élément à l'aide de la souris. Par exemple, cliquer sur un bouton ou une case à cocher n'est pas considéré comme un événement de navigation. Form Builder active les déclencheurs définis pour le bouton ou la case à cocher (comme When-Button-Pressed), mais le point d'insertion reste dans l'élément en cours.

Lorsque la propriété Navigation à la souris est activée, Form Builder passe à l'élément, en activant au passage les déclencheurs de validation et de navigation appropriés.


Navigation à la souris - Restrictions

Cette propriété ne s'applique qu'aux environnements pilotés par souris.


Limite de navigation à la souris - Propriété

 Toutes les propriétés

Description

Permet d'indiquer jusqu'où un utilisateur peut naviguer à la souris en dehors de l'élément en cours. Cette propriété peut être définie aux options suivantes :

Application Forms	(Valeur par défaut) Permet à l'utilisateur de passer à tout élément de l'application Forms en cours.

Bloc	Permet à l'utilisateur de ne passer qu'aux éléments qui se trouvent dans le bloc en cours.

Enregistrement	Permet à l'utilisateur de ne passer qu'aux éléments qui sont dans l'enregistrement en cours.

Elément	Empêche les utilisateurs de sortir de l'élément en cours. Cette option les empêche complètement de naviguer à la souris.

S'applique à application Forms

Définition  Form Builder

Valeur par défaut

Application Forms


Déplacement autorisé - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si la fenêtre peut être déplacée ou non.

Les fenêtres peuvent être déplacées sur l'écran par l'utilisateur ou par programme, au moyen du sous-programme intégré approprié.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif facultatif

Notes d'utilisation

En général, il est préférable que le déplacement des fenêtres soit toujours autorisé.


Déplacement autorisé - Restrictions

Cette propriété ne peut pas être définie à NON pour la fenêtre ROOT_WINDOW. Le déplacement d'une fenêtre principale est toujours autorisé.


Multiligne - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet de déterminer si l'élément texte est une région d'édition monoligne ou multiligne.

Application élément texte

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

Non

Notes d'utilisation

L'activation de la propriété Multiligne permet à un élément texte de stocker plusieurs lignes de texte, mais ne l'agrandit pas automatiquement suffisamment pour afficher plusieurs lignes. C'est vous qui devez définir les propriétés Largeur, Hauteur, Taille de police et Longueur maximum pour être certain que l'affichage comprendra bien le nombre de lignes et de caractères voulu.

Monoligne	Appuyer sur la touche de retour chariot pendant que le point d'insertion est dans un élément texte monoligne déclenche une fonction [Elément suivant].

Multiligne	Appuyer sur la touche de retour chariot pendant que le point d'insertion est dans un élément texte multiligne commence une nouvelle ligne dans l'élément.


Multiligne - Restrictions

Cette propriété n'est valide que pour les éléments texte de type CHAR, ALPHA ou LONG.


Sélection multiple - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si plusieurs nœuds peuvent être sélectionnés en même temps. Si cette propriété est définie à FALSE, toute tentative de sélection d'un second nœud désélectionne le premier, ne laissant que le second sélectionné.

Application  arborescence

Définition  Form Builder

Valeur par défaut

Faux

Obligatoire/Facultatif  obligatoire


Nom - Propriété

 Exemples	   Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom interne de l'objet. Chaque objet doit avoir un nom valide, conforme aux conventions d'appellation d'Oracle.

Application tous les objets

Définition  Form Builder

Valeur par défaut

CLASSE_OBJET_N, où CLASSE_OBJET est le type de l'objet et N le prochain numéro disponible dans le document ; par exemple, BLOC5 ou EDITEUR3.

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Pour les éléments de menu et les boutons d'option, la propriété Nom a des caractéristiques propres :

•	La propriété Nom indique un identificateur interne qui ne s'affiche pas lors de l'exécution.

•	La propriété Nom est utilisée pour faire référence à l'élément de menu ou au bouton d'option dans le code PL/SQL.

•	La propriété Libellé indique le libellé de texte qui est affiché pour l'élément de menu ou le bouton d'option en cours.

Les Restrictions applicables aux paramètres de substitution de menu sont les suivantes :

•	Le paramètre de substitution est limité à un identificateur de deux caractères.

•	Il doit être alphanumérique.

•	Il doit commencer par un caractère alphabétique.

•	Lors d'une référence au paramètre d'une ligne de commande de menu, le paramètre doit être précédé d'une perluète (&RN)

•	Dans une référence PL/SQL, le paramètre doit être précédé d'un signe deux-points (:SS).


Nom - Restrictions

•	Cette propriété peut avoir jusqu'à 30 caractères.

•	Elle doit commencer par un caractère alphabétique.

•	Elle peut contenir des caractères alphabétiques, des caractères numériques et les caractères spéciaux $, #, @ et _ (soulignement).

•	La distinction maj/min n'est pas prise en compte.

•	Elle doit identifier l'objet de manière unique :

•	Les noms d'élément doivent être uniques parmi les noms d'élément du même bloc.

•	Les noms de relation doivent être uniques parmi les relations qui ont le même bloc maître.

•	Elle ne peut pas être définie pour la fenêtre principale.


Nom - Exemples

Exemple

NOMMESSAGERIE, ADRESSE1, TEL_1


Type de navigation - Propriété

  Rubriques connexes	 Toutes les catégories

Description

Permet d'indiquer comment une opération Elément suivant ou Elément précédent est traitée lorsque le point d'insertion se trouve, respectivement, dans le dernier élément de navigation autorisée ou le premier élément de navigation autorisée du bloc.

Application bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Même enregistrement

Notes d'utilisation

Les options valides pour cette propriété sont les suivantes :

Même enregistrement	Type de navigation par défaut. Une opération Elément suivant à partir du dernier élément de navigation autorisée du bloc fait passer le point d'insertion au premier élément de navigation autorisée du bloc, dans le même enregistrement.

Changement d'enregistrement	Une opération Elément suivant à partir du dernier élément de navigation autorisée du bloc fait passer le point d'insertion au premier élément de navigation autorisée du bloc, dans l'enregistrement suivant. Si l'enregistrement en cours est le dernier du bloc et s'il n'y a pas d'interrogation ouverte, Form Builder crée un nouvel enregistrement. S'il y a une interrogation ouverte dans le bloc (le bloc contient des enregistrements interrogés), Form Builder lit les enregistrements supplémentaires nécessaires.

Changement de bloc de données	Une opération Elément suivant à partir du dernier élément de navigation autorisée du bloc fait passer le point d'insertion au premier élément de navigation autorisée du premier enregistrement du bloc suivant. De même, une opération Elément précédent à partir du premier élément de navigation autorisée du bloc fait passer le point d'insertion au dernier élément de l'enregistrement en cours du bloc précédent. Les propriétés Bloc de navigation suivant et Bloc de navigation précédent peuvent être utilisées pour redéfinir le bloc de navigation "suivant" ou "précédent" d'un bloc en cours.


Bloc de navigation suivant - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du bloc défini comme "bloc de navigation suivant" par rapport au bloc en cours. Par défaut, ce bloc est celui ayant le numéro de séquence suivant dans l'application Forms, comme indiqué par l'ordre des blocs figurant dans le Navigateur d'objet. Cependant, vous pouvez utiliser cette propriété pour redéfinir le bloc suivant pour les opérations de navigation.

Application bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Nom du bloc ayant le numéro de séquence suivant, comme indiqué par l'ordre des blocs dans le Navigateur d'objet.

Obligatoire/Facultatif facultatif

Notes d'utilisation

La définition de cette propriété ne modifie pas la valeur de la propriété Next_Block.


Elément de navigation suivant - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de l'élément défini comme "élément de navigation suivant" par rapport à l'élément en cours. Par défaut, cet élément est celui ayant le numéro de séquence suivant, comme indiqué par l'ordre des éléments dans le Navigateur d'objet. Cependant, vous pouvez utiliser cette propriété pour redéfinir l'élément suivant pour les opérations de navigation.

Application élément

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

NULL. NULL indique la séquence par défaut, c'est-à-dire le nom de l'élément ayant le numéro de séquence suivant.


Elément de navigation suivant - Restrictions

L'élément défini comme Elément de navigation suivant doit être dans le même bloc que l'élément en cours.


Next_Block - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du bloc ayant le numéro de séquence suivant dans l'application Forms, comme indiqué par l'ordre des blocs figurant dans le Navigateur d'objet.

Application bloc

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Notes d'utilisation

•	Vous pouvez accéder par programme à tous les blocs d'une application Forms en utilisant GET_BLOCK_PROPERTY pour déterminer les valeurs de First_Block et de Next_Block.

•	La valeur de Next_Block est NULL lorsqu'il n'y a pas de bloc ayant un numéro de séquence supérieur à celui du bloc en cours.

•	La définition de la propriété Bloc de navigation suivant est sans effet sur la valeur de Next_Block.


Next_Item - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de l'élément ayant le numéro de séquence suivant dans le bloc, comme indiqué par l'ordre des éléments dans le Navigateur d'objet.

Application élément

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY


Next_Detail_Relation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet de retourner le nom de la relation dont le bloc détail est identique à celui de la relation indiquée. Si cette relation n'existe pas, retourne NULL.

Application relation

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_RELATION_PROPERTY

Notes d'utilisation

Utilisez cette propriété avec la propriété FIRST_DETAIL_RELATION pour balayer une liste de relations pour un bloc maître donné.


Next_Master_Relation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet de retourner le nom de la relation suivante dont le bloc maître est identique à celui de la relation indiquée. Si cette relation n'existe pas, retourne NULL.

Application relation

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_RELATION_PROPERTY

Notes d'utilisation

Utilisez cette propriété avec la propriété FIRST_MASTER_RELATION pour balayer une liste de relations pour un bloc maître donné.


Nombre d'éléments affiché - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nombre d'instances affichées pour l'élément lorsque celui-ci est dans un bloc multi-enregistrement.

La définition de Nombre d'éléments affiché à une valeur supérieure à 0 remplace la propriété de bloc Nombre d'enregistrements affiché.

Application élément

Définition  Form Builder

Valeur par défaut

Zéro. Zéro indique que l'élément doit afficher le nombre d'instances indiqué par la propriété de bloc Nombre d'enregistrements affiché.

Obligatoire/Facultatif facultatif

Notes d'utilisation

Utilisez Nombre d'éléments affiché pour créer un bouton, un graphique, un élément OLE, une image, un contrôle VBX (dans Microsoft Windows 16 bits) ou un contrôle ActiveX (dans Windows 32 bits) faisant partie d'un bloc multi-enregistrement. Par exemple, si Nombre d'enregistrements affiché est défini à 5 pour créer un bloc multi-enregistrement et si vous créez un bouton, par défaut vous obtiendrez 5 boutons, un par enregistrement. Pour n'obtenir qu'un bouton, définissez Nombre d'éléments affiché à 1.


Nombre d'éléments affiché - Restrictions

La valeur de Nombre d'éléments affiché doit être inférieure ou égale à la valeur de la propriété de bloc Nombre d'enregistrements affiché.


Nombre d'enregistrements en tampon - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer le nombre minimum d'enregistrements stockés en mémoire tampon pendant une interrogation du bloc.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL, pour indiquer la valeur minimum autorisée (la valeur définie pour la propriété Nombre d'enregistrements affiché, plus une constante de 3).

Obligatoire/Facultatif facultatif

Notes d'utilisation

•	Form Builder stocke dans un fichier temporaire sur disque les enregistrements dépassant le nombre maximum.

•	Améliorez la vitesse de traitement en augmentant le nombre d'enregistrements mis en mémoire tampon.

•	Gagnez de la place en mémoire en diminuant le nombre d'enregistrements mis en mémoire tampon. Cette opération peut cependant ralentir les entrées-sorties sur disque.

•	Si vous estimez que le bloc risque de contenir un grand nombre d'enregistrements, à la suite soit d'une interrogation, soit de la saisie d'un gros volume de données, prévoyez d'augmenter la valeur de Nombre d'enregistrements en tampon pour améliorer les performances.

•	Si vous pensez extraire des éléments importants (éléments image par exemple), prévoyez de diminuer la valeur indiquée par la propriété Nombre d'enregistrements en tampon, en raison de la place que chaque élément mis en mémoire tampon peut occuper.


Nombre d'enregistrements en tampon - Restrictions

•	Si vous indiquez une valeur inférieure au minimum, Form Builder retourne une erreur lorsque vous tentez d'accepter la valeur.


Nombre d'enregistrements affiché - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nombre maximum d'enregistrements que le bloc pourra afficher à un moment donné. La valeur par défaut est 1 enregistrement. Si vous donnez à la propriété Nombre d'enregistrements affiché une valeur supérieure à 1, vous créez un bloc multi-enregistrement.

Application bloc

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Valeur par défaut

1

Obligatoire/Facultatif  obligatoire


Type d'activation OLE - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer l'événement qui activera l'élément contenant OLE.

Application conteneur OLE

Définition  Form Builder

Valeur par défaut

Cliquer deux fois

Notes d'utilisation

Les options valides pour cette propriété sont les suivantes :

Cliquer deux fois	Type d'activation OLE par défaut. Cliquer deux fois dans l'objet OLE active cet objet.

Naviguer sur	Naviguer jusqu'à l'objet OLE active cet objet.

Manuel	Sélectionner Editer ou Ouvrir dans le sous-menu Objet du menu instantané OLE active un objet OLE. La propriété Afficher menu OLE instantané doit être activée et l'élément de menu Objet doit être défini à Affiché et Activé. Le menu OLE instantané est accessible lorsque le curseur de la souris est sur l'objet OLE et que l'utilisateur appuie sur le bouton droit de la souris.

Si la propriété Afficher menu OLE instantané est activée et si l'élément de menu Objet est Affiché et Activé, il est également possible d'activer manuellement l'objet OLE par le menu instantané OLE lorsque le Type d'activation OLE est Double clic ou Point d'insertion.


Type d'activation OLE - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


Classe OLE - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la classe d'objets OLE pouvant résider dans un conteneur OLE. Les options valides pour cette propriété sont les suivantes :

NULL	Classe OLE par défaut. Vous pouvez insérer dans un conteneur OLE tout type de classe d'objets OLE indiqué dans la base de données d'enregistrement.

Autre que NULL	Seuls les objets OLE de la classe indiquée peuvent être insérés, lors de l'exécution, dans un conteneur OLE. Les classes d'objets OLE pouvant être sélectionnées dépendent des informations figurant dans la base de données d'enregistrement. Le contenu de cette base de données est déterminé par les applications serveur OLE installées sur votre ordinateur.

Application conteneur OLE

Définition  Form Builder

Valeur par défaut

NULL

Notes d'utilisation

Sélectionnez une classe spécifique si vous voulez créer une application permettant aux utilisateurs de modifier l'objet OLE en cours dans le conteneur OLE, tout en limitant les utilisateurs à la création d'objets OLE à partir d'une classe particulière.


Classe OLE - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


Activation sur objets incorporés OLE

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si l'activation sur objets incorporés OLE est utilisée pour l'édition des objets OLE incorporés. Les options valides pour cette propriété sont les suivantes :

OUI	Met en fonction l'activation sur objets incorporés OLE. Cette activation est utilisée pour éditer des objets OLE incorporés ; les objets liés sont activés par activation externe.

NON	Met hors fonction l'activation sur objets incorporés OLE et met en fonction l'activation externe. L'activation externe est utilisée pour éditer des objets OLE incorporés ou liés.

Application conteneur OLE

Définition  Form Builder

Valeur par défaut

NON


Activation sur objets incorporés OLE - Restrictions

•	Cette propriété n'est valide que sous Microsoft Windows et Macintosh.


OLE Inside-Out Support

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le serveur OLE de l'objet incorporé permet le support des objets inside-out pendant l'activation sur objets incorporés. L'activation inside-out permet à plusieurs objets incorporés d'avoir une fenêtre d'édition active dans un conteneur OLE. Les options valides pour cette propriété sont les suivantes :

OUI	Active le support inside-out pour les objets incorporés dont la propriété Activation sur objets incorporés OLE est en fonction.

NON	Désactive le support inside-out pour les objets incorporés dont la propriété Activation sur objets incorporés OLE est en fonction.

Application conteneur OLE

Définition  Form Builder

Valeur par défaut

YES


OLE Inside-Out Support restrictions

•	Cette propriété n'est valide que sous Microsoft Windows et Macintosh.


Options de menu OLE instantané - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si les commandes du menu OLE instantané doivent être affichées et activées lorsque le curseur de la souris est sur l'objet OLE et que l'utilisateur appuie sur le bouton droit de la souris. Les commandes de menu OLE instantané manipulent des objets OLE. Ces commandes et leurs actions sont résumées ci-après :

Commande de menu OLE instantané	Action
COUPER	Coupe un objet OLE et en place le contenu dans le presse-papiers.
COPIE	Copie un objet OLE et en place le contenu dans le presse-papiers.
COLLER	Colle le contenu du presse-papiers dans un conteneur OLE.
COLLAGE SPECIAL	Colle un objet OLE du presse-papiers dans un conteneur OLE, dans un format autre que le format d'origine.
INSERER OBJET	Insère un objet OLE dans un conteneur OLE.
SUPPRIMER OBJET	Supprime un objet OLE d'un conteneur OLE.
LIAISONS	Appelle une boîte de dialogue dont les options permettent de déterminer les modes de mise à jour des liaisons, d'édition des fichiers source liés et de modification des liaisons d'un fichier source à un autre.
OBJET	Selon le serveur OLE utilisé, permet d'effectuer différentes opérations sur un objet OLE. Par exemple : ouverture, édition et conversion d'un objet OLE d'un format à un autre.
Application conteneur OLE

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Afficher et Activer à Oui pour toutes les commandes de menu

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

•	Dans Form Builder, vous pouvez définir chaque commande de menu OLE instantané de manière à afficher les caractéristiques suivantes en sélectionnant la case à cocher appropriée :

Afficher	Indique si la commande de menu sélectionnée est affichée.

Activer	Indique si une commande de menu, dont Afficher est en fonction, est activée ou désactivée. Un élément désactivé apparaît atténué ou grisé.

•	Vous pouvez non seulement définir les propriétés de commande de menu OLE instantané dans Form Builder, mais aussi définir et obtenir par programme les propriétés de commande de menu OLE instantané. Pour cela, utilisez un nom de propriété programmé qui correspond à une commande de menu. Les différentes commandes de menu OLE instantané et le nom de propriété programmé correspondant sont énumérés ci-après :

Commande de menu	Nom de propriété programmé
Couper	POPUPMENU_CUT_ITEM
Copier	POPUPMENU_COPY_ITEM
Coller	POPUPMENU_PASTE_ITEM
Collage spécial	POPUPMENU_PASTESPEC_ITEM
Insérer objet	POPUPMENU_INSOBJ_ITEM
Supprimer objet	POPUPMENU DELOBJ ITEM
Liaisons	POPUPMENU_LINKS_ITEM
Objet	POPUPMENU_OBJECT_ITEM
Vous pouvez définir par programme les propriétés de commande de menu OLE instantané à l'une des valeurs suivantes :

AFFICHE	Indique qu'une commande de menu OLE instantané est affichée et activée.

ACTIVE	Indique qu'une commande de menu OLE instantané est affichée et désactivée. Un élément désactivé apparaît atténué ou grisé.

MASQUE	Indique qu'une commande de menu OLE instantané n'est pas affichée dans le menu OLE instantané. Une commande qui n'est pas affichée n'est pas activée.

•	Vous pouvez également extraire de chacune des commandes de menu OLE instantané les valeurs suivantes :

AFFICHE	Retourne la valeur lorsqu'une commande de menu OLE instantané est affichée et activée.

ACTIVE	Retourne la valeur lorsqu'une commande de menu OLE instantané est affichée et désactivée. Un élément désactivé apparaît atténué ou grisé.

MASQUE	Retourne la valeur lorsqu'une commande de menu OLE instantané n'est pas affichée dans le menu OLE instantané. Une commande qui n'est pas affichée n'est pas activée.

NON SUPPORTE	Retourne la valeur lorsque le menu instantané OLE n'est pas pris en charge. Cette valeur a la valeur de retour de toute les plates-formes, sauf Microsoft Windows.


Options de menu OLE instantané - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


Type de redimensionnement OLE - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer le mode d'affichage d'un objet OLE dans un conteneur OLE. Les options valides pour cette propriété sont les suivantes :

DECOUPER	Type de redimensionnement OLE par défaut. Un objet OLE est découpé pour tenir dans un conteneur OLE.

ECHELLE	Un objet OLE est mis à l'échelle pour tenir dans un conteneur OLE.

INITIAL	Un conteneur OLE est redimensionné pour accepter un objet OLE uniquement lors de la création.

DYNAMIQUE	Un conteneur OLE est redimensionné pour accepter un objet OLE lorsque la taille de l'objet OLE change.

Application conteneur OLE

Définition  Form Builder

Obligatoire/Facultatif  obligatoire

Valeur par défaut

DECOUPER


Type de redimensionnement OLE - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


Aspect du contenu OLE - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le mode d'affichage d'un objet OLE dans un conteneur OLE.

Application conteneur OLE

Définition  Form Builder

Valeur par défaut

CONTENU

Notes d'utilisation

Les options valides pour cette propriété sont les suivantes :

CONTENU	Aspect du contenu OLE par défaut. Le contenu d'un objet OLE est affiché dans un conteneur OLE. Il dépend de la valeur de la propriété Type de redimensionnement OLE et peut être découpé, mis à l'échelle ou pleine taille.

ICONE	Une icône d'objet OLE est affichée dans un conteneur OLE. L'icône par défaut est celle qui représente l'application serveur OLE qui a créé l'objet OLE. Vous pouvez choisir, dans la boîte de dialogue d'insertion d'objet, l'icône à utiliser.

APERCU EN REDUCTION	Une vue réduite de l'objet OLE est affichée dans un conteneur OLE.

•	Un type d'objet OLE est enregistré dans la base de données, dans une colonne de type LONG RAW. Lorsque l'objet OLE est interrogé à partir de la base de données, assurez-vous qu'il a la même propriété Aspect du contenu OLE que l'objet OLE enregistré dans la base de données. Dans le cas contraire, l'enregistrement contenant l'objet est automatiquement VERROUILLE.


Aspect du contenu OLE - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


Type de contenu OLE - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type des objets OLE qui peuvent se trouver dans le conteneur OLE. Les options valides pour cette propriété sont les suivantes :

TOUS	Type de contenu OLE par défaut. Tout objet OLE peut être un contenu du conteneur OLE.

AUCUN	Aucun objet ne peut résider dans le conteneur OLE.

STATIQUE	Seuls les objets statiques OLE peuvent constituer le contenu du conteneur OLE. Un objet statique OLE est un "instantané" d'un objet OLE lié, dont la liaison avec sa source a été interrompue. Un objet statique OLE ne peut pas être modifié.

INCORPORE	Seul un objet incorporé OLE peut être un contenu du conteneur OLE.

LIE	Seul un objet lié OLE peut être un contenu du conteneur OLE.

Application conteneur OLE

Définition  Form Builder

Valeur par défaut

Tous


Type de contenu OLE - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


Operating_System - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du système d'exploitation en cours : Microsoft WINDOWS, WIN32COMMON, UNIX, Sun OS, MACINTOSH, VMS et HP-UX.

S'applique à application

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Notes d'utilisation

Comme la valeur retournée par cette propriété est propre à la plate-forme considérée, reportez-vous à la documentation Form Builder de votre système d'exploitation, si la plate-forme que vous utilisez n'est pas l'une de celles mentionnées ci-dessus.


Optimizer Hint - Propriété

 Toutes les propriétés

Description

Permet d'indiquer une chaîne de messages d'aide que Form Builder transmet à l'optimiseur SGBDS lors de la création des interrogations. L'utilisation de l'optimiseur peut améliorer les performances des transactions de la base de données.

Application bloc

Définition Designer, programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Restrictions

Cette propriété n'est valide que pour les applications exécutées sur le serveur Oracle7 ou Oracle8.

Notes d'utilisation

Prenons par exemple une application Forms contenant un bloc appelé BlocDept basé sur la table DEPT. Si l'utilisateur entre le critère " > 25 " pour la colonne NODEPT et exécute l'interrogation, l'instruction SELECT par défaut, générée par Form Builder pour interroger les lignes appropriées de la base de données, est :

SELECT NODEPT,NOMD,LIEU,IDLIGNE
FROM DEPT
WHERE (NODEPT > 25)

Le programmeur peut utiliser SET_BLOCK_PROPERTY pour définir la propriété Message d'aide d'optimisation de manière à demander que le serveur Oracle7 tente d'optimiser l'instruction SQL pour obtenir le meilleur temps de réponse possible :

Set_Block_Property('BlocDept',OPTIMIZER_HINT,'PREMIERES_LIGNES');
SELECT /*+ PREMIERES_LIGNES */ NODEPT,NOMD,LIEU,IDLIGNES
FROM DEPT
WHERE (NODEPT > 25)

Pour plus d'informations sur l'utilisation de cette fonction avec Oracle7, reportez-vous aux sources suivantes :

•	Oracle7 Server Application Developer's Guide, Chapitre 5, "Tuning SQL Statements"

•	Oracle7 Server Concepts Manual, Chapitre 13, "The Optimizer"


Order By - Propriété

Description

Voir CLAUSE WHERE/CLAUSE ORDER BY.


Autres paramètres d'état - Propriété

 Toutes les propriétés

Description

Liste de paramètres de type <mot-clé>=<valeur>, à inclure dans l'exécution de l'état. Pour obtenir la liste des paramètres valides, reportez-vous à la liste des mots-clés dans l'aide en ligne de Report Builder.

Application  états Report Builder

Définition  Form Builder

Valeur par défaut

blanc

Obligatoire/Facultatif facultatif

Notes d'utilisation :

Lors que vous transmettez des valeurs de paramètres multi-mots à la clause Where, celle-ci doit être mise entre apostrophes. Lorsqu'un nom apparaît dans un tel paramètre, ce nom doit être mis entre apostrophes doubles . Par exemple, pour transmettre la valeur de paramètre where ename = ’MILLER’, vous devez la coder comme suit :

‘where ename = ‘‘MILLER’’’


Output_Date/Datetime_Format - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Contient le masque de format de date ou date/heure de sortie actuel établi par la variable d'environnement FORMSnn_OUTPUT_DATE_FORMAT ou FORMSnn_OUTPUT_DATETIME_FORMAT. L'application Forms utilise ces masques de format comme valeurs par défaut lors du traitement des sorties d'exécution.

Il y a deux propriétés différentes : Output_Date_Format et Output_Datetime_Format.

S'applique à  application

Définition  non définissable depuis Form Builder.

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY


Type de données de paramètre - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type des valeurs que Form Builder accepte en entrée et comment Form Builder affiche ces valeurs.

Application case à cocher, élément affiché, élément de liste, groupe de boutons d'option, élément texte, élément personnalisé, paramètre d'application Forms

Remarque : Les types de données ne s'appliquent pas tous à chaque type d'élément.

Définition  Form Builder

Notes d'utilisation

•	Seuls les types standard CHAR, DATE, LONG et NUMBER sont conseillés. Ces types, basés sur des types de données ORACLE natifs, offrent des performances et une portabilité optimales des applications. Les autres types de données, valides uniquement pour des éléments texte, sont inclus essentiellement pour des raisons de compatibilité avec les versions précédentes. Vous pouvez obtenir les mêmes caractéristiques de mise en forme en utilisant un type de données standard avec un masque de format approprié.

•	Le type de données d'un élément de table de base doit être compatible avec le type de données de la colonne de la base de données correspondante. Utilisez le type de données CHAR pour les éléments qui correspondent aux colonnes de base de données ORACLE VARCHAR2.

•	Ne créez pas d'éléments correspondant aux colonnes CHAR de la base de données si ces éléments doivent être utilisés dans des interrogations ou comme condition de jointure d'une relation maître-détail ; utilisez à la place les colonnes de base de données VARCHAR2.

•	Form Builder exécute sur les éléments les opérations suivantes, le cas échéant :

•	suppression des blancs de fin ;

•	changement de l'élément en NULL, s'il ne se compose que de blancs ;

•	suppression des zéros en tête si le type de données est NUMBER, INT, MONEY, RINT, RMONEY ou RNUMBER (à moins que le masque de format de l'élément n'autorise les zéros en tête).

•	La propriété Type de données de paramètre du paramètre d'application Forms supporte les types de données CHAR, DATE et NUMBER.

ALPHA

Contient toute combinaison de caractères alphabétiques (en majuscules et/ou en minuscules)

Valeur par défaut	Blancs
Exemple	"Employé", "DUPONT"
CHAR

Supporte VARCHAR2 jusqu'à 2000 caractères. Contient toute combinaison des caractères suivants :

•	caractères alphabétiques (en minuscules et/ou majuscules)

•	chiffres

•	blancs

•	caractères spéciaux ($, #, @ et _)

Valeur par défaut	Blancs
Exemple	"100 rue du Chemin Vert", "CHAR_EXAMPLE_2"
DATE

Contient une date valide. Vous pouvez afficher un élément de type DATE dans tout autre format valide en modifiant le masque de format de l'élément.

Valeur par défaut	JJ-MOI-AA
Restrictions	Fait référence à une colonne de type DATE de la base de données et est traité comme une date réelle, et non comme une chaîne de caractères.
Le type de données DATE contient un composant d'heure ZERO	.
Exemple	01-JAN-92
DATETIME

Contient une date et une heure valides.

Valeur par défaut	JJ-MOI-AA HH24:MI[:SS]
Restrictions	Fait référence à une colonne de type DATE de la base de données et est traité comme une date réelle, et non comme une chaîne de caractères.
	Le type de données DATETIME contient une année à quatre chiffres. Si l'année d'un type de données DATETIME est entrée sous la forme de deux chiffres, l'année est interprétée comme 00AA.
Exemple	31-DEC-88 23:59:59
EDATE

Contient une date européenne valide.

Valeur par défaut	JJ/MM/AA
Restrictions	Type de données V3.
	Doit faire référence à une colonne de type NUMBER de la base de données.
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données DATE.
	Appliquez un masque de format pour obtenir le format de date européen.
	Faites référence à une colonne de type DATE de la base de données, et non à une colonne de type NUMBER.
Exemple	23/10/92 (23 octobre 1992)
	01/06/93 (1er juin 1993)
INT

Contient un entier (signé ou non signé).

Valeur par défaut	0
Exemple	1, 100, -1000
JDATE

Contient une date de calendrier julien valide.

Valeur par défaut	MM/JJ/AA
Restrictions	Type de données V3.
	Doit faire référence à une colonne de type NUMBER de la base de données.
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données DATE.
	Appliquez un masque de format pour obtenir le format de date de calendrier julien.
	Faites référence à une colonne de type DATE de la base de données, et non à une colonne de type NUMBER.
Exemple	10/23/92 (23 octobre 1992)
	01.01.97 (1er juin 1993)
LONG

Contient toute combinaison d'un maximum de 65 534 caractères. Stockée dans ORACLE sous la forme de chaînes de caractères de longueur variable.

Valeur par défaut	Blancs
Restrictions	Non autorisée comme référence dans les clauses WHERE ou ORDER BY d'une instruction SELECT.
	Les éléments de type LONG ne peuvent pas être interrogés en mode Saisie interrogation.
MONEY

Contient une valeur numérique, signée ou non, représentant une somme d'argent.

Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes. Utilisez à la place un masque de format comportant une valeur numérique pour obtenir le même résultat.
Exemple	10.95, 0.99, -15.47
NUMBER

Contient des nombres, en virgule flottante ou fixe, compris entre 1.0x10-129 et 9.99x10124, et ayant une ou plusieurs des caractéristiques suivantes :

•	signé

•	non signé

•	contenant une décimale

•	en notation classique

•	en notation scientifique

•	jusqu'à 38 chiffres de précision

Les éléments de type NUMBER font référence aux colonnes de type NUMBER de la base de données ; Form Builder traite leurs valeurs comme des nombres réels, et non comme des chaînes de caractères.

Valeur par défaut	0
Restrictions	Un élément numérique ne peut pas contenir de virgule (par exemple, 99,999). Utilisez un masque de format.
Exemple	-1, 1, 1.01, 10.001, 1.85E3
RINT

Affiche les valeurs entières justifiées à droite.

Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données de type NUMBER.
	Appliquez un masque de format tel que 999 pour obtenir un nombre justifié à droite.
RMONEY

Affiche des valeurs de type MONEY, justifiées à droite.

Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données NUMBER.
	Appliquez un masque de format tel que $999.99 pour obtenir un nombre justifié à droite.
RNUMBER

Affiche des valeurs de type NUMBER, justifiées à droite.

Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données de type NUMBER.
	Appliquez un masque de format tel que 999.99 pour obtenir un nombre justifié à droite.
TIME

Contient des valeurs numériques et des signes deux-points qui font référence à des colonnes de type NUMBER de la base de données.

Valeur par défaut	HH24:MI[:SS]
Restrictions	Type de données V3
	Inclus pour des raisons de compatibilité avec les versions précédentes.
	A la place, il est conseillé d'utiliser le type de données DATETIME.
	Appliquez un masque de format pour n'obtenir que l'heure.
	Non autorisé comme référence à des colonnes DATE dans la base de données.
Exemple	:10:23:05
	21:07:13


Valeur initiale de paramètre (paramètre dapplication Forms) - Propriété
Valeur initiale de paramètre (paramètre d'application Forms) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la valeur que Form Builder attribue au paramètre au démarrage de l'application Forms.

Application paramètre d'application Forms

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif

Notes d'utilisation

Toute constante valide est une valeur valide pour cette propriété.


Valeur initiale de paramètre de menu (paramètre de substitution de menu) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la valeur que Form Builder attribue au paramètre au démarrage de l'application Forms.

Définition  Form Builder

Obligatoire/Facultatif  obligatoire


Mot de passe - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le mot de passe de l'utilisateur en cours.

S'applique à application

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Notes d'utilisation

La propriété Mot de passe ne retourne que le mot de passe. Si vous voulez également une chaîne de connexion, reportez-vous à la propriété Connect_String.


PLSQL_Date_Format - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Cette propriété définit le masque de format utilisé dans la conversion des valeurs de date lors de l'exécution de PL/SQL (pour un déclencheur, ou la fonction ou procédure appelée) dans Forms, dans les cas suivants :

•	évaluation de TO_DATE (valeur_char) ou de TO_DATE (valeur_date) sans masque de format explicite

•	attribution d'une valeur CHAR à une variable de date, ou vice versa.

Application  intégralité d'une application Forms (valeur globale)

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_APPLICATION_PROPERTY built-in

•	SET_APPLICATION_PROPERTY built-in

Obligatoire/Facultatif  facultatif. Cependant, il est FORTEMENT RECOMMANDE, pour une nouvelle application, de définir cette propriété à un masque de format contenant des informations complètes sur le siècle et sur l'heure. Il est également recommandé que ce masque de format soit identique à celui indiqué dans la propriété Builtin_Date_Format.

Valeur par défaut

Comme indiqué ci-dessus, il est fortement recommandé de définir de manière explicite cette valeur pour une nouvelle application. Si vous ne le faites pas, la valeur par défaut utilisée est JJ-MOI-AA. (Cette valeur est utilisée pour assurer la compatibilité avec la version 4.5 et les versions précédentes.)

Compatibilité avec les autres produits Oracle

Dans les produits Oracle autres que Form Builder, PL/SQL version 2 n'utilise pas nécessairement le masque de format de date par défaut JJ-MOI-AA. A la place, il utilise généralement un masque de format dérivé de l'environnement NLS actuel. Si, pour une raison particulière, vous voulez que votre application Forms adopte le même comportement, utilisez la propriété d'application USER_NLS_DATE_FORMAT pour obtenir le masque de format NLS actuel, puis attribuez ce masque à la propriété PLSQL_DATE_FORMAT de l'application.


PL/SQL Library Location property
Emplacement de la bibliothèque PL/SQL - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Indique l'emplacement de la bibliothèque PL/SQL attachée.

Cette propriété est définie lorsque vous attachez une bibliothèque PL/SQL à un module Forms. Si vous avez demandé que le chemin d'accès au répertoire soit conservé, cette propriété correspond au chemin d'accès complet de la bibliothèque. Si vous avez demandé que le chemin d'accès au répertoire soit supprimé, cette propriété correspond simplement au nom de la bibliothèque.

Cette propriété n'est affichée que pour votre information. Vous ne pouvez pas la définir ni la modifier au moyen de la Palette de propriétés.

Application  bibliothèques PL/SQL

Définition  Form Builder

Obligatoire/Facultatif  affichage seulement.

Valeur par défaut  aucune


Source de la bibliothèque PL/SQL - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Cette propriété est définie lorsque vous attachez une bibliothèque PL/SQL à un module Forms. Elle indique la source de cette bibliothèque (Fichier ou Base de données).

Cette propriété n'est affichée que pour votre information. Vous ne pouvez pas la définir ni la modifier au moyen de la Palette de propriétés.

Application  bibliothèques PL/SQL

Définition  Form Builder

Obligatoire/Facultatif  affichage seulement

Valeur par défaut  Fichier


Menu instantané - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer le menu instantané à afficher pour le canevas ou l'élément.

Application  canevas et éléments

Définition  non définissable

Obligatoire/Facultatif  Facultatif

Valeur par défaut

NULL

Reportez-vous aux procédures internes suivantes :

•	GET_MENU_ITEM_PROPERTY

•	SET__MENU_ITEM_PROPERTY

Remarque : Activé, Désactivé et LIBELLE sont les seules propriétés valides pour les menus instantanés.


Menu instantané - Restrictions

•	Le menu instantané doit être défini dans le module Application Forms en cours.

•	Vous ne pouvez pas attacher un menu instantané à des boutons d'option individuels, mais vous pouvez l'affecter à un groupe de boutons d'option.


Précalculer récapitulatifs - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que la valeur d'un élément récapitulatif dans un bloc de données est calculée avant que l'interrogation normale du bloc ne soit lancée. Form Builder lance une interrogation spéciale qui sélectionne tous les enregistrements (de la base de données) de l'élément récapitulatif et effectue l'opération récapitulative (total, nombre, etc.) sur tous les enregistrements.

Application  bloc

Définition  Form Builder

Obligatoire/Facultatif  obligatoire si le bloc contient des éléments récapitulatifs et si la propriété Interroger tous les enregistrements du bloc est désactivée.

Valeur par défaut

Non

Notes d'utilisation

Lorsqu'un utilisateur exécute une interrogation dans un bloc dont la propriété Précalculer récapitulatifs est activée, Form Builder active le déclencheur Pre-Query (s'il existe) une fois avant d'exécuter l'interrogation spéciale. Form Builder active le déclencheur Pre-Select (le cas échéant) deux fois : une fois juste avant d'exécuter l'interrogation spéciale, et une autre fois juste avant d'exécuter l'interrogation normale.


Précalculer récapitulatifs - Restrictions

•	Vous ne pouvez pas activer cette propriété si l'une quelconque des conditions suivantes est remplie : (1) si le bloc contient un élément de contrôle récapitulatif, (2) si une opération de réduction ou d'agrandissement est exécutée sur un élément récapitulatif du bloc, (3) si la Source de données d'interrogation du bloc est une procédure stockée ou des déclencheurs transactionnels (doit être une table ou une sous-interrogation) ou (4) si le bloc contient un élément de case à cocher, un élément de liste ou un groupe de boutons d'option avec une propriété Autres valeurs vide.

•	La cohérence de lecture ne peut être garantie que si (1) l'application Forms s'exécute sur une base de données Oracle7.3 et (2) si la propriété Mode isolation est définie à Sérialisable.


Empêcher opérations sans maître - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si les utilisateurs doivent être autorisés à effectuer des opérations d'interrogation ou d'insertion d'enregistrements dans un bloc détail d'une relation maître-détail. Si cette propriété est activée, Form Builder ne permet pas l'insertion d'enregistrements dans le bloc détail lorsqu'il n'y a pas d'enregistrement maître dans le bloc maître, et ne permet pas l'interrogation du bloc détail lorsqu'il n'y a pas d'enregistrement maître provenant de la base de données.

Lorsque la propriété Empêcher opérations sans maître est activée, Form Builder affiche un message approprié lors de toute tentative d'exécution, par l'utilisateur, d'une opération d'insertion ou d'interrogation d'un enregistrement :

FRM-41105: Interrogation des enregistrements impossible en l'absence d'enregistrement parent enregistré.
FRM-41106: Création impossible d'enregistrement en l'absence d'enregistrement parent.

Application  relation

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_RELATION_PROPERTY

•	SET_RELATION_PROPERTY

Valeur par défaut

Non


Bloc de navigation précédent - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du bloc défini comme "bloc de navigation précédent" par rapport au bloc en cours. Par défaut, le bloc de navigation précédent est celui ayant le numéro de séquence précédent, dans l'application Forms, comme indiqué par l'ordre des blocs figurant dans le Navigateur d'objet. Cependant, vous pouvez utiliser cette propriété pour redéfinir le bloc précédent pour les opérations de navigation.

Application  bloc

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Nom du bloc ayant le numéro de séquence précédent, comme indiqué par l'ordre des blocs dans l'application Forms.

Obligatoire/Facultatif  facultatif

Notes d'utilisation

La définition de cette propriété ne modifie pas la valeur de la propriété Previous_Block.


Elément de navigation précédent - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de l'élément défini comme "élément de navigation précédent" par rapport à l'élément en cours. Par défaut, cet élément est celui ayant le numéro de séquence précédent, comme indiqué par l'ordre des éléments dans le Navigateur d'objet. Cependant, vous pouvez utiliser cette propriété pour redéfinir l'élément précédent pour les opérations de navigation.

Application  élément

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

NULL. NULL indique la séquence par défaut, c'est-à-dire le nom de l'élément ayant le numéro de séquence précédent dans l'application Forms.

Obligatoire/Facultatif  facultatif


Elément de navigation précédent - Restrictions

L'élément défini comme Elément de navigation précédent doit être dans le même bloc que l'élément en cours.


Previous_Block - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du bloc ayant le numéro de séquence précédent, dans l'application Forms, comme indiqué par l'ordre des blocs figurant dans le Navigateur d'objet.

Application  bloc

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Obligatoire/Facultatif  facultatif

Notes d'utilisation

•	Vous pouvez utiliser cette propriété avec les propriétés First_Block ou Last_Block d'application Forms pour balayer une liste de blocs.

•	La valeur de Previous_Block est NULL lorsqu'il n'y a pas de bloc ayant un numéro de séquence inférieur à celui du bloc en cours.

•	La définition de la propriété Bloc de navigation précédent est sans effet sur la valeur de Previous_Block.


Previous_Item - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de l'élément ayant le numéro de séquence précédent dans le bloc, comme indiqué par l'ordre des éléments dans le Navigateur d'objet.

Application  élément

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Obligatoire/Facultatif  facultatif


Canevas primaire - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le canevas qui doit être la vue intégrale primaire de la fenêtre. Lors de l'exécution, Form Builder tente toujours d'afficher la vue primaire dans la fenêtre. Par exemple, lorsque vous affichez une fenêtre pour la première fois au cours d'une session en exécutant la procédure interne SHOW_WINDOW, Form Builder affiche la fenêtre avec sa vue intégrale primaire.

Si, cependant, Form Builder doit afficher une vue intégrale différente en raison du passage à un élément de cette vue, la vue intégrale primaire est remplacée par la vue cible.

Application  fenêtre

Définition  Form Builder

Valeur par défaut

 NULL

Obligatoire/Facultatif  Obligatoire uniquement pour une fenêtre qui devra être affichée par programme, et non en réponse au passage à un élément d'un canevas attribué à la fenêtre.


Canevas primaire - Restrictions

La vue indiquée doit être une vue intégrale (propriété Type de canevas définie à Intégral), et doit être attribuée à la fenêtre indiquée (par définition de la propriété de canevas Fenêtre).


Clé primaire (élément) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que l'élément est un élément de table de base d'un bloc de données et qu'il correspond à une colonne de clé primaire dans la table de base. Dans Form Builder, les valeurs des éléments de clé primaire doivent être uniques.

Application tous les éléments, sauf les boutons, les éléments graphiques et les éléments image.

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultatif  facultatif


Clé primaire (élément) - Restrictions

La propriété de bloc Clé primaire doit être activée pour le bloc propriétaire de l'élément.


Texte d'unité de programme - Propriété

 Toutes les propriétés

Description

Indique le code PL/SQL contenu dans une unité de programme. Lorsque vous cliquez sur More… dans la palette Propriétés, l'Editeur d'unités de programme est appelé.

Application  unité de programme

Définition  Form Builder

Obligatoire/Facultatif  obligatoire


Invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le libellé de texte qui s'affiche pour un élément.

Application  invite d'élément

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

blanc

Obligatoire/Facultatif  facultatif


Alignement de l'invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le mode d'alignement de l'invite sur le bord de l'élément : Début, Fin ou Centre.

Application  invite d'élément

Définition  Form Builder par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Alignment.)

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Début

Obligatoire/Facultatif  obligatoire


Décalage d'alignement de l'invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le décalage d'alignement de l'invite.

Application  invite d'élément

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Alignment_Offset.)

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

blanc

Obligatoire/Facultatif facultatif


Bord d'attachement d'invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le bord auquel l'invite doit être attachée : Début, Fin, Haut ou Bas.

Application  invite d'élément

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Attachment_Edge.)

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Début

Obligatoire/Facultatif  obligatoire


Décalage d'attachement de l'invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer la distance entre l'élément et son invite.

Application  invite d'élément

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Attachment_Offset.)

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

blanc

Obligatoire/Facultatif  facultatif


Couleur d'arrière-plan de l'invite - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer la couleur de l'arrière-plan de l'objet.

Application  invite d'élément, bouton d'option

Définition  Form Builder par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Attachment_Edge.)

Valeur par défaut

Non indiquée

Obligatoire/Facultatif facultatif

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Type d'affichage de l'invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le type d'affichage de l'invite.

Premier enregistrement	Form Builder affiche une invite à côté du premier enregistrement.

•	Masqué Form Builder n'affiche pas d'invite.

Tous les enregistrements	Form Builder affiche une invite à côté de chaque enregistrement.

Application  invite d'élément

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Display_Style.)

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Premier enregistrement

Obligatoire/Facultatif  obligatoire


Motif de remplissage de l'invite - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le motif à utiliser pour la zone de remplissage de l'objet. Les motifs sont fournis dans les deux couleurs indiquées par Background_Color et Foreground_Color.

Application  élément, invite d'élément, bouton d'option

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Fill_Pattern.)

Valeur par défaut

Non indiquée

Obligatoire/Facultatif  facultatif

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Nom de police de l'invite - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le type de police à utiliser pour le texte de l'objet. La liste des polices disponibles varie en fonction du système.

Application  élément, invite d'élément, bouton d'option

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Font_Name.)

Valeur par défaut

Non indiquée

Obligatoire/Facultatif  facultatif

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Taille de police d'invite - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Taille des caractères composant la police, indiquée en points.

Application  élément, invite d'élément, bouton d'option

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Font_Size.)

Valeur par défaut

Non indiquée

Obligatoire/Facultatif  facultatif

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Espacement de police de l'invite - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer la largeur de la police (c'est-à-dire la quantité d'espace entre les caractères, ou crénage).

Application  élément, invite d'élément, bouton d'option

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Font_Spacing.)

Valeur par défaut

Non indiquée

Obligatoire/Facultatif  facultatif

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Style de police d'invite - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le style de la police.

Application  élément, invite d'élément, bouton d'option

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Font_Style.)

Valeur par défaut

Non indiquée

Obligatoire/Facultatif  facultatif

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Epaisseur de police de l'invite - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le poids de la police.

Application  élément, invite d'élément, bouton d'option

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Font_Weight.)

Valeur par défaut

Non indiquée

Obligatoire/Facultatif  facultatif

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Couleur de premier plan de l'invite - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer la couleur de la zone de premier plan de l'objet. Dans le cas des éléments, définit la couleur du texte affiché dans l'élément.

Application  élément, invite d'élément, bouton d'option

Définition  Form Builder, par programme (Remarque : Si vous utilisez cette propriété dans un programme PL/SQL, remplacez les espaces par des soulignements : Prompt_Foreground_Color.)

Valeur par défaut

Non indiquée

Obligatoire/Facultatif  facultatif

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Justification de l'invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer le mode de justification de l'invite (Gauche, Droit, Centré, Début ou Fin).

Application  invite d'élément

Définition  Form Builder

Valeur par défaut

Début

Obligatoire/Facultatif  obligatoire


Séquence de lecture de l'invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer l'ordre de lecture de l'invite: Par défaut, Gauche-droite ou Droite-gauche.

Application  invite d'élément

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Valeur par défaut

Obligatoire/Facultatif  obligatoire


Groupe d'attributs visuels de l'invite - Propriété

 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer l'attribut visuel nommé qui doit être appliqué à l'invite lors de l'exécution.

Application  invite d'élément

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Valeur par défaut

Obligatoire/Facultatif  obligatoire


Prompt_White_on_Black, propriété;
Prompt_White_On_Black - Propriété

  Rubriques connexes	 Toutes les propriétés {button ,JumpId(>category,Prompt_Properties) Prompt_Properties

Description

Permet d'indiquer que l'objet doit apparaître sur une unité d'affichage bitmap monochrome sous forme de texte blanc sur fond noir.

Application  élément, bouton d'option

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY


Classe de propriété - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la classe de propriété dont l'objet pourra hériter les définitions de propriété.

Application  tous les objets

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultatif facultatif


Interroger tous les enregistrements - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si tous les enregistrements correspondant aux critères de recherche doivent être entrés dans le bloc de données lorsqu'une interrogation est exécutée.

Oui - Extrait tous les enregistrements de l'interrogation ce qui est équivalent à l'exécution de la procédure interne EXECUTE_QUERY (ALL_RECORDS).

Non - Extrait le nombre d'enregistrements indiqué par la propriété de bloc Taille de tableau d'interrogation.

Application bloc

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultative Obligatoire si un bloc de données contient des éléments récapitulatifs et si la propriété Précalculer les récapitulatifs du bloc est désactivée.


Interrogation autorisée (bloc) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si Form Builder doit autoriser l'utilisateur ou l'application à exécuter une interrogation dans le bloc. Lorsque Interrogation autorisée est désactivée, Form Builder affiche le message suivant, si l'utilisateur tente d'interroger le bloc :

FRM-40360: Impossible d'interroger des enregistrements ici.

Application bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Oui

Restrictions

Lorsque la propriété Interrogation autorisée (bloc) est activée, la propriété Interrogation autorisée (élément) doit être activée pour au moins un élément du bloc.


Interrogation autorisée (élément) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si l'élément peut être inclus dans une interrogation de la table de base du bloc propriétaire.

Application tous les éléments, sauf les boutons, les éléments graphiques et les éléments image.

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• 	SET_ITEM_PROPERTY

Valeur par défaut

Oui ; cependant, si l'élément fait partie de la clé étrangère du bloc détail d'une relation de bloc maître-détail, Form Builder désactive cette propriété.

Notes d'utilisation

Pour activer la propriété Interrogation autorisée (élément) par programme, utilisez la constante INTERROGEABLE.


Interrogation autorisée (élément) - Restrictions

•	La propriété Visible doit également être activée.

•	Les éléments dont le type de données est LONG ne peuvent pas être interrogés directement.


Taille de tableau d'interrogation - Propriété

 Restrictions	 	 Toutes les propriétés

Description

Permet d'indiquer le nombre maximum d'enregistrements que Form Builder doit extraire simultanément de la base de données.

Application bloc

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Valeur par défaut

Le nombre d'enregistrements que le bloc peut afficher, indiqué par la propriété Nombre d'enregistrements affiché (bloc).

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

La valeur 1 offre le temps de réponse perçu le plus rapide, car Form Builder n'extrait et n'affiche qu'un enregistrement à la fois. La valeur 10 extrait jusqu'à 10 enregistrements avant de les afficher, mais cette augmentation de valeur diminue le temps de traitement global en réduisant le nombre d'appels à la base de données pour les enregistrements.


Taille de tableau d'interrogation - Restrictions

•	Il n'y a pas de maximum.


Arguments de source de données d'interrogation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms, les types de données et les valeurs des arguments qui doivent être passés à la procédure d'interrogation de données. Cette propriété n'est valide que lorsque la propriété Type de source de données d'interrogation est définie à Procédure.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Colonnes de source de données d'interrogation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms et les types de données des colonnes associées à la source de données d'interrogation du bloc. Cette propriété n'est valide que lorsque la propriété Type de source de données d'interrogation est définie à Table, Sous-interrogation ou Procédure.

Application bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Nom de source de données d'interrogation - Propriété

 Restrictions	   Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la source de données d'interrogation du bloc.

Cette propriété n'est valide que lorsque la propriété Type de source de données d'interrogation est définie à Table, Sous-interrogation ou Procédure.

Application bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Nom de source de données d'interrogation - Restrictions

Avant de définir la propriété Nom de source de données d'interrogation, vous devez exécuter une opération COMMIT_FORM ou CLEAR_FORM.


Type de source de données d'interrogation - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type de source de données d'interrogation du bloc. Ce type peut être Table, Procédure, Déclencheur transactionnel ou Interrogation de clause FROM.

Application bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Valeur par défaut

Table

Obligatoire/Facultatif  obligatoire


Longueur d'interrogation - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nombre de caractères qu'un utilisateur est autorisé à entrer dans l'élément texte lorsque l'application Forms est en mode Saisie interrogation.

Application élément texte

Définition  Form Builder

Valeur par défaut

La valeur de la propriété Longueur maximum de l'élément.

Notes d'utilisation

Si vous voulez autoriser l'utilisateur à entrer des conditions d'interrogation complexes, vous pouvez indiquer une longueur d'interrogation supérieure à la longueur maximum. Par exemple, si vous indiquez une longueur d'interrogation de 5, l'utilisateur pourra entrer la condition d'interrogation !=500 dans un élément texte avec une longueur maximum de 3.


Longueur d'interrogation - Restrictions

•	La longueur maximum d'une interrogation est de 255 caractères.


Nom d'interrogation - Propriété

 Toutes les propriétés

Description

Indique le nom de l'interrogation de l'état avec lequel associer le bloc de l'application Forms.

Application  intégration d'états

Définition  Form Builder

Valeur par défaut

blanc

Obligatoire/Facultatif facultatif


Interrogation seulement - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer qu'un élément peut être interrogé, mais qu'il ne peut pas être inclus dans une instruction INSERT ou UPDATE que Form Builder émet pour le bloc lors de l'exécution.

Application groupe de boutons d'option, élément liste, élément image, élément texte, élément personnalisé (OLE)

Définition  par programme

Valeur par défaut

Non

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY


Query_Hits - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer la valeur de type NUMBER qui précise le nombre d'enregistrements identifiés par l'opération COUNT_QUERY. Si cette valeur est recherchée pendant l'extraction des enregistrements d'une interrogation, QUERY_HITS indique le nombre d'enregistrements qui ont été extraits.

Cette propriété est incluse essentiellement pour les applications qui s'exécutent sur des sources de données non ORACLE.

Application bloc

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Notes d'utilisation

Cette propriété peut être utilisée de différentes façons :

•	Dans une application qui s'exécute sur une source de données non ORACLE, utilisez SET_BLOCK_PROPERTY(QUERY_HITS) dans un déclencheur On-Count pour indiquer à Form Builder le nombre d'enregistrements que devra retourner une interrogation. Cela vous permet de réaliser le décompte des enregistrements extraits équivalant au décompte par défaut de Form Builder.

•	Utilisez GET_BLOCK_PROPERTY(QUERY_HITS) pendant le décompte permettant de rechercher le nombre d'enregistrements qu'une interrogation pourra éventuellement extraire.

•	Utilisez GET_BLOCK_PROPERTY(QUERY_HITS) pendant l'extraction pour rechercher le nombre d'enregistrements extraits par l'interrogation et placés dans la liste des enregistrements du bloc.


Query_Hits - Restrictions

Cette procédure doit avoir une valeur supérieure ou égale à 0.


Query_Options - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le type d'opération d'interrogation que Form Builder effectuerait par défaut si vous n'aviez pas annulé le traitement par défaut. Cette propriété est incluse pour les applications qui s'exécutent sur des sources de données non ORACLE.

Les valeurs autorisées pour cette propriété sont les suivantes :

•	VIEW

•	FOR_UPDATE

•	COUNT_QUERY

•	NULL

Application bloc

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY


 Valeur de bouton d'option - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la valeur associée à un bouton d'option d'un groupe de boutons d'option.

Application bouton d'option

Définition  Form Builder

Valeur par défaut

blanc


Afficher au premier plan sur saisie - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Pour un canevas affiché dans la même fenêtre qu'au moins un autre canevas,  Afficher au premier plan sur saisie permet d'indiquer comment Form Builder doit afficher le canevas lorsque l'utilisateur ou l'application passe à un élément du canevas.

•	Lorsque la propriété Afficher au premier plan sur saisie est désactivée, Form Builder affiche la vue devant toutes les autres vues de la fenêtre uniquement si l'élément cible est derrière une autre vue.

•	Lorsque la propriété Afficher au premier plan sur saisie est activée, Form Builder affiche toujours la vue devant la fenêtre lorsque l'utilisateur ou l'application passe à un élément quelconque de la vue.

Application canevas

Définition  Form Builder

Valeur par défaut

Non


Afficher au premier plan sur saisie - Restrictions

Cette propriété n'est applicable que lorsque plusieurs canevas sont attribués à la même fenêtre.


Séquence de lecture - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Remarque : Cette propriété est propre aux applications NLS (National Language Support) bidirectionnelles.

Permet d'indiquer la séquence de lecture des groupes de mots (segments) de même langue dans un élément texte unique.

La séquence de lecture vous permet de contrôler l'affichage des éléments texte bilingues, c'est-à-dire des éléments qui comportent des segments en langue romane et locale. (La propriété Séquence de lecture est sans effet sur les éléments texte composés de segments en une seule langue.)

Les valeurs autorisées pour cette propriété sont les suivantes :

Valeur	Description
Valeur par défaut	L'élément texte hérite la séquence de lecture indiquée par sa propriété de canevas Direction de langue.
Droite-gauche	Les éléments sont lus de droite à gauche.
Gauche-droite	Les éléments sont lus de gauche à droite.

Application élément affiché, élément texte

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Valeur par défaut

Notes d'utilisation

•	Dans la plupart des cas, vous n'aurez pas à définir explicitement la propriété Séquence de lecture (la valeur par défaut fournira la fonction dont vous avez besoin). N'utilisez cette propriété que lorsque vous voulez remplacer la séquence de lecture par défaut d'un élément.

•	Pour lire ou définir la propriété Séquence de lecture par programme, utilisez la propriété Direction de langue.

•	Pour afficher un segment Local en mode Droite-gauche et un segment Roman en mode Gauche-droite, utilisez la valeur Par défaut.

•	Si votre élément texte est essentiellement Local, choisissez Droite-gauche.

•	Si votre élément texte est essentiellement Roman, choisissez Gauche-droite.


Unité réelle - Propriété

 Restrictions	 Toutes les propriétés

Description

Lorsque la propriété Système de coordonnées est définie à Réel, la propriété Unité réelle indique les unités réelles à utiliser pour préciser les coordonnées de taille et de position dans l'application Forms. Les unités réelles peuvent être des centimètres, des pouces, des pixels, des points ou des décipoints. (Un point équivaut à 1/72e de pouce.)

Form Builder interprète toutes les coordonnées de taille et de position indiquées dans l'application Forms en unités réelles que vous indiquez ici. La conversion d'une unité réelle en une autre peut entraîner une perte de précision des valeurs de taille et de position des objets existants.

Application module Application Forms

Définition  Form Builder

Valeur par défaut

Centimètre

Obligatoire/Facultatif facultatif


Unité réelle - Restrictions

Cette propriété n'est valide que lorsque la propriété Système de coordonnées est définie à Réel.


Groupe d'enregistrements - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du groupe d'enregistrements duquel la LOV ou l'arborescence tire ses valeurs.

Définition:

LOV, arborescence

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

GET_LOV_PROPERTY (GROUP_NAME)

SET_LOV_PROPERTY (GROUP_NAME)

POPULATE_TREE

POPULATE_GROUP_FROM_TREE

Valeur par défaut

Null

Obligatoire/Facultatif  Obligatoire pour la LOV, Facultatif pour l'arborescence

Notes d'utilisation

Une LOV affiche les enregistrements stockés dans le groupe d'enregistrements sur lequel elle est fondée. Chaque LOV doit être fondée sur un groupe d'enregistrements. Le groupe peut être rempli par une interrogation (groupe d'enregistrements d'interrogation) ou par des valeurs fixes (groupe d'enregistrements statique).


Taille d'extraction du groupe d'enregistrements - Propriété

 Toutes les propriétés

Description

Indique la taille du groupe d'enregistrement à extraire. Plus la taille d'extraction est importante, plus le nombre d'extractions nécessaires pour obtenir le groupe d'enregistrements est réduit. Par exemple, l'extraction d'un groupe de 5000 enregistrements demande 500 aller-retour si la propriété "Taille d'extraction du groupe d'enregistrements" est définie à 10, mais seulement 5 aller-retour si elle est définie à 1000.

Application  groupe d'enregistrements fonctionnel

Définition  Form Builder

Valeur par défaut

20

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

Disponible uniquement si Type de groupe d'enregistrements est défini à Interrogation.


Interrogation associée au groupe d'enregistrements - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'instruction SELECT de l'interrogation associée au groupe d'enregistrements.

Application groupe d'enregistrements

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

POPULATE_GROUP_WITH_QUERY

Obligatoire/Facultatif  facultatif


Type de groupe d'enregistrements - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le type de groupe d'enregistrements, Statique ou Interrogation :

Statique	Permet d'indiquer que le groupe d'enregistrements est composé de valeurs de colonne et de noms de colonne définis explicitement. Les valeurs d'un groupe d'enregistrements statique sont indiquées lors de la conception et ne peuvent pas être modifiées lors de l'exécution.

Interrogation	Permet d'indiquer que le groupe d'enregistrements est associé à une instruction SELECT, et peut donc être rempli dynamiquement lors de l'exécution. Lorsque vous sélectionnez cette option, entrez l'instruction SELECT dans le champ multiligne fourni, puis choisissez Appliquer.

Définition:

groupe d'enregistrements

Définition  Form Builder

Valeur par défaut

Interrogation


Sens des enregistrements - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le sens des enregistrements dans le bloc : enregistrements horizontaux ou enregistrements verticaux. Lorsque vous définissez cette propriété, Form Builder ajuste en conséquence la position d'affichage des éléments du bloc.

Application bloc

Définition  Form Builder

Valeur par défaut

Enregistrements verticaux

Obligatoire/Facultatif facultatif

Notes d'utilisation

Vous pouvez également utiliser cette propriété lorsque vous créez un bloc dans la fenêtre Nouveau bloc en définissant l'option de Sens à Vertical ou Horizontal.


Sens des enregistrements - Restrictions

Cette propriété n'est valide que pour les blocs multi-enregistrements (Propriété Nombre d'enregistrements affichés ayant une valeur supérieure à 1).


Records_to_Fetch - Propriété

 Exemples	 	 Toutes les propriétés

Description

Retourne le nombre d'enregistrements que Form Builder estime qu'un déclencheur On-Fetch va extraire et créer sous forme d'enregistrements interrogés.

Vous pouvez rechercher par programme la valeur de Records_To_Fetch lorsque vous utilisez des déclencheurs transactionnels pour remplacer le traitement des transactions par défaut de Form Builder si cette opération est effectuée sur une source de données non ORACLE.

Application bloc

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Notes d'utilisation

La propriété Records_To_Fetch est définie uniquement dans la portée d'un déclencheur On-Fetch.

La première fois que le déclencheur On-Fetch est activé, la valeur de Records_To_Fetch est soit la taille de tableau (indiquée par la propriété de bloc Taille de tableau d'interrogation) soit le nombre d'enregistrements affiché + 1, selon la valeur qui est la plus élevée des deux.

Si le déclencheur On-Fetch crée ce nombre d'enregistrements interrogés, à la prochaine activation du déclencheur On-Fetch, la valeur de Records_To_Fetch sera la même.

Cependant, si le déclencheur On-Fetch crée moins d'enregistrements que la valeur de Records_To_Fetch et retourne sans afficher Form_Trigger_Failure, Form Builder réactive le déclencheur On-Fetch. Records_To_Fetch sera défini à sa valeur précédente moins le nombre d'enregistrements interrogés créés par la précédente activation du déclencheur On-Fetch.

Ce processus se poursuit jusqu'à ce que se produise l'un des événements suivants :

•	Le déclencheur ne crée pas un enregistrement interrogé unique (pour signaler la fin de l'extraction).

•	Le nombre attendu d'enregistrements interrogés est créé.

•	Le déclencheur affiche un Form_Trigger_Failure (pour indiquer que l'extraction a été interrompue par une erreur et que le traitement de l'extraction va prendre fin).


Records_to_Fetch - Exemples

Exemple

/*

** Appeler une fonction package côté client pour extraire
** le nombre voulu de lignes d'un curseur de package.
*/
DECLARE
   j NUMBER := Get_Block_Property(blk_name, RECORDS_TO_FETCH);
   emprow emp%ROWTYPE;
BEGIN
   FOR ctr IN 1..j LOOP
      /* Essayer d'extraire la prochaine ligne.*/
      EXIT WHEN NOT MyPackage.Get_Next_Row(emprow);
      Create_Queried_Record;
      :Emp.rowid := emprow.ROWID;
      :Emp.empno := emprow.EMPNO;
      :Emp.ename := emprow.ENAME;
         :
         :
   END LOOP;
END;


Type de la relation - Propriété

 Toutes les propriétés

Description

Indique si le lien entre le bloc maître et le bloc détail est une jointure relationnelle ou un pointeur d'objet REF.

Application  relations maître-détail

Définition  Form Builder

Valeur par défaut

Jointure

Notes d'utilisation

Les valeurs valides sont Jointure (qui indique une jointure relationnelle) ou REF (qui indique une colonne REF d'un bloc pointant vers des données référencées appartenant à un autre bloc).

Lorsque le lien s'effectue via un élément REF, reportez-vous également à la propriété Référence détail.

Lorsque le lien s'effectue via une jointure, reportez-vous également à la propriété Condition de jointure.


Rendu - Propriété

 Toutes les propriétés

Description

Permet d'indiquer que l'élément doit être affiché sous la forme d'un objet rendu lorsqu'il n'a pas de point d'insertion.

Application élément texte, élément affiché

Définition  Form Builder

Valeur par défaut

Oui

Notes d'utilisation

Utilisez la propriété Rendu pour économiser les ressources du système. Un élément rendu ne demande de ressource système que lorsqu'il reçoit le point d'insertion. Lorsqu'un élément rendu n'a plus le point d'insertion, les ressources nécessaires à l'affichage sont libérées.


Format de destination de l'état - Propriété

 Toutes les propriétés

Description

Dans les environnements bitmap, cette propriété indique le pilote d'imprimante à utiliser lorsque la propriété Type de destination de l'état est définie à File. Dans les environnements en mode caractère, elle indique les caractéristiques de l'imprimante indiquée par la propriété Nom destination de l'état.

Tout format de destination valide ne dépassant pas 1 Ko de longueur est une valeur possible. Hpl, hplwide, dec, decwide, decland, dec180, dflt, wide, etc. sont des exemples de valeurs valides pour ce mot-clé. Demandez à l'administrateur de votre système de vous fournir la liste des formats de destination valides. En outre, Report Builder prend en charge les formats de destination suivants :

PDF	Signifie que la sortie d'état sera envoyée vers un fichier pouvant être lu par un programme de visualisation des fichiers PDF. Une sortie PDF est fondée sur l'imprimante actuellement configurée pour votre système. Le pilote de l'imprimante actuellement sélectionnée est utilisé pour produire la sortie ; vous devez avoir configuré une imprimante pour l'ordinateur sur lequel vous exécutez l'état.
HTML	Signifie que la sortie d'état sera envoyée vers un fichier pouvant être lu par un navigateur conforme HTML 3.0 (Netscape 2.2 par exemple).
HTMLCSS	Signifie que la sortie d'état envoyée vers un fichier comprendra des extensions de feuille de style pouvant être lues par un navigateur conforme HTML 3.0 prenant en charge les feuilles de style en cascade.
HTMLCSSIE	Signifie que la sortie d'état envoyée vers un fichier comprendra des extensions de feuille de style pouvant être lues par Microsoft Internet Explorer 3.x.
RTF	Signifie que la sortie d'état sera envoyée vers un fichier pouvant être lu par les traitements de texte standard (tels que Microsoft Word). Notez que lorsque vous ouvrez le fichier dans MS Word, vous devez choisir Affichage [image] Page pour afficher tous les graphiques et objets de votre état.
DELIMITED	Signifie que la sortie d'état sera envoyée vers un fichier pouvant être lu par les tableurs standard (tels que Microsoft Excel). Notez que vous devez également indiquer un DELIMITER.
Pour plus d'informations sur cette propriété, reportez-vous à DESFORMAT, sous Arguments de ligne de commande, dans l'aide en ligne de Report Builder.

Application  états

Définition  Form Builder

Valeur par défaut

blanc

Obligatoire/Facultatif  facultatif


Nom de destination de l'état - Propriété

 Toutes les propriétés

Description

Nom du fichier, de l'imprimante, du répertoire InterOffice ou de l'ID de messagerie (liste de distribution) vers lequel la sortie d'état sera envoyée. Les différentes valeurs possibles sont les suivantes (elles ne doivent toutefois pas dépasser 1 Ko de longueur) :

•	un nom de fichier (si la propriété Type de destination d'état est définie à File ou à Localfile) ;

•	un nom d'imprimante (si la propriété Type de destination d'état est définie à Printer) ;

•	une adresse de messagerie électronique ou une liste de distribution (si la propriété Type de destination d'état est définie à Mail).

Pour envoyer la sortie d'état par messagerie électronique, indiquez l'ID de messagerie électronique comme vous l'avez fait dans votre application de messagerie électronique (toute application MAPI fonctionnant sous Windows, comme Oracle InterOffice, ou application de messagerie au format natif sous UNIX). Vous pouvez indiquer plusieurs noms d'utilisateur en les saisissant entre parenthèses et en les séparant par des virgules (par exemple, (nom, nom, . . .nom)). Pour les noms d'imprimante, vous pouvez, si vous le souhaitez, indiquer un port. Par exemple :

printer,LPT1:

printer,FILE:

Ou, si la propriété Type de destination d'état est définie à Interoffice :

/FOLDERS/répertoire/nom_état

Pour plus d'informations sur cette propriété, reportez-vous à DESNAME, sous la catégorie Arguments de ligne de commande, dans l'aide en ligne de Report Builder.

Application  états

Définition  Form Builder

Valeur par défaut

blanc

Obligatoire/Facultatif facultatif


Type de destination d'état - Propriété

 Toutes les propriétés

Description

Destination vers laquelle la sortie doit être envoyée. Les valeurs possibles sont Screen, File, Printer, Preview, Mail et Interoffice. Pour plus d'informations sur cette propriété, reportez-vous à DESTYPE, sous la catégorie Arguments de ligne de commande, dans l'aide en ligne de Report Builder.

SCREEN	Achemine la sortie vers l'Aperçu pour en obtenir une vue interactive. Cette valeur est valide uniquement lorsque vous exécutez l'état en mode Runtime (et non en mode de traitement par lots). Aucun alias police n'est créé.
FILE	Enregistre la sortie dans le fichier indiqué dans le champ Nom de la destination de l'état.
PRINTER	Achemine la sortie vers l'imprimante indiquée dans le champ Nom de la destination de l'état.
PREVIEW	Achemine la sortie vers l'Aperçu pour en obtenir une vue interactive. Cependant, cette valeur entraîne la conversion de la sortie au format Postscript. L'Aperçu utilise la propriété Nom de la destination de l'état pour déterminer les polices d'imprimante à utiliser pour afficher la sortie. La création d'alias police a lieu si vous choisissez cette valeur.
MAIL	Achemine la sortie vers les utilisateurs de messagerie indiqués dans le champ Nom de la destination de l'état. Vous pouvez envoyer du courrier vers n'importe quel système de messagerie MAPI ou doté du pilote de prestataire de services. L'état est envoyé en tant que pièce jointe.
INTEROFFICE	Achemine la sortie vers les utilisateurs de la messagerie Oracle InterOffice indiqués dans le champ Nom de la destination de l'état. En indiquant cette valeur, vous stockez la sortie d'état dans InterOffice en tant que référentiel.
Application  états

Définition  Form Builder

Valeur par défaut

Fichier

Obligatoire/Facultatif  obligatoire


Serveur d'états - Propriété

 Toutes les propriétés

Description

Indique le serveur d'états (Report Server) sur lequel vous pouvez exécuter votre état.

Application  états

Définition  Form Builder

Obligatoire/Facultatif facultatif

Valeur par défaut

blanc


Obligatoire (élément) - Propriété

 Rubriques connexes	 Toutes les propriétés

Description

Lors de l'entrée d'un nouvel enregistrement, permet d'indiquer que l'élément n'est pas valide lorsque sa valeur est NULL.

Application élément liste, élément texte

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Notes d'utilisation

Lorsque la propriété Obligatoire d'un élément est activée et qu'une validation au niveau de l'élément est active, par défaut Form Builder n'autorise pas la navigation hors de l'élément tant qu'une valeur valide n'a pas été entrée. Pour permettre à l'utilisateur de se déplacer librement dans les éléments de l'enregistrement, activez la propriété Différer la mise en vigueur obligatoire. Dans ce cas, l'application de l'attribut Obligatoire n'a plus lieu à la validation de l'élément, mais à la validation de l'enregistrement.

Dans certains cas, la valeur d'un élément ne pourra pas être NULL, même si Obligatoire est activée. Form Builder vérifie les enregistrements obligatoires pendant le processus de validation. Chaque élément d'un nouvel enregistrement est soumis au processus de validation, mais les données interrogées sont considérées comme valides et un élément n'est validé que s'il est modifié. Par exemple, si l'enregistrement existe déjà et est interrogé à partir de la base de données, l'élément Obligatoire peut être indiqué comme NULL.

Définir la propriété Obligatoire d'une liste instantanée ou d'une liste-t peut avoir une incidence sur les valeurs figurant dans la liste. Lorsqu'elle est sélectionnée, une instance de liste instantanée affiche une valeur supplémentaire Null si sa valeur actuelle est NULL ou si sa propriété Obligatoire effective est définie à Non (faux). Lorsque vous sélectionnez la valeur actuelle d'une instance répertoriée dans une liste-t, celle-ci n'est pas sélectionnée (laissant la liste-t sans valeur sélectionnée) si sa propriété Obligatoire est définie à Non (faux). Toutefois, si cette propriété est définie à Oui (vrai), sélectionner la valeur actuelle d'une instance de liste-t n'a aucune conséquence. La valeur reste sélectionnée.


Obligatoire (paramètre de menu) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que l'utilisateur doit entrer une valeur pour le paramètre de substitution de menu.

Application paramètre de substitution de menu

Définition  Form Builder

Valeur par défaut

Non


Redimensionnement autorisé - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que la fenêtre doit être de taille fixe et ne peut pas être redimensionnée lors de l'exécution. Cette propriété est un message d'aide de l'interface graphique, et peut ne pas être prise en charge sur toutes les plates-formes.

Application fenêtre

Définition  Form Builder

Valeur par défaut

Non

Notes d'utilisation

La propriété Redimensionnement autorisé empêche un utilisateur de redimensionner la fenêtre, mais ne vous empêche pas d'effectuer cette opération par programme en utilisant RESIZE_WINDOW ou SET_WINDOW_PROPERTY.


Redimensionnement autorisé - Restrictions

•	Cette propriété n'est valide que lorsque la propriété Agrandissement autorisé est désactivée.


Elément récepteur (LOV) - Propriété

 Toutes les propriétés

Description

Voir Propriétés de correspondance de colonnes .


Angle de rotation - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'angle de rotation d'un objet graphique. La valeur de l'angle sous lequel l'objet est initialement créé est considérée comme étant égale à 0, et cette propriété représente l'angle (en degrés, dans le sens des aiguilles d'une montre) de rotation actuelle de l'objet par rapport à l'angle initial. Vous pouvez faire pivoter un objet vers un angle absolu en définissant cette propriété.

Application  graphiques physiques

Définition  Form Builder

Valeur par défaut  0

Obligatoire/Facultatif  obligatoire


Mode de compatibilité Runtime - Propriété

 Toutes les propriétés

Description

Indique la version de Form Builder avec laquelle le comportement à l'exécution de l'application Forms actuelle est compatible (version 4.5 ou 5.0 à 6.0). Par défaut, les nouvelles applications Forms créées avec Form Builder 5.0 à 6.0 sont définies comme étant compatibles avec la version 5.0. Les applications Forms existantes mises à niveau à partir de la version 4.5 sont compatibles avec cette version. Pour que ces applications adoptent à l'exécution le comportement correspondant aux versions 5.0 à 6.0, définissez cette propriété à 5.0. Les comportements affectés par cette propriété sont principalement la validation et l'initialisation. Pour obtenir des informations sur le comportement à l'exécution des versions 5.0 à 6.0, reportez-vous aux sections Initialisation et Validation du chapitre Traitement par défaut du manuel de référence en ligne de Form Builder. Pour obtenir des informations sur le comportement à l'exécution de la version 4.5, reportez-vous à la section intitulée Comportement à l'exécution de Form Builder 4.5 du chapitre Compatibilité avec les versions précédentes du manuel de référence en ligne de Form Builder.

Application  compatibilité d'une application Forms

Définition  Form Builder

Valeur par défaut

5.0 pour les nouvelles applications Forms, 4.5 pour les applications Forms créées à l'aide de Form Builder 4.5.

Obligatoire/Facultatif  obligatoire


Mode savepoint - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer si Form Builder doit émettre des savepoints pendant une session. Cette propriété est incluse essentiellement pour les applications qui s'exécutent sur des sources de données non ORACLE. Pour les applications qui s'exécutent sur ORACLE, utilisez le paramètre par défaut.

Les options autorisées pour cette propriété sont les suivantes :

Définition	Description
Oui (par défaut)	Indique que Form Builder doit émettre un savepoint lors du lancement de l'application Forms et du lancement de chaque processus de validation et d'enregistrement.
Non	Indique que Form Builder ne doit pas émettre de savepoints, et qu'aucun repositionnement sur des savepoints ne doit être effectué.

 Application module Application Forms

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Valeur par défaut

Oui

Obligatoire/Facultatif facultatif


Mode savepoint - Restrictions

Lorsque la propriété Mode savepoint est désactivée, Form Builder ne permet pas à une application Forms dont les modifications ne sont pas enregistrées dans la base de données d'appeler une autre application Forms en utilisant la procédure CALL_FORM.


Savepoint_Name - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nom du savepoint que Form Builder estime devoir être défini ou repositionné.

S'applique à application

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Notes d'utilisation

La valeur de cette propriété doit être recherchée uniquement dans un déclencheur On-Savepoint ou On-Rollback :

•	Utilisez Savepoint_Name dans un déclencheur On-Savepoint pour déterminer le savepoint à définir par un appel à ISSUE_SAVEPOINT.

•	Dans un déclencheur On-Rollback, recherchez Savepoint_Name pour déterminer le savepoint sur lequel Form Builder doit se repositionner par un appel à ISSUE_ROLLBACK. Un nom de savepoint NULL implique que Form Builder attend un repositionnement complet.


Alignement de barre de défilement - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si la barre de défilement est affichée au début ou à la fin du cadre.

Application cadre

Définition  Form Builder

Valeur par défaut

Fin

Obligatoire/Facultatif facultatif


Hauteur de barre de défilement - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la hauteur de la barre de défilement.

Application barre de défilement

Définition  Form Builder

Obligatoire/Facultatif facultatif


Largeur de barre de défilement

 Toutes les propriétés

Description

Permet d'indiquer la largeur de la barre de défilement.

Application barre de défilement

Définition  Form Builder

Obligatoire/Facultatif facultatif


Sécurisé (paramètre de menu) - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet de masquer les caractères que l'utilisateur entre pour le paramètre de substitution.

Application paramètre de substitution de menu

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif facultatif


Partager bibliothèque avec application Forms - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Les applications Forms qui possèdent des bibliothèques attachées identiques peuvent partager des données de package de bibliothèque. (Pour plus d'informations, reportez-vous au paramètre data_mode des procédures internes CALL_FORM, OPEN_FORM et NEW_FORM, sous les rubriques connexes ci-dessus.) La propriété Partager bibliothèque avec application Forms permet aux menus associés aux applications Forms de partager également les données de package de bibliothèque.

Application  menus

Définition  Form Builder

Valeur par défaut

Oui

Notes d'utilisation

1	Si deux applications Forms partagent un objet, que ces deux applications sont ouvertes lors de la conception et que vous apportez des modifications à l'objet de l'application Forms A, ces modifications ne sont pas visibles dans l'application Forms B tant qu'elles ne sont pas enregistrées par l'application A. Vous devez ensuite fermer, puis rouvrir l'application B pour y faire apparaître les modifications.

2	Si vous utilisez OPEN_FORM pour ouvrir une application Forms dans une autre session de base de données, vous ne pouvez pas partager de données de bibliothèque avec l'application Forms ni avec les menus qui lui sont associés. Toute tentative de partage de données de bibliothèque lorsque la propriété est définie à Oui est ignorée.


Afficher bouton Avance rapide - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le contrôle d'élément son doit afficher [image] (dans l'Editeur de présentation et lors de l'exécution).

Application contrôle d'élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultatif  Obligatoire


Afficher barre de défilement horizontale - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si un canevas, une fenêtre secondaire ou un élément image est affiché avec une barre de défilement.

Application canevas, fenêtre, éditeur, élément image

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif facultatif


Afficher barre de défilement horizontale - Restrictions

•	Pour une fenêtre, cette propriété n'est valide que lorsque la propriété Modale est désactivée.

•	Cette propriété n'est valide que sur les gestionnaires de fenêtres qui supportent les barres de défilement horizontales.


Afficher lignes - Propriété

 Toutes les propriétés

Description

Détermine si une arborescence affiche les lignes qui conduisent à chaque noeud.

Application  arborescence

Définition  Form Builder

Valeur par défaut

Vrai

Obligatoire/Facultatif  obligatoire


Afficher menu OLE instantané - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le bouton droit de la souris affiche un menu instantané de commandes pour interagir avec l'objet OLE. Les options valides pour cette propriété sont les suivantes :

OUI	Sélection de menu OLE instantané par défaut. Le menu OLE instantané est affiché lorsque le curseur de la souris est sur l'objet OLE et que l'utilisateur appuie sur le bouton droit de la souris.

NON	Le menu OLE instantané n'est pas affiché lorsque le curseur de la souris est sur l'objet OLE et que l'utilisateur appuie sur le bouton droit de la souris.

Application conteneur OLE

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

•	Vous pouvez également définir et lire la valeur du menu OLE instantané en utilisant la propriété SHOW_POPUPMENU. Pour la procédure interne SET_ITEM_PROPERTY, le menu OLE instantané est affiché lorsque la propriété SHOW_POPUPMENU est définie à PROPERTY_TRUE. Lorsque la propriété SHOW_POPUPMENU est définie à PROPERTY_FALSE, le menu OLE instantané n'est pas affiché. Vous pouvez également utiliser la propriété SHOW_POPUPMENU avec la procédure interne GET_ITEM_PROPERTY pour obtenir la valeur du menu OLE instantané en cours. La procédure interne GET_ITEM_PROPERTY retourne VRAI lorsque le menu OLE instantané est affiché, et FAUX lorsqu'il ne l'est pas.

•	Cette propriété n'est valide que sous Microsoft Windows et Macintosh.


Afficher type de contenu OLE - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le conteneur OLE est entouré d'une bordure définissant le type d'objet OLE. Le type de bordure est fonction du type d'objet.

Application conteneur OLE

Définition  Form Builder

Valeur par défaut

Oui


Afficher type de contenu OLE - Restrictions

Valide uniquement sur Microsoft Windows et Macintosh.


Afficher palette - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si Form Builder doit afficher une palette de manipulation d'image à côté de l'élément image associé lors de l'exécution. La palette offre trois outils qui permettent aux utilisateurs de manipuler une image affichée :

•	Zoom—cliquez sur l'outil, puis cliquez à plusieurs reprises sur l'image pour réduire progressivement la partie de l'image source affichée dans les bordures de l'élément image.

•	Panoramique—cliquez sur l'outil et utilisez la poignée pour effectuer un panoramique sur les parties non affichées de l'image source (valide uniquement si l'image source dépasse au moins une bordure de l'élément image).

•	Rotation—cliquez sur l'outil, puis cliquez à plusieurs reprises sur l'image pour la faire pivoter dans le sens des aiguilles d'une montre par incrément de 90°.

Application élément image

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultatif  Obligatoire


Afficher bouton Lecture - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le contrôle d'élément son doit afficher [image] (dans l'Editeur de présentation et lors de l'exécution).

Application contrôle d'élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Obligatoire/Facultatif  Obligatoire

Notes d'utilisation

•	Si vous désactivez la propriété Afficher bouton Lecture lorsque le bouton Afficher bouton Enregistrement est déjà désactivé, Form Builder affiche automatiquement [image] lors de l'exécution.


Afficher bouton Enregistrement - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le contrôle d'élément son doit afficher [image] (dans l'Editeur de présentation et lors de l'exécution).

Application contrôle d'élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultatif  Obligatoire

Notes d'utilisation

•	Si vous désactivez la propriété Afficher bouton Enregistrement lorsque la propriété Afficher bouton Lecture est déjà désactivée, Form Builder affiche automatiquement [image] lors de l'exécution.


Afficher bouton Retour rapide - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le contrôle d'élément son doit afficher [image] (dans l'Editeur de présentation et lors de l'exécution).

Application contrôle d'élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultatif  Obligatoire


Afficher barre de défilement - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si Form Builder doit créer une barre de défilement pour le bloc que vous définissez. Lorsque Afficher barre de défilement est activée, Form Builder crée la barre de défilement sur le canevas indiqué par la propriété Canevas à barre de défilement.

Lorsque vous créez une barre de défilement pour un bloc, vous pouvez définir les propriétés de l'objet Barre de défilement lui-même, et notamment Canevas à barre de défilement, Sens de la barre de défilement, Position X de la barre de défilement, Position Y de la barre de défilement, Largeur de barre de défilement, Hauteur de barre de défilement, Inverser direction et Groupe d'attributs visuels.

Application bloc

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif facultatif

Notes d'utilisation

Si vous activez Inverser direction, Form Builder extrait le prochain groupe d'enregistrements lorsque l'utilisateur effectue un défilement vers le haut. Si l'utilisateur effectue un défilement vers le bas, Form Builder affiche les enregistrements déjà extraits.

Propriété	Description
Canevas à barre de défilement	Indique le canevas sur lequel la barre de défilement du bloc doit être affichée. Le canevas indiqué doit exister dans l'application Forms.
Sens de la barre de défilement	Indique si la barre de défilement de bloc doit être affichée horizontalement ou verticalement.
Position X de la barre de défilement	Indique la position X d'une barre de défilement de bloc, mesurée à partir de l'angle supérieur gauche de la barre de défilement. Valeur par défaut : 0.
Position Y de la barre de défilement	Indique la position Y d'une barre de défilement de bloc, mesurée à partir de l'angle supérieur gauche de la barre de défilement. Valeur par défaut : 0.
Largeur de barre de défilement	Indique la largeur d'une barre de défilement de bloc. Valeur par défaut : 2.
Hauteur de barre de défilement	Indique la hauteur d'une barre de défilement de bloc. Valeur par défaut : 10.
Inverser direction	Indique que la barre de défilement doit défiler en sens inverse. Valeur par défaut : Non.
Groupe d'attributs visuels	Indique les attributs de police, de couleur et de motif à utiliser pour la barre de défilement. Pour plus d'informations, reportez-vous à la propriété Groupe d'attributs visuels. Valeur par défaut : déterminée par la plate-forme et la définition du fichier de ressources.


Afficher règle - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le contrôle d'élément son doit afficher la commande de positionnement de la règle (dans l'Editeur de présentation et lors de l'exécution).

Application contrôle d'élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Obligatoire/Facultatif  Obligatoire


Afficher symboles - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si les symboles plus (+) ou moins (-) doivent être affichés devant chaque noeud de l'arborescence. Le symbole + indique que le noeud possède des fils mais n'est pas développé. Le symbole - indique que le noeud est développé.

Application  arborescence

Définition  Form Builder

Valeur par défaut

Vrai

Obligatoire/Facultatif  obligatoire


Afficher horloge - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le contrôle d'élément son doit afficher [image] (dans l'Editeur de présentation et lors de l'exécution).

Application contrôle d'élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Obligatoire/Facultatif  Obligatoire


Afficher barre de défilement verticale - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer qu'une barre de défilement verticale doit apparaître sur le côté d'un canevas ou d'une fenêtre.

Application canevas, fenêtre, élément image, éditeur, élément

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  Facultatif


Afficher barre de défilement verticale - Restrictions

•	Cette propriété est valide avec les gestionnaires de fenêtres qui supportent les barres de défilement verticales.

•	Cette propriété n'est pas valide pour une fenêtre principale : une fenêtre principale ne peut pas avoir de barre de défilement.

•	Cette propriété est valide avec les gestionnaires de fenêtres qui supportent les barres de défilement verticales.

•	Pour l'élément texte, la propriété Multiligne doit être activée.


Afficher Réglage du volume - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le contrôle d'élément son doit afficher [image] (dans l'Editeur de présentation et lors de l'exécution).

Application contrôle d'élément son

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Obligatoire/Facultatif  Obligatoire


Comprimer - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si les blancs doivent être automatiquement supprimés du cadre. Lorsque Comprimer est activée, Form Builder réduit ou "comprime" automatiquement le cadre autour des éléments qu'il contient.

Remarque : Le redimensionnement d'un cadre est sans effet lorsque la propriété Comprimer est activée. Par exemple, lorsque vous augmentez la taille du cadre, Form Builder le réduit automatiquement à sa taille comprimée. Pour redimensionner un cadre, désactivez Comprimer.

Application cadre

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  Facultatif


Alignement d'un objet - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'alignement d'un objet ne comportant qu'une seule ligne lorsque la propriété Alignement de cadre est définie à Remplissage.

Application cadre

Définition  Form Builder

Valeur par défaut

Début

Obligatoire/Facultatif  Obligatoire


Enregistrement unique - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que le bloc de contrôle doit toujours contenir un enregistrement. Notez la différence avec le nombre d'enregistrements affichés dans un bloc.

Application bloc

Définition  Form Builder

Valeur par défaut

Non

Notes d'utilisation

•	Activez Enregistrement unique pour un bloc de contrôle qui contient un élément calculé récapitulatif, un contrôle VBX (sous Microsoft Windows 3.x 16 bits) ou un contrôle ActiveX (sous Windows 32 bits). Inversement, la propriété Enregistrement unique doit être désactivée pour le bloc qui contient l'élément dont les valeurs sont récapitulées et affichées dans l'élément calculé.

•	Vous ne pouvez pas activer cette propriété pour un bloc de données.


Taille - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer la largeur et la hauteur du canevas, en unités de coordonnées d'application Forms en cours, spécifiées par la propriété d'application Forms Système de coordonnées.

Application canevas

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

Taille (élément)

Permet d'indiquer la largeur et la hauteur de l'élément, en unités de coordonnées d'application Forms en cours, spécifiées par la propriété d'application Forms Système de coordonnées.

Application élément

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

Taille (éditeur)

Permet d'indiquer la largeur et la hauteur de l'éditeur, en unités de coordonnées d'application Forms en cours, spécifiées par la propriété d'application Forms Système de coordonnées.

Application éditeur

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	EDIT_TEXTITEM

•	SHOW_EDITOR

Notes d'utilisation

•	Pour un élément texte ou un élément affiché, le nombre de caractères que peut stocker l'élément est déterminé par la propriété Longueur maximum, et n'est pas affecté par la propriété Taille.

•	Dans les applications qui s'exécutent sur des plates-formes en mode caractère, la hauteur des éléments qui affichent des libellés de texte doit être au moins de 2 cellules de caractère pour que le texte s'affiche correctement.

Taille (LOV)

Permet d'indiquer la largeur et la hauteur de la LOV, en unités de coordonnées d'application Forms en cours, spécifiées par la propriété d'application Forms Système de coordonnées.

Permet d'indiquer la largeur et la hauteur de la LOV, en unités de coordonnées d'application Forms en cours, spécifiées par la propriété d'application Forms Système de coordonnées.

Application LOV

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_LOV_PROPERTY

• SET_LOV_PROPERTY

Restrictions

Form Builder veillera à ce que la largeur minimum de la LOV soit suffisante pour afficher les boutons au bas de la LOV. (Sur les plates-formes qui permettent de redimensionner les LOV, vous pouvez donner à la LOV une taille minimum, qui n'affichera pas tous les boutons.)

Taille (fenêtre)

Permet d'indiquer la largeur et la hauteur de la fenêtre, en unités de coordonnées d'application Forms en cours, spécifiées par la propriété d'application Forms Système de coordonnées.

Application fenêtre

Définition Form Builder, par programme

Valeur par défaut

80 caractères sur 24 caractères

Reportez-vous aux procédures internes suivantes :

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Taille - Restrictions

Form Builder veillera à ce que la largeur minimum de l'éditeur soit suffisante pour afficher les boutons au bas de l'éditeur. (Sur les plates-formes qui permettent de redimensionner les éditeurs, vous pouvez donner à l'éditeur une taille minimum, qui n'affichera pas tous les boutons.)


Type d'ajustement - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le type d'affichage d'une image lorsque sa taille ne correspond pas à celle de l'élément image.

Les options valides pour cette propriété sont les suivantes :

Tronquer	Affiche uniquement la partie de l'image complète qui tient dans le rectangle affiché.

Ajuster	Met l'image à l'échelle, afin qu'elle tienne dans le rectangle affiché.

Application élément image

Définition  Form Builder

Valeur par défaut

Tronquer


Format son - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le format dans lequel l'élément son doit être stocké dans les bases de données AU, AIFF, AIFF-C ou WAVE.

Lorsque vous utilisez les procédures internes READ_SOUND_FILE ou WRITE_SOUND_FILE pour travailler sur des données son lues ou écrites dans le système de fichiers, utilisez le paramètre type_fichier pour contrôler le format des données son lues ou écrites.

Application élément son

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

• READ_SOUND_FILE

• WRITE_SOUND_FILE

Valeur par défaut

WAVE

Obligatoire/Facultatif  obligatoire


Qualité du son - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la qualité du stockage de l'élément son dans la base de données : Automatique, Maximum, Elevée, Moyenne, Basse ou Minimum.

Lorsque vous utilisez la procédure interne WRITE_SOUND_FILE pour écrire des données son dans le système de fichiers, utilisez le paramètre qualité_son pour contrôler le format des données son écrites.

Application élément son

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

• WRITE_SOUND_FILE

Valeur par défaut

Automatique

Obligatoire/Facultatif  obligatoire


Angle de début - Propriété

 Toutes les propriétés

Description

Indique l'angle de l'arc en considérant l'axe horizontal comme origine.

Application  arc graphique

Définition  Form Builder

Valeur par défaut

90

Obligatoire/Facultatif  obligatoire


Alignement de l'invite de début - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer le mode d'alignement de l'invite sur le bord horizontal de l'élément, soit Début, Centre ou Fin. Cette propriété est valide lorsque la propriété Style de présentation est définie à Application Forms.

Application cadre

Définition  Form Builder

Valeur par défaut

Début

Obligatoire/Facultatif  obligatoire


Alignement de l'invite de début


Décalage de l'invite de début - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer la distance entre l'invite et son élément lorsque la propriété Alignement de l'invite de début est définie à Début.

Application cadre

Définition  Form Builder

Valeur par défaut

0 (cellule de caractère)

Obligatoire/Facultatif  obligatoire


Décalage de l'invite de début


Code de démarrage - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le code PL/SQL facultatif que Form Builder exécute lorsque le module Menu est chargé en mémoire lors du démarrage de l'application Forms. Considérez un code de démarrage comme un déclencheur qui est activé lorsque le module Menu est chargé.

Application module Menu

Définition  Form Builder

Obligatoire/Facultatif facultatif

Notes d'utilisation

Le code de démarrage ne s'exécute pas lorsque Form Builder retourne une application Forms appelée.


Etat (bloc) - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'état actuel du bloc précisé : Nouveau, Modifié ou Interrogation.

Application bloc

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Notes d'utilisation

Vous pouvez déterminer l'état du bloc en cours dans l'application Forms en vous reportant à la variable système SYSTEM.BLOCK_STATUS. L'état de l'application Forms peut être consulté par la variable système SYSTEM.FORM_STATUS.


Etat (enregistrement) - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'état en cours de l'enregistrement indiqué : Nouveau, Modifié, Interrogation ou Insérer.

Application enregistrement

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_RECORD_PROPERTY

• SET_RECORD_PROPERTY

Notes d'utilisation

La propriété Etat permet de consulter l'état d'un enregistrement. Vous pouvez également consulter l'état de l'élément en cours dans l'application Forms en utilisant la variable système SYSTEM.RECORD_STATUS.

En général, toute attribution à un élément de base de données modifie l'état d'un enregistrement de QUERY en CHANGED (ou de  NEW en INSERT), même si la valeur attribuée est la même que la précédente.  Le fait de transmettre un élément à une procédure en tant que paramètre OUT ou IN OUT est considéré comme une attribution.


Information de référence - Propriété

 Toutes les propriétés

Description

Permet d'indiquer, pour l'objet source et le module source d'un objet référencé, les informations suivantes :

Module	Nom du module source.

Stockage	Type de module source (Application Forms ou Menu) et emplacement (Système de fichiers ou Base de données)

Nom	Nom de l'objet source dans le module source. (Le nom d'un objet de référence peut être différent de celui de son objet source.)

Application tout objet de référence

Définition  Form Builder

Obligatoire/Facultatif facultatif


Nom de sous-menu - Propriété

 Toutes les propriétés

Description

Indique le nom du sous-menu associé à un menu principal. La propriété Type de commande doit être définie à Menu pour que vous puissiez appeler la propriété Sous-menu.

Application  éléments de menu

Définition  Form Builder

Obligatoire/Facultatif  obligatoire

Valeur par défaut

Null


Bloc récapitulatif - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer un bloc Form Builder sur lequel toutes les lignes d'un élément calculé récapitulatif sont récapitulées (par exemple, dont le total, la moyenne, etc., sont calculés) pour attribuer une valeur à l'élément.

Application bloc

Définition  Form Builder

Obligatoire/Facultative obligatoire si la propriété Mode de calcul de l'élément associé est définie à Récapitulatif.


Elément récapitulatif - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer un élément Form Builder dont la valeur est récapitulée (c'est-à-dire dont le total, la moyenne, etc. sont calculés) pour attribuer une valeur à un élément calculé récapitulatif.

Application élément

Définition  Form Builder

Obligatoire/Facultative obligatoire si la propriété Mode de calcul de l'élément associé est définie à Récapitulatif.


Elément récapitulatif - Restrictions

•	L'élément récapitulatif ne peut pas être un élément de récapitulation.

•	Si l'élément récapitulatif ne réside pas dans le même bloc que l'élément de récapitulation, l'élément de récapitulation doit résider dans un bloc de contrôle dont la propriété Enregistrement unique est activée.


Fonction récapitulative - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type de fonction de calcul que Form Builder doit effectuer sur l'élément récapitulatif.

Moy	Valeur moyenne (moyenne arithmétique) de l'élément récapitulatif sur tous les enregistrements du bloc.

Décompte	Décompte de toutes les instances non nulles de l'élément récapitulatif sur tous les enregistrements du bloc.

Max	Valeur maximum de l'élément récapitulatif sur tous les enregistrements du bloc.

Min	Valeur minimum de l'élément récapitulatif sur tous les enregistrements du bloc.

Ecart	Ecart type des valeurs de l'élément récapitulatif sur tous les enregistrements du bloc.

Somme	Somme de toutes les valeurs de l'élément récapitulatif sur tous les enregistrements du bloc.

Variance	Variance des valeurs de l'élément récapitulatif sur tous les enregistrements du bloc. (La variance est définie comme le carré de l'écart type.)

Remarque : Pour plus d'informations sur ces opérations arithmétiques, reportez-vous au manuel Oracle8 Server SQL Language Reference Manual.

Application  élément

Définition  Form Builder

Obligatoire/Facultative obligatoire (uniquement si la propriété Mode de calcul de l'élément associé est définie à Récapitulatif)

Valeur par défaut

Aucune


Fonction récapitulative - Restrictions

Vous devez définir la propriété Type de données de paramètre à Number à moins que le Type de récapitulatif de l'élément soit défini à Max ou Min, cas dans lequel le type de données doit être identique à celui de l'élément récapitulatif associé. Par exemple, un élément calculé qui affiche la date la plus récente (c'est-à-dire, maximum) dans la colonne DATE_EMBAUCHE doit avoir pour type de données Date.


Synchronisation avec option - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer le nom de l'option dont l'option en cours doit tirer sa valeur. La définition de cette propriété synchronise les valeurs des deux options, afin qu'elles soient effectivement le reflet l'une de l'autre. Lorsque l'utilisateur ou l'application change la valeur de l'une des deux options, la valeur de l'autre change également.

Application toutes les options, sauf les conteneurs OLE

Définition  Form Builder

Obligatoire/Facultatif  Facultatif

Valeur par défaut

NULL

Notes d'utilisation

•	Dans les versions précédentes, cette propriété était appelée Elément miroir.

•	Vous pouvez définir cette propriété pour les blocs de contrôle ou de table de base. Lorsque la propriété Synchronisation avec option est indiquée, la propriété Elément de table de base de l'élément en cours n'est pas prise en compte et l'élément tire sa valeur de l'élément miroir indiqué, et non d'une colonne de la base de données.

•	Si vous utilisez la procédure interne GET_ITEM_PROPERTY pour obtenir une propriété Elément Table de base, elle obtient la valeur depuis l'élément miroir indiqué.

•	Vous pouvez utiliser l'élément miroir pour créer plusieurs éléments dans un bloc qui affiche la même valeur de colonne de base de données.


Synchronisation avec option - Restrictions

•	Le nombre maximum d'éléments d'une application Forms qui peuvent pointer sur le même élément miroir est fixé à 100.


Bord d'attachement d'onglet - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer l'endroit où sont attachés les onglets sur un canevas onglet.

Application  canevas onglet

Définition  Form Builder

Valeur par défaut

Haut

Obligatoire/Facultatif  obligatoire


Bord d'attachement d'onglet - Restrictions

Cette propriété n'est valide que pour les canevas onglet.


Page onglet - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la page onglet sur laquelle se trouve l'élément.

Application  élément

Définition  Form Builder

Valeur par défaut

aucun

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY  (le nom de la propriété programmée est Item_Tab_Page)

Obligatoire/Facultative obligatoire (si l'élément se trouve sur un canevas onglet)


Décalage X de la page onglet - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la distance entre le bord gauche du canevas onglet et le bord gauche de la page onglet. La valeur retournée dépend du système de coordonnées utilisé par l'application Forms¾pixel, centimètre, pouce ou point.

Application  canevas onglet

Reportez-vous aux procédures internes suivantes :

•	GET_CANVAS_PROPERTY


Décalage X de la page onglet - Restrictions

•	Vous pouvez extraire la valeur de la propriété, mais vous ne pouvez pas la définir.

•	Cette propriété n'est valide que pour les canevas onglet. Pour tous les autres types de canevas, le système retourne la valeur 0.


Décalage Y de la page onglet - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la distance entre le bord supérieur du canevas onglet et le bord supérieur de la page onglet. La valeur retournée dépend du système de coordonnées utilisé par l'application Forms :pixel, centimètre, pouce ou point.

Application  canevas onglet

Reportez-vous aux procédures internes suivantes :

•	GET_CANVAS_PROPERTY


Décalage Y de la page onglet - Restrictions

•	Vous pouvez extraire la valeur de la propriété, mais vous ne pouvez pas la définir.

•	Cette propriété n'est valide que pour les canevas onglet. Pour tous les autres types de canevas, le système retourne la valeur 0.


Type d'onglet - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la forme du ou des onglets avec libellé d'un canevas onglet.

Application  canevas onglet

Définition  Form Builder

Valeur par défaut

Chanfreiné

Obligatoire/Facultatif  obligatoire


Menu détachable

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer qu'un menu est détachable.

Application  menu

Définition  Form Builder

Valeur par défaut

Non


Menu détachable - Restrictions

Cette propriété n'est prise en charge que pour les types de menu déroulant par les gestionnaires de fenêtres qui prennent cette fonction en charge.


Timer_Name - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom du dernier délai expiré.

Application  application

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Obligatoire/Facultatif facultatif


Timer_Name - Restrictions

Cette propriété n'est valide que lorsqu'elle est analysée dans un déclencheur When-Timer-Expired.


Titre - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le titre à afficher pour l'objet.

Application  alerte, module Application Forms, LOV, fenêtre

Définition  Form Builder

Obligatoire/Facultatif  facultatif

Titre (LOV)

Valeur par défaut

NULL

Obligatoire/Facultatif  facultatif

Titre (Fenêtre)

Reportez-vous aux procédures internes suivantes :

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY

Obligatoire/Facultatif  facultatif

Notes d'utilisation

•	La longueur maximale du titre d'une fenêtre dépend du pilote d'affichage utilisé. (Par exemple, pour un SVGA 1280 x 1024 fonctionnant sous NT, la longueur est limitée à 78 caractères.)

•	Si vous n'indiquez pas de titre pour une fenêtre qui n'est pas une fenêtre principale, Form Builder utilise le nom d'objet de la fenêtre, fourni par la propriété Nom de la fenêtre.

•	Si vous n'indiquez pas de titre pour une fenêtre principale et si le menu en cours est le menu Par défaut, Form Builder utilise comme titre de la fenêtre principale le nom du module Application Forms, fourni par la propriété Nom du module Application Forms. Lorsque le menu en cours est un menu personnalisé de type déroulant ou barre, Form Builder utilise comme titre de la fenêtre principale le nom du module Application Forms fourni par la propriété Principal du module Menu.


Bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le texte d'aide qui doit apparaître sous l'élément, lorsque la souris passe dans l'élément.

Application  élément

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Valeur par défaut

blanc

Obligatoire/Facultatif  facultatif


Couleur d'arrière-plan de la bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la couleur de la zone d'arrière-plan de l'objet.

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Motif de remplissage de la bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le motif à utiliser pour la zone de remplissage de l'objet. Les motifs sont fournis dans les deux couleurs indiquées par Background_Color et Foreground_Color.

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Nom de la police de la bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type de police à utiliser pour le texte de l'objet. La liste des polices disponibles varie en fonction du système.

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Taille de la police de la bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la taille de la police en points.

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Espacement de la police de la bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la largeur de la police (c'est-à-dire la quantité d'espace entre les caractères, ou crénage).

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Style de la police de la bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le style de la police.

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Poids de la police de la bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le poids de la police.

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Couleur de premier plan de la bulle d'information - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la couleur de la zone de premier plan de l'objet. Dans le cas des éléments, définit la couleur du texte affiché dans l'élément.

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Groupe d'attributs visuels de la bulle d'information - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'attribut visuel nommé à appliquer à la bulle d'information lors de l'exécution.

Application  bulle d'information d'élément

Définition  Form Builder

Valeur par défaut

Valeur par défaut

Obligatoire/Facultatif  obligatoire


Blanc sur noir - Propriété de la bulle d'information

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que l'objet doit apparaître sur une unité d'affichage bitmap monochrome sous forme de texte blanc sur fond noir.

Application  élément

Définition  programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY


Alignement de l'invite supérieure - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer le mode d'alignement de l'invite sur le bord supérieur de l'élément : Début, Fin ou Centre. Cette propriété est valide lorsque la propriété Style de présentation est définie à Tabulaire.

Application  cadre

Définition  Form Builder

Valeur par défaut

Début

Obligatoire/Facultatif  obligatoire


Alignement de l'invite supérieure


Décalage de l'invite supérieure - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer la distance entre l'invite et son élément lorsque la propriété Alignement de l'invite supérieure est définie à Haut.

Application  cadre

Définition  Form Builder

Valeur par défaut

0 (cellule de caractère)

Obligatoire/Facultatif  obligatoire


Décalage de l'invite supérieure


Top_Record - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le numéro du premier enregistrement visible dans le bloc. (Les enregistrements sont numérotés dans l'ordre dans lequel ils apparaissent dans la liste interne des enregistrements du bloc.)

Application  bloc

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_BLOCK_PROPERTY

Notes d'utilisation

Utilisées ensemble, les propriétés TOP_RECORD et RECORDS_DISPLAYED vous permettent de déterminer le numéro du dernier enregistrement de l'affichage, c'est-à-dire l'enregistrement qui a le numéro le plus élevé de tous les enregistrements affichés dans le bloc.


Titre d'en-tête - Propriété

 Toutes les propriétés

Description

Permet d'indiquer un titre de 72 caractères au maximum, qui doit apparaître en haut de la fenêtre de l'éditeur.

Application  éditeur

Définition  Form Builder

Obligatoire/Facultatif  facultatif


Topmost_Tab_Page - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer la première page onglet d'un canevas onglet.

Application  canevas onglet

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

Valeur par défaut

Première page onglet qui apparaît sous le noeud Page onglet.


Topmost_Tab_Page - Restrictions

Cette propriété n'est valide que pour les canevas onglet.


Déclencheurs transactionnels - Propriété

 Toutes les propriétés

Description

Permet d'indiquer qu'un bloc est un bloc de contrôle transactionnel, c'est-à-dire un bloc qui n'est pas dans la base de données et que Form Builder doit gérer comme un bloc transactionnel. Cette propriété est incluse pour les applications qui doivent s'exécuter sur des sources de données non ORACLE et qui comprennent des déclencheurs transactionnels. Si votre application doit s'exécuter sur des sources de données ORACLE, laissez cette propriété désactivée.

Lorsque vous créez une application de source de données non ORACLE, vous simulez essentiellement les fonctionnalités d'un bloc de données en créant un bloc de contrôle transactionnel. Ce bloc est un bloc de contrôle car sa table de base n'est pas indiquée lors de la conception (propriété du bloc Table de base à NULL), mais il est transactionnel car les déclencheurs transactionnels présents le font fonctionner comme un bloc de données.

Pour plus d'informations, reportez-vous à Form Builder Advanced Techniques, Chapitre 4, "Connecting to Non-ORACLE Data Sources."

Application  bloc

Définition  Form Builder

Valeur par défaut

Non

Notes d'utilisation

•	Les déclencheurs transactionnels ne sont applicables que lorsque la propriété Table de base est à NULL.

•	L'activation des déclencheurs transactionnels met en oeuvre les propriétés Imposer clé primaire et Imposer sécurité sur colonne.


Style de déclencheur - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si le déclencheur est de style PL/SQL ou V2. Oracle conseille de n'écrire que des déclencheurs PL/SQL. Le support de déclencheurs de style V2 est inclus uniquement pour des raisons de compatibilité avec les versions précédentes.

Application  déclencheur

Définition  Form Builder

Valeur par défaut

PL/SQL

Notes d'utilisation

Le choix d'un déclencheur de type V2 active le bouton Zoom, qui ouvre la fenêtre de propriété Etape déclencheur.


Texte de déclencheur - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le code PL/SQL que Form Builder exécute lorsque le déclencheur est activé.

Application  déclencheur

Définition  Form Builder

Obligatoire/Facultatif  obligatoire


Type de déclencheur - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le type de déclencheur : intégré ou nommé par l'utilisateur. Les déclencheurs nommés par l'utilisateur ne conviennent pas toujours et ne sont pas obligatoires pour la plupart des applications.

Application :

déclencheur

Définition  Form Builder

Valeur par défaut

PL/SQL

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

La propriété Type de déclencheur peut avoir l'une des valeurs suivantes :

Intégré	Indique que le déclencheur est fourni par Form Builder et correspond à un événement d'exécution spécifique prédéfini.

Nommé par l'utilisateur	Indique que le déclencheur n'est pas fourni par Form Builder. Un déclencheur nommé par l'utilisateur ne peut être exécuté que par un appel à la procédure interne EXECUTE_TRIGGER.


Mise à jour autorisée (bloc) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si les utilisateurs peuvent modifier les valeurs des éléments du bloc dont la propriété d'élément Mise à jour autorisée est activée. (La désactivation de Mise à jour autorisée pour le bloc remplace la définition de Mise à jour autorisée de tous les éléments du bloc.)

Application  bloc

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Oui


Mise à jour autorisée (bloc) - Restrictions

Lorsque la propriété de bloc Mise à jour autorisée est activée, le bloc n'est mis à jour que si la propriété Mise à jour autorisée est activée pour au moins un de ses éléments.


Mise à jour autorisée (élément) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si les utilisateurs doivent être autorisés à modifier la valeur de l'élément de table de base d'un enregistrement interrogé. Lorsque Mise à jour autorisée est désactivée, les utilisateurs peuvent passer à l'élément d'un enregistrement autorisé mais, s'ils tentent de modifier sa valeur, Form Builder affiche le message d'erreur FRM-40200: Champ protégé contre les modifications.

L'activation de Mise à jour autorisée n'empêche pas les utilisateurs d'entrer des valeurs dans un enregistrement NEW (INSERT).

Application  tous les éléments, sauf les boutons, les éléments graphiques et les éléments image.

Définition Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_ITEM_PROPERTY

Valeur par défaut

Oui

Notes d'utilisation

•	Pour définir par programme la propriété Mise à jour autorisée (élément), vous pouvez utiliser la constante UPDATE_ALLOWED ou UPDATEABLE. Cette dernière sert à assurer la compatibilité avec les versions précédentes.

•	Si Activé est défini à PROPERTY_FALSE lors de l'exécution, la propriété Mise à jour autorisée de l'instance d'élément ou des éléments est également définie à PROPERTY_FALSE.

•	Lorsque Mise à jour autorisée est indiquée à plusieurs niveaux (instance d'élément, élément et bloc), les valeurs sont ajoutées. Cela signifie que définir Mise à jour autorisée à Oui (PROPERTY_TRUE pour l'exécution) n'a pas d'incidence au niveau de l'instance de l'élément, à moins qu'elle ne soit définie logiquement aux niveaux du bloc et de l'élément. Par exemple, l'utilisateur ne peut pas mettre à jour l'instance d'un élément si la propriété Mise à jour autorisée est définie à vrai au niveau de l'instance mais pas aux niveaux de l'élément ou du bloc.


Mise à jour autorisée (élément) - Restrictions

•	Si vous utilisez SET_ITEM_PROPERTY pour définir UPDATE_ALLOWED à vrai, vous devez définir les propriétés d'élément comme suit :

•	Activé à Oui (PROPERTY_TRUE pour l'exécution)

•	Visible à Oui (PROPERTY_TRUE pour l'exécution)

•	Elément Table de base à Oui (PROPERTY_TRUE pour l'exécution)

•	Mettre à jour seulement si NULL à Non (PROPERTY_FALSE pour l'exécution)


Mettre à jour colonnes modifiées seulement - Propriété

 Toutes les propriétés

Description

Lorsque les enregistrements interrogés comportent une marque de mise à jour, permet d'indiquer que seules les colonnes dont les valeurs ont été réellement modifiées doivent être incluses dans l'instruction SQL UPDATE qui est envoyée à la base de données pendant une validation (COMMIT). Par défaut, cette propriété est désactivée, et toutes les colonnes sont incluses dans l'instruction UPDATE.

Application  bloc

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultatif facultatif

Notes d'utilisation

•	Si la propriété Taille de tableau DML est définie sur une valeur supérieure à 1, la propriété Mettre à jour colonnes modifiées seulement est ignorée au cours de l'exécution. En fait, une taille de tableau DML supérieure à 1 entraîne la mise à jour de toutes les colonnes, même si la propriété Mettre à jour colonnes modifiées seulement a été définie à Oui.

•	Lorsque la propriété Mettre à jour colonnes modifiées seulement est désactivée, Form Builder peut réutiliser l'instruction SQL pour des mises à jour multiples, sans avoir à effectuer chaque fois une nouvelle analyse. L'activation de cette propriété peut entraîner une dégradation des performances, car l'instruction UPDATE doit effectuer chaque fois une nouvelle analyse. En général, vous ne devez activer Mettre à jour colonnes modifiées seulement que lorsque vous savez que les utilisateurs mettront rarement à jour les valeurs de colonne, qui mobilisent longtemps le réseau (valeur de type LONG, par exemple).

•	Activez Mettre à jour colonnes modifiées seulement pour :

réduire le trafic du réseau si vous savez qu'un utilisateur ne mettra généralement à jour qu'une ou deux colonnes ;

éviter de retransmettre de gros éléments qui ne sont pas mis à jour (images ou éléments de type LONG, par exemple) ;

activer des déclencheurs de base de données uniquement sur les colonnes modifiées. Par exemple, si vous appliquez un système de sécurité avec un déclencheur de base de données qui est activé lorsqu'une colonne a été mise à jour et écrit dans une table l'identificateur de la personne effectuant la mise à jour.


Update_Column - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Lorsque cette propriété est activée, Form Builder doit considérer cet élément comme étant mis à jour.

Si la propriété de bloc Mettre à jour colonnes modifiées seulement est activée, la définition de Update_Column à Property_True indique que l'élément a été mis à jour et que la colonne correspondante doit être incluse dans l'instruction UPDATE transmise à la base de données.

Si la propriété de bloc Mettre à jour colonnes modifiées seulement est activée et si la propriété Update_Column est définie à Property_False, la colonne de l'élément n'est pas incluse dans l'instruction UPDATE transmise à la base de données.

Si la propriété de bloc Mettre jour colonnes modifiées seulement est désactivée, la définition de Update_Column n'est pas prise en compte et toutes les colonnes de table de base sont incluses dans l'instruction UPDATE.

Application  élément

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Obligatoire/Facultatif  facultatif

Notes d'utilisation

Cette propriété est surtout utilisée avec la propriété Mettre à jour colonnes modifiées seulement. Cependant, quelle que soit la définition de cette propriété (activée ou désactivée), vous pouvez utiliser la propriété Update_Column pour savoir si une colonne donnée a été mise à jour.

Remarque : Bien que la propriété Update_Column affecte Record_Status, la définition de cette propriété à Property_Off pour toutes les colonnes ne fait pas revenir Record_Status à QUERY. Si vous voulez que Record_Status revienne à QUERY, vous devez le définir explicitement à l'aide de SET_RECORD_PROPERTY.


Mettre à jour validation (commit) - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si un élément graphique doit être mis à jour pour refléter les modifications effectuées par la validation d'enregistrements nouveaux ou mis à jour dans son bloc source.

Application  élément graphique

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Mettre à jour présentation - Propriété

 Toutes les propriétés

Description

Permet d'indiquer les conditions de mise à jour de la présentation du cadre.

Automatiquement	La présentation est mise à jour lorsque le cadre est déplacé ou redimensionné ou chaque fois qu'une propriété de présentation de cadre est modifiée.

Manuellement	La présentation est mise à jour lorsque l'assistant Présentation est utilisé pour modifier un cadre ou que l'utilisateur clique sur l'option de menu ou sur le bouton Mettre à jour présentation.

Verrouillé	La présentation est verrouillée et ne peut pas être mise à jour.

Application  cadre

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Mettre à jour seulement si NULL - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que les utilisateurs ne peuvent modifier la valeur de l'élément que lorsqu'elle est à NULL.

Application  éléments image, éléments liste, éléments sonores, texte.

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

Valeur par défaut

Non

Obligatoire/Facultatif  facultatif

Notes d'utilisation

Pour définir par programme la propriété Mettre à jour seulement si NULL, utilisez la constante UPDATE_NULL.


Mettre à jour seulement si NULL - Restrictions

Les propriétés d'éléments doivent être définies de la manière suivante :

•	Activé à Oui

•	Visible activé

•	Mise à jour autorisée désactivée


Update_Permission - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Lorsque la propriété Update_Permission est désactivée :

•	la propriété Update_If_Null est désactivée ;

•	la propriété Mise à jour autorisée est désactivée ;

•	la colonne n'est pas incluse dans une instruction UPDATE émise par Form Builder, car elle est supprimée de la clause SET des instructions UPDATE.

Application  tous les éléments, sauf les boutons et les éléments graphiques.

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

Valeur par défaut

Oui

Obligatoire/Facultatif  facultatif

Notes d'utilisation

Update_Permission permet aux développeurs d'applications Forms d'appliquer leur propre système de sécurité, qui remplace la propriété par défaut Imposer sécurité sur colonne de Form Builder. Cette propriété est incluse essentiellement pour les applications qui s'exécutent sur des sources de données non ORACLE. Utilisez Update_Permission pour exclure certaines colonnes des instructions UPDATE : par exemple, lors de l'utilisation d'un déclencheur On-Column-Security pour appliquer un système de sécurité personnalisé.


Arguments de procédure de mise à jour - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms, les types de données et les valeurs des arguments qui doivent être passés à la procédure de mise à jour de données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application  bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Nom de procédure de mise à jour - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le nom de la procédure à utiliser pour mettre à jour les données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application  bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Colonnes de résultats de procédure de mise à jour - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les noms et les types de données des colonnes de résultats associées à la procédure de mise à jour des données. Cette propriété n'est valide que lorsque la propriété Type de cible de données DML est définie à Procédure.

Application  bloc

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif facultatif


Mettre à jour interrogation - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si un élément graphique doit être mis à jour pour refléter les modifications apportées par les enregistrements d'interrogation dans son bloc source.

Application  élément graphique

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Sécurité - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que Form Builder doit appliquer le système de sécurité défini pour le module Menu, en utilisant la propriété Rôles associés au module Menu.

Application  module Menu

Définition  Form Builder

Valeur par défaut

Non

Notes d'utilisation

Cette propriété peut être désactivée pour que les développeurs puissent tester un module Menu sans avoir à être membres d'un rôle de base de données. La propriété Sécurité peut alors être activée lors de l'exécution pour que ces rôles soient en vigueur.


Sécurité - Restrictions

aucun


Utiliser contrôles 3D - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Sous Microsoft Windows, permet d'indiquer à Form Builder d'afficher les éléments en 3 dimensions.

Lorsque la propriété Utiliser contrôles 3D est activée, tout canevas dont la propriété Groupe d'attributs visuels est définie à Par défaut est automatiquement affiché sur un fond gris.

En outre, lorsque cette propriété est activée, le relief de chaque élément apparaît automatiquement enfoncé, même si une propriété de niveau d'élément est définie, par exemple, à relâché.

S'applique à  application Forms

Définition  Form Builder

Valeur par défaut

Pour une nouvelle application Forms : Oui. Pour une application Forms mise à jour à partir d'une version précédente de Form Builder : Non.


Utiliser contrôles 3D - Restrictions

Cette propriété n'est valide que sous Microsoft Windows.


Nom utilisateur - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nom de l'utilisateur en cours.

S'applique à  application

Définition  non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Notes d'utilisation

Cette propriété peut être utilisée avec la procédure interne LOGON dans un déclencheur On-Logon ou encore pour établir une connexion avec une source de données non ORACLE.

La propriété Nom utilisateur ne retourne que le nom de l'utilisateur. Si vous voulez également une chaîne de connexion, utilisez la propriété Connect_String.


User_Date/Datetime_Format - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Contient le masque de format de date ou date/heure actuel établi par la variable d'environnement FORMSnn_USER_DATE_FORMAT ou FORMSnn_USER_DATETIME_FORMAT.

Il y a deux propriétés différentes : User_Date_Format et User_Datetime_Format.

S'applique à  application

Définition  non définissable depuis Form Builder.

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY


User_Interface - Propriété

 Toutes les propriétés

Description

Permet d'indiquer le nom de l'interface utilisateur actuellement utilisée.

S'applique à  application

Définition non définissable

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Notes d'utilisation

Cette propriété retourne l'une des valeurs suivantes :

•	BLOCKMODE

•	CHARMODE

•	MACINTOSH

•	MOTIF

•	MSWINDOWS

•	MSWINDOWS32

•	PM

•	WIN32COMMON

•	WEB

•	X


User_NLS_Date_Format - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'obtenir le masque de format de date NLS en cours.

S'applique à  application

Définition  non définissable depuis Form Builder.

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Notez que cette propriété est en lecture seule. Vous ne pouvez pas l'indiquer dans SET_APPLICATION_PROPERTY.

Par exemple, pour définir la propriété PLSQL_DATE_FORMAT à la valeur du masque de format de date NLS en cours, vous pouvez entrer le code suivant dans un déclencheur WHEN-NEW-FORM-INSTANCE de votre application :

     SET_APPLICATION_PROPERTY(PLSQL_DATE_FORMAT,
                              GET_APPLICATION_PROPERTY(USER_NLS_DATE_FORMAT));

Valeur par défaut

Aucune.


User_NLS_Lang - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la valeur complète de la variable d'environnement NLS_LANG définie pour le support de langue nationale de la session Runform en cours. USER_NLS_LANG équivaut à chaîner les propriétés suivantes :

•	USER_NLS_LANGUAGE (langue uniquement)

•	USER_NLS_TERRITORY (territoire uniquement)

•	USER_NLS_CHARACTER_SET (jeu de caractères uniquement)

S'applique à  application

Définition non définissable à partir de Form Builder. Définie au niveau de votre système d'exploitation.

Reportez-vous aux procédures internes suivantes :

GET_APPLICATION_PROPERTY

Valeur par défaut

Généralement "America_American.WE8ISO8859P1", mais toutes les valeurs par défaut peuvent être propres au port utilisé.


Valider à partir de la liste - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si Form Builder doit valider la valeur de l'élément texte par rapport aux valeurs de la LOV attachée.

Application  élément texte

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  facultatif

Restrictions

La propriété Liste de valeurs est obligatoire.

Notes d'utilisation

Lorsque la propriété Valider à partir de la liste est activée, Form Builder compare la valeur de l'élément texte aux valeurs en cours de la première colonne affichée dans la LOV lorsque l'événement de validation se produit :

•	Si la valeur de l'élément texte correspond à l'une des valeurs de la première colonne de la LOV, la validation réussit, la LOV n'est pas affichée et le traitement se poursuit normalement.

•	Si la valeur de l'élément texte ne correspond pas à l'une des valeurs de la première colonne de la LOV, Form Builder affiche la LOV et utilise la valeur de l'élément texte comme critère de recherche pour réduire automatiquement la liste.

Par exemple, si l'utilisateur entre les 3 premiers chiffres d'un code produit à 6 chiffres, puis tente de passer à l'élément suivant, Form Builder affiche la LOV et réduit automatiquement la liste pour afficher tous les codes qui ont les mêmes 3 premiers chiffres.

•	Si l'utilisateur sélectionne une valeur dans la LOV, Form Builder quitte la LOV et attribue les valeurs sélectionnées aux éléments de retour correspondants.

Lorsque vous utilisez une LOV pour une validation, Form Builder ajoute généralement une marque de validation à un élément texte si l'utilisateur sélectionne une valeur dans la LOV. Vous devez donc vous assurer que :

•	l'élément texte auquel est attachée la LOV est défini comme élément de retour pour la première colonne affichée dans la LOV, et que

•	les valeurs de la LOV sont valides.

Notez cependant qu'un déclencheur When-Validate-Item est néanmoins activé pour l'élément, et que les contrôles de validation que vous effectuez dans le déclencheur sont bien exécutés.

Notez également que la première colonne affichée dans la LOV peut ne pas être la première colonne du groupe d'enregistrements sous-jacent de la LOV, car certaines colonnes de groupe d'enregistrements peuvent être masquées ou ne pas avoir été incluses dans la structure de la LOV.


Validation - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si le traitement de validation par défaut de Form Builder a été activé ou désactivé pour une application Forms.

Application  module Application Forms

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Valeur par défaut

Oui

Notes d'utilisation

Veuillez noter que, lorsque vous désactivez Validation, toutes les validations internes d'application Forms sont annulées et qu'aucun déclencheur WHEN-VALIDATE n'est activé.

Vous ne pouvez désactiver Validation par programme que pour de courtes périodes, lorsque vous voulez précisément éviter tout comportement de validation de Form Builder par défaut. Lorsque vous réactivez Validation, les éléments texte qui n'avaient pas été validés sont validés selon les règles de traitement classiques.

Lorsque Validation est désactivée, le déclencheur Post-Change est activé pendant le traitement de l'interrogation, mais non ailleurs.


Unités de validation - Propriété

 Toutes les propriétés

Description

Permet d'indiquer la portée de la validation de l'application Forms lors de l'exécution. Plus précisément, l'unité de validation définit le volume maximum de données qu'un utilisateur peut entrer dans l'application Forms avant que Form Builder déclenche une validation. Pour la plupart des applications, l'unité de validation est l'élément (option par défaut sur la plupart des plates-formes), et Form Builder valide alors les données d'un élément dès que l'utilisateur tente de sortir de l'élément.

Application  module Application Forms

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_FORM_PROPERTY

•	SET_FORM_PROPERTY

Valeur par défaut

Valeur par défaut

Notes d'utilisation

Les options valides pour cette propriété sont les suivantes :

•	Par défaut

•	Application Forms

•	Bloc

•	Enregistrement

•	Elément


Valeur lorsque coché - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la valeur que la case à cocher doit afficher pour représenter l'état coché. Par exemple, O, 1, MANAGER ou 1997. Lorsqu'une valeur correspondant à la valeur cochée est extraite ou attribuée à la case à cocher, celle-ci est affichée. De même, lorsque l'utilisateur fait passer la case à cocher à l'état coché, la valeur de la case à cocher devient la valeur cochée.

Application  case à cocher

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultatif  facultatif


Valeur lorsque coché - Restrictions

La valeur doit être compatible avec le type de données indiqué par la propriété Type de données de paramètre.


Valeur lorsque non coché - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la valeur que la case à cocher doit afficher pour représenter l'état non coché. Par exemple, O, 1, MANAGER ou 1997. Lorsqu'une valeur correspondant à la valeur non cochée est extraite ou attribuée à la case à cocher, celle-ci est affichée. De même, lorsque l'opérateur fait passer la case à cocher à l'état non coché, la valeur de la case à cocher devient la valeur non cochée.

Application  case à cocher

Définition  Form Builder

Valeur par défaut

NULL

Obligatoire/Facultative facultative. Si cette propriété est laissée en blanc, la valeur Non coché est à NULL.


Valeur lorsque non coché - Restrictions

La valeur doit être compatible avec le type de données indiqué par la propriété Type de données de paramètre.


Fichier de contrôle VBX - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la sélection d'un fichier VBX.

Application  contrôle VXB

Définition  Form Builder

Valeur par défaut

aucun

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

La sélection d'un fichier VBX détermine les contrôles VBX qui peuvent être utilisés. Le nombre et le type de fichiers VBX pouvant être sélectionnés dépendent des contrôles VBX tiers installés sur votre système.

Comme le transfert à un autre système d'un module Application Forms avec chemins d'accès programmés peut rendre l'adresse et le fichier VBX invalides, il est déconseillé d'indiquer un chemin d'accès absolu pour la propriété Fichier de contrôle VBX.

Pour un fichier de contrôle VBX qui n'est pas associé à un chemin d'accès absolu, le critère de recherche est le chemin de recherche par défaut du système. Si aucun des chemins de recherche par défaut ne permet de localiser le fichier de contrôle VBX indiqué, le paramètre FORMS60_PATH du fichier ORACLE.INI devient le critère de recherche du fichier de contrôle VBX. Si aucun des chemins de recherche du paramètre FORMS60_PATH ne permet de localiser le fichier de contrôle VBX, un message d'erreur d'exécution vous signale que le fichier de contrôle VBX est introuvable.


Fichier de contrôle VBX - Restrictions

Cette propriété n'est valide que sous Microsoft Windows 3.x (16 bits).


Nom de contrôle VBX - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la sélection de contrôle VBX à partir d'un fichier VBX. Certains fichiers VBX contiennent plusieurs contrôles VBX. Vous devez indiquer le contrôle VBX à utiliser, même lorsqu'un fichier VBX ne contient qu'un contrôle VBX.

Application  contrôle VXB

Définition  Form Builder

Valeur par défaut

aucun


Nom de contrôle VBX - Restrictions

Cette propriété n'est valide que sous Microsoft Windows 3.x (16 bits).


Valeur de contrôle VBX - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la valeur d'un contrôle VBX. Cette propriété détermine la valeur d'un élément personnalisé VBX dans Form Builder.

Application  contrôle VXB

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

•	VBX.GET_VALUE_PROPERTY

•	VBX.SET_VALUE_PROPERTY

Valeur par défaut

La plupart des contrôles VBX ont une propriété de valeur par défaut qui, si elle existe, est la propriété Valeur de contrôle VBX par défaut de Form Builder. Si le contrôle VBX n'a pas de propriété de valeur par défaut, la propriété Valeur de contrôle VBX de Form Builder est la propriété VBX appelée "valeur". Si la propriété VBX "valeur" n'existe pas, aucune propriété de valeur par défaut n'est attribuée à la propriété Valeur de contrôle VBX de Form Builder.

Obligatoire/Facultatif  obligatoire

Notes d'utilisation

La propriété Valeur de contrôle VBX se synchronise automatiquement avec une propriété VBX. Les modifications apportées à la propriété VBX sont répercutées dans la propriété Valeur de contrôle VBX.


Valeur de contrôle VBX - Restrictions

Cette propriété n'est valide que sous Microsoft Windows 3.x (16 bits).


Remplissage vertical - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si l'assistant Présentation utilise l'espace vide qui entoure un objet lorsque la propriété Style de présentation est définie à Application Forms.

Oui	Permet d'indiquer que l'assistant Présentation doit utiliser tout l'espace disponible lors de la disposition des objets dans le cadre. En conséquence, Form Builder ne prend pas en compte la propriété Nombre maximum d'objets par ligne.

Non	Permet d'indiquer que l'assistant Présentation ne doit pas utiliser tout l'espace disponible lors de la disposition des objets dans le cadre. Lorsque des objets sont renvoyés à la ligne, ils commencent sur la ligne de cadre suivante.

Application  cadre

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Justification verticale - Propriété

 Toutes les propriétés

Description

Permet de définir la justification verticale de l'objet texte à Haut, Centre ou Bas.

Application  texte graphique

Définition  Form Builder

Valeur par défaut

Haut

Obligatoire/Facultatif  obligatoire


Marge verticale - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer la distance entre les bordures supérieure et inférieure du cadre et les objets situés dans le cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

1 cellule de caractère (ou l'équivalent, selon le système de coordonnées de l'application Forms)

Obligatoire/Facultatif  obligatoire


Marge verticale


Décalage d'objet vertical - Propriété

 Montrez-moi	 Toutes les propriétés

Description

Permet d'indiquer la distance verticale entre les objets d'un cadre.

Application  cadre

Définition  Form Builder

Valeur par défaut

0

Obligatoire/Facultatif  obligatoire


Décalage d'objet vertical


Origine verticale - Propriété

 Toutes les propriétés

Description

Permet de définir la position verticale de l'objet texte par rapport à son point d'origine à Haut, Centre ou Bas.

Application  texte graphique

Définition  Form Builder

Valeur par défaut

Haut

Obligatoire/Facultatif  obligatoire


Canevas à barre d'outil verticale - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer le canevas qui doit être affiché dans la fenêtre sous la forme d'une barre d'outils verticale. Le canevas que vous indiquez doit être un canevas à barre d'outils verticale (propriété Type de canevas définie à Barre d'outils verticale) et être attribué à la fenêtre en cours par la définition de la propriété Fenêtre.

Application  fenêtre

Définition  Form Builder

Valeur par défaut

Null

Obligatoire/Facultative obligatoire si vous créez une barre d'outils verticale

Notes d'utilisation

•	Dans la fenêtre Propriétés, la liste instantanée de cette propriété n'indique que les canevas dont la propriété Type de canevas est définie à Barre d'outils verticale.

•	Lors de l'exécution, Form Builder tente d'afficher dans la fenêtre la barre d'outils verticale indiquée. Cependant, si plusieurs barres d'outils de même type ont été attribuées à la même fenêtre (propriété Fenêtre de canevas pointant sur la fenêtre indiquée), Form Builder peut afficher une barre d'outils différente en réponse aux événements de navigation ou au contrôle par programme.

•	Sous Microsoft Windows, le canevas à barre d'outils verticale indiqué n'est pas affiché dans la fenêtre si vous avez demandé qu'il soit plutôt affiché dans la fenêtre d'applications MDI en définissant la propriété d'application Forms Canevas à barre d'outils verticale.


Hauteur de lucarne, Largeur de lucarne;
Hauteur de lucarne, Largeur de lucarne - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer la largeur et la hauteur de la vue d'un canevas empilé. La taille et la position de la vue déterminent la partie du canevas qui est réellement affichée dans la fenêtre lors de l'exécution.

Remarque : Pour un canevas à barre d'outils ou un canevas intégral, comme la vue est représentée par la fenêtre à laquelle est attribué le canevas, les propriétés Hauteur de lucarne et Largeur de lucarne ne s'appliquent pas.

Application  canevas

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

SET_VIEW_PROPERTY

Valeur par défaut

0,0

Obligatoire/Facultatif facultatif


Hauteur de lucarne, Largeur de lucarne - Restrictions

Ces propriétés ne sont valides que pour une vue empilée (propriété Type de canevas définie à Empilé). Pour une vue intégrale, la taille de la lucarne est déterminée, lors de l'exécution, par la taille de la fenêtre dans laquelle la vue intégrale apparaît.


Position X de la lucarne, Position Y de la lucarne;
Position X de la lucarne, Position Y de la lucarne - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer les coordonnées x et y de l'angle supérieur gauche du canevas empilé par rapport à l'angle supérieur gauche de la vue intégrale en cours de la fenêtre.

Application  canevas

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_VIEW_PROPERTY

•	SET_VIEW_PROPERTY

Valeur par défaut

0,0

Obligatoire/Facultatif facultatif


Position X de la lucarne, Position Y de la lucarne - Restrictions

Ces propriétés ne sont pas valides pour une vue de canevas intégral, c'est-à-dire une vue de canevas dont la propriété Type de canevas est définie à Intégral.


Position X de la lucarne sur le canevas, Position Y de la lucarne sur le canevas - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la position de l'angle supérieur gauche de la vue par rapport à l'angle supérieur gauche du canevas. La taille et l'emplacement de la lucarne déterminent la vue, c'est-à-dire la partie du canevas réellement visible dans la fenêtre à laquelle le canevas est attribué.

Application  canevas

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_VIEW_PROPERTY

•	SET_VIEW_PROPERTY

Valeur par défaut

0,0


Visible - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si l'objet est actuellement affiché ou visible. Activez ou désactivez Visible selon que vous voulez afficher ou masquer un canevas ou une fenêtre.

Application  canevas, fenêtre

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_VIEW_PROPERTY

•	GET_WINDOW_PROPERTY

•	SET_VIEW_PROPERTY

• SET_WINDOW_PROPERTY

Valeur par défaut

TRUE

Notes d'utilisation

•	Vous ne pouvez pas masquer le canevas qui contient l'élément en cours.

•	Vous pouvez masquer une fenêtre qui contient l'élément en cours.

REMARQUE : Certains systèmes d'exploitation permettent de masquer la seule fenêtre de l'application Forms.

•	Lorsque vous utilisez GET_WINDOW_PROPERTY pour déterminer la visibilité d'une fenêtre, Form Builder applique les règles suivantes :

•	Une fenêtre est considérée comme visible si elle est affichée, même si elle est entièrement masquée par une autre fenêtre.

•	Une fenêtre qui a été icônifiée (réduite à l'état d'icône) est déclarée visible par l'utilisateur car, même si elle a une représentation minimale, elle reste affichée à l'écran.

•	Lorsque vous utilisez GET_VIEW_PROPERTY pour déterminer la visibilité d'un canevas, Form Builder applique les règles suivantes :

•	Une vue est considérée comme visible lorsqu'elle est a) devant toutes les autres vues de la fenêtre ou b) uniquement partiellement masquée par une autre vue.

•	Une vue est considérée comme non visible lorsqu'elle est a) empilée derrière la vue intégrale contenu dans la fenêtre ou b) totalement masquée par une seule vue empilée. Notez qu'une vue est considérée comme visible, même si elle est complètement masquée par la combinaison de plusieurs vues empilées.

•	L'état d'affichage de la fenêtre est sans effet sur la définition de la propriété Visible du canevas, c'est-à-dire qu'un canevas peut être déclaré visible, même si la fenêtre dans laquelle il est affiché n'est pas affichée à l'écran.


Visible (canevas) - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si un canevas empilé est, au départ, affiché ou masqué dans la fenêtre à laquelle il est attribué.

Application :

canevas empilé

Définition:

Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_VIEW_PROPERTY (VISIBLE)

•	SET_VIEW_PROPERTY (VISIBLE)

Valeur par défaut

Oui


Visible (canevas) - Restrictions

•	Une vue affichée peut ne pas être visible si elle se trouve derrière la vue intégrale ou une autre vue empilée attribuée à la même fenêtre.


Visible (élément) - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer si un élément attribué à un canevas est masqué ou affiché lors de l'exécution.

Application  tous les éléments

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

Valeur par défaut

Oui

Notes d'utilisation

•	Pour définir la propriété Visible (élément) par programme, vous pouvez utiliser la contrainte VISIBLE ou DISPLAYED. Cette dernière sert à assurer la compatibilité avec les versions précédentes.


Visible (élément) - Restrictions

Lorsque l'élément fait partie de la clé étrangère d'une relation maître-détail par défaut, l'option par défaut est Désactivé.


Visible (page onglet) - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si une page onglet est affichée ou masquée lors de l'exécution.

Application :

page onglet

Définition:

Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

Valeur par défaut

Oui


Visible dans la barre d'outils de menu Horizontal/Vertical
Visible dans la barre d'outils de menu Horizontal/Vertical - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si l'élément de menu doit apparaître (sous la forme d'icône) dans la barre d'outils de menu horizontale ou verticale (ou les deux) d'une Application Forms.

Application  élément de menu

Définition  Form Builder

Valeur par défaut

Non

Obligatoire/Facultatif  facultatif


Visible dans la barre d'outils de menu Horizontal/Vertical - Restrictions

Les développeurs doivent fournir les icônes associées à chaque élément de menu qui apparaît dans une barre d'outils de menu.


Visible dans menu - Propriété

 Toutes les propriétés

Description

Permet d'indiquer si l'élément de menu est affiché ou masqué lors de l'exécution.

Application :

élément de menu

Définition:

Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_MENU_ITEM_PROPERTY

•	SET_MENU_ITEM_PROPERTY

Valeur par défaut

Oui


Attribut visuel - Propriété

 Restrictions	 Toutes les propriétés

Description

Permet d'indiquer l'attribut visuel nommé à appliquer à l'objet au cours de l'exécution. Un attribut visuel définit un ensemble d'attributs de police, de couleur et de motif qui déterminent l'apparence de l'objet.

Application  canevas, page onglet, élément, bouton d'option

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_INSTANCE_PROPERTY

•	GET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_CANVAS_PROPERTY

•	SET_ITEM_INSTANCE_PROPERTY

•	SET_ITEM_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

•	SET_TAB_PAGE_PROPERTY

Notes d'utilisation

Lorsque vous exécutez la fonction intégrée GET_ appropriée pour déterminer la définition de cette propriété au cours de l'exécution, la valeur de retour est l'une des valeurs suivantes :

•	le nom d'un attribut visuel nommé ;

•	le nom d'un attribut logique défini dans le fichier de ressources ;

•	la valeur par défaut (l'élément utilise les attributs par défaut définis dans le fichier de ressources).


Attribut visuel - Restrictions

L'attribut visuel doit être un attribut visuel nommé défini dans le module de l'application Forms ou un attribut logique défini dans le fichier de ressources d'exécution.


Groupe d'attributs visuels - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer comment sont dérivées les différentes options d'attribut de l'objet (Nom de police, Couleur d'arrière-plan, Motif de remplissage, etc.). Les options valides pour cette propriété sont les suivantes :

Valeur par défaut	Permet d'indiquer que l'objet doit être affiché avec les options de couleur, de motif et de police par défaut. Lorsque la propriété Groupe d'attributs visuels est définie à Par défaut, les options d'attribut reflètent les options par défaut du système utilisé. Les options réelles sont déterminées par une combinaison de facteurs, comprenant le type d'objet, le fichier de ressources utilisé et la plate-forme.
Attribut visuel nommé	Permet d'indiquer un attribut visuel nommé qui doit être appliqué à l'objet. Les attributs visuels nommés sont des objets distincts que vous créez dans le Navigateur d'objet et qui s'appliquent aux objets d'interface, comme les styles d'un programme de traitement de texte. Lorsque la propriété Groupe d'attributs visuels est définie à un attribut visuel nommé, les options d'attributs visuels reflètent les options d'attributs définies pour l'objet d'attributs visuels nommé. Lorsque l'application Forms en cours ne contient pas d'attribut visuel nommé, la liste instantanée de cette propriété affiche la valeur par défaut.
Application  tous les objets d'interface

Définition  Form Builder

Valeur par défaut

Valeur par défaut

Notes d'utilisation

•	Les attributs par défaut et les attributs visuels nommés peuvent comprendre les attributs individuels ci-après, énumérés dans leur ordre d'apparition dans la Palette de propriétés :

Nom de police Famille ou "police" de caractères qui doit être utilisée pour le texte de l'objet. La liste des polices disponibles dépend du système.

Taille de police Taille des caractères composant la police, indiquée en points.

Style de police Style des caractères de la police.

Espacement de police Largeur des caractères de la police, c'est-à-dire l'espace séparant les caractères (crénage).

Epaisseur de police Epaisseur ou "graisse" des caractères de la police.

Couleur de premier plan Couleur de la région de premier plan de l'objet. Pour les éléments, l'attribut Couleur de premier plan définit la couleur du texte affiché dans l'élément.

Couleur d'arrière-plan Couleur de la région d'arrière-plan de l'objet.

Motif de remplissage Motif à utiliser pour la région de remplissage de l'objet. Les motifs sont dessinés en deux couleurs, indiquées par Couleur d'arrière-plan et Couleur de premier plan.

Attribut logique mode caractère Permet d'indiquer le nom d'un attribut logique en mode caractère défini dans un fichier de ressources Oracle Terminal, à utiliser comme base des attributs d'unité pour une version en mode caractère de votre application.

Blanc sur noir Permet d'indiquer que, sur un écran monochrome, l'objet doit apparaître en mode bitmap sous la forme de caractères blancs sur fond noir.

Les attributs ne sont pas tous valides pour chaque type d'objet. Par exemple, la définition des attributs de police pour un objet de fenêtre est sans effet. (La police utilisée dans la barre d'outils d'une fenêtre est dérivée du système.)

•	Les attributs visuels d'un nouvel objet d'une nouvelle application Forms sont définis à Par défaut. Les options par défaut sont définies en interne. Vous pouvez remplacer la police par défaut des nouveaux éléments et du texte standard en définissant la variable d'environnement facultative FORMS60_DEFAULTFONT. Sous Microsoft Windows, par exemple, vous pouvez définir cette variable dans la base de registre de la manière suivante : FORMS60_DEFAULTFONT="COURIER.10". La police par défaut indiquée détermine la police utilisée pour le nouveau texte standard généré par la fenêtre Nouveau bloc, et pour tous les nouveaux éléments dont le Groupe d'attributs visuels est défini à Par défaut.

•	Lorsque vous créez un élément dans l'Editeur de présentation, les options de ses attributs visuels sont, au départ, déterminés par les options de l'Editeur de présentation en cours pour les polices, les couleurs et les motifs, comme indiqué dans la boîte de dialogue de police et les palettes de couleurs et de motifs.

•	Sous Microsoft Windows, les couleurs des boutons, des barres de titre des fenêtres et des cadres de fenêtre sont gérées par les options de couleur du Panneau de configuration de Windows, indiquées pour ces éléments. Vous ne pouvez pas modifier ces couleurs sous Form Builder.

•	Lorsque la propriété d'application Forms Utiliser contrôles 3D est activée sous Microsoft Windows (par défaut), les éléments sont tracés avec des ombres qui leur donnent un aspect sculpté, en trois dimensions. L'effet secondaire de la définition de cette propriété est que les canevas dont la propriété Groupe d'attributs visuels est définie à Par défaut tirent leurs options de couleurs du Panneau de configuration de Windows (gris pour la plupart des systèmes couleur). Vous pouvez remplacer cette définition en appliquant explicitement au canevas les attributs visuels nommés.

•	Un élément ayant la propriété Groupe d'attributs visuels définie à Défaut ou dont les paramètres d'attribut individuel ne sont pas référencés hérite ces paramètres du canevas auquel il est attribué. De la même façon, un canevas ayant la propriété Groupe d'attributs visuels définie à Défaut ou dont les paramètres d'attribut individuel ne sont pas référencés hérite ces paramètres de la fenêtre dans laquelle il est affiché. Par exemple, si vous définissez la couleur d'arrière-plan d'une fenêtre à CYAN et que vous laissiez ensuite la couleur d'arrière-plan non référencée pour le canevas attribué à la fenêtre, à l'exécution, ce canevas hérite la couleur d'arrière-plan CYAN de sa fenêtre. Les paramètres d'attribut visuel dérivés de l'héritage fenêtre-canevas ou canevas-élément figurent lors de la conception si l'Editeur de présentation a été réouvert.

•	Vous pouvez appliquer des classes de propriété aux objets pour indiquer des options d'attributs visuels. Une classe de propriété peut contenir soit la propriété Groupe d'attributs visuels, soit une ou plusieurs des propriétés d'attributs individuels. (Si une classe de propriété contient à la fois des attributs individuels et un Groupe d'attributs visuels, la propriété Groupe d'attributs visuels a priorité.)

•	Si vous appliquez à un objet à la fois un attribut visuel nommé et une classe de propriété contenant des options d'attributs visuels, les options d'attributs visuels nommés ont priorité et les options d'attributs visuels de classe de propriété ne sont pas prises en compte.

•	Les définitions d'attributs logiques fournies dans le fichier de ressources ont priorité sur les attributs visuels indiqués dans Form Builder sur les définitions de variable d'environnement local et sur les attributs Form Builder par défaut. Pour éditer le fichier de ressources, utilisez l'utilitaire Oracle Terminal.


Type d'attribut visuel - Propriété

 Toutes les propriétés

Description

Permet de définir le type de l'attribut visuel au cours de la conception à Commun, Invite ou Titre.

Application  tout attribut visuel

Définition  Form Builder

Valeur par défaut  Commun

Obligatoire/Facultatif  obligatoire


Clause WHERE/clause ORDER BY

 Exemples  [image] Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Les propriétés par défaut des clauses WHERE et ORDER BY indiquent des clauses SQL standard pour l'instruction SELECT par défaut associée à un bloc de données. Ces clauses sont automatiquement ajoutées à l'instruction SELECT que Form Builder génère et exécute lorsque l'utilisateur ou l'application interroge le bloc.

Application  bloc

Définition  Form Builder, par programme

Reportez-vous aux procédures internes suivantes :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

Obligatoire/Facultatif  facultatif

Notes d'utilisation

1	Les mots réservés WHERE et ORDER BY sont facultatifs. Si vous ne les indiquez pas, Form Builder les ajoute automatiquement au début de l'instruction.

2	La clause WHERE peut faire référence aux objets suivants :

•	colonnes de la table de blocs de données du bloc (à l'exception des colonnes de type LONG) ;

•	paramètres d'application Forms (:PARAMETER.mon_paramètre).

3	La clause ORDER BY peut faire référence aux objets suivants :

•	colonnes de la table de blocs de données du bloc (à l'exception des colonnes de type LONG) ;

4	Les commentaires intégrés ne sont pas pris en charge par les clauses WHERE et ORDER BY.


Clause WHERE/Clause ORDER BY - Restrictions

•	La longueur maximum de la clause WHERE est de 32 000 octets.

•	La clause ORDER BY ne peut pas faire référence à des variables globales ni à des paramètres d'application Forms.


Clause WHERE/Clause ORDER BY - Exemple

Exemple

Dans l'exemple ci-dessous, extrait d'un système de suivi de commandes, la clause WHERE limite les enregistrements extraits à ceux dont la colonne date_expédition est à NULL. La clause ORDER BY classe les enregistrements sélectionnés par date, de la plus ancienne à la plus récente.

WHERE date_expédition IS NULL
ORDER BY datecommande

Cette instruction Clause WHERE/Clause ORDER BY indique les conditions de base d'extraction des enregistrements. L'utilisateur peut affiner ces conditions d'extraction en faisant passer l'application Forms en mode Saisie interrogation et en entrant les conditions appropriées.


Blanc sur noir - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer que l'objet doit apparaître sur une unité d'affichage bitmap monochrome sous forme de texte blanc sur fond noir.

Application  élément, page onglet, canevas, fenêtre, bouton d'option

Définition  par programme

Valeur par défaut

Non indiquée

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

• SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

•	GET_TAB_PAGE_PROPERTY

•	SET_TAB_PAGE_PROPERTY

•	GET_CANVAS_PROPERTY

•	SET_CANVAS_PROPERTY

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY


Largeur/Hauteur (LG, HT)

 Toutes les propriétés

Description

Voir Taille


Fenêtre - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer la fenêtre dans laquelle le canevas s'affiche lors de l'exécution.

Application  canevas

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_VIEW_PROPERTY

Valeur par défaut

ROOT_WINDOW, si l'application Forms comporte une fenêtre principale, sinon la première fenêtre figurant sous le noeud Fenêtres dans le Navigateur d'objet.

Obligatoire/Facultatif  obligatoire pour l'affichage du canevas lors de l'exécution


Window_Handle - Propriété

 Restrictions	 Toutes les propriétés

Description

Sous Microsoft Windows, un identificateur de fenêtre est une constante de caractère interne unique qui peut être utilisée pour faire référence à des objets. Il est possible d'obtenir un identificateur de fenêtre pour tout élément ou toute fenêtre.

S'applique à  application Forms, bloc, élément

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	GET_WINDOW_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

Valeur par défaut

NULL

Notes d'utilisation

•	Permet d'indiquer le nom de l'élément et la propriété WINDOW_HANDLE dans GET_ITEM_PROPERTY pour obtenir l'identificateur de fenêtre d'un élément.

•	Permet d'indiquer le nom de la fenêtre et la propriété WINDOW_HANDLE dans GET_WINDOW_PROPERTY pour obtenir l'identificateur d'une fenêtre. Si le nom de la fenêtre de GET_WINDOW_PROPERTY est FORMS_MDI_WINDOW, la valeur de retour est un identificateur de la fenêtre client MDI. L'identificateur d'une fenêtre client MDI est utilisé pour créer des contrôles et des fenêtres MDI fils.

•	Permet d'indiquer le nom d'élément ou l'identificateur d'élément du groupe de boutons d'option, le nom du bouton d'option et la propriété WINDOW_HANDLE dans GET_RADIO_BUTTON_PROPERTY pour obtenir un identificateur de fenêtre pour un bouton d'option.

•	Pour obtenir un identificateur de fenêtre d'un groupe de boutons d'option, utilisez le nom du groupe de boutons d'option comme nom d'élément dans GET_ITEM_PROPERTY. Le système retourne un identificateur de fenêtre du bouton mis en évidence. Si aucun bouton n'est mis en évidence, le système retourne l'identificateur de fenêtre du bouton sélectionné. S'il n'existe ni bouton sélectionné, ni bouton mis en évidence, le système retourne l'identificateur de fenêtre du premier bouton.


Window_Handle - Restrictions

Cette propriété n'est valide que sous Microsoft Windows. (Elle retourne NULL sur les autres plates-formes.)


Window_State - Propriété

 Restrictions	  Toutes les propriétés

Description

Permet d'indiquer l'état d'affichage en cours de la fenêtre :

NORMAL	Indique que la fenêtre doit être affichée normalement, en fonction des options de propriété Largeur, Hauteur, Position X et Position Y.

REDUIRE	Indique que la fenêtre doit être réduite à l'état d'icône ou icônifiée de façon à être visible sur le bureau comme un graphique bitmap.

AGRANDIR	Indique que la fenêtre doit être agrandie pour occuper tout l'écran en fonction du style d'affichage du gestionnaire de fenêtres.

Application  fenêtre

Définition  par programme

Reportez-vous aux procédures internes suivantes :

•	GET_WINDOW_PROPERTY

• SET_WINDOW_PROPERTY

Valeur par défaut

NORMAL

Notes d'utilisation

Les états réduit et agrandi sont gérés par le gestionnaire de fenêtres et sont sans effet sur les valeurs de largeur et de hauteur de fenêtre définies par les propriétés Largeur et Hauteur. Si une fenêtre est réduite ou agrandie, tout appel à SET_WINDOW_PROPERTY ou RESIZE_WINDOW qui modifie les propriétés Largeur ou Hauteur sera appliqué, mais ne deviendra apparent pour l'utilisateur que lorsque la fenêtre sera revenue à l'état Normal.

De même, GET_WINDOW_PROPERTY retourne toujours les options de propriété Largeur et Hauteur de la fenêtre, même si la fenêtre est actuellement réduite ou agrandie.


Window_State - Restrictions

La définition de Window_State à MAXIMIZE n'est pas prise en charge par Motif.


Type de fenêtre - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si la fenêtre est une fenêtre de document ou une fenêtre de dialogue. Les fenêtres de document et de dialogue ne s'affichent pas de la même façon sur les gestionnaires de fenêtres qui supportent un système de gestion de fenêtres MDI (Multiple Document Interface).

Application  fenêtre

Définition  Form Builder

Valeur par défaut

Document

Restrictions

Cette propriété n'est valide que pour une fenêtre secondaire.(Une fenêtre principale est toujours une fenêtre de document.)

Notes d'utilisation

Les applications MDI affichent une fenêtre père par défaut, appelée fenêtre d'application. Toutes les autres fenêtres de l'application sont soit des fenêtres de document soit des fenêtres de dialogue.

Les fenêtres de document restent toujours dans le cadre de la fenêtre d'application. Si l'utilisateur redimensionne la fenêtre d'application pour qu'elle soit plus petite qu'une fenêtre de document, la fenêtre de document est coupée. L'utilisateur peut agrandir une fenêtre de document pour qu'elle occupe tout l'espace de travail de la fenêtre d'application.

Les fenêtres de dialogue sont mobiles et l'utilisateur peut les extraire de la fenêtre d'application si elles ont été définies comme déplaçables. Si l'utilisateur redimensionne la fenêtre d'application pour qu'elle soit plus petite qu'une fenêtre de dialogue, la fenêtre de dialogue n'est pas coupée.


Type de césure - Propriété

 Restrictions	    Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer comment le texte s'affiche lorsqu'une ligne dépasse la largeur d'un élément texte ou de la fenêtre de l'éditeur.

Les valeurs autorisées pour cette propriété sont les suivantes :

AUCUN	Pas de césure. Le texte dépassant le bord droit n'est pas visible.

CARACTERE	Le texte passe à la ligne suivante après le premier caractère visible.

MOT	Le texte passe à la ligne suivante après le dernier mot complet visible.

Application  élément texte, éditeur

Définition  Form Builder

Reportez-vous aux procédures internes suivantes :

GET_ITEM_PROPERTY

Valeur par défaut

MOT


Type de césure - Restrictions

Cette propriété n'est valide que pour les éléments texte multilignes.


Renvoi à la ligne - Propriété

  Rubriques connexes	 Toutes les propriétés

Description

Permet d'indiquer si le texte de l'objet est automatiquement renvoyé à la ligne suivante pour tenir dans la boîte englobante.

Application  texte graphique

Définition  Form Builder

Valeur par défaut

Oui

Obligatoire/Facultatif  obligatoire


Rayon X de l'angle - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'importance de l'arrondi horizontal (en unités de présentation) des angles d'un rectangle arrondi.

Application  rectangle arrondi graphique

Définition  Form Builder

Valeur par défaut

10

Obligatoire/Facultatif  obligatoire


Position X, Position Y - Propriété

 Restrictions	 Toutes les propriétés

Description

Pour un objet, permet d'indiquer où cet objet se trouve sur l'écran. Pour un élément, permet d'indiquer la position de l'angle supérieur gauche de cet élément par rapport à l'angle supérieur gauche du canevas de l'élément. Les valeurs que vous indiquez sont interprétées dans le système de coordonnées de l'application Forms en cours (cellules de caractère, centimètres, pouces, pixels ou points), indiqué par la propriété d'application Forms Système de coordonnées.

Application  tous les éléments, éditeurs, LOV, fenêtres, canevas

Définition  Form Builder, par programme

Notes d'utilisation

Les informations suivantes sont propres à l'objet en cours.

ITEM

Permet de déterminer où se trouve l'élément sur le canevas qui en est propriétaire.

Reportez-vous aux procédures internes suivantes :

•	GET_ITEM_PROPERTY

•	SET_ITEM_PROPERTY

•	GET_RADIO_BUTTON_PROPERTY

•	SET_RADIO_BUTTON_PROPERTY

Valeur par défaut

x,y(0,0)

LOV

Permet d'indiquer où la LOV se trouve sur l'écran : (0,0) indique l'angle supérieur gauche de la totalité de l'écran, quel que soit l'endroit où se trouve la fenêtre principale sur l'écran. La LOV peut être affichée n'importe où sur l'écran, y compris en dehors de l'application Forms.

Reportez-vous aux procédures internes suivantes :

•	GET_LOV_PROPERTY

•	SET_LOV_PROPERTY

Valeur par défaut

x,y(0,0)

WINDOW

Permet d'indiquer où la fenêtre se trouve sur l'écran : (0,0) équivaut à l'angle supérieur gauche de la totalité de l'écran.

Reportez-vous aux procédures internes suivantes :

•	GET_WINDOW_PROPERTY

•	SET_WINDOW_PROPERTY

Valeur par défaut

x,y(0,0)


Position X, Position Y - Restrictions

•	Les valeurs de tous les éléments, éditeurs et LOV ne doivent pas être négatives.

•	La précision autorisée est fondée sur le système de coordonnées de l'application Forms en cours. Si nécessaire, les valeurs peuvent être arrondies.


Rayon Y de l'angle - Propriété

 Toutes les propriétés

Description

Permet d'indiquer l'importance de l'arrondi vertical (en unités de présentation) des angles du rectangle arrondi.

Application  rectangle arrondi graphique

Définition  Form Builder

Valeur par défaut

10

Obligatoire/Facultatif  obligatoire


Fenêtres et canevas

Question

Comment faire pour modifier le titre de la fenêtre RUNFORM ?

Réponse

Utilisez dans un déclencheur When-New-Form-Instance le code suivant :

Set_Window_Property(FORMS_MDI_WINDOW, TITLE, 'Votre titre');


Eléments, enregistrements et blocs

Question

Quelle différence y a-t-il entre un élément affiché et un élément texte normal ?

Réponse

Un élément affiché est essentiellement un élément texte qui est en permanence non modifiable. Il peut être utilisé pour mettre en oeuvre un texte variable, ou pour toute valeur écran qui ne demande pas d'interaction de l'opérateur (date/heure, par exemple).

Tous les éléments affichés possèdent un "sous-ensemble" de toutes les fonctions d'un élément texte, et demandent légèrement moins de mémoire pour leur définition.

Question

Pourquoi ma liste déroulante affiche-t-elle au démarrage une entrée nulle ?

Réponse

Soit une liste déroulante comportant les valeurs suivantes :

Libellé	Valeur

-------    --------

Un	1

Deux	2

Trois	3

Si, dans une liste déroulante, un bloc contient un enregistrement qui n'a pas encore été instantié, l'élément de la liste déroulante a la valeur NULL. Pour refléter visuellement cette situation, l'écran affiche un libellé vierge dans la liste déroulante. Pour afficher le libellé vierge dans l'application Forms, ajoutez une valeur NULL au bas de la liste et définissez la valeur du contrôle à NULL.

En outre, si l'élément n'est pas obligatoire, un élément de liste vierge est ajouté automatiquement à l'ensemble de choix, afin que l'utilisateur puisse sélectionner NULL comme l'une des valeurs.

Comme pour tout élément, l'astuce, si vous voulez qu'une valeur apparaisse dans l'élément au démarrage, consiste à définir la valeur ou à instantier l'enregistrement dans le bloc de l'élément pour que l'élément adopte l'une de ses valeurs par défaut.

Question

Comment empêcher dynamiquement l'utilisateur d'entrer un nouvel enregistrement ?

Réponse

En écrivant un déclencheur When-New-Record-Instance qui exécute les opérations suivantes :

IF ((dynamic-condition-is-true) AND

   :System.Record_Status = 'NEW')

THEN

   RAISE Form_Trigger_Failure;

END IF;

Question

Comment créer dynamiquement tout un bloc d'interrogation seul lors de l'exécution.

Réponse

Entrez les lignes de programme suivantes :

Set_Block_Property('nombloc', INSERT_ALLOWED, PROPERTY_OFF);

Set_Block_Property('nombloc', UPDATE_ALLOWED, PROPERTY_OFF);

Question

Comment changer dynamiquement la couleur et la police d'un élément lors de l'exécution ?

Réponse

En utilisant la procédure interne :

Set_Item_Property( 'nombloc.nomélément', VISUAL_ATTRIBUTE, 'NomAttributVisuel );

Où 'NomAttributVisuel' est soit le nom d'un attribut visuel que vous avez défini dans l'application Forms (qui a un premier plan, un arrière-plan, une police, etc.), soit le nom d'un attribut visuel logique extrait du fichier de ressources.

Question

Comment faire pour qu'un élément agisse comme un élément désactivé, mais ne soit pas grisé ?

Réponse

En utilisant les attributs INSERT_ALLOWED et UPDATE_ALLOWED. Les éléments pour lesquels ces attributs sont définis sur OFF ne sont pas affichés comme des éléments désactivés, mais ne permettent pas à l'utilisateur de modifier la valeur des enregistrements nouveaux ou interrogés.

Question

Que signifient exactement "nombre de lignes extraites" et "options d'interrogation" lorsqu'il s'agit d'un bloc ?

Réponse

Set_Block_Property(.., QUERY_HITS) permet à votre déclencheur transactionnel ON-COUNT d'indiquer à Form Builder le nombre d'enregistrements que l'interrogation (que vous gérez vous-même) retournera, afin qu'il puisse imprimer le message :

"FRM-xxxxx: L'interrogation ramènera nnn enregistrement(s)."

L'extraction de cette propriété par Get_Block_Property(.., QUERY_HITS) retourne simplement le nombre d'enregistrements qui ont été extraits par l'interrogation.

Get_Block_Property(.., QUERY_OPTIONS) permet à votre déclencheur transactionnel de savoir s'il est censé effectuer une interrogation normale, une interrogation de type COUNT(*) ou une interrogation d'enregistrement verrouillé.


Groupes d'enregistrements, variables globales et paramètres

Question

A quoi peuvent me servir les groupes d'enregistrements ?

Réponse

Sur le plan structurel, un groupe d'enregistrements est semblable à une table Oracle en mémoire, en ce sens qu'il se compose d'un cadre de lignes et de colonnes, et de colonnes contenant des données de type NUMBER, CHAR et DATE.

Comme, dans Form Builder 6.0, les groupes d'enregistrements n'ont pas de système de mise en mémoire tampon d'enregistrement semblable à celui proposé par l'objet bloc de base de données, le remplissage d'un groupe d'enregistrements à partir d'une interrogation exige des précautions. L'utilisation d'une interrogation retournant 10 000 enregistrements attribuera la mémoire nécessaire pour extraire et stocker toutes les lignes retournées par l'interrogation.

En particulier, les groupes d'enregistrements ne sont pas conçus pour remplacer les tables de base de données pendant l'exécution de votre application. Ils peuvent être particulièrement bien adaptés à des listes relativement courtes de valeurs de consultation, ou des structures de données de taille moyenne, pour le stockage d'enregistrements d'application côté client.

Pour les nouvelles applications, pensez à utiliser l'élément Table d'enregistrements fourni par PL/SQL V2.3. Une Table d'enregistrements est souvent plus efficace au niveau de son utilisation de la mémoire, et généralement d'un accès plus rapide.

Par contre, vous pouvez créer dynamiquement un groupe d'enregistrements lors de l'exécution, alors que la structure des tables d'enregistrements est déterminée au stade de la conception. Si votre application demande une structure souple, utilisez un groupe d'enregistrements plutôt qu'une table d'enregistrements.

Question

Quand utiliser les variables globales, les variables de paramètres ou les variables en package ?

Réponse

Il y a plusieurs réponses à cette question. Voici quelques conseils qui pourront faciliter votre choix :

Type de données :  Les variables globales sont toujours des données de type CHAR. Les paramètres sont de type NUMBER, CHAR ou DATE. Les données des variables en package peuvent être de n'importe quel type PL/SQL.

Création :  Les variables globales sont créées la première fois qu'elles sont attribuées.

Les paramètres doivent être nommés et entrés lors de la conception, ou ajoutés à une liste de paramètres lors de l'exécution par la procédure interne Add_Parameter().

Les variables en package sont explicitement déclarées comme faisant partie d'un package.

Valeurs par défaut :  Les variables globales doivent avoir une valeur attribuée par programme.

Les paramètres peuvent avoir une valeur par défaut du type approprié, qui leur est affectée lors de la conception.

Les variables en package peuvent avoir une valeur par défaut, du type approprié, qui leur est attribuée lors de la conception. Elles peuvent également être initialisées avec un code complexe arbitraire dans le bloc d'initialisation du package.

Attribution :  Les variables globales sont attribuées directement par PL/SQL, avec la notation de variable de lien (:GLOBAL.GLOBAL_NAME), ou indirectement par la procédure interne Copy().

Les paramètres de la liste des paramètres par défaut (créés lors de la conception) sont attribués directement par PL/SQL, avec la notation de variable de lien (:PARAMETER.PARAM_NAME), ou indirectement par la procédure interne Copy(). Si une partie d'une liste de paramètres n'est pas la liste de paramètres par défaut, la procédure interne Set_Parameter_Attr() est utilisée. En outre, les paramètres déclarés lors de la conception peuvent être fournis avec des valeurs dans la ligne de commande, à l'aide de la syntaxe "PARAMNAME=Valeur".

Les variables en package sont attribuées directement par PL/SQL.

Portée :  Les noms de variables globales s'appliquent à toute la session d'exécution. Si vous essayez de combiner deux applications Forms utilisant le même nom de variable globale pour différentes opérations, ces applications ne seront donc pas intégrés sans modification.

Les valeurs de paramètres sont propres à une application Forms donnée. Il n'y a d'interaction que si un paramètre est explicitement transmis d'une application Forms à l'autre. Lors de l'intégration des applications Forms, il est indispensable de veiller à ce qu'elles partagent des noms de paramètres corrects.

Les variables en package sont qualifiées par le nom du package. Si deux packages déclarent le même nom de variable, il n'y a pas d'interaction entre eux. L'intégration de l'application Forms qui repose sur des variables en package pour leurs données globales communes est beaucoup plus rapide que l'utilisation des deux autres méthodes, car il n'y a pas d'interaction masquée subtile entre des objets ayant le même nom.

Persistance : Les variables globales conservent leur valeur pendant toute la durée de la session Runform, à moins qu'elles ne soient explicitement supprimées. Elles sont visibles par toutes les applications Forms appelées pendant la session. Toute modification apportée, dans une application Forms appelée, à une variable globale est visible par toute application Forms d'appel et toutes les applications Forms ultérieures de la session.

Les paramètres ne sont visibles que par l'application Forms dans laquelle ils sont déclarés, à moins qu'ils ne soient transmis comme faisant partie d'une liste de paramètres. Dans ce cas, ils fournissent des valeurs entrantes aux paramètres de niveau application Forms déclarés pour l'application Forms appelée.

Cette solution permet donc à la valeur du paramètre de l'application Forms d'appel d'être visible par l'application Forms appelée. Toute modification apportée à un paramètre, dans une application Forms appelée, n'est pas visible par l'application Forms appelante. L'application appelée reçoit un cliché de la valeur des paramètres tels qu'ils existaient au moment de l'exécution de la procédure Call_Form() et utilise des copies privées des valeurs.

Les variables en package conservent leur valeur pendant toute la durée de la session Runform. Elles sont visibles par toutes les applications Forms appelées pendant la session, à condition que l'argument data_mode de CALL_FORM soit paramétré sur SHARE_LIBRARY_DATA. Toute modification apportée à une variable en package, dans une application Forms appelée, est visible par toute application Forms appelante et toutes les applications Forms suivantes de la session.

Documentation :  Les variables globales peuvent être créées n'importe où dans un déclencheur. Si le développeur n'est pas suffisamment méthodique et cohérent, les variables globales peuvent être très difficiles à trouver et à documenter. De plus, les erreurs sont fréquentes et difficiles à détecter, car une faute de frappe, lors de l'attribution à une variable globale, crée une nouvelle variable globale qui reçoit pour nom le nom mal orthographié.

Les paramètres existent sous la forme d'objets nommés au niveau application Forms. Ils peuvent avoir des valeurs par défaut significatives et être documentés par des commentaires objets, comme tout autre objet d'application Forms.

Les variables en package sont déclarées explicitement dans un package et peuvent être initialisées explicitement. Elles sont faciles à documenter dans le code PL/SQL.

Résumé : Pour transmettre des valeurs de la ligne de commande à une application Forms, utilisez des paramètres.

Si vous devez absolument créer des variables dynamiquement, utilisez les variables globales. Mais, commencez par vous demander si une table d'enregistrements ne serait pas mieux adaptée au stockage de nombreuses valeurs créées dynamiquement.

Pour toutes les autres opérations, utilisez des variables en package.

Question

Comment transmettre un groupe d'enregistrements de Form Builder à Reports Developer ou Graphics Builder ?

Réponse

Transmettez-le sous la forme d'un paramètre de type DATA, qui est un type spécial de paramètre, donnant au code d'intégration un signal de substitution du contenu du groupe d'enregistrements dont vous donnez le nom au résultat de l'interrogation nommée par le nom d'interrogation que vous indiquez. Exemple :

(1) Dans Reports Developer, créez un enregistrement comportant une interrogation :

Nom d'interrogation :  FOOBAR_QUERY

Interrogation :  SELECT DEPTNO, DNAME FROM DEPT

(2) Dans Form Builder, créez un groupe d'enregistrements en utilisant la procédure de votre choix, de façon qu'il ait deux colonnes, une de type NUMBER, une de type CHAR. Remplissez ensuite ce groupe d'enregistrements (toujours côté application Forms). Soit que le groupe d'enregistrements, appelé PETE, dont les deux colonnes sont A et B.

DECLARE

   f RecordGroup;

   g GroupColumn;

BEGIN

   f := CREATE_GROUP('Pete');

   g := ADD_GROUP_COLUMN( f , 'A', NUMBER_COLUMN);

   g := ADD_GROUP_COLUMN( f , 'B', CHAR_COLUMN, 20);

/*

** Remplissez le groupe en utilisant la procédure de votre choix.

*/

END;

(3) Lorsque vous créez la liste de paramètres à transmettre de l'application Forms à l'autre outil, vous créez un paramètre appelé 'FOOBAR_QUERY' et lui donnez la valeur 'PETE'.  Comme ce paramètre est de type DATA, cette association de 'FOOBAR_QUERY' à 'PETE' indique au code d'intégration ce qu'il doit faire lorsqu'il lance l'autre outil. Au lieu d'exécuter l'instruction de sélection qui définit 'FOOBAR_QUERY' dans Reports Developer, le programme utilise les valeurs du groupe d'enregistrements 'PETE' comme si elles *étaient* le résultat.

Question

Comment accéder au contenu d'un groupe d'enregistrements dans un user exit ?

Réponse

Pour accéder au contenu d'un groupe d'enregistrements, dans un user exit, commencez par placer les valeurs dans un bloc de base de données. A l'heure actuelle, les sorties utilisateur ne connaissent pas la structure des données d'un groupe d'enregistrements Form Builder.

Avec ORA_FFI, il y aura probablement moins besoin de user exit, car vous pourrez lancer directement de PL/SQL des appels de fonctions SLL et SDK Microsoft Windows. Vous aurez donc toujours accès aux valeurs des groupes d'enregistrements.


Unités de programme et bibliothèques

Question

Pour créer une procédure, faut-il utiliser une bibliothèque, une procédure stockée dans une base de données ou une procédure application Forms locale ?

Réponse

A chaque forme de procédure correspondent des résultats de performance, qui sont fonction de l'opération que vous tentez d'exécuter. La procédure de base de données sera appelée côté serveur et y exécutera toutes les opérations de traitement, ce qui peut contribuer à diminuer la charge du réseau, mais risque de surcharger le serveur si de nombreux clients exécutent cette procédure.

Les procédures de bibliothèque et d'application Forms locales se ressemblent beaucoup, car elles sont toutes les deux stockées et exécutées côté client avec transmission des instructions SQL au serveur.

Les procédures locales s'exécutent généralement plus rapidement, car elles font véritablement partie du fichier .FMX, mais risquent de demander davantage de place en mémoire et un temps de démarrage plus long lorsque le fichier .FMX est appelé pour la première fois.

Les procédures de bibliothèque peuvent être plus intéressantes en termes d'occupation générale de la mémoire, car elles ne sont chargées en mémoire que par blocs de 4 K lorsqu'elles sont nécessaires. Une fois chargées, elles sont lues à partir de la mémoire. Autre avantage des procédures de bibliothèque : la bibliothèque peut être attachée simultanément à un nombre quelconque d'applications Forms.

Si le code des procédures de bibliothèque est modifié, l'application Forms n'a pas à être générée une nouvelle fois.

Si une bibliothèque contient des variables globales en package, elles peuvent être partagées par les différentes applications Forms au cours d'une même session Runform.

Question

Quelle est l'incidence de l'utilisation des bibliothèques sur la taille du fichier .FMX ?

Réponse

Si le code de bibliothèque était inclus dans le fichier .FRM, il n'y a aucune raison de le modifier comme nous l'avons fait. L'intérêt de la nouvelle version est que les modules de bibliothèque restent séparés et compilés (dans des fichiers .PLL ou .PLX), de sorte que la session Runform peut transférer des unités de programme en mémoire lors de l'exécution sans augmenter la taille de chaque fichier .FMX.

Vous pouvez le comparer à un DLL. Le seul temps système ajouté à l'application Forms qui attache une bibliothèque est le léger délai nécessaire pour mémoriser le nom des bibliothèques dont elle dépend.

Question

Comment faire référence à un bloc de mes unités de programme de bibliothèque ?

Réponse

Au stade de la compilation, Form Builder tente de résoudre toutes les références aux objets. Cela étant, si vous avez un code de type :

:BLOCK1.ITEM1 := 'Valeur';

ou

IF

   :BLOCK1.ITEM1 = 'Y'

THEN

....

Form Builder tentera de résoudre la référence à :BLOCK1.ITEM1. Lorsque vous écrivez du code de bibliothèque, vous n'avez aucun moyen de résoudre ces références, puisque la bibliothèque peut être attachée à *n'importe quelle* application Forms.

Vous devez donc utiliser les procédures internes Copy() et Name_In() lorsque vous faites référence à des objets Form Builder se trouvant dans des bibliothèques. Ces procédures internes ne tentent pas de résoudre les références lors de la compilation. Le code ci-dessus deviendrait donc :

Copy ('Valeur','BLOCK1.ITEM1');

ou

IF

   Name_In ('BLOCK1.ITEM1') = 'Y'

THEN

 ...


Intégration PL/SQL

Question

Comment Form Builder gère-t-il SQL dans PL/SQL ?

Réponse

Comme les blocs PL/SQL d'une application Forms peuvent comporter des procédures internes de Form Builder, il n'est pas possible de transférer la totalité du bloc dans la base de données.

Form Builder traite les curseurs que PL/SQL signale comme obligatoires pour les opérations DML dans PL/SQL de Form Builder.

Cela signifie que SQL de PL/SQL utilise les techniques permettant de diminuer le trafic du réseau de la version 5.0. Ces modifications diminuent considérablement l'importance du trafic constaté en utilisant des versions antérieures.

Pour envoyer des blocs entiers de PL/SQL à la base de données, vous pouvez :

(1) Utiliser la procédure interne Forms_DDL() pour envoyer une longue chaîne constituant un bloc de code que vous voulez exécuter sur le serveur :

Forms_DDL('BEGIN ... END;');

(2) Appeler les procédures/fonctions/packages stockés comportant DML en bundle et appeler ces unités de programme stockées à partir de Form Builder.

Question

Comment PL/SQL gère-t-il les constantes comme INSERT_ALLOWED et PROPERTY_ON ?

Réponse

Tous les sèmes que vous transmettez aux procédures internes sont des constantes numériques. Si vous écrivez une procédure générique qui définit les propriétés des objets, vous devez vous assurer que les paramètres transmis sont entrés sous la forme NUMBER, afin d'éviter tout conflit de saisie de données.


Horloges

Question

Si une horloge expire pendant une interrogation d'une certaine durée, comment est-elle gérée ?

Réponse

Dans tous les cas, l'horloge ne sera gérée que lorsque l'opération en cours aura pris fin. En d'autres termes, l'interrogation doit s'achever pour que l'horloge puisse être prise en compte.

Question

Si une horloge REPEAT expire pendant une interrogation d'une certaine durée, est-elle répétée avant d'être prise en compte par un déclencheur WHEN-TIMER-EXPIRED à la fin de l'interrogation, ou attend-elle d'être prise en charge avant d'être répétée ?

Réponse

Une horloge à répétition n'est relancée que lorsqu'elle a été prise en compte par l'activation d'un déclencheur WHEN-TIMER-EXPIRED approprié. Cela étant, aucune horloge ne peut être présente deux fois dans la pile des "horloges à prendre en compte".


Déclencheurs

Question

Quelle différence y a-t-il entre les déclencheurs ci-dessous :

- Post-Fetch/Post_Query

- Post-Forms-Commit/Post-Database-Commit

- Pre-Query/Pre-Select

Réponse

Reportez-vous à la comparaison de ces déclencheurs ci-dessous :

Post-Fetch/Post-Query

POST-FETCH est activé juste après chaque tentative d'extraction d'enregistrement de la base de données, mais le nombre de déclenchements peut être moindre, en fonction de la valeur de "taille de tableau" pour le bloc en question et du nombre d'enregistrements réellement extraits de la base de données en réponse à notre demande.

Par contre, POST QUERY est activé une fois *par* enregistrement extrait de la zone d'attente (c'est-à-dire la zone dans laquelle les enregistrements sont stockés après avoir été extraits en bloc de la base de données) et ajouté à la fin de la liste des enregistrements du bloc en cours.

Post-Forms-Commit/Post-Database-Commit

POST-FORMS-COMMIT est activé comme dernier déclencheur faisant toujours partie de la transaction en cours pendant le traitement au moment de la validation. C'est la dernière possibilité pour l'application d'exécuter un traitement ou d'annuler la transaction avant l'émission de l'opération 'COMMIT' réelle.

Le déclencheur POST-DATABASE-COMMIT est activé juste après l'émission de l'instruction 'COMMIT' par les applications Forms pour fermer la transaction en cours. A ce stade, la transaction ne peut plus être annulée.

Pre-Query/Pre-Select

PRE-QUERY est activé immédiatement avant que l'application Forms commence à préparer l'instruction SQL qui sera nécessaire à l'interrogation des enregistrements appropriés de la base de données, en réponse aux critères d'interrogation entrés dans l'enregistrement exemple.

C'est la dernière possibilité dont dispose le développeur de "déposer" des critères d'interrogation dans les éléments du bloc comme s'ils avaient été entrés dans l'enregistrement exemple par l'opérateur.

PRE-SELECT est activé après le déclencheur PRE-QUERY et immédiatement avant le début de la véritable construction physique de l'instruction SELECT. Le déclencheur PRE-SELECT est généralement utilisé avec un déclencheur ON-SELECT dans lequel le développeur remplace la construction normale de l'instruction SELECT par son propre user exit pour construire l'instruction SELECT et la préparer en vue de son exécution (éventuellement sur une source de données étrangère).


Verrouillage

Question

Est-il possible de différer le verrouillage d'un enregistrement pour qu'il ne soit exécuté que lors de l'opération commit ?

Réponse

Oui : une propriété de bloc, appelée 'Mode verrouillage', peut être définie à 'Immédiat' ou 'Différé'. Si vous la définissez à Différé, un enregistrement d'un bloc n'est verrouillé qu'au moment de l'opération de validation, plus précisément au moment où les modifications sont 'inscrites'.

A ce stade, la valeur de l'application Forms en cours est comparée à la valeur de la base de données avant l'émission de l'instruction de mise à jour. Si l'enregistrement n'a pas été mis à jour depuis son extraction, l'utilisateur reçoit un message d'erreur.

La propriété 'Mode verrouillage' peut être changée lors de l'exécution, dans un déclencheur, par la procédure interne Set_Block_Property.


Images

Question

Comment faire pour stocker dans la base de données une image provenant d'un fichier ?

Réponse

Pour stocker des images dans la base de données, vous devez les extraire du système de fichiers et les entrer dans un élément de l'application Forms dans l'un des formats de fichier standard pris en charge :

                                                    'PCX'

                                                    'BMP'

READ_IMAGE_FILE('nom_fichier',	'TIFF', 'bloc.élément_image');

                                                    'JFIF'

                                                    'PICT'

Exécutez ensuite une opération commit dans la base de données :

COMMIT_FORM;

Assurez-vous que bloc.élément_image est un élément de base de données se trouvant dans un bloc de la base de données et que la colonne 'élément_image' de la table de base sur laquelle est fondé le bloc est déclarée comme étant de type LONG RAW.


Problèmes d'ordre général sur les interfaces utilisateur

Question

Dans certains cas, lorsque je lance une procédure interne, Call_Form (.., NO_HIDE), ma première application Forms est toujours masquée. Pourquoi ?

Réponse

Une application ne peut avoir qu'une fenêtre ROOT_WINDOW active à la fois. Vous appelez la seconde application Forms pendant que le point d'insertion est dans cette fenêtre ROOT_WINDOW. Dans ce cas, la fenêtre ROOT_WINDOW de la seconde application Forms recouvrira celle de la première, et vous aurez l'impression que la première est masquée.

Si vous ne voulez pas que cette application Forms soit masquée, assurez-vous toujours que la procédure interne Call_Form est appelée à partir d'une fenêtre d'un type autre que ROOT_WINDOW.

La fenêtre ROOT_WINDOW est essentiellement utilisée dans les anciennes applications Forms, créées sous Forms 4.0. Dans les nouvelles, évitez de créer une fenêtre appelée ROOT_WINDOW.

Question

Comment savoir quelle est l'interface utilisateur que j'utilise lors de l'exécution ?

Réponse

Utilisez la procédure interne Get_Application_Property (USER_INTERFACE).


Menus

Question

Comment faire pour que mes options de menu occupent la position appropriée à l'interface graphique ?

Réponse

En utilisant une fonction appelée Eléments de menu magique. Par exemple, si vous demandez que votre option de menu soit un élément magique pour envoi d'une "Aide", elle sera affichée à la position standard du menu "Aide", quelle que soit l'interface graphique utilisée.

Question

Dans quel cas le message :

FRM-10249: Vous n'êtes pas autorisé à exécuter l'application <nom> apparaît-il ?

Réponse

Commencez par vous assurer que vous avez exécuté les opérations suivantes :

•	Création d'un rôle de base de données

•	Attribution de l'utilisateur à ce rôle

•	Attribution du rôle à au moins une option de menu de niveau supérieur dans l'application menu.

Si ce message d'erreur est encore affiché, et si vous ne stockez pas le menu dans la base de données, assurez-vous que l'option Utiliser fichier de la fenêtre de propriété de module d'application Forms est cochée.

Assurez-vous également que les tables de base de menu ont des données de type VARCHAR2 et non CHAR, le cas échéant.


Changement de niveau de version

Question

Comment passer à une nouvelle version de l'application FORMB qui comporte les objets référencés provenant de l'application Forms d'une bibliothèque FORMA ?

Réponse

Exécutez les opérations suivantes :

1	Créez un fichier INP pour FORMA si vous n'en avez pas. Pour cela, utilisez "IAC30 FORMA UN/PW".

2	Faites passer FORMA.INP au niveau FORMA.FMB.

3	Ouvrez FORMA.FMB à partir de Form Builder 5.0 et choisissez Fichier [image] Enregistrer sous pour la base de données (en passant éventuellement par votre écran de préférences pour pouvoir enregistrer dans la base de données).

4	Mettez à niveau FORMB.FMB. Pendant cette opération, les informations de référence sont encore lues dans les *Tables Forms 3.0*.

5	Par la suite, lorsque vous ouvrirez ou générerez FORM.FMB à partir de Form Builder 6.0, Form Builder s'attendra *alors* à trouver les informations de référence dans les tables de données Form Builder 6.0.

Notez que dans 6.0 vous pouvez faire des références indifféremment à partir du système de fichiers et de la base de données.

Question

Si j'ai un masque de format JJ/MM/AA et que j'entre une date sans barres obliques, pourquoi cette nouvelle version n'affiche-t-elle plus la date correcte, comme le faisait Forms 3.0 ?

Réponse

A partir de Forms 4.5, nous avons adopté la même méthode de mise en forme des dates que pour d'Oracle8.

Prenons comme point de départ :

12121994

Lorsque le masque de format est appliqué, les routines de mise en forme de date produisent :

12 1 21 9 94

   ~    ~

Lorsque les '1' et les '9' qui sont marqués par des tildes ci-dessus sont interprétés comme caractères de séparation,

l'entrée devient :

12 / 21 / 94

Dans un champ qui doit recevoir une année exprimée en quatre chiffres, les faits décrits ci-dessus ont priorité et transforment le 94 en 0094.

Vous pouvez utiliser l'élément de masque de format "FX" pour obliger l'utilisateur à entrer une correspondance exacte avec votre masque.

Cette opération a été exécutée pour raccourcir le traitement des entrées de la routine de date. Dans de nombreux cas, le package de date aurait accepté des entrées douteuses et la décision a permis de rompre ce comportement relativement idiosyncratique d'application Forms en faveur d'un meilleur traitement global de date.

Question

Que contrôle le paramètre FORMS60_DEFAULTFONT ?

Réponse

FORMS60_DEFAULTFONT contrôle :

La police qui sera utilisée pour le texte d'affichage de bloc par défaut, si la police est *à espacement fixe*. Dans le cas contraire, le programme utilisera la police la plus proche de la police par défaut.

La police qui sera utilisée pour créer un texte d'affichage de niveau supérieur à V3/V2.3.

La police qui sera utilisée pour afficher les éléments ayant l'attribut visuel par défaut.

La largeur et la hauteur (en pixels) d'une cellule de caractères de taille uniforme lors de l'exécution d'une application Forms qui utilise le système de coordonnées Cellule de caractère *et* qui a l'option Default Font Scaling activée.

Lorsqu'une application Forms conçue selon le système de coordonnées Cellule de caractère utilise l'option "Default Font Scaling", lors de l'exécution la taille de la police par défaut (même si elle a été définie sur la plate-forme que vous utilisez) régit la taille des cellules de la grille de caractères - la taille de la police est proportionnelle à celle des cellules de grille.

Les coordonnées (x,y) de position et de taille de chaque objet sont exprimées en unités de cellule entières puisque l'application Forms est en unités Cellule de caractères ; une plus grande grille avec un objet de 5 cellules de long équivaudra donc à un objet qui sera (en termes absolus) plus long que lors de l'exécution avec une police par défaut plus petite.

Cette opération est sans effet sur la taille de la police du champ, à moins que l'élément n'utilise un attribut visuel par défaut.

Question

Si je passe de SQL*Forms 2.3 à Form builder 6.0, que se passe-t-il pour mes déclencheurs de type V2 ?

Réponse

Le passage de 2.3 à 4.5 s'effectue par le Générateur Forms 6.0. Pour passer de 4.5 à 6.0, il suffit d'ouvrir l'application Forms dans Form Builder 6.0.

Les déclencheurs de type V2 ne sont pas modifiés au cours de l'opération.

En version 6.0, vous ne pourrez PAS modifier vos déclencheurs de type V2, mais ils continueront à s'exécuter.

Form Builder 6.0 sera probablement la dernière version prenant en charge les déclencheurs de type V2. Vous devrez donc commencer à convertir ou à remplacer ces déclencheurs dans toute application Forms que vous avez l'intention de faire évoluer davantage.


Questions propres à Microsoft Windows

Question

La commande Host() sous Forms est-elle synchronisée ou asynchrone sous Windows ?

Réponse

Host() est uniquement synchrone si l'utilitaire appelé crée une fenêtre initiale ; sinon, cette commande est asynchrone.

Par exemple, l'application Windows 'winzip.exe' ne crée pas de fenêtre initiale. Cela étant :

Host('winzip.exe');   -- sera asynchrone,

alors que :

Host('notepad.exe');  -- sera synchrone.

Si vous voulez qu'une commande qui n'est pas synchrone le devienne, créez une fenêtre (non visible si vous ne voulez pas l'utiliser) dans le WinMain de votre code d'application.

Question

Qu'est-ce que le programme charge en mémoire lorsque vous exécutez une application Forms sous Windows ?

Réponse

Runform se compose d'un petit exécutable F60RUN32.EXE et de RUNFORM.DLL. L'exécutable Form Builder est considéré comme un programme qui utilise des bibliothèques de lien dynamiques sous Windows.

Le contenu du fichier .FMX est chargé dans la mémoire de votre PC, ainsi que Le contenu du fichier .MMX. La table du fichier .PLL/.PLX est totalement chargée dans la mémoire de votre PC, et les unités de programme seront chargées à la demande.

Question

Pourquoi n'est il pas possible de changer la couleur d'un bouton sous Windows ?

Réponse

Avec le Toolkit Windows, il n'est pas possible à l'heure actuelle de modifier individuellement la couleur d'un bouton. Sous Windows, vous pouvez modifier la couleur de *tous* les boutons, y compris ceux des produits autres qu'Oracle. En outre, il est également possible d'utiliser un bouton d'icône si l'icône a une couleur différente.

Question

Forms 6.0 peut-il appeler les DLL sous Microsoft Windows ?

Réponse

En utilisant le package ORA_FFI, vous pouvez appeler directement à partir de PL/SQL toute fonction DLL ou SDK Windows, sans passer par un user exit. Pour plus d'informations sur ORA_FFI, reportez-vous au manuel Advanced Techniques.


Questions propres à Motif

Question

Est-il possible d'améliorer les performances avec des options Motif ?

Réponse

Vérifiez dans le fichier Tk2Motif l'existence des paramètres suivants :

Tk2Motif*dragReceiverProtocolStyle:     DRAG_NONE

Tk2Motif*dragInitiatorProtocolStyle:    DRAG_NONE

Question

Comment désactiver le curseur clignotant pour diminuer le trafic du réseau ?

Réponse

Pour diminuer l'échange de paquets de réseau associés au tracé et à la suppression du tracé du curseur clignotant en I dans les éditeurs de texte et les éléments texte (champs), vous pouvez définir les propriétés blinkRate ci-dessous à 0 (millisecondes). L'option par défaut est blinkRate = 500 ms.

Tk2Motif*field.blinkRate: 0

Tk2Motif*tedit.blinkRate: 0

Question

Comment modifier l'aspect des boutons de commande sous Motif ?

Réponse

Sous Motif, pour que les boutons de commande soient très "respectables", vous pouvez utiliser les options du fichier Tk2Motif suivantes :

Tk2Motif*pushb.defaultButtonShadowThickness: 0

Tk2Motif*pushb.shadowThickness: 2

Tk2Motif*pushb.highlightThickness: 1

Question

Comment modifier la police de la fenêtre de texte de déclencheur ?

Réponse

En utilisant l'option de ressource suivante :

Tk2Motif*tedit.fontList : my-favourite-font


JOINTURE de plusieurs tables

Les versions antérieures à Forms 6i prenaient en charge les sources de données d'interrogation de type Table basées sur une seule table. Désormais, Forms prend en charge les sources de données d'interrogation Table basées sur la JOINTURE de plusieurs tables. La JOINTURE de plusieurs tables n'étant pas adaptée aux cibles de données DML, la cible de données doit toujours être basée sur une seule table.

Pour créer un bloc de source de données d'interrogation basée sur la jointure de plusieurs tables et une cible de données DML basée sur une seule table, suivez la procédure de la section Présentation de la tâche. Pour créer un bloc EMP contenant une source de données d'interrogation basée sur la jointure des tables EMP et DEPT, et une cible de données DML basée sur la table EMP, reportez-vous à l'exemple ci-après.

Présentation de la tâche

1.	A l'aide de l'assistant Bloc de données, créez un bloc basé sur l'une des tables de la jointure.

Dans la plupart des jointures, l'une des tables sert de table maîtresse et est jointe à plusieurs autres tables de recherche de clé étrangère. L'assistant Bloc de données vous aide à créer des éléments de données à partir des colonnes de table. Il est donc recommandé d'inclure dans le bloc la table qui contient le plus de colonnes, en général la table maîtresse. Le bloc est créé à la fin de la procédure de l'assistant Bloc de données.

2.	Sélectionnez le bloc et paramétrez la propriété Nom de source de données d'interrogation sur la liste des tables de la jointure.

Les tables de la liste sont séparées par des virgules, conformément à leur affichage dans la clause FROM de l'instruction de jointure SELECT.

3.	Paramétrez la clause WHERE afin qu'elle contienne la condition de jointure appliquée aux tables de la jointure.

4.	Paramétrez la propriété Nom de cible de données DML sur la table concernée par les insertions, les mises à jour et les suppressions. Il s'agit habituellement de la table maîtresse.

5.	Créez manuellement des éléments pour les colonnes des autres tables de la jointure que vous voulez inclure dans le bloc.

6.	Sélectionnez tous les éléments créés à l'étape 5, puis paramétrez la propriété Elément de base de données sur Oui.

7.	Sélectionnez tous les éléments créés à l'étape 5, puis paramétrez la propriété Nom de colonne sur le nom de la colonne contenue dans la table.

8.	Sélectionnez tous les éléments créés à l'étape 5, puis paramétrez la propriété Interrogation seulement sur Oui.

Ainsi, l'élément n'est inclus ni dans les insertions ni dans les mises à jour de la table cible de données DML.

9.	Pour tous les éléments où le nom de colonne apparaît dans plusieurs tables de la jointure, qualifiez le nom de colonne du nom de table défini dans la propriété Nom de colonne (par exemple, table.colonne).

10.	Pour tous les éléments correspondant à la clé primaire de la table cible de données DML, paramétrez la propriété Clé primaire sur Oui.

Exemple d'utilisation des tables EMP et DEPT

Cet exemple utilise des tables échantillon EMP et DEPT. Il crée un bloc EMP qui contient les informations relatives à l'employé et le nom du service (et non son numéro). La table EMP est la table maîtresse jointe à la table DEPT pour rechercher le nom du service.

1.	A l'aide de l'assistant Bloc de données, créez un bloc basé sur la table EMP.

2.	Via la palette de propriétés, sélectionnez le bloc EMP et changez la valeur du paramètre Nom de source de données d'interrogation de EMP en EMP, DEPT.

3.	Paramétrez la clause WHERE sur EMP.DEPTNO = DEPT.DEPTNO.

4.	Paramétrez la propriété Nom de cible de données DML sur EMP.

5.	Créez manuellement les éléments correspondant aux colonnes de la table DEPT. Par exemple, créez l'élément DNAME.

6.	Sélectionnez l'élément DNAME et paramétrez Elément de base de données sur Oui.

7.	Paramétrez Nom de colonne sur DEPT.DNAME.

8.	Paramétrez Interrogation seulement sur Oui. Ainsi, l'élément DNAME n'est pas inclus dans les mises à jour de la table EMP.

9.	Qualifiez le nom de colonne des éléments qui apparaissent en tant que colonnes dans les tables EMP et DEPT. Par exemple, changez la valeur du paramètre Nom de colonne de l'élément DEPTNO de DEPTNO en EMP.DEPTNO. Cette opération permet d'éviter les erreurs de nom de colonne ambigu au cours de l'interrogation.

10.	Définissez l'un des éléments comme clé primaire. Par exemple, paramétrez Clé primaire sur Oui pour l'élément Empno. Cette étape est obligatoire : la source de données d'interrogation et les cibles DML sont différentes.


A propos des groupes d'enregistrements

  Rubriques connexes

Un groupe d'enregistrements est une structure de données internes de Form Builder qui se présente sous forme de lignes et de colonnes, de façon comparable à une table de base de données. Cependant, à la différence des tables de base de données, les groupes d'enregistrements sont des objets distincts qui appartiennent au module Application Forms dans lequel ils sont définis. Un groupe d'enregistrements peut avoir un nombre illimité de colonnes de type CHAR, NUMBER ou DATE, à condition que le nombre total de colonnes ne soit pas supérieur à 64 Ko. Les noms des colonnes d'un groupe d'enregistrements ne peuvent pas avoir plus de 30 caractères.

Un groupe d'enregistrements créé à partir d'une interrogation peut stocker des enregistrements provenant de tables de base de données, comme une vue de base de données. En outre, le groupe d'enregistrements présente l'avantage d'être local par rapport à Form Builder, au lieu de se trouver dans la base de données. De plus, l'instruction SELECT utilisée pour créer et remplir un groupe d'enregistrements d'interrogation peut être construite dynamiquement lors de l'exécution.

Vous pouvez utiliser, par programme, des groupes d'enregistrements pour bénéficier des fonctions offertes par un tableau en deux dimensions comportant plusieurs types de données.


A propos des types de groupe d'enregistrements

Les groupes d'enregistrements sont de trois types : groupes d'enregistrements d'interrogation, groupes d'enregistrements sans interrogation et groupes d'enregistrements statiques.

Groupe d'enregistrements d'interrogation	Un groupe d'enregistrements d'interrogation est un groupe d'enregistrement auquel est associée une instruction SELECT. Les colonnes d'un groupe d'enregistrements d'interrogation tirent leur nom par défaut, leur type de données et leur longueur des colonnes de la base de données référencées dans l'instruction SELECT. Les enregistrements d'un groupe d'enregistrements d'interrogation sont les lignes extraites par l'interrogation associée à ce groupe d'enregistrements.
Groupe d'enregistrements sans interrogation	Un groupe d'enregistrements sans interrogation est un groupe auquel n'est associé aucune interrogation, mais dont la structure et les valeurs peuvent être modifiées par programme lors de l'exécution. Les groupes d'enregistrements qui ne sont pas en mode Interrogation ne peuvent être créés et modifiés que lors de l'exécution.
Groupe d'enregistrements statiques	Un groupe d'enregistrements statiques n'est pas associé à une interrogation. Vous définissez sa structure et ses valeurs de lignes lors de la conception ; ces valeurs restent fixes lors de l'exécution. Les groupes d'enregistrements statiques ne peuvent être créés et modifiés que lors de la conception.
Vous ne spécifiez pas explicitement le type du groupe d'enregistrements : celui-ci découle du moment où vous créez le groupe d'enregistrements (soit lors de la conception, soit lors de l'exécution) et de la façon dont vous définissez le groupe.


A propos des valeurs des groupes d'enregistrements

  Rubriques connexes

Les valeurs réelles d'un groupe d'enregistrements proviennent de l'une des trois sources suivantes :

•	de l'exécution d'une instruction SELECT que vous avez associée au groupe d'enregistrements lors de la conception (groupes d'enregistrements d'interrogation) ;

•	de l'exécution de sous-programmes intégrés qui remplissent dynamiquement le groupe d'enregistrements (groupes d'interrogations et groupes sans interrogation) ;

•	d'une table de valeurs statiques que vous avez associée au groupe d'enregistrements lors de la conception (groupes d'enregistrements statiques).


A propos des groupes d'enregistrements et des listes de valeurs

  Rubriques connexes

Chaque liste de valeurs (LOV) est associée à un groupe d'enregistrements spécifique. La LOV est l'objet interface qui permet aux utilisateurs de visualiser, de faire défiler et de sélectionner les enregistrements stockés dans le groupe d'enregistrements sous-jacent. Lorsque vous définissez une LOV lors de la conception, vous devez indiquer le groupe d'enregistrements sur lequel elle sera fondée.

Lorsque vous créez une LOV, vous pouvez également créer le groupe d'enregistrements sous-jacent directement à partir de la boîte de dialogue de création de LOV.


A propos des sous-programmes intégrés de groupe d'enregistrements

  Rubriques connexes

Les sous-programmes intégrés que vous pouvez utiliser pour travailler par programme sur des groupes d'enregistrements sont décrits ci-dessous.

Le type de groupe d'enregistrements (enregistrements statiques, avec interrogations ou sans interrogation) et le moment où vous créez ce groupe (lors de la conception ou de l'exécution) déterminent les sous-programmes intégrés valides pour un groupe donné. Par exemple, vous ne pouvez pas utiliser la fonction ADD_GROUP_COLUMN pour ajouter une colonne à un groupe d'enregistrements créé lors de la conception. De même, vous ne pouvez pas utiliser la procédure ADD_GROUP_ROW pour ajouter une ligne à un groupe d'enregistrements statiques.

Création et suppression de groupe :

•	CREATE_GROUP (fonction)

•	CREATE_GROUP_FROM_QUERY (fonction)

•	DELETE_GROUP (procédure)

Modification de la structure d'un groupe :

•	ADD_GROUP_COLUMN (fonction)

•	ADD_GROUP_ROW (procédure)

•	DELETE_GROUP_ROW (procédure)

Remplissage de groupe :

•	POPULATE_GROUP (fonction)

•	POPULATE_GROUP_WITH_QUERY (fonction)

•	SET_GROUP_CHAR_CELL (procédure)

•	SET_GROUP_DATE_CELL (procédure)

•	SET_GROUP_NUMBER_CELL (procédure)

Lecture de valeurs de cellule :

•	GET_GROUP_CHAR_CELL (fonction)

•	GET_GROUP_DATE_CELL (fonction)

•	GET_GROUP_NUMBER_CELL (fonction)

Traitements de ligne :

•	GET_GROUP_ROW_COUNT (fonction)

•	GET_GROUP_SELECTION_COUNT (fonction)

•	GET_GROUP_SELECTION (fonction)

•	RESET_GROUP_SELECTION (procédure)

•	SET_GROUP_SELECTION (procédure)

•	UNSET_GROUP_SELECTION (procédure)

Fonctions d'ID d'objet :

•	FIND_GROUP (fonction)

•	FIND_COLUMN (fonction)


Création d'un groupe d'enregistrements lors de la conception

  Rubriques connexes

Pour créer un groupe d'enregistrements d'interrogation lors de la conception :

1	Dans le Navigateur d'objet, cliquez sur le noeud Groupe d'enregistrements.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue Nouveau groupe d'enregistrements, cliquez sur Fondées sur interrogation ci-après, puis entrez une instruction SELECT dans le champ Texte de l'interrogation. La clause WHERE de l'instruction SELECT peut comporter des références à des variables globales et à des paramètres d'application Forms.

4	Cliquez sur OK.

Form Builder valide l'instruction SELECT et quitte la boîte de dialogue.

Remarque : Le nouveau groupe d'enregistrements ne comporte pas encore de lignes. Les lignes sont retournées lors de l'exécution par l'interrogation associée au groupe :

•	Vous pouvez exécuter par programme l'interrogation associée à un groupe d'enregistrements d'interrogation en appelant le sous-programme intégré POPULATE_GROUP.

•	Lorsqu'une LOV est fondée sur un groupe d'enregistrements d'interrogation, Form Builder exécute l'interrogation associée à ce groupe d'enregistrements, chaque fois que cette LOV est affichée, ou que Form Builder doit valider un élément texte dont la propriété Use Validate from List est définie à Oui.


Visualisation de la structure de votre groupe d'enregistrements

Pour visualiser la structure d'un groupe d'enregistrements créé lors de la conception :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône en regard du groupe d'enregistrements voulu pour afficher la Palette de propriétés.

2	Sous le noeud Fonctionnel, cliquez deux fois dans le champ Spécifications de colonne.

La boîte de dialogue Spécification de colonne du groupe d'enregistrements d'interrogation apparaît et affiche le nom des colonnes sélectionnées dans la liste de texte Nom de colonne.

Les champs Type de données et Longueur affichent les attributs de la colonne sélectionnée dans la liste Nom de colonne.

Conseil : Pour visualiser les attributs d'une autre colonne, sélectionnez cette colonne dans la liste. Les valeurs de longueur ne sont affichées que pour les colonnes de type CHAR. Pour les colonnes de type NUMBER et DATE, Form Builder utilise les longueurs par défaut d'ORACLE pour ces types de données et désactive la propriété de champ Longueur.

Remarque : Vous ne pouvez pas visualiser dans Form Builder les groupes d'enregistrements créés lors de l'exécution.


Modification de l'instruction SELECT pour un groupe d'enregistrements d'interrogation

  Rubriques connexes

Pour modifier l'instruction SELECT d'un groupe d'enregistrements d'interrogation :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône en regard du groupe d'enregistrements voulu pour afficher la Palette de propriétés.

2	Sous le noeud Fonctionnel, modifiez le texte de l'instruction SELECT d'interrogation associée au groupe d'enregistrements.

Conseil : Si vous modifiez l'instruction SELECT d'un groupe d'enregistrements sur lequel est fondée une LOV existante, vous devrez parfois mettre à jour la définition de la LOV pour que les définitions des colonnes de la LOV correspondent aux colonnes du nouveau groupe d'enregistrements.

Remarque : Ces instructions concernent uniquement les groupes d'enregistrements d'interrogation créés lors de la conception. Lors de l'exécution, vous pouvez modifier par programme l'instruction SELECT d'un groupe d'enregistrements d'interrogation créé à l'exécution.


A propos de la manipulation d'un groupe d'enregistrements lors de l'exécution

  Rubriques connexes

Une fois que vous avez créé un groupe d'enregistrements, avec ou sans interrogation, lors de l'exécution, vous pouvez exécuter sur ce groupe les opérations suivantes :

•	modification de la structure par ajout de colonnes et de lignes ;

•	remplissage du groupe ;

•	modification de l'interrogation associée à un groupe d'interrogations ;

•	ajout et suppression de lignes ;

•	définition et lecture de valeurs de colonne ;

•	inscription et suppression de marques de lignes "sélectionnées".

Remarque : Les groupes d'enregistrements statiques ne peuvent être créés et modifiés que lors de la conception.

Comme les lignes des groupes d'enregistrements sont numérotées en interne (1,2,3, etc.), les opérations portant sur des lignes et des colonnes doivent faire référence à ces lignes par leur numéro.


Création d'un groupe d'enregistrements d'interrogation

  Exemples	  Rubriques connexes

Pour créer des groupes d'enregistrements d'interrogation par programme lors de l'exécution, vous pouvez utiliser la fonction CREATE_GROUP_FROM_QUERY. Pour appeler cette fonction, passez dans l'instruction SELECT que vous voulez associer au groupe d'enregistrements. Les colonnes du groupe résultant correspondent aux colonnes de la base de données référencées dans l'instruction SELECT.

La valeur de retour de CREATE_GROUP_FROM_QUERY est l'ID objet du nouveau groupe. Attribuez cette valeur de retour à une variable que vous avez déclarée comme étant de type Groupe d'enregistrements.

Un appel à CREATE_GROUP_FROM_QUERY crée un groupe qui ne comporte encore aucune ligne. Pour remplir le groupe, vous devez exécuter explicitement l'interrogation qui lui est associée en appelant la fonction POPULATE_GROUP. La valeur de retour de la fonction POPULATE_GROUP est 0 si l'interrogation réussit ou un numéro d'erreur ORACLE si elle échoue.


Remplacement d'une interrogation de groupe d'enregistrements

  Exemples	  Rubriques connexes

Vous pouvez remplacer l'interrogation en cours d'un groupe par une nouvelle interrogation en appelant la fonction POPULATE_GROUP_WITH_QUERY.

Les colonnes référencées dans la nouvelle interrogation doivent avoir la même structure que celles référencées dans l'interrogation en cours du groupe, c'est-à-dire que vous ne pouvez pas modifier la structure de colonnes d'un groupe d'enregistrements en appelant POPULATE_GROUP_WITH_QUERY.

Par exemple, vous pouvez remplacer l'interrogation d'un groupe lorsque vous voulez modifier les clauses WHERE et ORDER BY par défaut.

La fonction POPULATE_GROUP_WITH_QUERY retourne 0 si l'interrogation réussit ou un numéro d'erreur ORACLE si elle échoue.

La nouvelle interrogation reste associée au groupe d'enregistrements, et vous pouvez l'exécuter par des appels ultérieurs à la fonction POPULATE_GROUP.


Remplissage d'un groupe d'enregistrements d'interrogation lors de l'exécution

  Rubriques connexes

Lorsque vous créez et manipulez par programme des groupes d'enregistrements d'interrogation, vous devez vous assurer que les valeurs du groupe correspondent à celles de la base de données. N'oubliez pas que les lignes d'un groupe d'enregistrements d'interrogation n'ont comme valeur en cours que celle du dernier appel à POPULATE_GROUP ou POPULATE_GROUP_WITH_QUERY.


Création d'un groupe d'enregistrements d'interrogation lors de l'exécution - Exemples

/* L'exemple ci-dessous crée un groupe d'enregistrements
** en quatre colonnes fondées sur deux tables de la base
** de données, produit et stock.
*/

DECLARE
   group_id	RecordGroup;
   query_ok	NUMBER;
BEGIN
/* Créer le groupe groupe_prod et attribuer son ID à
** l'ID du groupe de variables  */
   group_id := Create_Group_From_Query ('groupe_prod',
     'SELECT id.produit, nom.produit,
     id_entrepôt.stock, quantité_en_stock.stock
     FROM produit, stock
     WHERE id.produit = id_produit.entrepôt');
/* puis exécuter une interrogation du nouveau groupe en
** utilisant l'ID du groupe de variables pour identifier le groupe */
   query_ok := Populate_Group(id_groupe);

/* si l'interrogation échoue, interrompre ce déclencheur en générant une
** anomalie prédéfinie */
   IF query_ok <> 0 THEN
     RAISE Form_Trigger_Failure;
   END IF;
END;


Remplacement d'une interrogation de groupe d'enregistrements - Exemples

/* L'exemple ci-dessous montre comment remplacer une
** interrogation de groupe d'enregistrements lors de l'exécution : */

IF (Populate_Group_With_Query
   ('groupe_prod',
   'SELECT id.produit, nom.produit, stock.id_entrepôt,
     stock.quantité_en_stock
     FROM produit, stock
     WHERE id.produit = entrepôt.id_produit
     AND stock.quantité_en_stock > 10'))
     <> 0 THEN
     RAISE form_trigger_failure;
END IF;


Création et remplissage d'un groupe d'enregistrements sans interrogation

  Exemples	  Rubriques connexes

Les groupes d'enregistrements sans interrogation ne peuvent être créés que lors de l'exécution.

Utilisez la fonction CREATE_GROUP pour créer un groupe d'enregistrements sans interrogation. Comme cette fonction crée un groupe ne comportant ni colonne ni ligne, elle est généralement suivie d'appels aux fonctions ADD_GROUP_COLUMN et ADD_GROUP_ROW.

CREATE_GROUP est une fonction qui retourne l'ID interne du nouveau groupe. ADD_GROUP_COLUMN retourne l'ID de la nouvelle colonne. Une fois que vous avez attribué ces ID à des variables de type Groupe d'enregistrements et Colonnes de groupe, vous pouvez y faire référence au cours d'opérations ultérieures.

Vous pouvez également utiliser la fonction POPULATE_GROUP_WITH_QUERY pour remplir un groupe sans interrogation. Ceci permet d'associer l'interrogation indiquée au groupe et de convertir un groupe sans interrogation en groupe d'interrogation. Les colonnes de base de données auxquelles la nouvelle interrogation fait référence doivent correspondre à celles du groupe d'enregistrements.

Par exemple, vous pouvez créer un groupe d'enregistrements sans interrogation contenant les colonnes appropriées, puis appeler la fonction POPULATE_GROUP_WITH_QUERY pour associer une interrogation à ce groupe.


Création et remplissage d'un groupe d'enregistrements sans interrogation - Exemples

/* L'exemple ci-après crée un groupe d'enregistrements appelé mon_groupe.
** Le groupe résultant est un groupe d'enregistrements sans interrogation
** en trois colonnes, qui ne contient encore aucune ligne.
*/

DECLARE
   id_groupe	RecordGroup;
   id_col1	GroupColumn;
   id_col2	GroupColumn;
   id_col3	GroupColumn;

BEGIN
/* Créer un groupe sans interrogation appelé mon_groupe et
** attribuer son ID à l'id groupe de variables.
*/
   id_groupe:= Create_Group('mon_groupe');

/* Ajouter trois colonnes au nouveau groupe en utilisant
** l'id_groupe de variables pour identifier le groupe. Les
** deux premières colonnes sont de type CHAR_COLUMN et leur
** longueur doit être indiquée.
** La troisième est de type NUMBER_COLUMN et n'accepte pas de
** paramètre de longueur.
*/
   id_col1:= Add_Group_Column(id_groupe,'col1',CHAR_COLUMN,50);
   id_col2:= Add_Group_Column(id_groupe,'col2',CHAR_COLUMN,50);
   id_col3:= Add_Group_Column(id_groupe,'col3',NUMBER_COLUMN);

END;


Modification d'un groupe d'enregistrements existant

  Rubriques connexes

Pour modifier la structure d'un groupe d'enregistrements vous pouvez :

•	ajouter des lignes au groupe ;

•	supprimer des lignes du groupe ;

•	ajouter des colonnes au groupe ;

•	supprimer le groupe.


Ajout de lignes à un groupe d'enregistrements

  Exemples	  Rubriques connexes

Utilisez la procédure ADD_GROUP_ROW pour ajouter des lignes à un groupe. Lorsque vous appelez ADD_GROUP_ROW, vous indiquez où Form Builder doit insérer la nouvelle ligne, soit en transmettant un numéro de ligne, soit en indiquant que la ligne doit être placée à la fin de toutes les lignes existantes.

Pour insérer une nouvelle ligne à une position donnée, transmettez le numéro de ligne correspondant :

Add_Group_Row('mon_groupe',3);

Pour ajouter une ligne à la fin de toutes les lignes existantes, utilisez la constante END_OF_GROUP pour indiquer l'emplacement de la ligne :

Add_Group_Row('mon_groupe',END_OF_GROUP);

Par défaut, les valeurs de colonne de la ligne qui vient d'être ajoutée sont définies NULL. Pour définir les valeurs de colonne individuelle, utilisez la procédure appropriée au type de données de la cellule :

•	SET_GROUP_CHAR_CELL

•	SET_GROUP_DATE_CELL

•	SET_GROUP_NUMBER_CELL.

Remarque : Vous ne pouvez pas ajouter de lignes par programme à un groupe d'enregistrements statiques.


Ajout de lignes à un groupe d'enregistrements - Exemples

/* L'exemple suivant ajoute une ligne à la fin du
** groupe mon_groupe, puis définit les valeurs de chaque cellule
** de la nouvelle ligne :
*/

DECLARE
   id_groupe	RecordGroup := Find_Group('mon_groupe');
   total_rows	NUMBER;
   new_row	NUMBER;
BEGIN
/* Rechercher le nombre de lignes du groupe */
   total_rows := Get_Group_Row_Count(id_groupe);

/* Ajouter une ligne à la fin du groupe mon_groupe */
   Add_Group_Row(id_groupe, END_OF_GROUP);

/* Augmenter total_rows pour obtenir le numéro de
   la nouvelle ligne*/ new_row := total_rows + 1;

/* Définir la valeur des colonnes 1,2 et 3 de la nouvelle ligne */
   Set_Group_Char_Cell('mon_groupe.col1, new_row, 'société xyz');
   Set_Group_Char_Cell('mon_groupe.col2', new_row, 'district 12');
   Set_Group_Number_Cell('mon_groupe.col3', new_row, 400);
END;


Suppression de lignes d'un groupe d'enregistrements

  Rubriques connexes

Utilisez la procédure DELETE_GROUP_ROW pour supprimer des lignes de groupes existants. L'exemple suivant supprime la troisième ligne du groupe prod_group :

Delete_Group_Row('groupe_prod',3);

Pour supprimer toutes les lignes, passez la constante ALL_ROWS :

Delete_Group_Row('groupe_prod',ALL_ROWS);

Remarque : Vous ne pouvez pas supprimer de lignes d'un groupe d'enregistrements statique.


Ajout de colonnes à un groupe d'enregistrements

  Exemples	  Rubriques connexes

Utilisez la procédure ADD_GROUP_COLUMN pour ajouter une nouvelle colonne à un groupe d'enregistrements. Le groupe d'enregistrements auquel vous ajoutez la colonne doit respecter les critères suivants :

•	Le groupe doit être un groupe d'enregistrements d'interrogation ou un groupe d'enregistrements sans interrogation créé par programme (vous ne pouvez pas ajouter de colonnes à des groupes créés lors de la conception).

•	Le groupe ne doit pas comporter de lignes.

Remarquez que, lorsque vous ajoutez une colonne à un groupe d'enregistrements d'interrogation, vous devez également remplacer l'interrogation en cours du groupe par une nouvelle interrogation qui sélectionne des valeurs dans la nouvelle colonne.


Ajout de colonnes à un groupe d'enregistrements - Exemples

/* Dans l'exemple ci-dessous, une colonne est ajoutée à un groupe d'enregistrements
** d'interrogation créé par un appel à CREATE_GROUP_FROM_QUERY
** et pour lequel aucune ligne n'est retournée par cette interrogation.
*/

DECLARE
  query_ok	NUMBER;

BEGIN
/* Ce groupe d'enregistrements d'interrogation comporte des lignes provenant
** d'un appel précédent à Populate Group. Il faut donc commencer par supprimer
** toutes ses lignes.
*/
   Delete_Group_Row('groupe_prod',ALL_ROWS);

/* Ajouter au groupe une colonne de type DATE_COLUMN */

   Add_Group_Column('groupe_prod', 'date_réappro', DATE_COLUMN);

/* La structure de l'ancienne interrogation du groupe n'est plus valide.
** Remplacer cette interrogation par une nouvelle et remplir le groupe.
*/

   query_ok := Populate_Group_With_Query('groupe_prod',
   'SELECT id.produit, nom.produit, stock.id_entrepôt,
   stock.quantité_en_stock, stock.date_réappro
   FROM produit, stock WHERE id.produit = entrepôt.id_produit');

/* si l'interrogation a échoué, interrompre ce déclencheur
** en générant une anomalie prédéfinie */

   IF query_ok <> 0 THEN
     RAISE Form_Trigger_Failure;
  END IF;
END;


Suppression d'un groupe d'enregistrements

  Rubriques connexes

Utilisez la procédure DELETE_GROUP pour supprimer un groupe d'enregistrements créé par programme :

Delete_Group('groupe_prod');

Remarque : Vous ne pouvez pas supprimer un groupe qui a été créé lors de la conception.


Exécution d'opérations sur des lignes

  Rubriques connexes

Une fois que vous avez créé et rempli un groupe d'enregistrements, vous pouvez exécuter sur ses lignes les opérations suivantes :

•	comptage du nombre de lignes du groupe ;

•	définition des valeurs des différentes cellules ;

•	lecture de la valeur des différentes cellules ;

•	marquage de lignes "sélectionnées", puis comptage et lecture des lignes sélectionnées.

Lorsque vous exécutez des opérations sur des lignes, vous devez les identifier en indiquant leur numéro. Par exemple, pour lire la valeur d'une cellule, vous devez faire référence à la cellule en indiquant le numéro de la ligne et le nom de la colonne.


Comptage du nombre de lignes d'un groupe d'enregistrements

  Exemples	  Rubriques connexes

Vous pouvez déterminer le nombre de lignes d'un enregistrement en utilisant la fonction GET_GROUP_ROW_COUNT. Cette fonction permet de déterminer le nombre d'itérations nécessaires pour réaliser une boucle passant en revue toutes les lignes d'un groupe donné.


Comptage du nombre de lignes d'un groupe d'enregistrements - Exemples

/* L'exemple ci-dessous comporte d'abord l'interrogation associée
** au groupe d'enregistrements appelé mon_groupe, puis l'attribution du
** nombre de lignes retournées par l'interrogation
** à la variable row_count.
*/

DECLARE
   id_groupe	RecordGroup;
   query_ok	NUMBER;
   row_count    	NUMBER;
BEGIN
   query_ok := Populate_Group('mon_groupe');
   row_count := Get_Group_Row_Count(id_groupe);
END;

/* L'exemple suivant montre comment la fonction
** GET_GROUP_ROW_COUNT permet de déterminer le nombre d'itérations nécessaires
** pour réaliser une boucle sur toutes les lignes
** d'un groupe donné.
*/

DECLARE
   id_groupe	RecordGroup := FIND_GROUP('mon_groupe');
   row_count  	NUMBER;

BEGIN

/* Rechercher le nombre de lignes du groupe */

   nombre_lignes := Get_Group_Row_Count(id_groupe);

/* définir la colonne Etat du groupe à 'interrompue' pour
** toutes les lignes dont l'id de produit est 471
*/

   FOR j IN 1..row_count LOOP
   IF Get_Group_Number_Cell('mon_groupe.prod_id', j) = 471
      THEN Set_Group_Char_Cell (mon_groupe.état, j, 'interrompue');
   END LOOP;
END;


Lecture et définition de valeurs de ligne et de cellule

  Exemples	  Rubriques connexes

Vous pouvez lire et définir la valeur d'une cellule à l'intersection d'une ligne et d'une colonne.

Pour lire la valeur d'une colonne dans une ligne donnée, utilisez la fonction appropriée au type de données de la cellule :

•	GET_GROUP_CHAR_CELL ;

•	GET_GROUP_DATE_CELL

•	GET_GROUP_NUMBER_CELL.

Lorsque vous faites référence à des colonnes d'un groupe d'enregistrements, utilisez la syntaxe complète nom_groupe.nom_colonne. Vous pouvez également faire référence à des colonnes en indiquant leur ID d'objet interne. Pour lire l'ID d'une colonne donnée, utilisez la fonction FIND_COLUMN.

Pour définir la valeur d'une colonne d'une ligne donnée, utilisez la procédure appropriée au type de données de la cellule :

•	SET_GROUP_CHAR_CELL

•	SET_GROUP_DATE_CELL

•	SET_GROUP_NUMBER_CELL.

Remarque : Vous ne pouvez pas définir les valeurs des cellules d'un groupe d'enregistrements statique.


Recherche et paramétrage des valeurs de cellule - Exemples

/* L'exemple suivant recherche la valeur en cours de la
** colonne quantité_en_stock dans la troisième ligne du groupe
** mon_groupe.
*/

DECLARE
   quantity	NUMBER;
   col_id	GroupColumn :=
     Find_Column('mon_groupe.quantité_en_stock');
BEGIN
   quantity := Get_Group_Number_Cell(col_id,3);
END;

/* L'exemple suivant paramètre la valeur de la colonne nom sur
** Lisa Jean dans la première ligne du groupe mon_groupe.
*/

Set_Group_Char_Cell('mon_groupe.nom',1,'lisa jean');


Marquage des lignes sélectionnées

  Exemples	  Rubriques connexes

Vous pouvez marquer par programme les lignes "sélectionnées" lorsque vous exécutez des opérations sur des lignes. La sélection d'une ligne définit un indicateur interne sur la ligne à laquelle vous pouvez faire référence au cours d'opérations ultérieures sur des lignes.

•	Pour inscrire sur une ligne une marque indiquant qu'elle est "sélectionnée", utilisez la procédure SET_GROUP_SELECTION.

•	Pour connaître le nombre de lignes d'un groupe qui ont été sélectionnées, utilisez la fonction GET_GROUP_SELECTION_COUNT.

•	Pour annuler la marque d'une ligne sélectionnée, utilisez UNSET_GROUP_SELECTION.

•	Pour annuler la sélection de toutes les lignes sélectionnées dans un groupe, utilisez la procédure RESET_GROUP_SELECTION.

•	Pour connaître le numéro d'une ligne qui a été marquée "sélectionnée", utilisez la fonction GET_GROUP_SELECTION. La fonction GET_GROUP_SELECTION retourne le numéro de la ligne sélectionnée indiquée. Par exemple, lorsque les lignes 6, 11 et 18 sont sélectionnées, elles représentent respectivement les sélections 1, 2 et 3.Cela étant, lorsque trois lignes d'un groupe sont sélectionnées, l'appel de fonction ci-dessous retourne le numéro de ligne de la seconde ligne sélectionnée :

row_num := Get_Group_Selection(mon_groupe,2);


Marquage des lignes sélectionnées - Exemples

/* Le déclencheur ci-dessous réalise une boucle sur toutes les lignes du
** groupe commandes. Si la date stockée dans la colonne
** date_commande d'une ligne est antérieure à 1980, la ligne est marquée
** comme étant "sélectionnée".
*/

DECLARE
   id_groupe	RecordGroup := FIND_GROUP('commandes');
   row_count	NUMBER;
   old_orders	NUMBER;

BEGIN

/* Déterminer le nombre de commandes */

   row_count := Get_Group_Row_Count(id_groupe);

/* Si une commande est antérieure à 1980, la marquer en vue de sa sélection */

   FOR j IN 1..row_count LOOP
     IF Get_Group_Date_Cell('commande.date_commande', j) <
       '01-JAN-80' THEN
       Set_Group_Selection(id_groupe, j);
     END IF;
   END LOOP;

/* Compter le nombre total d'anciennes commandes */

   old_orders := Get_Group_Selection_Count(id_groupe);

END;

/* L'exemple ci-dessous porte sur une procédure appelée kill_rows.
** Cette procédure utilise un paramètre de type CHAR qui permet de transmettre
** le nom d'un groupe d'enregistrements lors de l'exécution. Elle
** supprime toutes les lignes du groupe qui sont
** sélectionnées.
*/

PROCEDURE kill_rows(nom_groupe IN CHAR) IS
   id_groupe	RecordGroup := Find_Group('nom_groupe');
   counter	NUMBER := 1;
   marked_rows	NUMBER;

BEGIN

/* Rechercher le nombre de lignes marquées "sélectionnées" */

   marked_rows := Get_Group_Selection_Count(id_groupe);

/* Supprimer chaque ligne marquée "sélectionnée" */

   WHILE counter <= marked_rows LOOP
     Delete_Group_Row(id_groupe,
     Get_Group_Selection(id_groupe,counter));
     counter := counter + 1;
   END LOOP;

END;


Qu'est-ce qu'une relation maître-détail ?

  Rubriques connexes

Une relation maître-détail est une association entre deux blocs de données—un bloc maître et un bloc détail. Elle reflète l'une des relations suivantes :

•	une relation clé primaire-clé étrangère entre les tables sur lesquelles sont basés les blocs ;

•	une relation de type pointeur REF entre les tables sur lesquelles sont basés les blocs.

Prenons par exemple une application de gestion de stocks d'un distributeur d'articles de sport à l'échelle mondiale. L'application comprend une table REGIONS pour les régions géographiques et des tables ENTREPOTS pour les entrepôts de marchandises des différentes régions.

L'application comporte des blocs de données basés sur chacune de ces tables. Comme les entrepôts se trouvent dans des régions différentes, les tables REGIONS et ENTREPOTS sont liées par une relation clé primaire-clé étrangère. Cette relation définit également une relation maître-détail entre les blocs : le bloc REGIONS est le bloc maître, et le bloc ENTREPOTS, le bloc détail.

La relation maître-détail effectue automatiquement les opérations suivantes :

•	vérifie que le bloc détail n'affiche que les enregistrements associés à l'enregistrement en cours (maître) dans le bloc maître ;

•	coordonne les interrogations entre les deux blocs.

Par exemple, lorsque l'utilisateur change l'enregistrement en cours dans le bloc maître en passant à l'enregistrement d'une autre région, Form Builder met à jour le bloc détail pour n'afficher que les enregistrements des entrepôts se trouvant dans la région sélectionnée. De même, lorsque l'utilisateur interroge une région particulière du bloc maître, vous pouvez faire en sorte que Form Builder extraie automatiquement les enregistrements de tous les entrepôts de cette région.


A propos du lien maître-détail

  Rubriques connexes

Les blocs maître et détail sont liés de l'une des deux manières suivantes : soit par une condition de jointure relationnelle, soit au moyen d'une colonne REF d'un bloc qui pointe vers les données de l'autre bloc.

Condition de jointure

Le bloc maître est lié au bloc détail par la condition de jointure. Cette condition établit le ou les éléments de clé primaire dans le bloc maître et le ou les éléments de clé étrangère dans le bloc détail. La condition de jointure pour l'application prise comme exemple peut s'écrire de la manière suivante :

entrepôts.id_région = id.région

C'est-à-dire :

bloc_détail.élément_clé_étrangère = bloc_maître.élément_clé_primaire

Remarque : Pour le traitement d'applications Forms, évitez de baser une condition de jointure sur des colonnes de base de données de type CHAR. (Les colonnes VARCHAR2 sont toutefois acceptées.)

Pointeur REF

Dans une table/un bloc, une colonne REF contient des pointeurs vers des lignes de données se trouvant dans une autre table/un autre bloc. Cette référence constitue une relation maître-détail naturelle. Le bloc détail contient un élément REF qui pointe vers le bloc maître. Notez qu'un lien REF ne dépend d'aucune valeur de clé étrangère ou primaire d'aucune table.


A propos de la coordination de blocs

  Rubriques connexes

Pour maintenir la relation maître-détail lors de l'exécution, Form Builder coordonne les blocs maître et détail pour s'assurer que les enregistrements affichés dans le bloc détail sont associés à l'enregistrement en cours dans le bloc maître.

Tout événement qui modifie l'enregistrement en cours dans le bloc maître est un événement de coordination. La suppression d'un enregistrement ou une pression sur la touche [Haut] ou [Bas] pour passer à un autre enregistrement sont des exemples d'événements de coordination. Lorsque ce type d'événement se produit, Form Builder effectue automatiquement les opérations nécessaires pour coordonner les blocs maître et détail.

La coordination de blocs comprend deux phases : la phase de suppression et la phase de chargement. Pendant la phase de suppression, Form Builder navigue vers le bloc détail et supprime les enregistrements détail périmés. Pendant la phase de chargement, Form Builder émet une instruction SELECT pour recharger le bloc détail avec les enregistrements détail associés au nouvel enregistrement maître. Ces opérations sont assurées par des déclencheurs.

Pour poursuivre notre exemple, voyons ce qui se passe lorsque l'utilisateur se trouve sur le premier enregistrement du bloc REGIONS et appuie sur [Enregistrement suivant]. Comme Enregistrement suivant est un événement de coordination, Form Builder commence par naviguer vers le bloc ENTREPOTS et supprime les enregistrements existants (phase de suppression). Form Builder fait alors de la région suivante l'enregistrement maître en cours dans le bloc REGIONS et extrait les enregistrements des entrepôts qui se trouvent dans la région sélectionnée (phase de chargement).


A propos de la propriété Copier valeur de l'élément

  Rubriques connexes

Pour coordonner le chargement du bloc détail avec l'enregistrement en cours dans le bloc maître, Form Builder utilise la propriété Copier valeur de l'élément sur l'élément de clé étrangère du bloc détail. Cette propriété indique l'élément de clé primaire du bloc principal dont la valeur est copiée dans l'élément de clé étrangère du bloc détail lors de la création ou de l'interrogation d'un enregistrement détail.

Comme la valeur de l'élément de clé primaire de l'enregistrement principal est copiée dans l'élément de clé étrangère du bloc détail, elle est automatiquement incorporée dans la clause WHERE de l'instruction SELECT que Form Builder émet pour charger le bloc détail.

Dans l'exemple suivant, la valeur de l'élément de clé étrangère ENTREPOTS.ID_REGION est copiée à partir de la valeur en cours de l'élément de clé primaire ID.REGION. Seuls les entrepôts se trouvant dans la région maître sélectionnée sont donc interrogés pendant la coordination de blocs.

  SELECT id, adresse, tél, id_directeur
  FROM entrepôts
  WHERE entrepôts.id_région = valeur de clé étrangère

Lorsque les blocs sont reliés par une jointure composée, la propriété Copier valeur de l'élément est définie sur deux éléments de clé étrangère ou plus dans le bloc détail.


A propos de l'objet Relation

  Rubriques connexes

Vous pouvez définir une relation maître-détail à tout moment du processus de développement d'une application. Vous définissez une relation maître-détail entre des blocs en créant et en définissant les propriétés d'un objet Relation.

Une relation est un objet logique qui indique la relation entre un bloc maître et un bloc détail correspondant. Dans le Navigateur d'objet, l'objet Relation apparaît sous le bloc qui est le bloc maître de la relation.

Lorsque vous créez une relation, Form Builder génère les déclencheurs et les procédures PL/SQL nécessaires à la mise en oeuvre de la coordination entre les blocs maître et détail. Le code généré par Form Builder dépend de la façon dont sont définies les propriétés de la relation.


A propos de la création d'une relation maître-détail

  Rubriques connexes

Pour créer une relation maître-détail dans Form Builder, vous avez le choix entre deux possibilités :

•	Créer la relation dans la page Relation maître-détail de l'assistant Bloc de données (lorsque vous créez le bloc détail de cette relation).

•	Dans le Navigateur d'objet, insérer un objet Relation sous le noeud Relations pour le bloc maître approprié. Les blocs maître et détail doivent déjà exister.

Restrictions

En général, il n'est pas conseillé de créer une relation maître-détail lorsque le bloc maître est basé sur une table et le bloc détail, sur une procédure existante. L'interrogation et la coordination sont parfois difficiles à réaliser sur de telles relations. Par opposition, il n'existe aucune restriction de ce type lorsque le bloc maître est basé sur une procédure existante et le bloc détail, sur une table.

Modification des propriétés d'une relation

Après avoir créé une relation entre deux blocs, vous pouvez modifier ses propriétés. Lorsque vous changez les propriétés Supprimer comportement de l'enregistrement ou Coordination d'une relation existante, Form Builder ajoute, supprime ou modifie les déclencheurs, le cas échéant.


Création d'une relation maître-détail avec l'assistant Bloc de données

  Rubriques connexes

Lorsque vous créez un nouveau bloc en utilisant l'assistant Bloc de données, vous pouvez utiliser la page Maître-détail de l'assistant pour créer une relation maître-détail . Reportez-vous à Assistant Bloc de données : page Maître-Détail


Création d'une relation maître-détail dans le Navigateur d'objet

  Rubriques connexes

Pour créer une relation maître-détail dans le Navigateur d'objet :

1	Dans le Navigateur d'objet, recherchez le bloc qui doit être le bloc maître dans la relation et (le cas échéant) cliquez sur + pour afficher les nœuds Déclencheurs, Eléments et Relations liés au bloc maître.

2	Sélectionnez le nœud Relations sous le bloc maître et choisissez Navigateur [image] Créer.

Form Builder affiche la boîte de dialogue Nouvelle relation, avec le nom du bloc maître que vous avez sélectionné dans le champ Bloc maître.

3	Dans le champ Détail, entrez le nom du bloc détail ou cliquez sur Sélectionner... et sélectionnez un bloc dans la LOV.

4	Entrez la définition du comportement Suppressions maître et Coordination, Condition de jointure, puis cliquez sur OK.


Indication de la condition de jointure pour une relation maître-détail

  Rubriques connexes

Vous pouvez indiquer une condition de jointure en utilisant les entrées suivantes :

•	un nom d'élément qui existe dans le bloc maître et dans le bloc détail (les noms d'élément ne doivent pas être précédés de deux-points (:))

•	une condition d'égalisation de deux noms d'élément, dont un existe dans le bloc maître et l'autre dans le bloc détail

•	une combinaison de noms d'élément et de conditions d'égalisation

Exemples de conditions de jointure valides :

•	un nom d'élément qui se retrouve dans les deux blocs :

idcde

•	une condition d'égalisation :

entrepôts.id_région = id.région

•	des jointures composées peuvent être entrées dans le format suivant :

bloc1.élément1 = bloc2.élément1 AND bloc1.élément2 = bloc2.élément2

Remarque : La relation clé primaire−clé étrangère des tables de base de données peut être purement logique. Les contraintes de colonne de clé primaire ou de clé étrangère explicites dans les tables et les colonnes concernées ne sont pas obligatoires.


Définition de propriétés de relations affectant la coordination

  Rubriques connexes

Lorsque vous créez une relation maître-détail, vous devez décider comment Form Builder gérera la coordination entre les blocs maître et détail.

Plus précisément, vous devez répondre aux questions suivantes :

•	Les utilisateurs doivent-ils pouvoir supprimer un enregistrement maître s'il existe des enregistrements détail associés ?

•	Si les utilisateurs peuvent supprimer un enregistrement maître, Form Builder doit-il également supprimer les enregistrements détail associés ?

•	Si un utilisateur fait d'un nouvel enregistrement du bloc maître l'enregistrement en cours, Form Builder doit-il extraire immédiatement les enregistrements détail associés, ou attendre que l'utilisateur passe au bloc détail ?

Les réponses à ces questions dépendront des caractéristiques de l'application. En définissant les propriétés de l'objet Relation, vous pouvez mettre en œuvre les fonctions maître-détail qui correspondent le mieux à votre application.

Parmi les propriétés qui affectent les fonctionnalités d'une relation figurent Supprimer comportement de l'enregistrement, Coordination et Empêcher opérations sans maître.

Propriété Supprimer comportement de l'enregistrement Cette propriété (anciennement appelée propriété Suppressions maître) vous permet d'indiquer l'effet de la suppression d'un enregistrement du bloc maître sur les enregistrements du bloc détail. Vous avez le choix entre En cascade, Isolées ou Non isolées :

En cascade	L'enregistrement maître peut être supprimé, et les enregistrements détail associés sont automatiquement supprimés de la base de données lors de l'opération commit. Si les relations sont imbriquées à plusieurs niveaux, seuls les enregistrements du bloc détail immédiat sont supprimés —  c'est-à-dire que les suppressions ne sont pas automatiquement répercutées en cascade aux différents niveaux d'une chaîne de relations.

Isolées	L'enregistrement maître peut être supprimé, mais les enregistrements détail associés ne sont pas supprimés de la base de données.

Non isolées	Option par défaut. L'enregistrement maître ne peut pas être supprimé si la base de données comporte des enregistrements détail associés.

Remarque : Si votre base de données utilise la fonction de suppressions en cascade du serveur ORACLE7, n'utilisez pas l'option de suppression En cascade de Form Builder.

Propriétés de coordination Les valeurs des propriétés de coordination Interrogation automatique et Différée déterminent le moment où se produit le chargement de la coordination des blocs :

Immédiate	(Différée = Non) Valeur par défaut. Lorsqu'un événement de coordination se produit, Form Builder extrait immédiatement les enregistrements détail.

Différée	(Différée = Oui, Interrogation automatique = Non) Lorsqu'un événement de coordination se produit, Form Builder n'extrait pas automatiquement les enregistrements détail. Pour extraire les enregistrements détail, l'utilisateur doit passer au bloc détail et exécuter explicitement une interrogation.

Différée avec Interrogation automatique	(Différée = Oui, Interrogation automatique = Oui) Lorsqu'un événement de coordination se produit, Form Builder diffère l'extraction des enregistrements détail associés jusqu'à ce que l'utilisateur passe au bloc détail.


Choix de la coordination appropriée

  Rubriques connexes

Considérez la coordination différée comme un "chargement différé" : lorsqu'un événement entraînant une coordination se produit dans le bloc maître, la phase de chargement de la coordination est différée, mais Form Builder supprime immédiatement les enregistrements existant dans le bloc détail. Cette fonction empêche qu'un bloc détail affiche des enregistrements sans correspondance avec l'enregistrement en cours dans le bloc maître.

En règle générale, choisissez la coordination immédiate (Différé = Non) lorsque le bloc détail est visible par l'utilisateur et lorsqu'il est admis que l'utilisateur voudra toujours voir les enregistrements détail associés à l'enregistrement maître en cours.

La coordination différée avec Interrogation automatique est intéressante lorsque le bloc détail n'est pas immédiatement visible (pour afficher les enregistrements détail, l'utilisateur doit passer au bloc détail dans une autre fenêtre).

La coordination différée est également intéressante lorsque les utilisateurs n'ont pas systématiquement besoin d'afficher des enregistrements détail. Dans ce cas, différer la coordination peut empêcher une interrogation superflue de la base de données.

La coordination différée sans Interrogation automatique est utile si vous voulez que les utilisateurs puissent passer en mode Saisie interrogation et indiquer des critères d'interrogation supplémentaires dans le bloc détail avant le chargement. Elle permet également aux utilisateurs de naviguer entre les enregistrements détail sans imposer la coordination et le traitement qui en découle, tant que la coordination n'est pas réellement nécessaire.


Définition des propriétés des éléments clé étrangère dans le bloc détail

Lorsque vous créez une relation, Form Builder définit automatiquement la propriété Copier valeur de l'élément aux éléments clé étrangère du bloc détail. Cette propriété indique le nom de l'élément clé primaire correspondant, en format BLOCK_MAITRE.NOM_ELEMENT. Lors de l'exécution, la valeur stockée dans l'élément clé primaire du bloc maître est copiée dans l'élément clé étrangère du bloc détail lors de la création ou de l'interrogation d'un enregistrement détail.

Lorsque vous créez la relation dans l'assistant Bloc de données, Form Builder effectue sur le ou les éléments clé étrangère du bloc détail les opérations suivantes :

•	définit la propriété Canevas à NULL (fait de l'élément un élément canevas NULL) ;

•	désactive les propriétés Affiché, Activé, Navigation autorisée, Interrogation autorisée et Mise à jour autorisée ;

•	classe les éléments du Navigateur d'objet de manière que les éléments clé étrangère soient les derniers dans la séquence de navigation du bloc.

En outre, si la relation a été créée dans l'assistant Bloc de données, Form Builder ne crée pas de libellé de texte standard pour les éléments clé étrangère.

Lorsque vous créez une relation dans le Navigateur d'objet et non dans l'assistant Bloc de données, vous voudrez parfois définir ces propriétés vous-même.

Ces définitions ont pour but de masquer à l'utilisateur le ou les éléments clé étrangère, puisque ces informations risquent d'être affichées dans le ou les éléments clé primaire du bloc détail. Ces définitions sont surtout intéressantes lorsque les utilisateurs peuvent voir simultanément le bloc détail et le bloc maître. S'ils ne peuvent pas voir le bloc maître lorsqu'ils affichent les enregistrements détail, vous aurez peut-être intérêt à annuler ces définitions afin que le ou les éléments clé étrangère puissent être vus par l'utilisateur. Dans ce cas, assurez-vous que la propriété Mise à jour autorisée de l'élément est désactivée (pour que les utilisateurs ne puissent pas modifier la valeur de clé étrangère et donc rompre la relation maître-détail).


Suppression d'une relation maître-détail

  Rubriques connexes

Pour supprimer une relation maître-détail, sélectionnez-la dans le Navigateur d'objet et choisissez Navigateur [image] Supprimer. Le tableau ci-après indique les opérations effectuées par Form Builder lorsque vous supprimez une relation maître-détail ou un objet faisant partie d'une relation :

Si vous supprimez...	Form Builder...
Une relation maître-détail	Supprime tous les déclencheurs maître-détail attachés au bloc maître de la relation et supprime la propriété Copier valeur de l'élément du ou des éléments clé étrangère du bloc détail.
Le bloc maître ou détail d'une relation	Supprime la relation et tous les déclencheurs maître-détail associés, mais ne supprime pas les procédures maître-détail.
Un bloc détail d'une relation maître avec détails indépendants	Supprime la relation, supprime du déclencheur On-Clear-Details la section détail concernée et, s'il existe, supprime le déclencheur On-Populate-Details. Tout commentaire ou code que vous avez ajouté dans cette section est également supprimé.
L'élément clé étrangère d'un bloc détail, un déclencheur maître-détail ou une procédure maître-détail (déconseillé)	Aucune opération n'est effectuée par Form Builder. Cependant, la coordination de blocs maître-détail est interrompue. Bien que vous puissiez masquer l'élément clé étrangère dans le bloc détail (en en faisant un élément canevas NULL), vous ne devez pas le supprimer complètement. Les procédures et les déclencheurs maître-détail sont également importants pour garantir la coordination des blocs maître-détail.


Interdiction d'opérations sans maître dans le bloc détail

 Exemples	     Rubriques connexes

A quelques rares exceptions près, les utilisateurs ne doivent généralement pas pouvoir effectuer des opérations sans maître dans un bloc détail — c'est-à-dire qu'ils ne doivent pas pouvoir interroger le bloc détail ou y insérer des enregistrements lorsque le bloc maître ne comporte pas d'enregistrement en cours.

L'activation de la relation Interdiction d'opérations sans maître, pour interdire aux utilisateurs d'effectuer des opérations sans maître dans le bloc détail de la relation, entraîne les conséquences suivantes :

•	Si les utilisateurs tentent d'insérer des enregistrements dans le bloc détail alors que le bloc maître ne comporte pas d'enregistrement maître, Form Builder affiche le message d'erreur :FRM-41106: Création impossible d'enregistrements en l'absence d'enregistrement parent.

•	Si les utilisateurs tentent d'interroger des enregistrements du bloc détail alors qu'il n'y a pas d'enregistrement maître (dans le bloc maître) provenant de la base de données, Form Builder affiche le message d'erreur :FRM-41105: Interrogation des enregistrements impossible en l'absence d'enregistrement parent.

Il est généralement intéressant d'empêcher les insertions sans maître lorsque les utilisateurs risquent de recevoir un message d'erreur s'ils tentent de valider des enregistrements détail créés indépendamment d'un enregistrement maître. Ces erreurs apparaissent lorsque le bloc détail tire la valeur de ses éléments clé étrangère des éléments clé primaire de l'enregistrement maître (par la propriété Copier valeur de l'élément).

De même, vous pourrez vouloir empêcher les interrogations sans maître dans un bloc détail, car les utilisateurs ne peuvent pas interroger efficacement le bloc détail. Ils peuvent interroger le système sur l'existence d'enregistrements détail spécifiques, mais ne peuvent pas déterminer les enregistrements maître auxquels ils appartiennent. (Ceci suppose que le ou les éléments clé étrangère du bloc détail ne sont pas affichés.)

Interdiction de navigation vers le bloc détail  L'activation de la propriété Interdiction d'opérations sans maître interdit aux utilisateurs d'effectuer des opérations d'interrogation et d'insertion dans un bloc détail pour lequel il n'y a pas d'enregistrement maître correspondant, mais ne les empêche pas de passer au bloc détail et de tenter d'exécuter ces opérations.

Dans certaines applications, il peut être intéressant d'interdire toute tentative de passage à un bloc détail lorsqu'il n'y a pas d'enregistrement maître.


Interdiction d'opérations sans maître dans le bloc détail - Exemple

Exemple

/* Exemple de solution permettant d'empêcher les utilisateurs

** de passer à un bloc détail pour lequel il n'y a pas de bloc
** maître. Cet exemple est basé sur le bloc détail ENTREPOTS et
** le bloc maître REGIONS. Utiliser un déclencheur
** When-New-Block-Instance sur le bloc détail ENTREPOTS :
*/
DECLARE
  alert_dummy   NUMBER;
BEGIN
/* Rechercher l'existence d'un enregistrement maître en
** vérifiant l'état de l'enregistrement en cours dans le bloc maître
*/
IF GET_RECORD_PROPERTY(GET_BLOCK_PROPERTY
   ('régions', enregistrement_en-cours), 'régions', STATUS) = 'NOUVEAU'
   OR :régions.id_région IS NULL THEN
/*
** Il n'y a pas d'enregistrement maître ; afficher une alerte
** qui demande à l'utilisateur d'interroger ou d'entrer un
** enregistrement de région avant de passer au bloc entrepôts
*/
   alert_dummy := SHOW_ALERT('mon_alerte');
/*
** Placer le point d'entrée dans le bloc maître
*/
   GO_BLOCK('régions');
END IF;
END;
/* Le déclencheur When-New-Block-Instance est activé lorsque
** l'utilisateur passe au bloc détail. La fonction intégrée
** GET_RECORD_PROPERTY est utilisée pour déterminer l'état de
** l'enregistrement en cours dans le bloc maître. (La fonction
** GET_BLOCK_PROPERTY est imbriquée comme premier argument de
** GET_RECORD_PROPERTY pour retourner le numéro de
** l'enregistrement en cours dans le bloc régions.)
**
** Si l'état (status) de l'enregistrement en cours est NOUVEAU, pour
** indiquer que l'enregistrement n'est pas un enregistrement
** maître existant, Form Builder affiche une fenêtre d'alerte
** avec un message vous invitant à interroger ou à entrer un enregistrement maître avant de passer au bloc détail.
** Le déclencheur passe alors au bloc maître pour permettre à
** l'utilisateur d'effectuer cette opération.
*/


Création de relations maître-détail complexes

De nombreuses applications nécessitent des relations maître-détail complexes portant sur plusieurs blocs. Pour créer ces relations, il suffit de définir autant de relations individuelles que nécessaires.

Le nombre de relations pouvant être définies dans une application Forms est pratiquement illimité. En outre, un bloc peut être maître ou détail dans plusieurs relations, et un bloc maître dans une relation peut être détail dans une autre.

Lorsque vous créez des relations maître-détail complexes, Form Builder ajuste automatiquement les déclencheurs existants en fonction des relations que vous définissez.

Cette rubrique décrit trois des types les plus courants de relations maître-détail :

•	maître avec détails dépendants ;

•	maître avec détails indépendants ;

•	détail avec deux maîtres.


A propos des relations complexes et des suppressions en cascade

Lorsque vous définissez la propriété Supprimer comportement de l'enregistrement d'une relation à En cascade, notez que les suppressions ne s'appliquent qu'au bloc détail immédiat de la relation. Prenons, par exemple, la relation maître-détail complexe impliquant des relations entre les blocs A et B (A_B) et B et C (B_C), où B est à la fois le bloc détail de la relation A_B et le bloc maître de la relation B_C.

Lorsque la propriété Supprimer comportement de l'enregistrement est définie à En cascade pour la relation A_B, les enregistrements détail du bloc B sont automatiquement supprimés si l'enregistrement maître du bloc A est supprimé. Les enregistrements détail du bloc C ne sont pas automatiquement supprimés lorsqu'un enregistrement maître du bloc A est supprimé. Cependant, si la propriété Supprimer comportement de l'enregistrement de la relation B_C est définie à En cascade, les enregistrements détail du bloc C sont supprimés lorsque le bloc A est supprimé. Les enregistrements détail du bloc C sont affectés par la suppression du bloc A, car lorsque la propriété Supprimer comportement de l'enregistrement est définie à En cascade pour la relation A_B, la suppression d'un enregistrement maître du bloc A entraîne la suppression des enregistrements détail du bloc B. Les enregistrements détail du bloc B servent également d'enregistrements maître dans la relation B_C. Comme la propriété Supprimer comportement de l'enregistrement est définie à En cascade pour la relation B_C, la suppression d'un enregistrement maître du bloc B entraîne la suppression des enregistrements détail du bloc B.

Maître avec détails dépendants

Une relation maître avec détails dépendants comporte un bloc maître et n niveaux de blocs détail, de sorte que le premier bloc détail est lui-même maître de son propre bloc détail.

Pour créer une relation maître avec détails dépendants, définissez séparément les relations A_B et B_C (dans l'ordre de votre choix).

Lorsque vous créez ce type de relation, étudiez l'effet des propriétés Supprimer comportement de l'enregistrement et Coordination sur les blocs détail. Par exemple, si une relation d'une chaîne de blocs liés est définie à Coordination différée, tous les blocs ultérieurs seront également différés. Ainsi, lorsque la relation A_B est différée et que la relation B_C est immédiate, Form Builder ne coordonne le bloc C avec le bloc B que lorsque le bloc B est coordonné avec le bloc A.

Maître avec détails indépendants

Une relation maître avec détails indépendants implique plusieurs blocs détail qui partagent tous le même bloc maître. Cette structure est intéressante lorsque vous voulez afficher plusieurs ensembles d'enregistrements détail pour un même enregistrement maître. Un événement provoquant une coordination dans le bloc maître entraîne le chargement des deux blocs détail par l'introduction des enregistrements détail appropriés.

Dans l'application prise comme exemple, le bloc maître REGIONS peut s'afficher avec les blocs détail ENTREPOTS et CLIENTS. L'utilisateur peut alors voir tous les entrepôts et tous les clients de la région sélectionnée.

Pour créer ce type de relation, définissez séparément les relations A_B et A_C (dans l'ordre de votre choix).

Détail avec deux maîtres

Une relation détail avec deux maîtres implique un bloc détail qui a deux blocs maîtres. Form Builder affiche les enregistrements détail appropriés pour le bloc maître qui est le bloc en cours dans l'application Forms. Par exemple, dans l'application mentionnée précédemment, le bloc cde peut être un bloc détail ayant deux blocs maître, CLIENT et EMP. Les utilisateurs peuvent alors voir toutes les commandes d'un client ou d'un commercial donné (employé).

Généralement, lorsque vous créez une relation détail avec deux maîtres, vous établissez une jointure sur différents éléments clé étrangère dans le bloc détail. Dans ces cas, la propriété Copier valeur de l'élément est définie pour chaque élément clé étrangère du bloc détail de manière à pointer sur l'élément clé primaire du bloc maître approprié. Pour créer ce type de relation, il vous suffit de définir les deux relations, et Form Builder supporte automatiquement la coordination.

Dans d'autres cas, vous voudrez créer une relation maître avec deux détails, chaque relation s'effectuant sur le même élément clé étrangère dans le bloc détail. Cependant, comme la propriété Copier valeur de l'élément ne peut pointer que sur un élément de bloc maître, vous devrez écrire du code supplémentaire pour coordonner l'interrogation et la mise à jour de la seconde relation si vous établissez une jointure sur le même élément du bloc détail.

Cette opération pourra inclure, selon les fonctions voulues, l'écriture d'un déclencheur Pre-Query pour le bloc détail, pour vérifier que la valeur d'élément clé primaire correcte est bien copiée dans l'élément clé étrangère du bloc détail. Par exemple :

COPY(NAME_IN(:système.bloc_maître||'.élément_clé_primaire'),
                                   'élément_bloc_détail');

Vous souhaiterez peut-être également créer un déclencheur When-New-Block-Instance vérifiant l'état de coordination du bloc détail lorsque l'utilisateur passe à un bloc détail différent et, si nécessaire, charge le bloc détail.


A propos des déclencheurs maître-détail et des procédures

Lorsque vous créez une relation maître-détail, Form Builder génère différents déclencheurs en fonction de la façon dont les propriétés Supprimer comportement de l'enregistrement et Coordination sont définies. Le tableau ci-dessous indique comment la propriété Supprimer comportement de l'enregistrement détermine les déclencheurs que crée Form Builder. Lorsque vous modifiez la définition de la propriété Supprimer comportement de l'enregistrement pour une relation existante, Form Builder ajoute ou supprime des déclencheurs si nécessaire. Le code de ces déclencheurs dépend de la façon dont les propriétés Coordination sont définies et de l'éventuelle appartenance d'une relation à une chaîne de relations complexes.

Propriété Supprimer comportement de l'enregistrement	Déclencheurs résultants
Non isolées (par défaut)	On-Check-Delete-Master, On-Clear-Details, On-Populate-Details
En cascade	On-Clear-Details, On-Populate-Details, Pre-Delete
Isolées	On-Clear-Details, On-Populate-Details


Déclencheurs maître-détail

La présente section décrit les déclencheurs que Form Builder crée lorsque vous définissez une relation maître-détail. Le texte du déclencheur fourni avec chaque description de déclencheur indique la structure de base du déclencheur. Le texte que vous verrez dans vos propres applications dépendra de l'application Forms et pourra donc être légèrement différent.

(Si des déclencheurs spécifiques existent déjà pour le bloc maître, ce sont eux qui sont utilisés ; Form Builder n'en crée pas de nouveaux.)

Form Builder crée également des procédures nommées par l'utilisateur qui sont appelées par des déclencheurs maître-détail.

Form Builder génère des commentaires dans le déclencheur par défaut et dans le code de procédure. Les commentaires sont délimités par deux tirets PL/SQL standard ('- -').

Déclencheur On-Clear-Details Chaque relation maître-détail doit avoir un déclencheur On-Clear-Details. Ce déclencheur est activé pendant la phase de suppression de la coordination et supprime tous les enregistrements détail du bloc détail. Ce déclencheur appelle la procédure CLEAR_ALL_MASTER_DETAILS, comme indiqué dans l'exemple de texte de déclencheur suivant :

-- Début de la section de programme de relation par défaut
--
     Clear_All_Master_Details;
--
-- Fin de la section de programme de relation par défaut

Déclencheur On-Check-Delete-Master Form Builder crée le déclencheur On-Check-Delete-Master lorsque la propriété Supprimer comportement de l'enregistrement est définie à Non isolées. Il est activé en cas de tentative de suppression d'un enregistrement maître. Il interroge la base de données pour savoir s'il existe des enregistrements détail pour l'enregistrement maître. S'il n'en trouve pas, il supprime l'enregistrement maître. S'il en trouve, il affiche un message indiquant qu'il est impossible de supprimer l'enregistrement principal s'il existe des enregistrements détail correspondants, comme indiqué dans le texte de déclencheur ci-après :

Suppression de l'enregistrement maître impossible s'il existe des enregistrements détails correspondants.

comme le montre l'exemple de texte de déclencheur suivant :

--
-- Début de la section de déclaration de relation par défaut
--
    Declare
        Dummy_Define char(1);
        --
        -- Début de la section de déclaration de détail B
        --
        cursor B_cur is
           select null from MASDET
           where PARENT = :A.ID;
        --
        -- Fin de la section de déclaration de détail B
        --
    --
    -- Fin de la section de déclaration de relation par défaut
    --
    --
    -- Début de la section de programme de relation par défaut
    --
    Begin
    --
    -- Début de la section de programme de détail B
    --
       Open B_cur;
       Fetch B_cur into Dummy_Define;
       if ( B_cur%found ) then
          Message('Suppression impossible de l'enregistrement
    principal lorsqu'il existe des enregistrements détail correspondants.');
          Close B_cur;
          raise Form_Trigger_Failure;
      end if;
      Close B_cur;
    --
    -- Fin de la section de programme de détail B
    --
End;
--
-- Fin de la section de programme de relation par défaut

Déclencheur On-Populate-Details Form Builder crée un déclencheur On-Populate-Details pour chaque relation maître-détail. Ce déclencheur est activé pendant la phase de chargement de la coordination de blocs. Il commence par vérifier l'état de l'enregistrement maître et la valeur de son champ clé primaire, puis passe au bloc détail pour lancer l'interrogation appropriée. Il appelle la procédure QUERY_MASTER_DETAILS, comme indiqué dans l'exemple de texte de déclencheur suivant :

--
-- Début de la section de déclaration de relations par défaut
--
Declare
    recstat     char(20) := :system.record_status;
    id_relation relation;
--
-- Fin de la section de déclaration de relations par défaut
--
--
-- Début de la section du programme de relations par défaut
--
Begin
    if ( recstat = 'NEW' or recstat = 'INSERT' ) then
       return;
    end if;
    --
    -- Début de la section du programme de détail B
    --
    if ((:A.ID is not null)) then
       id_relation := find_relation('A.AB');
       Query_Master_Details(id_relation, 'B');
    end if;
    --
    -- Fin de la section du programme de détail B
    ----
End;

Déclencheur Pre-Delete Form Builder crée le déclencheur Pre-Delete lorsque la propriété Supprimer comportement de l'enregistrement est définie à En cascade. Il supprime les enregistrements de la table de base du bloc détail qui correspond à l'enregistrement maître en cours de suppression.

--
-- Début de la section du programme de relations par défaut
--
BEGIN
    --
    -- Début de la section du programme de détails de bloc détail
    --
    DELETE FROM detail_block_base_table
    WHERE foreign_key_column = :master_block.primary_key_item;
    --
    --Fin de la section du programme de détails de bloc détail
    --
END;
--
-- Fin de la section du programme de relations par défaut
--


Déclencheurs pour relations maître-détail complexes

Lorsque vous créez une relation maître-détail complexe, Form Builder ajoute ou modifie des déclencheurs maître-détail pour supporter la relation que vous avez définie. L'exemple ci-après explique comment Form Builder ajoute ou modifie des déclencheurs, si nécessaire.

Exemple : Maître avec détails indépendants Prenons par exemple une relation A_B, dont la propriété Supprimer comportement de l'enregistrement est définie à Non isolées et la propriété de coordination Différée est désactivée(par défaut). Pour gérer la relation, Form Builder crée sur le bloc maître les déclencheurs suivants :

•	On-Clear-Details

•	On-Check-Delete-Master

•	On-Populate-Details

Si vous créez alors une seconde relation A_C (ayant le même bloc maître, mais un bloc détail différent), vous créez une relation maître avec détails indépendants, c'est-à-dire un bloc maître et deux blocs détail.

Pour gérer cette relation, Form Builder ne crée pas de déclencheurs supplémentaires, mais ajoute une section à chaque déclencheur pour faciliter la suppression et le chargement du second bloc détail. Les commentaires générés dans ces déclencheurs délimitent les sections qui gèrent chaque bloc détail. Par exemple, les commentaires du déclencheur On-Populate-Details indiquent clairement où commence et où se termine chaque section de bloc détail :

-- Début de la section de programme de relation par défaut
BEGIN
    --
    -- Début de la section de programme first_detail_block
    --
    /* texte du déclencheur permettant de supprimer le premier bloc détail */
    --
    -- Fin de la section de programme first_detail_block
    --
    --
    -- Début de la section de programme second_detail_block
    --
    /* texte de déclencheur permettant de supprimer le second bloc détail */
    --
    -- Fin de la section de programme second_detail_block
    --
    /* texte de déclencheur final */
END;
-- Fin de la section de programme de relation par défaut
--


Modification des déclencheurs de relations par défaut

Vous voudrez parfois ajouter vos propres commentaires et votre propre code aux déclencheurs maître-détail par défaut créés par Form Builder. Vous pouvez modifier un déclencheur par défaut comme vous le feriez pour un déclencheur que vous auriez créé vous-même.

N'oubliez pas cependant que si vous modifiez par la suite les propriétés de la relation, Form Builder devra parfois supprimer ou modifier les déclencheurs par défaut. Par exemple, si vous faites passer la propriété Supprimer comportement de l'enregistrement d'une relation de En cascade à Isolées, Form Builder supprime le déclencheur Pre-Delete devenu inutile.

Les règles applicables à la modification des déclencheurs maître-détail sont les suivantes :

•	Vous ne pouvez pas modifier ou supprimer les commentaires générés par Form Builder. Ils indiquent à Form Builder où insérer ou supprimer le texte du déclencheur lorsque des modifications s'imposent.

•	Si vous ajoutez du code à un déclencheur, insérez-le avant le commentaire "Début de la section de programme de relation par défaut " ou après le commentaire "Fin de la section de programme de relation par défaut ".

•	Form Builder ne supprime pas un déclencheur maître-détail que vous avez modifié, à condition que vous placiez votre code à l'extérieur de la section de programme de relation par défaut. (Form Builder supprime la section de programme de relations, mais ne supprime pas le déclencheur.)


Procédures maître-détail

La présente section indique le texte des procédures maître-détail que Form Builder crée automatiquement lorsque vous définissez une relation. Ces procédures sont appelées à partir des déclencheurs maître-détail ou d'autres procédures.

Procédure CLEAR_ALL_MASTER_DETAILS Cette procédure est appelée par le déclencheur On-Clear-Details. Elle passe au bloc détail et supprime les enregistrements détail.

PROCEDURE Clear_All_Master_Details IS
    mastblk  CHAR(30);  /* Bloc maître initial de coordination */
    coordop  CHAR(30);  /* Opération de coordination  */
    trigblk  CHAR(30);  /* Activation du bloc en cours On-Clear-Details */
    startitm CHAR(61);  /* Elément auquel le curseur a débuté */
    frmstat  CHAR(15);  /* Etat de l'application Forms        */
    curblk   CHAR(30);  /* Bloc en cours                      */
    currel   CHAR(30);  /* Relation en cours                  */
    curdtl   CHAR(30);  /* Bloc détail en cours               */

FUNCTION First_Changed_Block_Below( Master CHAR ) RETURN CHAR
IS
    curblk CHAR(30);  /* Bloc en cours    */
    currel CHAR(30);  /* Relation en cours*/
    retblk CHAR(30);  /* Bloc de retour   */
BEGIN
    /*
    ** Init Local Vars
    */
    curblk := Master;
    currel :=Get_Block_Property(curblk,FIRST_MASTER_RELATION);
    /*
    ** Lorsqu'il existe une autre relation pour ce bloc
    */
    WHILE currel IS NOT NULL LOOP
       /*
       ** Rechercher le nom du bloc détail
       */
       curblk := Get_Relation_Property(currel,DETAIL_NAME);
       /*
       ** Si ce bloc comporte des modifications, retourner son nom
       */
       IF Get_Block_Property(curblk,STATUS) IN
                            ('CHANGED','INSERT') THEN
                            RETURN curblk;
       /*
       ** Autrement, rechercher de manière récurrente les blocs modifiés en dessous
       */
       ELSE
          retblk := First_Changed_Block_Below(curblk);
       /*
       ** Si un bloc inférieur est modifié, retourner son nom
       */
       IF retblk IS NOT NULL THEN
          RETURN retblk;
       /*
       ** Autrement, prendre en compte la prochaine relation
       */
       ELSE
          currel := Get_Relation_Property (currel,
                                           NEXT_MASTER_RELATION);
       END IF;
    END IF;
END LOOP;
/*
** Si nous arrivons ici, c'est qu'aucun bloc modifié n'a été trouvé
*/
RETURN NULL;
END First_Changed_Block_Below;
BEGIN
    /*
    ** Init Local Vars
    */
    mastblk  := :System.Master_Block;
    coordop  := :System.Coordination_Operation;
    trigblk  := :System.Trigger_Block;
    startitm := :System.Trigger_Item;
    frmstat  := :System.Form_Status;
    /*
    ** Si l'opération de coordination est différente de
    ** CLEAR_RECORD, poursuivre la vérification.
    */
    IF coordop <> 'CLEAR_RECORD' THEN
       /*
       ** Si nous traitons le bloc maître principal ...
       */
       IF mastblk = trigblk THEN
       /*
       ** Si un élément quelconque de l'application Forms a
       ** changé, rechercher le premier bloc modifié en dessous du bloc maître
       */
       IF frmstat = 'CHANGED' THEN
          curblk := First_Changed_Block_Below(mastblk);
          /*
         ** En cas de détection d'un bloc modifié en dessous du  bloc maître,
         ** passer à ce bloc et demander l'enregistrement des modifications.
         */
      IF curblk IS NOT NULL THEN
         Go_Block(curblk);
         Check_Package_Failure;
         Clear_Block(ASK_COMMIT);
       /*
       ** Si l'utilisateur annule le dialogue d'enregistrement, signaler une erreur
       */
       IF NOT( :System.Form_Status = 'INTERROGATION' /* Oui */  OR
      :System.Block_Status = 'NOUVEAU'  /* Non */ ) THEN
         RAISE Form_Trigger_Failure;
       END IF;
       END IF;
     END IF;
    END IF;
  END IF;
/*
** Supprimer tous les blocs détail de ce maître sans demander
** d'autre enregistrement.
*/
currel := Get_Block_Property(trigblk,FIRST_MASTER_RELATION);
WHILE currel IS NOT NULL LOOP
    curdtl := Get_Relation_Property(currel,DETAIL_NAME);
    IF ( Get_Block_Property(curdtl, STATUS) <> 'NOUVEAU' ) THEN
       Go_Block(curdtl);
       Check_Package_Failure;
       Clear_Block(NO_VALIDATE);
       IF ( :System.Block_Status <> 'NOUVEAU' ) THEN
          RAISE Form_Trigger_Failure;
       END IF;
    END IF;
    currel := Get_Relation_Property(currel,NEXT_MASTER_RELATION);
END LOOP;
/*
** Ramener le curseur à son point de départ
*/
IF ( :System.Cursor_Item <> startitm ) THEN
    Go_Item(startitm);
END IF;
EXCEPTION
    WHEN Form_Trigger_Failure THEN
       IF :System.Cursor_Item <> startitm THEN
       Go_Item(startitm);
       END IF;
     RAISE;
END Clear_All_Master_Details;

Procédure QUERY_MASTER_DETAILS Cette procédure est appelée à partir du déclencheur On-Populate-Details. Elle passe au bloc détail, puis exécute une interrogation pour extraire les enregistrements détail appropriés.

PROCEDURE Query_Master_Details(rel_id Relation, detail CHAR) IS
    oldmsg CHAR(2);  /* Définition de niveau de l'ancien message */
    reldef CHAR(5);  /* Définition différée de relation */
BEGIN
    /*
    ** Initialisation de la ou des variables locales
    */
    reldef := Get_Relation_Property(rel_id,
                     DEFERRED_COORDINATION);
    oldmsg := :System.Message_Level;
    /*
    ** Si NON différée, aller à détail & exécuter l'interrogation.
    */
    IF reldef = 'FALSE' THEN
       Go_Block(detail);
       Check_Package_Failure;
       :System.Message_Level := '5';
       Execute_Query;
       :System.Message_Level := oldmsg;
       /*
       ** Si Différée, marquer le bloc détail non coordonné
       */
    ELSE
       Set_Block_Property(detail, coordination_status,
                          NON_COORDINATED);
    END IF;
EXCEPTION
    WHEN Form_Trigger_Failure THEN
       :System.Message_Level := oldmsg;
    RAISE;
END Query_Master_Details;

Procédure CHECK_PACKAGE_FAILURE Cette procédure est appelée par les procédures CLEAR_ALL_MASTER_DETAILS et QUERY_MASTER_DETAILS. Elle vérifie si l'instruction précédente s'est exécutée correctement en consultant l'état de la variable d'erreur FORM_SUCCESS de Form Builder.

PROCEDURE Check_Package_Failure IS
BEGIN
    IF (NOT Form_Success) THEN
       RAISE Form_Trigger_Failure;
    END IF;
END;


Modification des fonctionnalités maître-détail par défaut

  Rubriques connexes

Dans certains cas, vous voudrez modifier ou développer les fonctionnalités maître-détail par défaut fournies par Form Builder. Par exemple, si votre application utilise des sources de données non ORACLE ou comporte de longues chaînes de relations demandant des fonctionnalités non standard, vous pourrez utiliser votre propre système de coordonnées de bloc.

Form Builder offre un certain nombre de déclencheurs et de sous-programmes intégrés utiles pour ce type d'opérations, dont certains sont énumérés ci-après. Pour une documentation complète sur ces déclencheurs et ces routines, reportez-vous au système d'aide en ligne de Form Builder.

Déclencheurs :

•	On-Clear-Details

•	On-Populate-Details

•	On-Check-Delete-Master

•	When-New-Record-Instance

•	When-New-Block-Instance

Sous-programmes intégrés :

•	GET_BLOCK_PROPERTY

•	SET_BLOCK_PROPERTY

•	GET_FORM_PROPERTY

•	GET_RELATION_PROPERTY

•	SET_RELATION_PROPERTY

Par exemple, vous pouvez utiliser ces sous-programmes intégrés de la manière suivante :

•	Utiliser GET_FORM_PROPERTY pour rechercher le nom du premier et du dernier blocs de l'application Forms (FIRST_BLOCK, LAST_BLOCK).

•	Utiliser GET_BLOCK_PROPERTY pour rechercher le COORDINATION_STATUS d'un bloc (COORDONNE ou NON_COORDONNE) et la première relation (FIRST_RELATION) d'un bloc, c'est-à-dire le nom de la première relation dans laquelle le bloc est maître.

•	Utiliser SET_BLOCK_PROPERTY pour définir dynamiquement les propriétés du bloc.

•	Utiliser GET_RELATION_PROPERTY pour rechercher les valeurs de propriété en cours pour une relation (MASTER_DELETES, DEFERRED_COORDINATION et AUTOQUERY), les noms des blocs maître et détail (MASTER_NAME, DETAIL_NAME) et le nom de la prochaine relation de l'application Forms (NEXT_MASTER_RELATION, NEXT_DETAIL_RELATION). Par exemple, pour attribuer le nom du bloc détail d'une relation à une variable locale, vous pouvez écrire :

  DECLARE
    bloc_maître    VARCHAR2;
  BEGIN
    bloc_maître := Get_Relation_Property('ma_relation',
                                           MASTER_BLOCK);
  END;

•	Utiliser SET_RELATION_PROPERTY pour définir dynamiquement les propriétés d'une relation. Par exemple, pour définir la propriété Supprimer comportement de l'enregistrement, vous pouvez appeler la procédure suivante :

  SET_RELATION_PROPERTY('ma_relation',
                        master_deletes,
                        deferred_coordination);


Définition de propriétés

  Rubriques connexes

Pour définir la valeur d'une propriété :

1	Sélectionnez les objets dont vous voulez définir les propriétés.

Vous pouvez sélectionner les objets dans l'Editeur de Form Builder, le Navigateur d'objet ou l'Editeur de menu. Lorsque vous sélectionnez un objet, la Palette de propriétés affiche les propriétés de cet objet. (Si la Palette de propriétés n'est pas affichée, sélectionnez Outils [image] Palette de propriétés.)

2	Dans la Palette de propriétés, sélectionnez la propriété que vous voulez définir.

Pour sélectionner des propriétés, cliquez sur celles-ci ou naviguez à l'aide des touches de défilement vers le haut ou vers le bas. Lorsqu'une propriété est sélectionnée, un champ de texte, une liste instantanée ou le bouton Suite... s'affiche à côté de la propriété.

3	Définissez la propriété sélectionnée à l'option voulue.


A propos de la définition de propriétés de sélections multiples

 Exemples   [image]  Rubriques connexes

Vous pouvez sélectionner simultanément plusieurs objets en cliquant avec la souris dans le Navigateur d'objet ou dans les éditeurs tout en maintenant la touche Ctrl enfoncée. Lorsque vous avez sélectionné plusieurs objets, le message "Sélection multiple" est affiché en haut de la Palette de propriétés, à la place du champ Nom.

La commande Intersection/Union de la barre d'outils de la Palette de propriétés détermine les propriétés qui sont affichées dans la liste des propriétés lorsque vous sélectionnez plusieurs objets. Alterner entre Intersection et Union change la liste de propriétés affichée dans la Palette de propriétés, mais est sans effet sur la définition d'une propriété.

Intersection Option par défaut. Seules les propriétés communes à tous les objets sélectionnés sont affichées.

Union Les propriétés de chaque objet sélectionné sont affichées.

Les propriétés communes à plusieurs objets d'une sélection multiple ne sont énumérées qu'une fois, et la définition de la propriété est affichée de la manière suivante :

•	Si la propriété a la même définition pour tous les objets sélectionnés qui ont cette propriété en commun, la définition commune est affichée.

•	Si la propriété est définie différemment pour les objets qui ont cette propriété en commun, la chaîne  "***** " est affichée.


Définition de propriétés de sélections multiples

  Rubriques connexes

Pour définir les propriétés de sélections multiples :

1	Dans le Navigateur d'objet ou les éditeurs, sélectionnez les objets dont vous voulez définir les propriétés en cliquant avec la souris tout en maintenant la touche Ctrl enfoncé. Les objets peuvent être de types différents et même se trouver dans des documents différents.

2	Dans la Palette de propriétés, définissez la commande Intersection/Union pour indiquer les propriétés que vous voulez voir.

3	Définissez les propriétés voulues.

Toute modification que vous apportez à une définition de propriété se répercute sur tous les objets de la sélection en cours auxquels s'applique cette propriété.


Définition de propriétés de sélections multiples - Exemples

Une application Forms comporte plusieurs éléments de texte, qui affichent chacun la date dans une fenêtre différente. Comme la propriété Type de données de paramètre de chaque élément est dans DATE, les dates sont affichées dans le format par défaut d'Oracle : JJ-MOI-AA.

Pour utiliser un autre format de date pour toute l'application, vous devez définir la propriété Masque de format pour chaque élément texte qui affiche des dates. Au lieu de définir la propriété Masque de format de chaque élément texte, sélectionnez tous les éléments du Navigateur d'objet, puis définissez une fois la propriété Masque de format pour changer le masque de format de chaque élément sélectionné.


Comparaison des propriétés de deux objets

  Rubriques connexes

Pour comparer les propriétés de deux objets :

1	Dans le Navigateur d'objet ou les éditeurs, sélectionnez le premier objet, afin que ses propriétés soient affichées dans la Palette de propriétés.

2	Dans la Palette de propriétés, cliquez sur le bouton Figer/Libérer pour désactiver la synchronisation et "figer" la Palette de propriétés.

3	Dans le Navigateur d'objet, cliquez deux fois sur l'icône du second objet tout en maintenant la touche Majuscules enfoncée.

Form Builder affiche une seconde Palette de propriétés. Si la seconde fenêtre est au-dessus de la première, faites-la glisser pour l'afficher à côté de la première.


A propos de la copie de propriétés d'un objet à un autre

  Rubriques connexes

Vous pouvez utiliser les commandes Copier propriétés et Coller propriétés pour copier les définitions de propriété d'un objet à un autre.

Les propriétés peuvent être copiées et collées dans le Navigateur d'objet, l'Editeur de Form Builder, l'Editeur de menu et la Palette de propriétés.

Copie de propriétés Vous pouvez copier dans le presse-papiers les définitions de propriété des objets sélectionnés.

Coller propriétés Vous pouvez coller les définitions de propriété se trouvant dans le presse-papiers sur les objets sélectionnés dans cette fenêtre. Les propriétés qui ne s'appliquent pas à la sélection en cours ne sont pas prises en compte.

Dans la plupart des cas, vous copierez les propriétés d'un objet dans un ou plusieurs objets de même type. Cependant, il est également possible de copier les propriétés d'un objet dans des objets d'un type différent. Dans ce cas, les propriétés qui ne s'appliquent pas à l'objet cible ne sont pas prises en compte.

Vous pouvez copier les définitions de propriété d'un objet dans une fenêtre, puis les coller dans un objet d'une autre fenêtre. Par exemple, vous pouvez sélectionner un bouton dans le Navigateur d'objet, cliquer sur le bouton Copier propriétés pour copier ses définitions de propriété, puis coller ces définitions dans un autre bouton, sélectionné dans l'Editeur de Form Builder.

Lorsque vous copiez les propriétés d'une sélection multiple, seules celles qui n'ont pas de valeurs conflictuelles sont copiées dans le presse-papiers. Par exemple, si vous copiez les propriétés de trois éléments texte sélectionnés dans le Navigateur d'objet, les définitions de Largeur et de Hauteur ne sont copiées que si les différents éléments texte ont la même taille.


Copie de propriétés d'un objet à un autre

  Rubriques connexes

Pour copier des propriétés :

1	Sélectionnez l'objet dont vous voulez copier les définitions de propriété.

2	Choisissez Edition [image] Copier propriétés.

3	Sélectionnez l'objet cible.

4	Choisissez Edition [image] Coller propriétés.


Définition de propriétés lors de l'exécution

  Rubriques connexes

De nombreuses propriétés d'objet peuvent être définies par programme lors de l'exécution. Par exemple, chaque objet de fenêtre a une propriété "Visible" qui peut être activée ou désactivée pour afficher ou masquer la fenêtre. Lors de l'exécution, vous pouvez appeler la procédure interne SET_WINDOW_PROPERTY de la façon suivante pour afficher ou masquer la fenêtre de manière dynamique :

Set_Window_Property('ma_fenêtre',VISIBLE, PROPERTY_ON);

Les procédures internes permettant de définir des propriétés d'objet lors de l'exécution sont les suivantes :

•	SET_BLOCK_PROPERTY

•	SET_CANVAS_PROPERTY

•	SET_FORM_PROPERTY

•	SET_ITEM_PROPERTY

•	SET_LOV_PROPERTY

•	SET_MENU_ITEM_PROPERTY

•	SET_PARAMETER_ATTR

•	SET_RADIO_BUTTON_PROPERTY

•	SET_RECORD_PROPERTY

•	SET_RELATION_PROPERTY

•	SET_VIEW_PROPERTY

•	SET_WINDOW_PROPERTY

La procédure interne SET_ITEM_PROPERTY permet de définir les propriétés d'un type quelconque d'élément, y compris les boutons, éléments texte, cases à cocher, groupes de boutons d'option et autres.

Remarque : Les éléments de groupes de boutons d'option comprennent différents boutons d'option. Utilisez SET_ITEM_PROPERTY pour définir les propriétés du groupe et SET_RADIO_BUTTON_PROPERTY pour définir celles des différents boutons du groupe.

A chaque procédure SET interne correspond une fonction GET qui vous permet de déterminer par programme la définition des propriétés d'un objet. L'exemple ci-après utilise GET_WINDOW_PROPERTY pour déterminer si une fenêtre est masquée (VISIBLE = FALSE). Si la fenêtre est masquée, la procédure SET_WINDOW_PROPERTY est appelée pour afficher la fenêtre.

If Get_Window_Property('ma_fenêtre',VISIBLE) = 'FALSE' THEN
   Set_Window_Property('ma_fenêtre',VISIBLE,PROPERTY_ON);

Pour savoir si une propriété peut être définie par programme, reportez-vous aux descriptions de propriétés de l'Aide en ligne.


Qu'est-ce qu'un élément son ?

  Rubriques connexes

Les éléments son permettent aux utilisateurs de lire et d'enregistrer des données son lorsqu'ils utilisent une application Form Builder. Il appartient aux développeurs de configurer des éléments son pour permettre aux utilisateurs de lire, d'enregistrer et de stocker des données dans une colonne de base de données ou dans le système de fichiers.

Pour créer un élément son afin d'enregistrer et de lire des données son dans une table de base de données, vous devez baser l'élément sur une colonne de type LONG RAW. Après quoi, Form Builder offre automatiquement toutes les fonctions d'enregistrement et de lecture de sons.

Remarque : Vous pouvez également créer un élément son qui enregistre et lit un son dans un fichier d'un système de fichiers.


A propos de l'enregistrement et de la lecture de données son

Une fois que vous avez créé un élément son basé sur une colonne de base de données de type LONG RAW, les utilisateurs peuvent lire et enregistrer des données son dans l'application Form Builder en cliquant sur les différents boutons de l'élément de contrôle de son, à condition d'avoir le logiciel et le matériel nécessaires (carte son, pilotes, enceintes, micros, etc.) pour lire et enregistrer des données son dans leur environnement natif.

Pour qu'il soit possible de lire et d'enregistrer des données son à partir d'une colonne de base de données de type LONG RAW, il faut que la colonne contienne déjà des données son ou puisse accepter des données son des utilisateurs de l'application (c'est-à-dire que les propriétés Insertion autorisée et Mise à jour autorisée soient activées). Lorsque vous créez un élément son basé sur une colonne de type LONG RAW de la base de données, Form Builder affiche automatiquement l'élément dans la présentation avec une commande d'élément son qui permet aux utilisateurs de lire des données son.

Problèmes de performances La transmission en réseau d'objets son volumineux peut entraîner une dégradation des performances. Si vous envisagez de stocker des données son dans la base de données, diminuez ces risques en activant la propriété Mettre à jour colonnes modifiées seulement pour le bloc de l'élément son. Vous augmentez ainsi les performances de votre application en évitant les aller-retour sur le réseau impliquant des enregistrements avec des éléments son non mis à jour.

Lecture et stockage de données son dans un fichier Form Builder comporte trois procédures internes qui permettent aux développeurs de lire et d'enregistrer des données son dans un fichier :

La documentation sur ces procédures internes explique comment lire et enregistrer des données son à partir d'un fichier du système de fichiers.

• PLAY_SOUND

• READ_SOUND_FILE

• WRITE_SOUND_FILE


A propos de la commande d'élément son

  Rubriques connexes

Lorsque vous créez un élément son, Form Builder l'affiche automatiquement dans la présentation avec [image], la commande d'élément son.

La commande d'élément son contient un certain nombre de composants qui sont tous facultatifs (à l'exception de Lire ou Enregistrer, dont l'un des deux doit toujours être affiché) :

•  [image] Lire : déclenche la lecture des données son à partir de la position du pointeur. (Cliquer sur Lire pendant la lecture arrête le pointeur à la position en cours. Pour poursuivre la lecture, appuyez à nouveau sur Lire. Si vous lisez un son jusqu'à la fin, puis cliquez de nouveau sur Lire, Form Builder fait automatiquement passer le pointeur à la position de départ avant de relancer la lecture du son).

•  [image] Enregistrer : déclenche l'enregistrement des données son à partir de la position du curseur. (Cliquer une seconde fois sur Enregistrer arrête l'enregistrement. Si le pointeur est au début ou au milieu d'un son lorsque vous cliquez sur Enregistrer, Form Builder remplace le son existant par les nouvelles données son que vous enregistrez, à partir de la position du pointeur.)

•  [image] Retour rapide : effectue un retour rapide des données son, à partir de la position du pointeur et jusqu'au début du son.

•  [image] Avance rapide : effectue une avance rapide des données son, à partir de la position du pointeur et jusqu'à la fin du son.

•  [image] Volume : affiche un curseur vertical coulissant qui permet de régler le volume de lecture et d'enregistrement. (Cliquez sur le curseur et faites-le glisser vers le haut pour augmenter le volume, vers le bas pour le diminuer.)

•  [image] Horloge : affiche trois modes d'information pour les données son. (Cliquez sur le texte de l'horloge pour alterner entre le temps total, le temps écoulé et le temps restant.)

•  [image] Règle : curseur horizontal coulissant qui indique la position du curseur dans les données son. (Faites-le glisser vers la gauche ou vers la droite pour repositionner le pointeur.)

Remarque : Pour afficher ou masquer individuellement chaque commande d'élément son (dans la présentation Form Builder et lors de la lecture), activez ou désactivez respectivement la propriété d'affichage de la commande. Notez toutefois que vous ne pouvez pas désactiver à la fois les propriétés Afficher bouton Lecture et Afficher bouton Enregistrement, car Form Builder afficherait alors par défaut le bouton Lire lors de l'exécution.


Création d'un élément son

  Etape suivante   [image]  Rubriques connexes

Pour créer un élément son :

1.	Dans le Navigateur d'objet, cliquez sur le noeud Eléments, puis sur le bouton Créer de la barre d'outils.

Ou, dans l'Editeur de présentation, cliquez sur [image] et faites glisser une zone sur le canevas à l'endroit où vous voulez que l'élément son apparaisse.

Form Builder crée un élément et lui donne un nom par défaut, par exemple ELEMENT3.

2.	Remplacez le nom de l'élément par celui de la colonne de type LONG RAW de la table de base de données sur laquelle est basé le bloc.

Remarque : Vous pouvez également utiliser l'assistant Bloc de données pour créer un élément basé sur une colonne de base de données de type LONG RAW.

3.	Cliquez deux fois sur l'icône objet de l'élément pour afficher la Palette de propriétés.

4.	Sous le noeud Général, définissez la propriété Type d'élément à Son.

5.	Sous le noeud Fonctionnel :

• Définissez la propriété Format son à AU, AIFF, AIFF_C ou WAVE (format des données son).

• Définissez la propriété Canaux audio à Mono (monophonie), Stéréo (stéréophonie) ou Automatique (valeur par défaut).

• Définissez la propriété Qualité son à Maximum, Elevée, Moyenne, Basse, Minimum ou Automatique (valeur par défaut).

6.	Sous le noeud Base de données :

• Activez la propriété Elément de base de données.

• Définissez la propriété Nom de colonne au nom de la colonne de base de données de type LONG RAW qui contient les données son.

7.	Sous le noeud Physique, définissez la propriété Canevas au nom du canevas dans lequel la commande d'élément son sera affichée.

Lorsque vous définissez le type d'un élément à Son et que vous le placez dans un canevas, Form Builder place automatiquement la commande d'élément son dans le canevas que vous avez indiqué.


Définition des propriétés de commande d'élément son

  Rubriques connexes

Pour définir les propriétés de commande d'élément son :

1.	Dans le Navigateur d'objet, sous les noeuds Blocs et Eléments, cliquez deux fois sur l'icône objet de l'élément son pour afficher la Palette de propriétés.

2.	Dans la Palette de propriétés, sous le noeud Physique, activez ou désactivez les propriétés de commande d'élément son. (Si vous activez une propriété, Form Builder affiche la commande d'élément son lors de la conception et à l'exécution.) Les propriétés sont les suivantes :

• Afficher bouton Avance rapide  (valeur par défaut = Non)

• Afficher bouton Lecture  (valeur par défaut = Oui)

• Afficher bouton Enregistrement  (valeur par défaut = Non)

• Afficher bouton Retour rapide  (valeur par défaut = Non)

• Afficher bouton Règle  (valeur par défaut = Oui)

• Afficher bouton Horloge  (valeur par défaut = Oui)

• Afficher bouton Réglage du volume  (valeur par défaut = Oui)


Manipulation d'éléments son par programme

  Rubriques connexes

Pour afficher et masquer par programme les boutons de commande d'élément son, utilisez les procédures internes Form Builder GET_ITEM_PROPERTY et SET_ITEM_PROPERTY pour extraire et définir des propriétés de commande d'élément son (par exemple, Show_Rewind_Button).

Remarque : N'oubliez pas que vous ne pouvez pas sélectionner Lire si Enregistrer est déjà masqué. Lors de l'exécution, Form Builder affiche toujours par défaut soit le bouton Lire, soit le bouton Enregistrer. Vous pouvez masquer l'un de ces boutons, mais non les deux.


A propos des normes

  Rubriques connexes

Vous pouvez utiliser Forms Developer pour définir et distribuer des normes d'application.

Les normes sont une garantie de qualité et de cohérence d'aspect au sein d'une application. Elles permettent également d'améliorer la productivité d'une équipe de développeurs. Les développeurs travaillant sur une partie d'une application peuvent créer et tester des objets facilement réutilisables dans une autre partie de l'application, avec peu - voire pas - de modifications. Pour réutiliser un objet standard, faites-le glisser de la Bibliothèque d'objets jusqu'au module de votre choix.

Lorsque vous créez une norme, vous exécutez les étapes suivantes :

1	Définition de normes.

2	Dans Form Builder, création d'objets conformes aux normes.

3	Stockage d'objets standards dans la Bibliothèque d'objets

4	Transmission des normes aux développeurs.


Conseils relatifs à la création de normes

  Rubriques connexes

Lorsque vous créez des normes, gardez à l'esprit les conseils suivants :

•	Avant de créer vos propres normes, envisagez d'utiliser les normes d'interface utilisateur de Forms Developer.

•	Utilisez la Bibliothèque d'objets comme mécanisme principal de création et de réutilisation d'objets normés.

•	Faites attention avant de supprimer des objets source : la suppression d'un objet source rompt le lien avec les objets instance.


Définition des normes

  Rubriques connexes

L'une des approches les plus classiques du développement des applications consiste à commencer par créer des normes, puis à les affiner en fonction des efforts de création de prototypes et des tests de possibilité d'utilisation. Comme chaque entreprise a ses besoins propres, les meilleures normes de votre entreprise vous seront également propres.

Envisagez de développer trois types de normes :

•	Normes de codification, comprenant les normes d'indication de noms de tous les fichiers et de tous les objets.

•	Normes d'interface graphique (GUI), y compris celles concernant la présentation des écrans (couleurs, espacement et présentation) et celles des objets d'interface graphique spécifiques (boutons et cases à cocher, par exemple).

•	Normes d'utilisation, comprenant les normes de présentation qui garantissent que différentes parties de l'application réagissent de la même manière aux entrées des utilisateurs.

•	Les références propres aux plates-formes, que vous pouvez consulter pour définir des normes d'interface utilisateur, sont les suivantes :

•	Microsoft Windows : The Windows Interface: An Application Design Guide

•	Motif : Motif Style Guide

•	Macintosh : Macintosh Human Interface Guidelines


Création d'un objet réutilisable

  Etape suivante	    Rubriques connexes

Pour créer un objet réutilisable :

1	Choisissez Outils [image] Bibliothèque objet.

2	Dans le Navigateur d'objet, faites glisser l'objet de votre choix dans la Bibliothèque d'objets.

Form Builder crée une nouvelle version de l'objet et la stocke dans la Bibliothèque d'objets.


Réutilisation d'un objet dans la Bibliothèque d'objets

  Rubriques connexes

Pour réutiliser un objet dans la Bibliothèque d'objets :

1	Dans la Bibliothèque d'objets, cliquez sur l'objet de votre choix.

2	Faites glisser l'objet sur le module et le noeud de votre choix.

Form Builder affiche la boîte de dialogue Copier/Sous-classer.

3	Cliquez sur Sous-classer.

Form Builder crée une version référencée de l'objet.


Modification d'un objet dans la Bibliothèque d'objets

  Rubriques connexes

Pour modifier un objet dans la Bibliothèque d'objets :

1	Dans la Bibliothèque d'objets, appuyez sur la touche Ctrl et faites glisser l'objet de votre choix jusqu'au noeud approprié, dans le Navigateur d'objet.

Form Builder affiche la boîte de dialogue Copier/Sous-classer.

2	Cliquez sur Copier. Cette opération crée une copie modifiable de l'objet.

3	Modifiez l'objet.

4	Appuyez sur la touche Majuscules et faites revenir l'objet dans la Bibliothèque d'objets.

5	Dans la boîte de dialogue, cliquez sur Oui pour remplacer l'objet existant par l'objet modifié.


Ajout d'un commentaire à un objet, dans la Bibliothèque d'objets

Pour ajouter un commentaire à un objet, dans la Bibliothèque d'objets :

1	Dans la Bibliothèque d'objets, cliquez sur l'objet de votre choix.

2	Cliquez sur le bouton Editer commentaire de la barre d'outils.

3	Entrez le texte dans la boîte de dialogue Commentaires.


A propos des SmartClass

Une SmartClass est un objet spécial que vous créez dans la Bibliothèque d'objets. Lorsque vous déclarez qu'un objet est de type SmartClass, vous pouvez créer de nouveaux objets fondés sur la SmartClass en faisant glisser la SmartClass de votre choix dans le Navigateur d'objet, ou appliquer la SmartClass à un objet existant en choisissant SmartClass dans le menu instantané. Lorsque vous fondez un objet sur une SmartClass, cet objet fait partie d'une sous-classe et hérite ses fonctions et son aspect de la SmartClass.

Dans les environnements de développement mono et multi développeurs, la SmartClass offre plusieurs avantages :

•	création de sous-classe,

•	réutilisation et développement rapides,

•	possibilité de transmission.

En règle générale, une SmartClass est conforme aux normes d'interface utilisateur que vous définissez pour un projet. Pour transmettre vos normes, stockez vos objets standard dans un document de Bibliothèque d'objets, puis distribuez les Bibliothèques d'objets à votre équipe de développement.

Par exemple, vous pouvez stocker un bloc standard (EMP) et un encadrement dans la Bibliothèque d'objets pour créer un bloc et une présentation standard. Chaque fois que vous transférez le bloc à une application Forms, les éléments du bloc EMP sont disposés de manière cohérente, avec la même représentation visuelle.

La différence entre les SmartClass et les autres objets de la Bibliothèque d'objets est que chaque objet SmartClass est toujours un objet appartenant à une sous-classe.

Par défaut, lorsque vous faites glisser un objet (qui n'est pas une SmartClass) dans une application Forms, l'objet créé est une copie et non un objet d'une sous-classe.

Les autres objets de la Bibliothèque d'objets peuvent être utilisés uniquement pour créer de nouvelles instances d'objets, mais jamais pour modifier un objet existant. Par contre, les SmartClass peuvent être appliquées aux objets existants.


Création d'une SmartClass

  Etape suivante	    Rubriques connexes

Pour créer une SmartClass :

1	Choisissez Outils [image] Bibliothèque objet pour afficher la Bibliothèque d'objets.

2	Dans la Bibliothèque d'objets, cliquez sur l'objet de votre choix.

3	Choisissez Objet [image] SmartClass.


Création d'un objet fondé sur une SmartClass

  Rubriques connexes

Pour créer un objet fondé sur une SmartClass :

1	Dans la Bibliothèque d'objets, cliquez sur la SmartClass de votre choix.

2	Faites glisser la SmartClass sur le module et le noeud de votre choix.


Application d'une SmartClass à un objet existant

Pour appliquer une SmartClass à un objet existant :

1	Dans le Navigateur d'objet, cliquez sur l'objet de votre choix.

2	Cliquez sur le bouton de droite de la souris pour afficher le menu instantané.


Modification d'une SmartClass

  Rubriques connexes

Pour modifier une SmartClass :

1	Dans la Bibliothèque d'objets, faites glisser l'objet de votre choix sur le noeud approprié, dans le Navigateur d'objet. Cette opération crée une copie modifiable de l'objet dans la bibliothèque d'objets.

2	Modifiez l'objet.

3	Faites glisser l'objet pour le faire revenir dans la bibliothèque d'objets, c'est-à-dire de l'application Forms à la bibliothèque d'objets.

4	Dans la boîte de dialogue, cliquez sur Oui pour remplacer l'objet existant par l'objet modifié.

Remarque : Les modifications apportées à la SmartClass père sont automatiquement transmises à chaque instance fils de la SmartClass.


Distribution de normes

Pour distribuer des normes :

Distribuez vos normes comme un module de bibliothèque d'objets (.OLB), un module d'application Forms (.FMB) ou un module de menu (.MMB).

Conseil : La distribution de vos normes dans un module de bibliothèque d'objets (.OLB) est la meilleure solution :

•	Les modules de Bibliothèque d'objets sont automatiquement rouverts au lancement de Form Builder - ce qui vous permet d'accéder immédiatement aux objets réutilisables.

•	Contrairement aux modules d'application Forms et de menu, les bibliothèques d'objets offrent des SmartClass.


A propos de la réutilisation

  Rubriques connexes

Form Builder comporte de nombreuses fonctions qui simplifient le développement de projets grâce à la possibilité de réutiliser des objets, ce qui garantit la cohérence de vos applications. Vous pouvez ainsi réutiliser un précédent travail effectué soit par vous soit par d'autres développeurs.

Réutilisation d'objets

Pour réutiliser un objet, vous avez le choix entre plusieurs possibilités. Vous pouvez :

•	Copier un objet

Copiez un objet lorsque vous voulez créer une nouvelle instance, distincte de l'objet.

•	Sous-classer un objet

Sous-classez un objet lorsque vous voulez créer un nouvel objet conservant un lien avec l'objet source. Une fois que vous avez créé un objet sous-classé, toute modification apportée à l'objet source est transmise à l'objet sous-classé lorsque vous ouvrez ou régénérez le module contenant l'objet sous-classé. Si les deux modules sont ouverts, l'application des modifications est immédiate.

•	Créer un attribut visuel

Créez un attribut visuel lorsque vous voulez créer une norme pour des propriétés de motif, de couleur et de police pour les objets de menu et d'applications Forms qui apparaissent dans l'interface de votre application.

•	Créer un groupe d'objets

Créez un groupe d'objets lorsque vous voulez regrouper des objets en blocs de plus haut niveau, qui peuvent être utilisés dans d'autres parties d'une application et dans des projets de développement ultérieur.

•	Créer une classe de propriétés

Créez une classe de propriétés lorsque vous voulez définir un père de sous-classement universel.

•	Créer une application Forms modèle

Créez une application Forms modèle lorsque vous voulez créer un point de départ par défaut qui sera utilisé par les membres de l'équipe de développement.

Les modèles comprennent généralement des objets génériques (texte standard, barres d'outils, unités de programme, ...).


A propos de la copie d'objets

  Rubriques connexes

Une des façons les plus simples de réutiliser un objet consiste à le copier.

Lorsque vous copiez un objet, vous créez une nouvelle instance, distincte de l'objet, et les objets qui appartiennent à l'objet copié sont toujours copiés automatiquement.

Par exemple, lorsque vous copiez un bloc, le nouveau bloc comprend les éléments appartenant au bloc et les déclencheurs éventuellement attachés au bloc ou à ses éléments.

Remarque :  Lorsque vous copiez un objet dans un autre module, Form Builder ne convertit pas automatiquement les coordonnées de taille et de position si le module cible utilise un système de coordonnées différent du modèle source.


Copie d'un objet

  Rubriques connexes

Pour copier un objet :

1	Dans le Navigateur d'objet, cliquez sur l'objet de votre choix.

2	Appuyez sur la touche Ctrl et faites glisser l'objet à l'emplacement voulu.

Form Builder affiche la boîte de dialogue Copy/Subclass dialog.

3	Cliquez sur Copier.


A propos des sous-classes

  Rubriques connexes

Lorsque vous sous-classez un objet, vous créez un objet qui hérite les fonctionnalités et l'aspect d'un autre objet.

Le sous-classement d'un objet équivaut à copier un objet, mais l'objet sous-classé résultant conserve un lien avec son objet source. Un objet sous-classé hérite automatiquement les modifications apportées à l'objet source lors de l'ouverture ou de la récupération du module qui contient l'objet sous-classé, à moins que les deux modules ne soient ouverts. Dans ce cas, l'héritage des modifications est immédiat.

Le sous-classement vous permet :

•	de créer une sous-classe indépendante d'un objet quelconque,

•	de répercuter automatiquement sur chaque objet sous-classé les modifications apportées à l'objet source,

•	de remplacer les propriétés et la structure d'un objet sous-classé.

Le sous-classement, utilisé avec la Bibliothèque d'objets, peut constituer une méthode puissante de définition et d'application de caractéristiques de présentation. Tout objet stocké dans la bibliothèque d'objets peut être sous-classé dans des modules d'application Forms et de menu pour créer des instances indépendantes de la classe père.


Conseils pour le sous-classement d'objets

    Rubriques connexes

Lorsque vous sous-classez des objets, gardez à l'esprit les conseils suivants :

•	Lorsque vous sous-classez un objet, les objets appartenant à l'objet source sont également sous-classés, et non les objets associés à l'objet source.

Par exemple, lorsque vous sous-classez un bloc, les étiquettes de texte graphique des éléments du bloc ne sont pas incluses. Le texte graphique appartient au canevas sur lequel il apparaît. Pour sous-classer un texte graphique, vous devez sous-classer le canevas correspondant.

•	Lorsque vous sous-classez un objet d'un module à l'autre, le module source et le module cible doivent être ouverts et le module source doit déjà avoir été enregistré, soit dans le système de fichiers, soit dans la base de données.

•	Réfléchissez bien avant de supprimer des objets source : la suppression d'un objet source rompt le lien avec les éventuels objets sous-classés.

•	Faites très attention lorsque vous modifiez le nom d'un objet source.

Vous risquez d'interférer avec les fonctionnalités de l'application lorsque vous modifiez le nom d'un élément référencé dans un code d'unité de programme ou un déclencheur, ou qui est lié à une colonne de base de données.

•	Soyez prudent lorsque vous remplacez des valeurs complexes (éléments de liste, par exemple).

•	La modification d'une unité de programme sous-classés implique la recompilation des unités de programme sous-classées.

•	Vous devez utiliser la Palette de propriétés pour modifier le code sous-classé. La modification d'un code sous-classé, dans l'Editeur PL/SQL, rompt les liens avec l'objet source.


Sous-classement d'un objet

  Rubriques connexes

Pour sous-classer un objet :

1	Dans le Navigateur d'objet ou la Bibliothèque d'objets, cliquez sur l'objet souhaité, puis appuyez sur la touche Ctrl et faites glisser l'objet à l'emplacement de votre choix.

Form Builder affiche la boîte de dialogue Copier/Sous-classer dialog.

2	Cliquez sur Sous-classer.

Form Builder crée un nouvel objet sous-classé. Si le nom de l'objet sous-classé est en conflit avec celui d'un objet existant, Form Builder attribue un nouveau nom à l'objet sous-classé. Dans le Navigateur d'objet, un objet sous-classé est affiché avec une icône flèche à la suite de son nom pour indiquer qu'il découle d'un autre objet.


Modification d'un objet source

  Rubriques connexes

Pour modifier un objet source :

1	Ouvrez le module source (.FMB ou .MMB), s'il n'est pas déjà ouvert.

2	Modifiez l'objet source.

Form Builder répercute automatiquement sur chaque objet sous-classé les modifications apportées à l'objet source lors de la prochaine ouverture du module contenant l'objet sous-classé.


A propos de la modification d'objets sous-classés

  Rubriques connexes

Pour modifier un objet sous-classé, vous pouvez :

•	définir les propriétés de l'objet, en remplaçant ou en héritant les propriétés comme vous le souhaitez ;

Utilisez la Palette de propriétés pour visualiser rapidement les propriétés d'un objet sous-classé. La Palette de propriétés affiche une flèche en regard des propriétés sous-classées, un petit rond en regard des valeurs par défaut, un carré en regard des valeurs autres que des valeurs par défaut et une flèche/coche en regard des remplacements locaux.

•	Modifier le code sous-classé.

Utilisez la Palette de propriétés pour modifier des unités de programme et des déclencheurs sous-classés.

Remarque : N'utilisez pas l'Editeur PL/SQL pour modifier un code sous-classé, ce qui rompt le lien avec l'objet source.


Modification d'un objet sous-classé

  Rubriques connexes

Pour modifier un objet sous-classé :

1	Dans le Navigateur d'objet, cliquez sur l'objet de votre choix.

2	Choisissez Outils [image] Palette de propriétés.

3	Modifiez l'objet.


Retour à la valeur héritée d'une propriété

Pour faire revenir une propriété à sa valeur héritée :

1	Dans la Palette de propriétés, cliquez sur la propriété de votre choix.

2	Cliquez sur le bouton Hériter, dans la barre d'outils de la Palette de propriétés.

La propriété hérite la définition de la propriété correspondante, dans l'objet source.

Remarque :  La commande Hériter de la barre d'outils de la Palette de propriétés est la seule façon de convertir une propriété variante en propriété héritée. La simple définition d'une propriété variante à la même valeur que la propriété de la classe ne crée pas de propriété héritée, mais crée une propriété variante qui se trouve être définie à la même valeur que la propriété de la classe. Si vous mettez ultérieurement à jour la définition de la propriété dans la classe, la propriété reste variante et n'hérite donc pas la modification.


A propos des informations sur les sous-classes

  Rubriques connexes

Pendant la durée de vie d'une application, vous devrez parfois mettre à jour des informations sur la source d'un objet sous-classé.

Par exemple, si le nom de l'objet source a changé, Form Builder ne pourra pas localiser l'objet lorsque vous générerez un module qui y fait référence. De même, le transfert d'un module source du système de fichiers à la base de données invalide toutes références à ce module.

Vous pouvez mettre à jour les informations sur la source d'un objet sous-classé en définissant la propriété Informations de sous-classe.

La définition d'un objet sous-classé comprend des informations sur l'objet source dont il dépend, et notamment le nom de l'objet source, le nom du module source et l'emplacement de stockage (système de fichiers ou base de données).

Remarque :  Faites très attention lorsque vous modifiez les informations de sous-classe d'un objet. Si vous vous trompez lorsque vous entrez le nom ou l'emplacement d'un objet source, les propriétés héritées de l'objet reprendront les valeurs par défaut de ce type d'objet.


Mise à jour des informations de sous-classe d'un objet

  Rubriques connexes

Pour mettre à jour les informations de sous-classe d'un objet :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'objet sous-classé pour afficher la Palette de propriétés.

2	Sous le noeud Général, cliquez deux fois sur la propriété Informations de sous-classe et définissez les attributs de la boîte de dialogue Informations de sous-classe nécessaires :

Accès :  Emplacement du module source (Fichier ou Base de données).

Type :  Type de module source (Application Forms ou Menu).

Module :  Nom du module source qui contient l'objet source de l'objet sous-classé.

Nom d'objet :  Nom de l'objet source.


A propos des Classes de propriétés

  Rubriques connexes

Une classe de propriétés est un objet nommé qui contient une liste de propriétés et leurs définitions. Une fois que vous avez créé une classe de propriétés, vous pouvez fonder d'autres objets sur elle. Un objet fondé sur une classe de propriétés peut hériter la définition de toute propriété de la classe qui fait sens pour cet objet.

L'héritage de Classes de propriétés est une instance de sous-classement. Sur le plan conceptuel, vous pouvez considérer une classe de propriétés comme un père de sous-classement universel.

Une classe de propriétés peut contenir un nombre quelconque de propriétés, et les propriétés d'une classe peuvent s'appliquer à différents types d'objets. Par exemple, une classe de propriétés peut contenir des propriétés communes à tous les types, dont certaines ne s'appliquent qu'à des éléments texte et d'autres qu'à des cases à cocher.

Lorsque vous fondez un objet sur une classe de propriétés, vous êtes totalement maître des propriété que l'objet doit hériter de cette classe et de celles qui doivent être remplacées localement.

Les Classes de propriétés sont des objets distincts et, de ce fait, peuvent être copiées d'un module à l'autre. Plus important encore, les Classes de propriétés peuvent être divisées en sous-classes dans un nombre quelconque de modules.


Conseils relatifs à la création de Classes de propriétés

  Rubriques connexes

Lorsque vous utilisez des Classes de propriétés, gardez en mémoire les conseils suivants :

•	Vous pouvez définir des Classes de propriétés dans des modules de menus et d'applications Forms.

•	Après avoir créé une classe de propriétés, vous pouvez y ajouter des propriétés ou en retirer, soit une à une, soit à l'aide de la commande Copier/Coller des propriétés.

Dans certains cas, vous voudrez supprimer certaines propriétés pour que la définition de classe ne contienne que les propriétés dont hériteront les objets que vous fondez sur la classe.

Par exemple, si vous créez une classe de propriétés à partir de la définition d'un élément texte existant, afin de pouvoir appliquer les mêmes caractéristiques de police et de hauteur à d'autres éléments texte, la nouvelle classe de propriétés contiendra alors aussi les propriétés de Position X et de Position Y. Comme ces propriétés définissent des coordonnées d'affichage qui devront presque toujours être remplacées pour chaque élément texte que vous fondez sur la classe, vous souhaiterez peut-être les supprimer de la définition de la classe.

•	Lorsque vous fondez un objet sur une classe de propriétés, les propriétés de cet objet sont mises à jour de la manière suivante :

•	celles pour lesquelles il existe une propriété correspondante dans la classe de propriétés sont mises à jour de manière à correspondre à la définition de la classe de propriétés,

•	celles pour lesquelles il n'existe pas de propriété correspondante dans la classe de propriétés restent inchangées.

•	Lorsque vous supprimez des propriétés d'une classe de propriétés ou que vous modifiez un objet pour qu'il ne soit plus fondé sur une classe de propriétés, les propriétés de la classe dont l'objet héritait reprennent leurs définitions par défaut.

•	Les Classes de propriétés ne peuvent hériter que d'autres Classes de propriétés.

•	Les Classes de propriétés sont semblables à des attributs visuels nommés. Cependant, notez quelques différences importantes :

•	Les attributs visuels nommés ne définissent que les attributs de police, de couleur et de motif ; les Classes de propriétés peuvent contenir ces propriétés, mais peuvent aussi en contenir d'autres.

•	Vous pouvez changer l'aspect des objets au stade de l'exécution en modifiant par programmation l'attribut visuel nommé; l'attribution des Classes de propriétés ne peut pas être modifiée par programme.

•	Lorsqu'un objet hérite d'une classe de propriétés et d'un attribut visuel nommé, les définitions de l'attribut visuel nommé ont priorité et les éventuelles propriétés d'attribut visuel de la classe ne sont pas prises en compte.


A propos de la modification de Classes de propriétés

  Rubriques connexes

Lorsqu'un objet est fondé sur une classe de propriétés, pour modifier la définition de l'objet ou sa classe de propriétés, vous pouvez :

•	définir les propriétés de l'objet, en remplaçant ou en héritant les propriétés comme vous le souhaitez ;

•	ajouter des propriétés à la classe de propriétés ou en supprimer ;

•	fonder l'objet sur une classe de propriétés différente ;

•	dissocier l'objet de la classe de propriétés en définissant à <Null>la propriété Informations de sous-classe.

Lorsque des propriétés héritent leur valeur d'une classe de propriétés, leur nom est affiché précédé d'un symbole de flèche. Lorsqu'un objet est fondé sur une classe, vous pouvez remplacer la définition d'une propriété héritée pour que la propriété devienne variante. Les propriétés variantes et celles auxquelles ne correspond aucune propriété dans la classe sont affichées normalement, sans symbole de flèche.


Création d'une Classe de propriétés

  Etape suivante	    Rubriques connexes

Pour créer une Classe de propriétés dans le Navigateur d'objet :

1	Dans le Navigateur d'objet, cliquez sur le noeud Classes de propriétés.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un objet de classe de propriétés ayant un nom par défaut est inséré sous le nœud.


Visualisation des propriétés d'une classe de propriétés

  Rubriques connexes

Pour visualiser la définition d'une classe de propriétés :

1	Dans le Navigateur d'objet, cliquez sur le noeud Classes de propriétés.

2	Cliquez deux fois sur l'icône de l'objet de classe de propriétés dont vous voulez afficher les propriétés.


Ajout d'une propriété à une classe de propriétés

Pour ajouter une propriété à une classe de propriétés :

1	Dans le Navigateur d'objet, cliquez sur le noeud Classes de propriétés.

2	Cliquez deux fois sur l'icône objet de classe de propriétés pour afficher la Palette de propriétés.

3	Cliquez sur le bouton Ajouter propriété de la barre d'outils de la Palette de propriétés.

4	Dans la boîte de dialogue Ajouter propriété :

Cliquez sur la propriété que vous voulez ajouter à la classe de propriétés.

Cliquez sur OK.

5	Dans la Palette de propriétés, définissez la nouvelle propriété.

Pour copier des propriétés dans une classe de propriétés :

Utilisez la commande Copier propriétés pour copier les propriétés d'objets existants, puis la commande Coller propriétés pour coller ces propriétés et leurs définitions dans la classe de propriétés.


Modification d'une classe de propriétés

  Rubriques connexes

Pour modifier une classe de propriétés :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet de la classe de propriétés de votre choix.

2	Dans la Palette de propriétés, modifiez les propriétés de votre choix.


Suppression d'une propriété d'une classe de propriétés

  Rubriques connexes

Pour supprimer une propriété d'une classe de propriétés :

1	Dans le Navigateur d'objet, cliquez sur le noeud Classes de propriétés.

2	Cliquez deux fois sur l'icône objet de la classe de propriétés de votre choix.

3	Dans la Palette de propriétés, cliquez sur la propriété que vous désirez supprimer pour la sélectionner.

4	Cliquez sur le bouton Supprimer propriété dans la barre d'outils de la Palette de propriétés.


Fondation d'un objet sur une classe de propriétés

  Rubriques connexes

Pour fonder un objet sur une classe de propriétés :

1	Dans le Navigateur d'objet, cliquez sur l'objet de votre choix.

2	Choisissez Outils [image] Palette de propriétés.

3	Sous le noeud Général :

•	Cliquez deux fois sur la propriété Informations de sous-classe.

•	Dans la boîte de dialogue Informations de sous-classe, cliquez sur Classe de propriétés.

•	Dans le champ Nom de classe de propriété, sélectionnez la classe de propriétés de votre choix.


Modification d'un objet fondé sur une classe de propriétés

  Rubriques connexes

Pour modifier un objet fondé sur une classe de propriétés :

1	Dans le Navigateur d'objet, cliquez sur l'objet de votre choix.

2	Modifiez l'objet.

Lorsque vous modifiez la définition d'une propriété héritée, la flèche qui précède le nom de la propriété est cochée pour indiquer que la propriété n'hérite plus sa valeur de la classe de propriétés sous-jacente.


A propos de la définition de déclencheurs dans les Classes de propriétés

  Rubriques connexes

Vous pouvez définir un déclencheur dans une classe de propriétés lorsque vous voulez qu'une application Forms, un bloc ou un élément que vous fondez sur la classe hérite le déclencheur. Lorsqu'un objet fondé sur une classe de propriétés hérite un déclencheur, il active le déclencheur en réponse à l'événement de déclenchement, comme si vous aviez attaché le déclencheur directement à l'objet.

Le nouveau déclencheur apparaît sous le noeud Déclencheurs de la classe de propriétés.

Une fois que vous avez défini un déclencheur dans une classe de propriétés, les applications Forms, les blocs ou les éléments que vous fondez sur la classe héritent le déclencheur. Par exemple, si vous définissez un déclencheur When-Button-Pressed dans une classe de propriétés, toute application Forms, tout bloc ou tout élément de type bouton que vous fondez sur la classe de propriétés hérite le déclencheur When-Button-Pressed. A l'exécution, ces objets se comportent exactement comme si vous aviez attaché le déclencheur When-Button-Pressed directement à chacun d'entre eux.

Vous pouvez remplacer l'héritage de déclencheur de classe de propriétés en attachant un déclencheur de même type directement à l'objet qui hérite un déclencheur. Cela étant, lorsque vous attachez un déclencheur When-Button-Pressed à un bouton qui hérite déjà un déclencheur When-Button-Pressed de sa classe de propriétés, le déclencheur attaché au bouton remplace le déclencheur que le bouton hérite de la classe.

Lorsque vous définissez un déclencheur dans une classe de propriétés, les applications Forms, les blocs et les éléments que vous fondez sur la classe héritent le déclencheur uniquement s'il est valide pour ce type d'objet. Par exemple, si vous fondez un élément texte sur une classe qui contient un déclencheur When-Button-Pressed, le déclencheur n'est pas pris en compte car les déclencheurs When-Button-Pressed ne sont valides que pour des boutons. De même, une case à cocher n'hérite pas un déclencheur When-Timer-Expired, car un déclencheur When-Timer-Expired n'est valide que pour les applications Forms, et non pour les blocs ou les éléments.

Remarque : Lorsque vous définissez un déclencheur dans une classe de propriétés, il apparaît dans le Navigateur d'objet sous le noeud Déclencheurs de la classe, mais non sous le noeud Déclencheurs des objets fondés sur la classe.


Définition d'un déclencheur dans une classe de propriétés

Pour définir un déclencheur dans une classe de propriétés :

1	Dans le Navigateur d'objet, cliquez sur le noeud Déclencheurs, dans la classe de propriétés.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Dans la boîte de dialogue, sélectionnez un déclencheur de la liste de valeurs.

L'éditeur PL/SQL apparaît et affiche le déclencheur que vous avez sélectionné.

4	Entrez et compilez le code de déclencheur de votre choix, puis choisissez Fermer pour quitter l'éditeur.


A propos des attributs visuels

  Rubriques connexes

Les attributs visuels sont les propriétés de police, de couleur et de motif que vous définissez pour les objets d'applications Forms et de menus qui apparaissent dans l'interface de votre application. Les attributs visuels peuvent comporter les propriétés suivantes :

•	propriétés de police : Nom de police, Taille de police, Style de police, Largeur de police et Graisse de police ;

•	propriétés de couleur et de motif : Couleur de premier plan, Couleur d'arrière-plan , Motif de remplissage, Attribut logique Charmode, Blanc sur Noir.

Chaque objet d'interface a une propriété Groupe d'attributs visuels qui détermine comment sont dérivées les définitions des attributs visuels de l'objet (Taille de police, Couleur de premier plan, etc.). La propriété Groupe d'attributs visuels peut être définie à Par défaut, à NULL ou au nom d'un attribut visuel nommé, défini dans le même module.

Pour définir les attributs visuels des objets, vous pouvez :

•	dans la Palette de propriétés, définir la propriété Groupe d'attributs visuels de la manière voulue, puis les différents attributs (Nom de police, Couleur de premier plan, etc.) ;

•	dans l'Editeur de présentation, sélectionner un élément ou un canevas, puis choisir les attributs de police, de couleur et de motif dans la boîte de dialogue Police et dans les palettes Couleur de remplissage et Couleur de texte ;

•	définir un objet d'attribut visuel nommé avec les définitions de police, de couleur et de motif de votre choix, puis l'appliquer à un ou plusieurs objets du même module. Vous pouvez modifier par programme la définition des attributs visuels d'un objet pour modifier la police, la couleur et le motif de l'objet à l'exécution ;

•	sous-classer un attribut visuel qui comprend des propriétés d'attributs visuels, puis fonder sur lui les objets qui héritent ces propriétés ;

•	créer une classe de propriétés qui comprend des propriétés d'attributs visuels, puis fonder sur elle les objets qui héritent ces propriétés.


A propos des attributs visuels par défaut

Lorsque vous définissez la propriété Groupe d'attributs visuels par défaut, vous indiquez que l'objet doit être affiché avec les définitions de couleur, de motif et de police par défaut. Dans ce cas, les définitions des différents attributs reflètent les valeurs par défaut du système. Les définitions réelles sont déterminées par une combinaison de facteurs, et notamment par le type d'objet, le fichier de ressources utilisé et le gestionnaire de fenêtres


A propos des attributs visuels nommés

  Rubriques connexes

Lorsque vous définissez la propriété Groupe d'attributs visuels à un attribut visuel nommé, défini dans le même module, vous indiquez que l'objet doit utiliser les définitions d'attributs fournies pour l'attribut visuel nommé. Un attribut visuel nommé est un objet distinct, dans un module de menu ou d'application Forms, qui définit un ensemble de propriétés d'attribut visuel. Une fois que vous avez créé un attribut visuel nommé, vous pouvez l'appliquer à tout objet du même module, comme les styles dans un traitement de texte.


Conseils concernant la création d'attributs visuels

  Rubriques connexes

Lorsque vous utilisez des attributs visuels, gardez à l'esprit les conseils suivants :

•	Lorsque vous appliquez un attribut visuel nommé à un objet, seuls les attributs qui font sens pour cet objet entrent en vigueur.

•	Si vous envisagez de porter votre application sur plusieurs plates-formes, vous auriez intérêt à utiliser des définitions d'attributs visuels nommés.


Création d'un attribut visuel nommé

  Etape suivante	    Rubriques connexes

Pour créer un attribut visuel nommé :

1	Dans le Navigateur d'objet, cliquez sur le noeud Attributs visuels.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

Form Builder insère un nouvel attribut visuel nommé.

3	Dans la Palette de propriétés, définissez comme vous le souhaitez les attributs de police, de couleur et de motif de l'attribut visuel nommé.


Fondation d'un objet sur un attribut visuel

Pour fonder un objet sur un attribut visuel :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'objet de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Attributs visuels, affectez à la propriété Groupe d'attributs visuels le nom d'un attribut visuel nommé.


Modification d'un attribut visuel

Pour modifier un attribut visuel :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet d'attributs des attributs visuels de votre choix pour afficher la Palette de propriétés.

2	Sous le noeud Attributs visuels, modifiez les propriétés désirées.


A propos des groupes d'objets

  Rubriques connexes

Un groupe d'objets est un ensemble d'objets connexes que vous voulez pouvoir copier ou sous-classer dans un autre module.

Les groupes d'objets permettent de réunir des objets dans des blocs de construction de niveau supérieur, qui peuvent être utilisés dans d'autres parties d'une application et dans des projets de développement ultérieurs.

Par exemple, vous pouvez créer un gestionnaire de rendez-vous dans une application Forms, puis choisir de l'utiliser à partir d'autres applications Forms de vos applications. Le gestionnaire sera probablement fondé sur plusieurs types d'objet, et notamment une fenêtre et un canevas, des blocs et des éléments qui affichent des dates et des rendez-vous, ainsi que des déclencheurs qui contiennent des logiques de planification et d'autres fonctionnalités. Si vous regroupez ces objets en un groupe, vous pourrez alors le copier en une seule opération dans autant d'applications Forms que vous le désirerez.

Vous pouvez créer des groupes d'objets dans des modules de menu et d'applications Forms. Une fois que vous avez créé un groupe d'objets, vous pouvez y ajouter des objets ou en supprimer, comme vous le désirez.


Conseils relatifs à la création de groupes d'objets

  Rubriques connexes

Lorsque vous utilisez des groupes d'objets, gardez à l'esprit les conseils suivants :

•	Lorsque vous faites glisser un bloc dans un groupe d'objets, vous incluez implicitement tous les objets qui appartiennent au bloc (éléments, déclencheurs, relations). Cependant, les objets appartenant au bloc n'apparaissent pas sous ce bloc dans la liste des fils du groupe d'objets.

•	Seuls les objets d'un niveau supérieur peuvent être inclus dans un groupe d'objets.

Les objets appartenant à des blocs ne peuvent pas être placés de façon indépendante dans un groupe d'objets. Cette règle s'applique aux éléments, aux déclencheurs de niveau élément, aux déclencheurs de niveau bloc et aux relations. Ces objets ne peuvent pas exister de façon indépendante du bloc dans lequel ils ont été définis. Pour inclure ces objets dans un groupe d'objets, vous devez inclure le bloc lui-même en faisant glisser l'objet bloc dans le groupe d'objets, dans le Navigateur d'objet.

•	Les objets d'un groupe doivent tous être définis dans le même module. Vous ne pouvez pas placer dans le même groupe d'objets des objets provenant de deux applications Forms différentes.

•	Un groupe d'objets ne peut pas contenir un autre groupe d'objets.

•	Lorsqu'un objet d'un groupe d'objets est supprimé d'un module, il est automatiquement supprimé du groupe d'objets.

•	La suppression d'un groupe d'objets d'un module ne supprime pas les objets que le module contient.

•	Les groupes d'objets ne stockent pas de copies des objets qu'ils contiennent, mais des pointeurs aux objets. La définition de groupes d'objets n'augmente pas beaucoup la taille des modules (à moins que le groupe d'objets ne soit sous-classé).


Création d'un groupe d'objets

  Rubriques connexes

Pour créer un groupe d'objets :

1	Dans le Navigateur d'objet, cliquez sur le noeud Groupes d'objets.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un objet ayant un nom par défaut est inséré sous le noeud. Lorsque vous cliquez deux fois pour développer l'objet, le noeud Fils de groupe d'objets s'affiche. Les objets que vous ajoutez au groupe apparaissent sous ce noeud.


Ajout d'un objet à un groupe d'objets

  Rubriques connexes

Pour ajouter un objet à un groupe d'objets :

1	Dans le Navigateur d'objet, cliquez sur l'icône +, à côté du noeud Groupes d'objets.

2	Faites glisser l'objet de votre choix sur le noeud Fils du groupe d'objets.


Modification d'un groupe d'objets

Pour modifier un groupe d'objets :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet du groupe d'objets de votre choix pour afficher la Palette de propriétés.

2	Modifiez les propriétés.


Suppression d'un objet d'un groupe d'objets

  Rubriques connexes

Pour supprimer un objet d'un groupe d'objets :

1	Dans le Navigateur d'objet, cliquez sur l'objet que vous voulez supprimer.

2	Choisissez Navigateur [image] Supprimer.

Remarque : La suppression d'un objet d'un groupe d'objets ne supprime par l'objet du module.


A propos des applications Forms modèle

Toutes les applications Forms peuvent être utilisées comme modèles. Ces dernières vous permettent de fournir à d'autres membres de votre équipe un point de départ par défaut pour créer des applications. En général, elles comprennent des objets génériques, tels que : graphiques, texte, images, barres d'outils et unités de programme. Toutefois, elles peuvent contenir tout objet utilisable dans une application. Lorsque vous créez une application Forms à partir d'un modèle, Form Builder ouvre ce dernier et lui attribue un nouveau nom, ce qui vous évite de l'écraser lorsque vous enregistrez la nouvelle application.


Création d'une application Forms à partir d'un modèle

Pour créer une application Forms à partir d'un modèle :

1	Sélectionnez Fichier [image] Nouveau [image] Appli Forms à partir d'un modèle.

2	Dans la boîte de dialogue d'accueil, cliquez sur Créer une application Forms fondée sur un modèle pour afficher la boîte de dialogue Ouvrir.

3	Sélectionnez un fichier (.FMX), puis cliquez sur Ouvrir.


Réutilisation de code

  Rubriques connexes

Pour réutiliser du code écrit dans Form Builder, vous pouvez :

•	Copier des déclencheurs ou des unités de programme d'un module à l'autre, comme tout autre type d'objet.

•	Sous-classer des déclencheurs ou des unités de programme.

•	Créer des bibliothèques PL/SQL d'unités de programme qui peuvent être appelées à partir de tout modèle auquel la bibliothèque PL/SQL est attachée.

•	Sous-classer des déclencheurs présents dans d'autres modules.


A propos des normes d'interface utilisateur de Forms Developer

  Etape suivante	    Rubriques connexes

Au lieu de développer vos propres normes d'interface utilisateur, vous pouvez créer des applications fondées sur des normes d'interface utilisateur de Forms Developer.

Forms Developer comporte deux ensembles de normes d'interface utilisateur :

Normes génériques	Conseillées pour les déploiements multi-plates-formes demandant un support multilingue.
Normes Win95	Conseillées pour les déploiements Win95 uniquement, ne demandant pas de support multilingue.
Les normes d'interface utilisateur Forms Developer sont fournies dans des bibliothèques d'objets. Pour utiliser ces normes, ouvrez une bibliothèque d'objets et faites glisser l'objet de votre choix de la bibliothèque d'objets à un noeud du Navigateur d'objet. Vous pouvez également sous-classer un objet existant dans la bibliothèque d'objets.


Utilisation des standards d'interface utilisateur Oracle Developer pour Win95
Utilisation des standards d'interface utilisateur Forms Developer pour Win95

  Rubriques connexes

Je veux appliquer les standards d'interface utilisateur Win95 aux éléments suivants :

•	bouton

•	case à cocher

•	élément affiché

•	élément liste

•	groupe de boutons d'option

•	élément texte

•	élément texte avec format de date


Application des normes d'interface Win95 à un bouton

Pour créer un bouton standard :

1	Choisissez Fichier [image] Ouvrir.

2	Dans la boîte de dialogue Ouvrir, cliquez deux fois sur STNDRD20.OLB.

3	Dans le Navigateur d'objet, cliquez sur l'élément de votre choix.

4	Cliquez sur le bouton de droite de la souris pour afficher le menu instantané.

5	Choisissez SmartClasses, puis sélectionnez le bouton SmartClass de votre choix.

6	(Facultatif) Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet Stndrd20.

7	(Facultatif) Dans la bibliothèque d'objets, cliquez sur l'onglet V_ATTRS et faites glisser STD_TEXT_ITEM, STD_PROMPT et STD_CURRENT_RECORD sur le noeud Attributs visuels du Navigateur d'objet.


Application des normes d'interface Win95 à une case à cocher

Pour créer une case à cocher standard :

1	Choisissez Fichier [image] Ouvrir.

2	Dans la boîte de dialogue Ouvrir, cliquez deux fois sur STNDRD20.OLB.

3	Dans le Navigateur d'objet, cliquez sur l'élément de votre choix.

4	Cliquez sur le bouton de droite de la souris pour afficher le menu instantané.

5	Choisissez SmartClasses, puis sélectionnez le bouton STD_CHECKBOX.

6	(Facultatif) Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet Stndrd20.

7	(Facultatif) Dans la bibliothèque d'objets, cliquez sur l'onglet V_ATTRS et faites glisser STD_TEXT_ITEM et STD_PROMPT sur le noeud Attributs visuels du Navigateur d'objet.


Application des normes d'interface Win95 à un élément affiché

Pour créer un groupe de boutons d'options standard :

1	Choisissez Fichier [image] Ouvrir.

2	Dans la boîte de dialogue Ouvrir, cliquez deux fois sur STNDRD20.OLB.

3	Dans le Navigateur d'objet, cliquez sur l'élément de votre choix.

4	Cliquez sur le bouton de droite de la souris pour afficher le menu instantané.

5	Choisissez SmartClasses, puis sélectionnez STD_TEXT_ITEM_DISPLAY.

6	(Facultatif) Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet Stndrd20.

7	(Facultatif) Dans la bibliothèque d'objets, cliquez sur l'onglet V_ATTRS et faites glisser STD_TEXT_ITEM, STD_PROMPT et STD_CURRENT_RECORD sur le noeud Attributs visuels du Navigateur d'objet.


Application des normes d'interface Win95 à un élément liste

Pour créer un élément liste standard :

1	Choisissez Fichier [image] Ouvrir.

2	Dans la boîte de dialogue Ouvrir, cliquez deux fois sur STNDRD20.OLB.

3	Dans le Navigateur d'objet, cliquez sur l'élément de votre choix.

4	Cliquez sur le bouton de droite de la souris pour afficher le menu instantané.

5	Choisissez SmartClasses, puis sélectionnez STD_LIST_ITEM.

6	(Facultatif) Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet Stndrd20.

7	(Facultatif) Dans la bibliothèque d'objets, cliquez sur l'onglet V_ATTRS et faites glisser STD_TEXT_ITEM, STD_PROMPT et STD_CURRENT_RECORD sur le noeud Attributs visuels du Navigateur d'objet.


Application des normes d'interface Win95 à un groupe de boutons d'options

Pour créer un groupe de boutons d'options standard :

1	Choisissez Fichier [image] Ouvrir.

2	Dans la boîte de dialogue Ouvrir, cliquez deux fois sur STNDRD20.OLB.

3	Dans le Navigateur d'objet, cliquez sur l'élément de votre choix.

4	Cliquez sur le bouton de droite de la souris pour afficher le menu instantané.

5	Choisissez SmartClasses, puis sélectionnez STD_RADIO_GROUP.

6	(Facultatif) Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet Stndrd20.

7	(Facultatif) Dans la bibliothèque d'objets, cliquez sur l'onglet V_ATTRS et faites glisser STD_TEXT_ITEM sur le noeud Attributs visuels du Navigateur d'objet.


Application des normes d'interface Win95 à un élément texte

Pour créer un élément texte standard :

1	Choisissez Fichier [image] Ouvrir.

2	Dans la boîte de dialogue Ouvrir, cliquez deux fois sur STNDRD20.OLB.

3	Dans le Navigateur d'objet, cliquez sur l'élément de votre choix.

4	Cliquez sur le bouton de droite de la souris pour afficher le menu instantané.

5	Choisissez SmartClasses, puis sélectionnez STD_TEXT_ITEM.

6	(Facultatif) Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet Stndrd20.

7	(Facultatif) Dans la bibliothèque d'objets, cliquez sur l'onglet V_ATTRS et faites glisser STD_TEXT_ITEM, STD_PROMPT et STD_CURRENT_RECORD sur le noeud Attributs visuels du Navigateur d'objet.


Application d'un format de date standard à un élément texte

Pour créer un groupe de boutons d'options standard :

1	Choisissez Fichier [image] Ouvrir.

2	Dans la boîte de dialogue Ouvrir, cliquez deux fois sur STNDRD20.OLB.

3	Dans le Navigateur d'objet, cliquez sur l'élément de votre choix.

4	Cliquez sur le bouton de droite de la souris pour afficher le menu instantané.

5	Choisissez SmartClasses, puis sélectionnez le format de date de votre choix.

6	(Facultatif) Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet Stndrd20.

7	(Facultatif) Dans la bibliothèque d'objets, cliquez sur l'onglet V_ATTRS et faites glisser STD_TEXT_ITEM, STD_PROMPT et STD_CURRENT_RECORD sur le noeud Attributs visuels du Navigateur d'objet.


A propos des programmes stockés

  Rubriques connexes

Une procédure ou une fonction stockée est un sous-programme PL/SQL de la base de données qui peut être appelé par son nom à partir d'une application. Form Builder prend en charge le partitionnement des applications " drag and drop " au moyen des sous-programmes PL/SQL stockés. Les applications de déploiement sur le serveur Oracle7 peuvent comporter des appels à des sous-programmes stockés côté serveur directement dans le code PL/SQL des déclencheurs de Form Builder et à des sous-programmes nommés par l'utilisateur. A partir des déclencheurs de Form Builder et des sous-programmes nommés par l'utilisateur, vous pouvez exécuter des procédures et des fonctions définies dans un package PL/SQL et accéder à tout sous-programme, au niveau du serveur de base de données local ou distant.

Comme le traitement au sein de l'application Forms est suspendu jusqu'à la fin de l'exécution de la procédure ou de la fonction stockée, la charge de la base de données et du réseau doit être prise en compte en ce qui concerne le temps de réponse. La première fois qu'un utilisateur exécute une fonction ou une procédure stockée, le code exécutable est entré dans la mémoire cache de la zone globale partagée (SGA) de Oracle7. Comme le code est en mémoire cache, les utilisations ultérieures de l'exécutable sont plus rapides. A la première référence à un sous-programme d'un package, tout le package est chargé et devient partageable.

Il est conseillé d'utiliser un sous-programme stocké à la place d'un sous-programme Form Builder local lorsqu'une procédure ou une fonction offre des fonctionnalités standard que les autres outils peuvent partager (validation, calcul ou autre). Les sous-programmes stockés sont également conseillés lors de l'exécution d'un nombre important d'opérations DML pouvant être traitées en bloc par le serveur.


A propos des valeurs par défaut des paramètres formels

 Exemples    [image]  Rubriques connexes

Les valeurs par défaut des paramètres formels ne sont pas prises en charge. Cependant, vous pouvez créer un package stocké contenant :

• une spécification de procédure surchargée dans la spécification du package ;

• une mise en oeuvre privée utilisant des paramètres par défaut dans le corps du package.


A propos des valeurs par défaut des paramètres formels - Exemple

/*

Créer une procédure stockée comportant zéro, un ou deux arguments VARCHAR2. La procédure de package 'Test' ci-dessous peut être appelée par l'un des éléments suivants :
  test.test;
  test.test('Bonjour');
  test.test('Bonjour','Claude');
*/
CREATE PACKAGE Test IS
PROCEDURE Test;
PROCEDURE Test(a VARCHAR2 );
PROCEDURE Test(a VARCHAR2,
               b VARCHAR2);
END Test;

CREATE PACKAGE BODY Test IS
   PROCEDURE Private_Test( a in VARCHAR2 := 'Bonjour'
       b in VARCHAR2 := 'Claude')  IS

   BEGIN
      Dbms_Output.Put_Line(a);
      Dbms_Output.Put_Line(b);
   END;

   PROCEDURE Test IS
   BEGIN
      Private_Test;
   END;

   PROCEDURE Test(a VARCHAR2) IS
   BEGIN
      Private_Test (a);
   END;

   PROCEDURE Test(a VARCHAR2 , b VARCHAR2) IS
   BEGIN
      Private_Test (a, b);
   END;

END Test;


A propos de l'accès aux sous-programmes du schéma d'un autre utilisateur

 Exemples    [image]  Rubriques connexes

Pour accéder à un sous-programme du schéma d'un autre utilisateur ou d'une base de données éloignée, vous devez créer un synonyme destiné à masquer le nom utilisateur ou le nom de la liaison à la base de données à partir du compilateur PL/SQL, pour que le résultat se présente sous la forme suivante :

• ProcSynonym(arg1,...,argN)

• FuncSynonym(arg1,...,argN)

• PackSynonym.ProcName(arg1,...,argN)

• PackSynonym.FuncName(arg1,...,argN)

Vous pouvez créer des synonymes représentant les programmes stockés distants, en masquant le nom utilisateur ou la liaison à la base de données :

• Subprogram@DbLink

• Package@DbLink

• Package.Subprogram@DbLink

• Schema.Subprogram@DbLink

• Schema.Package

• Schema.Package@DbLink

• Schema.Package.Subprogram@DbLink

où sous-programme est soit une procédure, soit une fonction.


A propos de l'accès aux sous-programmes du schéma d'un autre utilisateur - Exemple

Pour appeler la fonction package 'LIBOWNER.LIB_HR.GET_SSN', vous pouvez créer un synonyme pour le package LIB_HR comprenant le nom de schéma (le nom utilisateur) de la manière suivante :

CREATE SYNONYM lib_hr_syn
FOR libowner.lib_hr;

puis appeler la fonction à partir de votre propre application Forms de la manière suivante :

ss_num := lib_hr_syn.get_ssn(:Emp.NoEmp);

Si la fonction de package est dans un site distant, accessible par une liaison à la base de données appelée base1, vous pouvez par exemple créer un synonyme pour le package en incorporant le nom de la liaison à la base de données :

CREATE SYNONYM basel_lib_hr_syn
FOR libowner.lib_hr@basel;

et appeler la fonction dans votre code PL/SQL de la manière suivante :

ss_num := basel_lib_hr_syn.get_ssn(:Emp.NoEmp);

Vous pouvez également créer un synonyme de la fonction elle-même, en masquant à la fois le schéma et les informations sur la liaison à la base de données :

CREATE SYNONYM basel_lib_hr_get_ssn_syn
FOR libowner.lib_hr.get_ssn@basel;

et appeler la fonction à partir de Form Builder de la manière suivante :

ss_num := basel_lib_hr_get_ssn_syn(:Emp.NoEmp);

Bien évidemment, chacun des synonymes ci-dessus aurait pu, si nécessaire, être créé sous la forme de SYNONYMES PUBLICS.


A propos de la résolution des noms de sous-programme

  Rubriques connexes

Si le compilateur PL/SQL détecte le nom d'un identificateur (qui peut être une procédure ou une fonction) pendant la compilation d'une application Forms, il utilise un système de priorités pour lever les ambiguïtés.

S'il trouve un identificateur de type PROCNAME qui a la structure d'une procédure ou d'une fonction, il utilise la première correspondance qu'il trouve, dans l'ordre de recherche suivant :

1	L'identificateur est-il défini dans le bloc PL/SQL en cours ?

2	Est-ce une commande PL/SQL standard ?

3	Est-ce une fonction ou une procédure de sous-programme intégré de Form Builder ?

4	Est-ce une fonction ou une procédure nommée par l'utilisateur ?

5	Est-il défini dans le package DBMS_STANDARD, côté serveur ?

6	L'utilisateur a-t-il accès à cette procédure ou à cette fonction côté serveur ?

Si la réponse à toutes ces questions est "non", le compilateur signale une erreur :

PL/SQL erreur 313 à la ligne xxx, colonne yyy
'PROCNAME' non déclaré dans cette portée.
ou
PL/SQL erreur 201 à la ligne xxx, colonne yyy
l'identificateur 'FUNCTNAME' doit être déclaré.


A propos des autorisations pour les procédures stockées

  Rubriques connexes

Vous pouvez créer, éditer, compiler et parcourir des procédures stockées directement à partir de Form Builder si vous avez les autorisations appropriées.

Autorisation d'exécution	Permet à l'utilisateur d'exécuter le sous-programme public défini dans une unité de programme stockée. Les sous-programmes publics sont énumérés dans la spécification du package.
Autorisation de création	Permet de créer, de modifier et de compiler des unités de programme stockées.
Autorisation de compilation	Permet à l'utilisateur de compiler une unité de programme stockée.
Autorisation d'élimination	Permet à l'utilisateur d'éliminer une unité de programme stockée.


A propos de l'Editeur d'unités de programme stockées

  Rubriques connexes

Vous pouvez créer, éditer et compiler le texte source des procédures stockées à partir de l'Editeur d'unités de programme stockées.

Titre	Le titre reflète le schéma et le nom de l'unité de programme stockée affichée.
Nouveau	Le bouton Nouveau permet à l'utilisateur d'entrer le texte source d'une nouvelle unité de programme. Une nouvelle unité de programme n'est visible que dans l'Editeur d'unités de programme stockées. Les nouvelles unités de programme ne sont stockées dans la base de données que lors de la première compilation.
Enregistrer	Le bouton Enregistrer synchronise le texte source affiché dans l'éditeur avec le texte source stocké dans la base de données, et compile l'unité de programme stockée côté serveur.
Rétablir	Le bouton Rétablir annule les modifications apportées dans la fenêtre de texte source et rend à l'unité de programme stockée son état précédent, qui est le plus récent des états suivants : • après la dernière navigation vers cette unité de programme stockée, ou après sa création par le bouton Nouveau ; • après la dernière sélection du bouton Compiler. Le bouton Rétablir n'est utilisable que lorsque la fenêtre de texte source a été modifiée depuis l'un des états ci-dessus.
Eliminer	Le bouton Eliminer supprime une unité de programme stockée existante ou interrompt la création d'une nouvelle unité de programme (après avoir demandé confirmation par un message d'alerte). Après l'élimination de l'unité de programme stockée, l'éditeur affiche la précédente unité dans la boîte Nom, si elle existe. Sinon, il affiche la suivante. S'il n'y a pas d'unité de programme stockée pour le propriétaire en cours, l'éditeur est vide. Le bouton Eliminer n'est utilisable que si l'unité de programme stockée est nouvelle ou que l'utilisateur possède l'autorisation nécessaire pour abandonner l'unité de programme stockée affichée.
Fermer	Le bouton Fermer ferme la fenêtre de l'Editeur d'unités de programme stockées. Si le texte source de l'unité de programme stockée affichée a été modifié, l'éditeur émet un message d'alerte indiquant que les modifications n'ont pas été enregistrées.
Propriétaire	La zone de liste déroulante Propriétaire identifie l'utilisateur propriétaire de l'unité de programme stockée affichée dans l'éditeur. La sélection d'une nouvelle entrée dans cette zone Propriétaire met à jour la zone Nom et affiche la première unité de programme stockée dans la liste Nom (s'il en existe une).
Nom	La zone de liste déroulante Nom affiche le nom de l'unité de programme stockée sélectionnée. Cette zone contient le nom de toutes les unités de programme stockées, auxquelles l'utilisateur sélectionné dans la boîte Propriétaire peut accéder. Une unité de programme est accessible si l'utilisateur a l'autorisation de l'exécuter. La sélection d'une nouvelle entrée dans la zone Nom met à jour l'éditeur pour afficher la nouvelle unité de programme stockée sélectionnée. Si le texte source de l'unité de programme stockée a été modifiée, l'éditeur émet un message d'alerte indiquant que les modifications n'ont pas été enregistrées.
Texte source	La fenêtre de texte source affiche le texte source de l'unité de programme stockée en cours. Elle n'est éditable que si l'utilisateur a l'autorisation de créer des unités de programme stockées. Sinon, elle n'est accessible qu'en lecture.
Messages de compilation	La fenêtre de messages affiche les messages de compilation associés à l'unité de programme stockée en cours. Cliquer sur un message de compilation fait passer le curseur de texte dans la fenêtre source à la ligne et à la colonne associées au message. La fenêtre de messages de compilation est masquée lorsqu'aucun message d'erreur n'est associé à l'unité de programme stockée.
Barre d'état	La barre d'état affiche des informations sur l'état de l'unité de programme stockée en cours.


Création d'un programme stocké

  Rubriques connexes

Pour créer un programme stocké :

1	Dans le Navigateur d'objet, développez le noeud Objets de base de données pour afficher les noeuds de schéma.

2	Développez un noeud de schéma pour afficher les objets de base de données.

3	Sélectionnez le noeud Unités de programme stockées et choisissez Navigateur [image] Créer.

La boîte de dialogue Nouvelle unité de programme s'affiche.

4	Indiquez le nom de l'unité de programme et son type, qui peut être procédure, fonction, spéc package ou corps de package.

L'Editeur d'unités de programme stockées s'affiche.

5	Dans l'Editeur d'unités de programme stockées, définissez et enregistrez les unités de programme de votre choix.

Remarque : Lorsque vous compilez une application Forms, un menu ou une bibliothèque contenant des références à des packages, à des fonctions ou à des procédures stockées, assurez-vous que le sous-programme stocké auquel vous faites référence existe sur le serveur au moment de la compilation.


Modification d'un programme stocké

  Rubriques connexes

Pour modifier un programme stocké :

1	Dans le Navigateur d'objet, développez le noeud Objets de base de données pour afficher les noeuds de schéma.

2	Développez un noeud de schéma pour afficher les objets de base de données.

3	Développez le noeud Unités de programme stockées.

Les procédures stockées qui vous appartiennent ou que vous avez l'autorisation d'exécuter, de compiler ou d'abandonner s'affichent.

4	Cliquez deux fois sur l'icône de la procédure stockée de votre choix.

L'Editeur d'unités de programme stockées s'affiche.

5	Modifiez la procédure stockée comme vous le souhaitez et cliquez sur Enregistrer.


Appel d'un programme stocké

 Exemples   [image] Restrictions   [image]  Rubriques connexes

Dans Form Builder, l'appel d'une fonction ou d'une procédure stockée côté serveur est identique à l'appel d'une fonction ou d'une procédure locale côté client.

Une procédure stockée côté serveur est un bloc PL/SQL écrit pour être exécuté par le moteur PL/SQL côté serveur. Elle peut accepter des entrées et retourner des sorties, mais ces opérations sont facultatives.

La procédure stockée côté serveur s'exécute sous le domaine de sécurité (ou schéma) de son créateur et non de l'utilisateur. L'utilisateur doit avoir l'autorisation d'exécuter la procédure pour l'utiliser.

L'une des principales différences entre les procédures de Form Builder et les procédures de la base de données est que les procédures côté serveur ne comprennent pas les références aux variables de lien de Form Builder (comme :BLOCK.ITEMNAME, :GLOBAL.VARNAME ou :SYSTEM.CURSOR_ITEM). Toutes les données requises par les procédures pour le traitement doivent être transmises au moyen de paramètres de type approprié, de variables package, ou par sélection dans des tables.

Vos routines Form Builder nommées par l'utilisation doivent être structurées de manière à accepter des entrées et à retourner des résultats dans des paramètres. La migration finale de la procédure vers la base de données devient alors aussi simple que l'ajout du mot CREATE devant la déclaration PROCEDURE (en plus de l'exécution du script résultant dans SQL*PLUS).

L'appel d'une fonction ou d'une procédure stockée ne prend en charge que le sous-ensemble d'utilisations possibles suivant :

• ProcName(arg1,...,argN)

• FuncName(arg1,...,argN)

• PackName.ProcName(arg1,...,argN)

• PackName.FuncName(arg1,...,argN)


Appel d'un programme stocké - Exemples

DECLARE

   ld DATE;
   ln NUMBER;
   lv VARCHAR2(30);
BEGIN
/*
** Appel de procédure/fonction de niveau application Forms
*/
   nom_procédure_application forms(ld,ln,lv);
   ld := nom_fonction_application forms(ln,lv);

/*
** Appel de procédure/fonction de base de données
*/
   nom_procédure_base_de_données(ld,ln,lv);
   ld := nom_fonction_base_de_données(ln,lv);
END;


Appel d'un programme stocké - Restrictions

•	Comme Form Builder crée la routine d'accès à chaque sous-programme stocké auquel votre déclencheur ou votre sous-programme nommé par l'utilisateur fait référence, il n'est pas possible d'écrire une application Forms contenant des appels à des fonctions ou à des procédures stockées qui seront compilées à la fois sur les versions 6.0 et 7.0 d'Oracle. Lorsqu'une application Forms contient une référence à au moins un sous-programme stocké, elle doit être compilée sur une base de données de version 7.0, pour éviter les erreurs de compilation qui surviennent lorsque le compilateur PL/SQL ne peut pas résoudre les noms des sous-programmes stockés.

•	L'appel de fonctions et de procédures stockées n'est pas pris en charge dans un contexte de menus PL/SQL.

•	Les modifications apportées aux définitions de sous-programmes stockés peuvent ne pas être utilisables par le développeur d'applications Forms tant que la connexion au serveur n'est pas rétablie.


A propos des déclencheurs de base de données

  Rubriques connexes

Un déclencheur de base de données est pratiquement identique, sur le plan conceptuel, au déclencheur de Form Builder. La différence réside dans l'événement qui l'active et l'emplacement où est exécuté le code qui en résulte.

Les déclencheurs de base de données sont des blocs PL/SQL associés à une table donnée ; ils sont activés lors de l'exécution d'opérations UPDATE, INSERT ou DELETE sur cette table. Ils peuvent se déclencher AVANT ou APRES chaque ligne sur laquelle porte l'opération, ou chaque instruction. Les différentes combinaisons possibles offrent le choix d'un maximum de douze déclencheurs par table. Lorsqu'un déclencheur est activé, il s'exécute dans le domaine de sécurité (schéma) de son créateur, et non de l'utilisateur en cours.

Dans le corps du déclencheur de base de données, votre code PL/SQL peut faire référence à la fois aux anciennes et aux nouvelles valeurs des colonnes concernées. Pour une instruction INSERT, les anciennes valeurs n'existent pas, alors que pour une instruction DELETE ce sont les nouvelles valeurs qui n'existent pas. La mise en œuvre de la validation des données et le contrôle des valeurs modifiées sont donc extrêmement faciles.

Un déclencheur de base de données peut effectuer une vérification de données complexes, qui ne pourrait pas être déclarée comme une contrainte. Si un déclencheur de base de données échoue et génère une erreur, l'instruction de déclenchement (c'est-à-dire l'instruction INSERT, UPDATE ou DELETE qui a activé le déclencheur) est annulée.

Vous pourriez écrire le déclencheur suivant pour empêcher les mises à jour de la table EMP pendant les week-ends, à moins que l'utilisateur en cours n'existe dans une table spéciale WEEKEND_UPDATE_OK.

CREATE OR REPLACE TRIGGER update_on_weekends_check

  BEFORE UPDATE OF sal ON EMP

  FOR EACH ROW

DECLARE

  my_count number(4);

BEGIN

  SELECT COUNT(u_name) FROM WEEKEND_UPDATE_OK INTO my_count

    WHERE u_name = user_name;

  IF my_count=0 THEN

    RAISE_APPLICATION_ERROR(20508, 'Update not allowed');

  END IF;

END;

Les déclencheurs de base de données peuvent non seulement effectuer arbitrairement des validations de données complexes, mais peuvent aussi être utilisés pour effectuer une séquence de causes et d'effets ; ils conviennent donc particulièrement aux opérations de contrôle de données, de duplication de données et de contrôle d'intégrité de données distribuées (puisque les contraintes ne peuvent pas faire référence à des bases de données éloignées). Si des déclencheurs de base de données doivent supplanter des déclencheurs côté application Forms (pour un contrôle de tables, par exemple), il faut désactiver les fonctionnalités côté application Forms pour éviter la duplication des opérations sur les tables.

Il est également possible d'utiliser une variable package comme indicateur de communication entre les déclencheurs (ou procédures) côté base de données et l'application Forms. Le déclencheur ou la procédure peut alors décider si une opération particulière a déjà été effectuée par le code de Form Builder.

Les déclencheurs (ainsi que les fonctions et les procédures stockées) génèrent des erreurs à l'aide de la procédure RAISE_APPLICATION_ERROR. Cette procédure génère un numéro d'erreur spécial, compris entre 20000 et 20999, et un message d'erreur. Comme le message d'erreur est préparé par votre déclencheur de base de données PL/SQL, il est fonction du problème. Dans l'application Form Builder, ces erreurs peuvent être détectées par les méthodes mentionnées dans la section suivante.


A propos du traitement des déclencheurs de base de données

  Rubriques connexes

N'oubliez pas que les déclencheurs de base de données sont activés en réponse à une instruction DML (INSERT, UPDATE ou DELETE). Pendant un traitement normal par Form Builder, lors de la validation, lorsque Form Builder émet des instructions INSERT pour ajouter les nouveaux enregistrements à la base de données, des instructions UPDATE pour appliquer aux enregistrements existants les modifications apportées par l'utilisateur, et des instructions DELETE pour retirer de la base de données les enregistrements supprimés par l'utilisateur, les déclencheurs de base de données activés seront actionnés.

Prenons, par exemple, le cas de déclencheurs de base de données définis et activés dans la table EMP :

•	BEFORE DELETE

•	BEFORE DELETE FOR EACH ROW

•	AFTER DELETE

•	AFTER DELETE FOR EACH ROW

La suppression, par l'utilisateur, d'un enregistrement interrogé génère la séquence d'événements suivante :

1	Form Builder verrouille l'enregistrement à supprimer.

2	L'utilisateur appuie sur [Valider].

3	Form Builder active le déclencheur PRE-COMMIT.

4	Form Builder active le déclencheur PRE-DELETE.

5	Form Builder émet une instruction DELETE pour supprimer la ligne.

6	La base de données active le déclencheur BEFORE DELETE.

7	La base de données active le déclencheur BEFORE DELETE FOR EACH ROW.

8	La base de données supprime l'enregistrement.

9	La base de données active le déclencheur AFTER DELETE FOR EACH ROW.

10	10.La base de données active le déclencheur AFTER DELETE.

11	11.Form Builder active le déclencheur POST-DELETE.

12	12.Form Builder déclenche le déclencheur POST-COMMIT.

N'oubliez pas que toute erreur générée pendant le traitement commit entraîne l'annulation, par Form Builder, de la transaction commit en cours, jusqu'au savepoint émis au début de la séquence commit. Si un déclencheur de base de données échoue (en générant une erreur non gérée ou en appelant une procédure RAISE_APPLICATION_ERROR) à la suite d'une instruction DML lancée automatiquement par Form Builder, un message "Une erreur Oracle s'est produite ..." s'affiche. Une erreur générée à la suite d'une instruction DML dans votre déclencheur PL/SQL peut, par contre, être gérée harmonieusement. Si elle n'est pas gérée, l'erreur entraîne l'affichage du message : "XXX-YYYYYY exception non traitée dans déclencheur."


A propos des contraintes de base de données déclaratives

  Rubriques connexes

Une contrainte de base de données est une règle qui régit l'intégrité logique de vos données. La règle est déclarée lors de la création des tables, mais peut également être ajoutée (avec certaines restrictions), après coup, à une table existante.

Contraintes d'entité Les contraintes d'entité peuvent imposer de manière déclarative qu'une colonne (ou un groupe ordonné de colonnes) soit définie à NOT NULL, UNIQUE dans la table, ait une valeur PAR DEFAUT si aucune n'a été spécifiée dans l'instruction INSERT, et/ou réponde à une condition logique plus complexe indiquée dans une clause CHECK. Ces contraintes assurent l'intégrité à l'intérieur des tables.

Contraintes référentielles Les contraintes référentielles assurent un lien logique entre une table maître et une table détail en établissant des relations de clés primaire et étrangère. Les contraintes de base de données protègent vos données par l'application automatique, au niveau de la base de données, des règles que vous avez déclarées. Par exemple, si vous créez un enregistrement dans une table maître et un enregistrement détail, l'opération par défaut des contraintes des bases de données limite la mise à jour de la clé primaire de l'enregistrement maître. Les contraintes de bases de données par défaut empêchent également la suppression de l'enregistrement maître (à moins que l'option ON DELETE CASCADE ne soit utilisée lors de la déclaration de toutes les références de clé étrangère).

Stratégies de vérification des contraintes Avant Oracle7 Server, la quasi-totalité de l'intégrité des données était assurée au niveau application, pour Form Builder, par des déclencheurs. L'objectif de la logique côté application est de stopper les données erronées avant qu'elles ne se présentent.

Grâce à la vérification implicite des données, effectuée par Oracle7, au niveau noyau, les systèmes actuels, écrits pour garantir l'intégrité des données par l'application, effectueront deux fois les mêmes vérifications. Pour optimiser le processus, vous pourriez être tenté de sortir toute la logique de l'application et de laisser à la base de données la vérification des contraintes. Cependant, avant de prendre cette décision, pesez soigneusement les avantages offerts de part et d'autre par les contraintes, et voyez si la double vérification est, ou non, trop coûteuse.

Les contraintes de base de données offrent une protection centralisée de l'intégrité des données qui ne nécessite pas obligatoirement de coder la logique dans chacun des outils. Cependant, le codage initial de la logique dans l'application permettait à l'utilisateur un retour immédiat d'informations sur les erreurs, ce qui facilitait et accélérait leur correction grâce à des messages d'erreur et d'aide en ligne appropriés.

En effet, aucun programmeur n'apprécierait d'entrer une cinquantaine de nouvelles commandes, uniquement pour tenter d'exécuter une opération commit et apprendre d'ORACLE que la quatrième commande viole une contrainte d'intégrité.

Il est très probable que vous préférerez vérifier les données lors de leur saisie et de leur enregistrement, sachant que la surcharge de travail qu'impose la vérification est amplement justifiée par la sécurité supplémentaire qu'offre cette opération. La vérification des contraintes de base de données est plus efficace que son équivalent au niveau application, car les contraintes sont traitées intelligemment par le noyau, complètement dans le domaine (et la mémoire RAM) du noyau, et sans aller-retour supplémentaire du réseau au client.

Notez que si une colonne a été déclarée avoir une valeur par défaut, le noyau n'attribuera la valeur par défaut que lorsque l'enregistrement sera inséré (INSERT), à condition que cette colonne ne figure plus parmi celles de la clause INSERT. Comme Form Builder dresse toujours la liste de toutes les colonnes (c'est-à-dire des champs de la base de données) dans un bloc d'insertion (INSERT) et de mise à jour (UPDATE), la valeur par défaut ne sera attribuée automatiquement que si l'utilisateur supprime du bloc le champ en question (ou lui appose une marque indiquant qu'il ne fait pas partie de la base de données) ou écrit un déclencheur ON-INSERT remplaçant le traitement normal de l'insertion par Form Builder.

Notez également que l'activation des contraintes peut rendre superflues certaines opérations fondées sur des applications Forms. Par exemple, la suppression des enregistrements détail lors de la suppression d'un enregistrement maître correspondant est gérée en interne par le noyau si l'option ON DELETE CASCADE est indiquée pour la relation de clés étrangères père-fils.

Blocs maître-détail et intégrité référentielle Les applications qui comportent des blocs maître-détail coordonnés par des procédures et des déclencheurs générés automatiquement dans SQL*Forms 3.0 ne doivent demander aucune modification lorsqu'elles sont exécutées sur des tables pour lesquelles les contraintes d'intégrité référentielle déclarative ont été activées. La logique par défaut de Form Builder empêche la suppression d'un enregistrement maître lorsqu'il reste des enregistrements détail en suspens, à moins que le programmeur n'ait indiqué l'option de suppressions en cascade lors de la création du bloc détail. Dans ce cas, Form Builder utilise un déclencheur PRE-DELETE pour supprimer les enregistrements détail, puis supprime l'enregistrement maître.

Dans ORACLE version 6, l'ordre des opérations n'était pas fondamental, mais une application ayant transféré la logique PRE-DELETE au déclencheur POST-DELETE aurait des problèmes d'exécution sur ORACLE7 Server si les relations clés primaires-clés étrangères ont été déclarées et activées côté serveur.

Si vous attendez que le déclencheur POST-DELETE supprime les enregistrements détail, Form Builder émettra l'instruction DELETE pour l'enregistrement maître s'il reste des éléments détail, et le noyau générera une erreur :

ORA-02292: violation de contrainte d'intégrité (PROPRIETAIRE.CONTRAINTE)
-- enregistrement détail trouvé

Cependant, si la relation de clé étrangère est indiquée dans l'option ON DELETE CASCADE, aucun problème ne se posera et l'instruction supplémentaire DELETE, exécutée par le déclencheur POST-DELETE de Form Builder pour supprimer les enregistrements détail, sera superflue, puisque la fonction de suppression en cascade de l'enregistrement maître aura déjà supprimé les enregistrements détail.

Toute instruction INSERT, UPDATE ou DELETE de votre application peut donc générer une erreur due à la violation d'une contrainte activée.


A propos des autorisations pour les déclencheurs de base de données

  Rubriques connexes

Vous pouvez créer, éditer, compiler et parcourir des déclencheurs de base de données directement à partir de Form Builder Designer si vous avez les autorisations appropriées.

Autorisation d'exécution	Permet à l'utilisateur d'exécuter le déclencheur de base de données.
Autorisation de création	Permet à l'utilisateur de créer, de modifier et de compiler des déclencheurs de base de données.
Autorisation de compilation	Permet à l'utilisateur de compiler un déclencheur de base de données.
Autorisation d'élimination	Permet à l'utilisateur d'éliminer un déclencheur de base de données.


A propos de l'Editeur de déclencheurs de base de données

  Rubriques connexes

Propriétaire de table	La zone de liste déroulante Propriétaire de table identifie l'utilisateur propriétaire du déclencheur de base de données affiché dans l'éditeur.
	La sélection d'une nouvelle entrée dans la zone de liste déroulante Propriétaire de table met à jour la zone de liste déroulante Table et affiche le premier déclencheur de base de données de la liste Noms (si elle existe).
Table	La zone de liste déroulante Table affiche les tables dont l'utilisateur en cours est propriétaire.
Nom	La zone de liste déroulante Nom affiche le nom du déclencheur de base de données sélectionné.
	La zone de liste déroulante Nom contient les noms de tous les déclencheurs de base de données accessibles appartenant à l'utilisateur sélectionné dans la zone de liste déroulante Propriétaire. Un déclencheur de base de données est accessible si l'utilisateur a l'autorisation de l'exécuter.
	La sélection d'une nouvelle entrée dans la zone de liste déroulante Nom met à jour l'éditeur pour lui permettre d'afficher le dernier déclencheur de base de données sélectionné. Si le texte source du déclencheur de base de données en cours a été modifié, l'éditeur affiche un message d'alerte indiquant que les modifications n'ont pas été enregistrées.
Déclenchement	Lors de la définition d'un déclencheur de base de données, vous pouvez synchroniser les déclencheurs, c'est-à-dire indiquer quand l'action du déclencheur doit être exécutée par rapport à l'instruction de déclenchement : avant ou après cette dernière.
Instruction	Une instruction ou un événement de déclenchement obligatoire est une instruction SQL qui provoque l'activation d'un déclencheur, par exemple une instruction INSERT, UPDATE ou DELETE portant sur une table donnée.
Pour chaque ligne	Lors de la création d'un déclencheur de base de données, vous pouvez indiquer une restriction de déclenchement, c'est-à-dire une option applicable aux déclencheurs activés pour chaque ligne. Cette option a pour rôle de contrôler l'exécution d'un déclencheur dans certaines conditions. Ce type de restriction est indiqué par une clause WHEN.
Corps du déclencheur	Vous permet d'indiquer le code PL/SQL à utiliser comme corps du déclencheur de la base de données.
Nouveau	Crée un nouvel objet de code, de même type et de même portée que l'objet de code en cours. Par exemple, lorsque l'objet en cours est un déclencheur attaché à un élément, le fait de choisir Nouveau affiche la LOV de déclencheurs qui vous permet de créer un nouveau déclencheur attaché au même élément. Lorsque l'objet en cours est une unité de programme, le fait de choisir Nouveau appelle la boîte de dialogue Nouvelle unité de programme.
Enregistrer	Compile et enregistre le code dans le champ Code source. Le compilateur détecte les erreurs de syntaxe, les erreurs sémantiques et les références à des fonctions, des procédures et des objets qui n'existent pas. Lorsque la compilation réussit, la ligne d'état affiche le message <Compilé avec succès>.
Rétablir	Annule les modifications apportées au code source depuis l'appel à l'éditeur ou la dernière commande Appliquer ou Rétablir. La commande Rétablir est désactivée lorsqu'aucune modification n'a été appliquée.
Eliminer	La commande Eliminer supprime un déclencheur de base de données existant ou interrompt la création d'un nouveau déclencheur (après vous avoir demandé confirmation en émettant un message d'alerte).
	Lorsqu'il a éliminé le déclencheur de base de données, l'éditeur affiche le déclencheur précédent dans la boîte Nom, s'il en existe une ; sinon, il affiche le déclencheur suivant. S'il n'y a plus de déclencheur de base de données pour le propriétaire en cours, l'éditeur est vide.
	Le bouton Eliminer n'est utilisable que si le déclencheur de base de données est nouveau ou si l'utilisateur en cours a l'autorisation d'éliminer le déclencheur affiché.
Fermer	Ferme l'Editeur de déclencheurs de base de données.
Cliquer sur un message de compilation	Fait passer le point d'insertion à la ligne à laquelle une erreur a été détectée dans le champ Code source.


Création d'un déclencheur de base de données

 Exemples    [image]  Rubriques connexes

Pour créer un déclencheur de base de données :

1	Dans le Navigateur d'objet, développez le noeud Objets de base de données pour afficher les noeuds de schéma.

2	Développez un noeud de schéma pour afficher les objets de base de données.

3	Développez le noeud Tables pour afficher les tables de la base de données de schéma.

4	Sélectionnez et développez la table de votre choix.

5	Sélectionnez le noeud Déclencheurs et choisissez Navigateur [image] Créer.

L'Editeur de déclencheurs de base de données s'affiche.

6	Dans cet éditeur, définissez et enregistrez les unités de programme de votre choix.


Création d'un déclencheur de base de données - Exemple

CREATE TRIGGER no_weekend_updates

BEFORE UPDATE
   ON EMP
DECLARE
   jour NUMBER(2) := TO_NUMBER(TO_CHAR(SYSDATE,'D'));
   fictif CHAR(1);
BEGIN
   IF (jour in (1,7))  /* dimanche,samedi */
   THEN
      BEGIN
         SELECT 'X'/* Check Exceptions Table*/
                   INTO dummy
                   FROM WEEKEND_UPDATE_OK
         WHERE USERID = USER;
      EXCEPTION
         WHEN NO_DATA_FOUND THEN /*Not Exception*/
                  RAISE_APPLICATION_ERROR(-20011,
                      'Essayer à nouveau lundi!');
      END;
   END IF;
END;


Modification d'un déclencheur de base de données

  Rubriques connexes

Pour modifier un déclencheur de base de données :

1	Dans le Navigateur d'objet, développez le noeud Objets de base de données pour afficher les noeuds de schéma.

2	Développez un noeud de schéma pour afficher les objets de base de données.

3	Développez le noeud Tables pour afficher les tables de la base de données de schéma.

4	Sélectionnez et développez la table de votre choix.

5	Développez le noeud Déclencheurs.

Les déclencheurs de base de données dont vous êtes propriétaire ou que vous avez l'autorisation d'exécuter, de compiler ou d'éliminer s'affichent.

6	Cliquez deux fois sur l'icône de déclencheur de base de données de votre choix.

L'Editeur de déclencheurs de base de données s'affiche.

7	Modifiez le déclencheur et cliquez sur Enregistrer.


A propos des variables système

 Examples

Une variable système est une variable Form Builder qui garde la trace d'un état interne de Form Builder. Vous pouvez faire référence à la valeur d'une variable système pour gérer le comportement d'une application.

Form Builder tient à jour les valeurs des variables système par application Forms - c'est-à-dire que les valeurs de toutes les variables système ne correspondent qu'à l'application Forms en cours. Les noms des variables système sont les suivants :

•	SYSTEM.BLOCK_STATUS

•	SYSTEM.COORDINATION_OPERATION

•	SYSTEM.CURRENT_BLOCK

•	SYSTEM.CURRENT_DATETIME

•	SYSTEM.CURRENT_FORM

•	SYSTEM.CURRENT_ITEM

•	SYSTEM.CURRENT_VALUE

•	SYSTEM.CURSOR_BLOCK

•	SYSTEM.CURSOR_ITEM

•	SYSTEM.CURSOR_RECORD

•	SYSTEM.CURSOR_VALUE

•	SYSTEM.CUSTOM_ITEM_EVENT

•	SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS

•	SYSTEM.DATE_THRESHOLD*

•	SYSTEM.EFFECTIVE_DATE*

•	SYSTEM.EVENT_WINDOW

•	SYSTEM.FORM_STATUS

•	SYSTEM.LAST_QUERY

•	SYSTEM.LAST_RECORD

•	SYSTEM.MASTER_BLOCK

•	SYSTEM.MESSAGE_LEVEL*

•	SYSTEM.MODE

•	SYSTEM.MOUSE_BUTTON_PRESSED

•	SYSTEM.MOUSE_BUTTON_SHIFT_STATE

•	SYSTEM.MOUSE_ITEM

•	SYSTEM.MOUSE_CANVAS

•	SYSTEM.MOUSE_X_POS

•	SYSTEM.MOUSE_Y_POS

•	SYSTEM.MOUSE_RECORD

•	SYSTEM.MOUSE_RECORD_OFFSET

•	SYSTEM.RECORD_STATUS

•	SYSTEM.SUPPRESS_WORKING*

•	SYSTEM.TAB_NEW_PAGE

•	SYSTEM.TAB_PREVIOUS_PAGE

•	SYSTEM.TRIGGER_BLOCK

•	SYSTEM.TRIGGER_ITEM

•	SYSTEM.TRIGGER_RECORD

Toutes les variables système, à l'exception des quatre suivies d'un astérisque (*), ne peuvent qu'être lues. Ce sont les seules variables système auxquelles vous pouvez affecter explicitement des valeurs. Form Builder propose également 6 valeurs par défaut de date et d'heure. (Reportez-vous à Valeurs par défaut de date et d'heure du système).

Variables locales

Etant donné que les variables système sont dérivées, si la valeur ne doit pas changer pendant la durée de vie du déclencheur, vous pouvez enregistrer la valeur système dans une variable locale et utiliser cette dernière plusieurs fois au lieu de demander la valeur de la variable système à chaque fois.


Valeurs système de date et d'heure par défaut

Form Builder propose six valeurs spéciales par défaut : $$DATE$$, $$DATETIME$$, $$TIME$$, $$DBDATE$$, $$DBDATETIME$$ et $$DBTIME$$, qui fournissent des informations de date et d'heure. Ces variables font l'objet des restrictions d'utilisation suivantes :

•	Dans le cas des applications client/serveur, prenez en compte l'incidence sur les performances du passage en réseau pour obtenir des informations de date et d'heure.

•	Lorsque vous accédez à une source de données non Oracle, évitez d'utiliser $$DBDATE$$ et $$DBDATETIME$$. Utilisez plutôt un déclencheur When-Create-Record pour sélectionner la date en cours selon la méthode déterminée pour cette source de données.

•	Utilisez $$DATE$$, $$DATETIME$$ et $$TIME$$ pour obtenir la date/l'heure système locale ; utilisez $$DBDATE$$, $$DBDATETIME$$ et $$DBTIME$$ pour obtenir la date/l'heure de la base de données, qui peut être différente de la date/de l'heure système locale si, par exemple, vous vous connectez à une base de données située dans un fuseau horaire différent du vôtre.

•	N'utilisez ces variables que pour définir la valeur de la propriété Valeur initiale, Valeur minimum autorisée ou Valeur maximum autorisée.


A propos des variables système - Exemples

Supposons que vous vouliez créer, au niveau application Forms, un déclencheur Key-NXTBLK dont la navigation dépend du bloc en cours. Cette fonction est exécutée par le déclencheur décrit ci-dessous, à l'aide de la variable SYSTEM.CURSOR_BLOCK stockée dans une variable locale.

DECLARE
   curblk VARCHAR2(30);
BEGIN
   curblk := :System.Cursor_Block;
   IF curblk = 'Commandes'
      THEN Go_Block('Articles');
   ELSIF curblk = 'Articles'
      THEN Go_Block('Clients');
   ELSIF curblk = 'Clients'
      THEN Go_Block('Commandes');
   END IF;
END;

Valeurs de retour en majuscules

Toutes les variables système font la différence entre les majuscules et les minuscules, et doivent retourner leurs arguments sous la forme de valeurs en majuscules. Cette distinction affecte la façon de comparer les résultats dans des instructions IF.


$$DATE$$ - Variable système

 Exemples

Syntaxe

$$DATE$$

Description

$$DATE$$ extrait la date du système d'exploitation en cours (côté client). Utilisez $$DATE$$ pour indiquer une valeur ou une plage de valeurs par défaut pour un élément texte à l'aide des propriétés Valeur initiale ou Valeur minimum/maximum autorisée. L'élément texte doit être de type CHAR, DATE, ou DATETIME.

Utilisez $$DATE$$ comme valeur par défaut de paramètres d'application Forms. Dans ce cas la valeur du paramètre est calculée une fois, au démarrage de l'application Forms.

Notes d'utilisation

Le composant d'heure de $$DATE$$ est toujours fixé à 00:00:00, alors que celui de $$DATETIME$$ est significatif (09:17:59, par exemple).

L'affichage des variables système est géré par le masque de format, qui est soit celui que vous indiquez, soit le masque de format de type de données par défaut. Par exemple, pour utiliser le format par défaut JJ-MOI-AA, indiquez le type de données DATE. (Notez que le masque de format par défaut dépend de la valeur de NLS_LANG.)

Bien que $$DATE$$ n'affiche que la date, sa valeur sous-jacente comporte un composant d'heure enregistré lors de l'opération commit. Si vous indiquez un type de données DATETIME avec $$DBDATE$$ comme valeur par défaut, la valeur sous-jacente sera JJ-MOI-AAAA HH:MM:SS: par exemple, 01-DEC-1994 00:00:00 (bien que seule la partie 01-DEC-1994 sera affichée).

Utilisez $$DATE$$ pour comparer le contenu de ce champ avec celui d'un champ dont le masque de format n'a pas de composant d'heure, par exemple un champ DATEEXP de type DATE. Dans ce cas, le composant d'heure de $$DATE$$ et DATEEXP sera 00:00:00, et la comparaison de deux dates donnant le même jour réussira.


$$DATE$$ - Exemples

Exemple 1

Supposons que vous vouliez que la valeur d'un élément texte DATE, appelé DATECDE, soit par défaut la date en cours. Lorsque vous définissez l'élément texte DATECDE, indiquez $$DATE$$ dans la propriété Valeur initiale de l'élément texte.

Exemple 2

Si vous utilisez $$DATE$$ dans un paramètre, comme :PARAMETER.STARTUP_DATE, chaque fois que vous ferez référence à ce paramètre, la date à laquelle vous aurez lancé l'application sera disponible :

IF :PARAMETER.Startup_Date + 1 < :System.Current_Datetime
   THEN Message ('Vous êtes connecté depuis plus de 24 heures.');
ELSE Message ('Vous venez de vous connecter aujourd'hui.');
END IF;


$$DATETIME$$ - Variable système

 Exemples

Syntaxe

$$DATETIME$$

Description

$$DATETIME$$ extrait la date et l'heure en cours du système d'exploitation. Vous pouvez utiliser cette variable pour indiquer une plage de valeurs ou une valeur par défaut pour un élément texte en utilisant les propriétés Valeur initiale ou Valeur minimum/maximum autorisée. L'élément texte doit être de type CHAR ou DATETIME.

Utilisez $$DATETIME$$ comme valeur par défaut de paramètres d'application Forms. Dans ce cas la valeur du paramètre est calculée une fois, au démarrage de l'application Forms.

Notes d'utilisation

L'affichage des variables système est géré par le masque de format, qui est soit celui que vous indiquez, soit le masque de format de type de données par défaut. Par exemple, si vous voulez utiliser le format par défaut JJ-MOI-AA HH:MM:SS, vous devez indiquer le type de données DATETIME. (Notez que le masque de format par défaut dépend de la valeur de NLS_LANG.)

Le composant d'heure de $$DATE$$ est toujours fixé à 00:00:00, alors que celui de $$DATETIME$$ est significatif (09:17:59, par exemple).

Remarque : N'utilisez $$DATETIME$$ à la place de $$DATE$$ que pour indiquer le composant d'heure. Si, par exemple, vous utilisez $$DATETIME$$ avec le masque de format DATE par défaut (JJ-MOI-AA), vous enregistrerez dans la base de données des valeurs que l'utilisateur ne verra pas, car le masque de format ne comporte pas de composant d'heure. Comme vous avez enregistré dans la base de données des informations d'heure spécifiques, lorsque vous lancerez ultérieurement une interrogation sur la date, les valeurs ne correspondront pas et vous n'obtiendrez pas de lignes en retour.


$$DATETIME$$ - Exemples

Supposons que vous vouliez que la valeur d'un élément texte DATETIME, appelé DATECDE, soit par défaut la date et l'heure en cours du système d'exploitation. Lorsque vous définissez l'élément texte DATECDE, indiquez $$DATETIME$$ dans la propriété Valeur initiale.


$$DBDATE$$ - Variable système

 Examples 	   Restrictions

Syntaxe

$$DBDATE$$

Description

$$DBDATE$$ extrait la date de la base de données en cours. Utilisez cette variable pour indiquer une plage de valeurs ou une valeur par défaut pour un élément texte à l'aide des propriétés Valeur initiale ou Valeur minimum/maximum autorisée. L'élément texte doit être de type CHAR ou DATETIME.

Notes d'utilisation

Le composant d'heure de $$DBDATE$$ est toujours fixé à 00:00:00, alors que celui de $$DBDATETIME$$ est significatif (09:17:59, par exemple).

Faites appel à $$DBDATETIME$$ pour utiliser par défaut un élément DATE comme date en cours sur la machine serveur, par exemple lorsque vous vous connectez à une base de données éloignée, pouvant se trouver dans un fuseau horaire différent de celui du client.

L'affichage des variables système est géré par le masque de format, qui est soit celui que vous indiquez, soit le masque de format de type de données par défaut. Par exemple, pour utiliser le format par défaut JJ-MOI-AA, vous devez indiquer le type de données DATE. (Notez que le masque de format par défaut dépend de la valeur de NLS_LANG.)

Bien que $$DATE$$ n'affiche que la date, sa valeur sous-jacente comporte un composant d'heure enregistré lors de l'opération commit. Si vous indiquez un type de données DATETIME avec $$DATE$$ comme valeur par défaut, la valeur sous-jacente sera JJ-MOI-AAAA HH:MM:SS: par exemple, 01-DEC-1994 00:00:00 (bien que seule la partie 01-DEC-1994 sera affichée).


$$ DBDATE$$ - Restrictions

•	Si vous accédez à une source de données non ORACLE, évitez d'utiliser $$DBDATE$$. Faites plutôt appel à un déclencheur When-Create-Record pour sélectionner la date et l'heure en cours selon la méthode déterminée pour cette source de données.


$$ DBDATE$$ - Exemples

Pour que la valeur d'un élément texte appelé DATECDE soit remplacée par défaut par la date de la base de données en cours, indiquez $$DBDATE$$ pour cet élément texte dans la propriété Valeur Initiale.


$$DBDATETIME$$ - Variable système

 Examples 	   Restrictions

Syntaxe

$$DBDATETIME$$

Description

$$DBDATETIME$$ extrait la date et l'heure en cours de la base de données locale. Utilisez $$DBDATETIME$$ pour indiquer une valeur ou une plage de valeurs par défaut pour un élément texte à l'aide des propriétés Valeur initiale ou Valeur minimum/maximum autorisée. L'élément texte doit être de type CHAR ou DATETIME.

Notes d'utilisation

Faites appel à $$DBDATE$$ pour utiliser par défaut un élément DATE comme date en cours sur la machine serveur, par exemple lorsque vous vous connectez à une base de données éloignée, pouvant se trouver dans un fuseau horaire différent de celui du client.

L'affichage des variables système est géré par le masque de format, qui est soit celui que vous indiquez, soit le masque de format de type de données par défaut. Par exemple, pour utiliser le format par défaut JJ-MOI-AA HH:MM:SS, vous devez indiquer le type de données DATETIME ou CHAR. (Notez que le masque de format par défaut dépend de la valeur de NLS_LANG.)

Si vous développez une application client/serveur, l'utilisation de $$DBDATETIME$$ peut avoir des répercussions au niveau des performances, en fonction de la complexité de la configuration de votre réseau.

Remarque : N'utilisez $$DBDATETIME$$ à la place de $$DBDATE$$ que si vous envisagez d'indiquer le composant d'heure. Si, par exemple, vous utilisez $$DBDATETIME$$ avec le masque de format DATE par défaut (JJ-MOI-AA), vous enregistrerez dans la base de données des valeurs que l'utilisateur ne verra pas, car le masque de format ne comporte pas de composant d'heure. Comme vous avez enregistré dans la base de données des informations d'heure spécifiques, lorsque vous lancerez ultérieurement une interrogation sur la date, les valeurs ne correspondront pas et vous n'obtiendrez pas de lignes en retour.


$$DBDATETIME$$ - Restrictions

Si vous accédez à une source de données non ORACLE, évitez d'utiliser $$DBDATETIME$$. Faites plutôt appel à un déclencheur When-Create-Record pour sélectionner la date et l'heure en cours selon la méthode déterminée pour cette source de données.


$$DBDATETIME$$ - Exemples

Supposons que vous vouliez que la valeur d'un élément texte DATETIME, appelé DATECDE, soit par défaut la date et l'heure de la base de données en cours. Lorsque vous définissez l'élément texte DATECDE, indiquez $$DBDATETIME$$ dans les propriétés Valeur minimum/maximum autorisée.


$$DBTIME$$ - Variable système

 Examples 	   Restrictions

Syntaxe

$$DBTIME$$

Description

$$DBTIME$$ extrait l'heure en cours de la base de données locale. Utilisez $$DBTIME$$ pour indiquer une valeur ou une plage de valeurs par défaut pour un élément texte à l'aide des propriétés Valeur initiale ou Valeur minimum/maximum autorisée. L'élément texte doit être de type CHAR ou DATETIME.

Notes d'utilisation

Utilisez $$DBTIME$$ lorsque vous vous connectez à une base de données éloignée, pouvant se trouver dans un fuseau horaire différent de celui du client.

L'affichage des variables système est géré par le masque de format, qui est soit celui que vous indiquez, soit le masque de format de type de données par défaut. Par exemple, pour utiliser le format par défaut HH:MM:SS, vous devez indiquer le type de données TIME. (Notez que le masque de format par défaut dépend de la valeur de NLS_LANG.)

Si vous développez une application client/serveur, l'utilisation de $$DBTIME$$ peut avoir des répercussions au niveau des performances, en fonction de la complexité de la configuration de votre réseau.


$$DBTIME$$ - Restrictions

Si vous accédez à une source de données non ORACLE, évitez d'utiliser $$DBTIME$$. Faites plutôt appel à un déclencheur When-Create-Record pour sélectionner la date et l'heure en cours selon la méthode déterminée pour cette source de données.


$$DBTIME$$ - Exemples

Supposons que vous vouliez que la valeur d'un élément texte TIME, appelé HEURECDE, soit par défaut la date et l'heure de la base de données en cours. Lorsque vous définissez l'élément texte HEURECDE, indiquez $$DBTIME$$ dans la propriété Valeur initiale.


$$TIME$$ - Variable système

 Exemples

Syntaxe

$$TIME$$

Description

$$TIME$$ extrait la date du système d'exploitation en cours. Utilisez $$TIME$$ pour indiquer une valeur ou une plage de valeurs par défaut pour un élément texte à l'aide des propriétés Valeur initiale ou Valeur minimum/maximum autorisée. L'élément texte doit être de type CHAR ou TIME.

Vous pouvez également utiliser $$TIME$$ comme valeur par défaut de paramètres d'application Forms. Dans ce cas la valeur du paramètre est calculée une fois, au démarrage de l'application Forms.

Notes d'utilisation

L'affichage des variables système est géré par le masque de format, qui est soit celui que vous indiquez, soit le masque de format de type de données par défaut. Par exemple, pour utiliser le format par défaut HH:MM:SS, vous devez indiquer le type de données TIME. (Notez que le masque de format par défaut dépend de la valeur de NLS_LANG.)


$$TIME$$ - Exemples

Supposons que vous vouliez que la valeur d'un élément texte TIME, appelé HEURECDE, soit par défaut la date et l'heure du système d'exploitation en cours. Lorsque vous définissez l'élément texte HEURECDE, indiquez $$TIME$$ dans la propriété Valeur initiale.


SYSTEM.BLOCK_STATUS - Variable système

 Examples	     Rubriques connexes

Syntaxe

SYSTEM.BLOCK_STATUS

Description

SYSTEM.BLOCK_STATUS représente l'état d'un bloc de données dans lequel se trouve le curseur, ou du bloc de données en cours pendant le traitement des déclencheurs. La valeur peut être l'une des trois chaînes de caractères suivantes :

MODIFIE	MODIFIE Indique que le bloc contient au moins un enregistrement modifié.
NOUVEAU	NOUVEAU Indique que le bloc ne contient que de nouveaux enregistrements.
INTERROGATION	INTERROGATION Indique que le bloc ne contient que des enregistrements valides qui ont été extraits de la base de données.
Notes d'utilisation

Cette valeur doit être construite par Form Builder chaque fois qu'il y est fait référence. Si un bloc contient un grand nombre d'enregistrements, l'utilisation de SYSTEM.BLOCK_STATUS peut au contraire avoir une incidence défavorable sur les performances.


SYSTEM.BLOCK_STATUS - Exemples

Supposons que vous vouliez créer un déclencheur qui exécute une opération commit avant d'effacer un bloc si celui-ci contient des modifications à enregistrer dans la base de données. Cette fonction peut être effectuée par le déclencheur Key-CLRBLK suivant :

IF :System.Block_Status = 'MODIFIE'
   THEN Commit_Form;
END IF;
Clear_Block;


SYSTEM.COORDINATION_OPERATION - Variable système

  Rubriques connexes

Syntaxe

SYSTEM.COORDINATION_OPERATION

Description

Cette variable système s'utilise avec la variable système SYSTEM.MASTER_BLOCK pour permettre à un déclencheur On-Clear-Details de savoir quel type d'opération entraînant une coordination a activé le déclencheur et le bloc maître d'une relation maître/détail sur laquelle a porté cette opération.

Les valeurs des deux variables système restent constantes pendant toute la phase d'effacement d'une synchronisation de blocs. SYSTEM.MASTER_BLOCK représente le nom du bloc maître de commande, et SYSTEM.COORDINATION_OPERATION l'événement, provoquant la coordination, qui s'est produit sur le bloc maître.

La procédure Clear_All_Master_Details, générée automatiquement lors de la création d'une relation, vérifie la valeur de SYSTEM.COORDINATION_OPERATION pour fournir une gestion spéciale des événements CLEAR_RECORD et SYNCHRONIZE, qui peut être différente de celle des autres événements provoquant une coordination. La procédure Clear_All_Master_Details vérifie également la valeur de SYSTEM.MASTER_BLOCK, pour s'assurer que pendant le traitement du bloc maître d'une coordination de relation, la recherche ne porte que sur les blocs contenant des modifications.

Par exemple, étant donné la hiérarchie des relations entre les blocs décrite ci-dessous, le passage à l'enregistrement suivant à l'aide de la touche [Enregistrement suivant] ou de la commande de menu Enregistrement, Suivant dans le bloc C entraîne l'effacement des blocs E, F, G et H (et leur interrogation ultérieure éventuelle, en fonction de la propriété Deferred_Coordination des relations C [image] E et C [image] F).

Le résultat de l'activation du déclencheur On-Clear-Details pour le bloc C est le suivant :

:System.Coordination_Operation   = 'NEXT_RECORD'
:System.Master_Block              = 'C'

La procédure Clear_All_Master_Details efface tous les détails du bloc C, entraînant une "réaction en chaîne" d'opérations Clear_Block. A la suite de ces opérations, le bloc F est effacé.

Etant donné que F est maître de G et de H et qu'il est effacé, un déclencheur On-Clear-Details sera également activé pour le bloc F. Cependant, comme l'effacement du bloc F a été commandé (indirectement) par un événement provoquant une coordination dans le bloc C, les valeurs restant dans le déclencheur On-Clear-Details pour le bloc F sont les suivantes :

:System.Coordination_Operation   = 'NEXT_RECORD'
:System.Master_Block              = 'C'

Remarque : Les valeurs de ces deux variables système ne sont bien définies que dans la portée d'un déclencheur On-Clear-Details, ou d'une unité de programme appelée par ce déclencheur. En dehors de ce contexte limité, les valeurs de ces deux variables ne sont pas définies et ne doivent pas être utilisées.

Les valeurs possibles de SYSTEM.COORDINATION_OPERATION, lorsqu'il convient de vérifier cette variable, sont décrites dans le tableau ci-dessous :

Valeur	Description	Provoqué par
MOUSE	Passage à un enregistrement non en cours	Souris
UP	Retour à l'enregistrement précédent	Menu, touche, PL/SQL
DOWN	Passage à l'enregistrement suivant	Menu, touche, PL/SQL
SCROLL_UP	Défilement d'enregistrements vers le haut	Menu, touche, PL/SQL
SCROLL_DOWN	Défilement d'enregistrements vers le bas	Souris, touche, PL/SQL
CLEAR_BLOCK	Effacement du bloc en cours	Menu, touche, PL/SQL
CLEAR_RECORD	Effacement de l'enregistrement en cours	Menu, touche, PL/SQL
CREATE_RECORD	Création d'un nouvel enregistrement	Souris, menu, touche, PL/SQL
DELETE_RECORD	Suppression de l'enregistrement en cours	Menu, touche, PL/SQL
DUPLICATE_RECORD	Duplication de l'enregistrement en cours	Menu, touche, PL/SQL
FIRST_RECORD	Passage au premier enregistrement	PL/SQL
LAST_RECORD	Passage au dernier enregistrement	PL/SQL
NEXT_RECORD	Passage à l'enregistrement suivant	Souris, menu, touche, PL/SQL
PREVIOUS_RECORD	Passage à l'enregistrement précédent	Souris, menu, touche, PL/SQL
GO_RECORD	Saut à l'enregistrement numéro ...	PL/SQL
ENTER_QUERY	Mode Saisie interrogation	Menu, touche, PL/SQL
EXECUTE_QUERY	Exécution d'interrogation	Menu, touche, PL/SQL
COUNT_QUERY	Comptage d'enregistrements interrogés	Menu, touche, PL/SQL
NEXT_SET	Extraction du prochain ensemble d'enregistrements	Menu, touche, PL/SQL
SYNCHRONIZE_ BLOCKS	Reprise sur erreur d'opération commit	Interne uniquement


SYSTEM.CURRENT_BLOCK - Variable système

Syntaxe

SYSTEM.CURRENT_BLOCK

Description

La valeur représentée par la variable système SYSTEM.CURRENT_BLOCK dépend de l'unité de navigation en cours :

•	Si l'unité de navigation en cours est le bloc, l'enregistrement ou l'élément (comme dans les déclencheurs Pre- et Post- Item, Record et Block), la valeur de SYSTEM.CURRENT_BLOCK est le nom du bloc en cours de traitement par Form Builder ou dans lequel se trouve le curseur.

•	Si l'unité de navigation en cours est l'application Forms (comme dans les déclencheurs Pre- et Post-Form), la valeur de SYSTEM.CURRENT_BLOCK est NULL.

La valeur est toujours une chaîne de caractères.

Remarque : La variable SYSTEM.CURRENT_BLOCK est incluse pour des raisons de compatibilité avec les précédentes versions. Oracle conseille d'utiliser à la place SYSTEM.CURSOR_BLOCK et SYSTEM.TRIGGER_BLOCK.


SYSTEM.CURRENT_DATETIME - Variable système

 Exemples

Syntaxe

SYSTEM.CURRENT_DATETIME

Description

SYSTEM.CURRENT_DATETIME est une variable qui représente la date du système d'exploitation. La valeur est une chaîne de type CHAR dont le format est le suivant :

JJ-MOI-AAAA HH24:MM:SS

Valeur par défaut

date en cours

Notes d'utilisation

SYSTEM.CURRENT_DATETIME est utile lorsque vous voulez utiliser la date et l'heure du système d'exploitation dans un déclencheur PL/SQL ou une procédure. En utilisant SYSTEM.CURRENT_DATETIME au lieu de $$DBDATETIME$$, vous pouvez éviter les problèmes de performances provoqués par l'interrogation de la base de données.

Remarque : L'heure locale et l'heure de la base de données peuvent ne pas être les mêmes.


SYSTEM.CURRENT_DATETIME - Exemples

/*

**
** Déclencheur : WHEN-TIMER-EXPIRED
** Exemple :     Mettre à jour l'heure affichée à l'écran toutes les 30 secondes
*/
DECLARE
   time VARCHAR2(20);
BEGIN
   time := :System.Current_Datetime;
   :control.onscreen := SUBSTR(time, instr(time,' ')+1);
END;


SYSTEM.CURRENT_FORM - Variable système

 Exemples

Syntaxe

SYSTEM.CURRENT_FORM

Description

SYSTEM.CURRENT_FORM représente le nom de l'application Forms que Form Builder exécute. La valeur est toujours une chaîne de caractères.

Notes d'utilisation

Vous pouvez utiliser la procédure interne GET_APPLICATION_PROPERTY pour obtenir le nom de l'application Forms en cours.


SYSTEM.CURRENT_FORM - Exemples

Supposons que vous vouliez qu'une application Forms appelée puisse identifier le nom de l'application Forms l'ayant appelée. Vous pouvez appeler la procédure définie par l'utilisateur, décrite ci-dessous, avant que Form Builder émette un appel. Cette procédure stocke le nom de l'application Forms en cours dans une variable globale appelée CALLING_FORM.

PROCEDURE STORE_FORMNAME IS
BEGIN
   :GLOBAL.Calling_Form := :System.Current_Form;
END;


SYSTEM.CURRENT_ITEM - Variable système

  Rubriques connexes

Syntaxe

SYSTEM.CURRENT_ITEM

Description

La valeur représentée par la variable système SYSTEM.CURRENT_ITEM dépend de l'unité de navigation en cours :

•	Si l'unité de navigation en cours est l'élément (comme dans les déclencheurs Pre- et Post-Item), la valeur de SYSTEM.CURRENT_ITEM est le nom de l'élément que Form Builder traite ou dans lequel se trouve le curseur. Le nom de l'élément retourné ne comporte pas de préfixe de nom de bloc.

•	Si l'élément de navigation en cours est l'enregistrement, le bloc ou l'application Forms (comme dans les déclencheurs Pre- et Post- Record, Block et Form), la valeur de SYSTEM.CURRENT_ITEM est NULL.

La valeur est toujours une chaîne de caractères.

Remarque : La variable SYSTEM.CURRENT_ITEM est incluse pour des raisons de compatibilité avec les versions précédentes. Oracle conseille d'utiliser à la place SYSTEM.CURSOR_ITEM ou SYSTEM.TRIGGER_ITEM.


SYSTEM.CURRENT_VALUE - Variable système

Syntaxe

SYSTEM.CURRENT_VALUE

Description

SYSTEM.CURRENT_VALUE représente la valeur de l'élément enregistré dans SYSTEM.CURRENT_ITEM.

La valeur est toujours une chaîne de caractères.

Remarque : La variable SYSTEM.CURRENT_VALUE est incluse pour des raisons de compatibilité avec les versions précédentes. Oracle conseille d'utiliser à la place SYSTEM.CURSOR_ITEM et SYSTEM.CURSOR_VALUE.


SYSTEM.CURSOR_BLOCK - Variable système

 Exemples

Syntaxe

SYSTEM.CURSOR_BLOCK

Description

La valeur que représente la variable système SYSTEM.CURSOR_BLOCK dépend de l'unité de navigation en cours :

•	Si l'unité de navigation en cours est le bloc, l'enregistrement ou l'élément (comme dans les déclencheurs Pre- et Post- Item, Record et Block), la valeur de SYSTEM.CURSOR_BLOCK est le nom du bloc dans lequel se trouve le curseur. La valeur est toujours une chaîne de caractères.

•	Si l'unité de navigation en cours est l'application Forms (comme dans les déclencheurs Pre- et Post-Form), la valeur de SYSTEM.CURSOR_BLOCK est NULL.


SYSTEM.CURSOR_BLOCK - Exemples

Supposons que vous vouliez créer, au niveau application Forms, un déclencheur Key-NXTBLK dont la navigation dépend du bloc en cours. Cette fonction est exécutée par le déclencheur décrit ci-dessous, à l'aide de la variable SYSTEM.CURSOR_BLOCK stockée dans une variable locale.

DECLARE
   curblk VARCHAR2(30);
BEGIN
   curblk := :System.Cursor_Block;
   IF curblk = 'COMMANDES'
      THEN Go_Block('ARTICLES');
   ELSIF curblk = 'ARTICLES'
      THEN Go_Block('CLIENTS');
   ELSIF curblk = 'CLIENTS'
      THEN Go_Block('COMMANDES');
   END IF;
END;


SYSTEM.CURSOR_ITEM - Variable système

 Exemples 	   Restrictions

Syntaxe

SYSTEM.CURSOR_ITEM

Description

SYSTEM.CURSOR_ITEM représente le nom du bloc et de l'élément dans lequel se trouve le point d'insertion (curseur).

La valeur est toujours une chaîne de caractères.

Notes d'utilisation

Dans un déclencheur donné, la valeur de SYSTEM.CURSOR_ITEM change lorsque la navigation a lieu, alors qu'avec SYSTEM.TRIGGER_ITEM, elle ne change pas du début à la fin d'un même déclencheur.


SYSTEM.CURSOR_ITEM - Restrictions

Evitez d'utiliser SYSTEM.CURSOR_ITEM dans des déclencheurs dans lesquels l'unité de navigation en cours n'est pas l'élément, comme les déclencheurs de Pre- et Post-Record, Block et Form. Dans ces déclencheurs, la valeur de SYSTEM.CURSOR_ITEM est NULL.


SYSTEM.CURSOR_ITEM - Exemples

Supposons que vous vouliez créer une procédure, définie par l'utilisateur, qui extrait la valeur de l'élément dans lequel se trouve le curseur (représenté par SYSTEM.CURSOR_VALUE), puis multiplie la valeur par une constante, puis entre la valeur modifiée dans le même élément. La procédure, définie par l'utilisateur, décrite ci-dessous utilise la procédure interne COPY pour exécuter cette fonction.

PROCEDURE CALC_VALUE IS
   new_value NUMBER;
BEGIN
   new_value := TO_NUMBER(:System.Cursor_Value) * .06;
   Copy(TO_CHAR(new_value), :System.Cursor_Item);
END;


SYSTEM.CURSOR_RECORD - Variable système

 Exemples

Syntaxe

SYSTEM.CURSOR_RECORD

Description

SYSTEM.CURSOR_RECORD représente le numéro de l'enregistrement dans lequel se trouve le curseur. Ce numéro représente l'ordre physique de l'enregistrement dans la liste des enregistrements du bloc. La valeur est toujours une chaîne de caractères.


SYSTEM.CURSOR_RECORD - Exemples

Supposons que vous vouliez redéfinir [Elément précédent] dans le premier élément texte du bloc ARTICLES afin qu'il passe au dernier élément texte du bloc COMMANDES, si l'enregistrement en cours est le premier. Le déclencheur Key-PRV-ITEM ci-dessous, dans l'élément texte ITEMS.ORDERID, exécute cette fonction.

IF :System.Cursor_Record = '1'
   THEN Go_Item('total.commandes');
   ELSE Previous_Item;
END IF;


SYSTEM.CURSOR_VALUE - Variable système

 Exemples 	   Restrictions

Syntaxe

SYSTEM.CURSOR_VALUE

Description

SYSTEM.CURSOR_VALUE représente la valeur de l'élément dans lequel se trouve le curseur. La valeur est toujours une chaîne de caractères.

Notes d'utilisation

Notez que dans les déclencheurs dans lesquels l'unité de navigation en cours n'est pas l'élément (comme dans les déclencheurs Pre-Record et Pre-Block), SYSTEM.CURSOR_VALUE contiendra la valeur de l'élément à partir duquel s'est effectuée la navigation, et non la valeur de l'élément vers lequel s'est effectuée la navigation.


SYSTEM.CURSOR_VALUE - Restrictions

•	Evitez d'utiliser SYSTEM.CURSOR_VALUE dans des déclencheurs Pre-Form et Post-Form, dans lesquels la valeur de SYSTEM.CURSOR_VALUE est NULL.


SYSTEM.CURSOR_VALUE - Exemples

Supposons que vous vouliez créer une procédure, définie par l'utilisateur, qui extrait la valeur de l'élément dans lequel se trouve le curseur, multiplie la valeur par une constante, puis entre la valeur modifiée dans l'élément. La procédure définie par l'utilisateur, décrite ci-dessous, utilise la procédure interne COPY pour exécuter cette fonction.

PROCEDURE CALC_VALUE IS
   new_value NUMBER;
BEGIN
   new_value := TO_NUMBER(:System.Cursor_Value) * .06;
   Copy(TO_CHAR(new_value), :System.Cursor_Item);
END;


SYSTEM.CUSTOM_ITEM_EVENT - Variable système

 Exemples

Syntaxe

SYSTEM.CUSTOM_ITEM_EVENT

Description

SYSTEM.CUSTOM_ITEM_EVENT stocke le nom de l'événement activé par un contrôle VBX (dans Microsoft Windows 16 bits) ou ActiveX (dans Windows 32 bits).


SYSTEM.CUSTOM_ITEM_EVENT - Exemples

Vérifiez si l'événement SpinDown a été activé par le contrôle VBX SpinButton avant la navigation à l'élément précédent.

IF  :System.Custom_Item_Event = 'SpinDown' THEN
 :QTY := :QTY -1;
END IF;


SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS - Variable système
SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS system variable

 Examples

Syntaxe

SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS

Description

SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS stocke les arguments supplémentaires correspondant à un événement activé par un contrôle VBX (dans Microsoft Windows 16 bits) ou ActiveX (dans Windows 32 bits).


SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS - Exemples

L'exemple ci-dessous obtient la valeur du paramètre 'Bouton' qui stocke la valeur d'un événement de contrôle VBX, et transmet la valeur 'Bouton' au sous-programme Move_Image défini par l'utilisateur.

DECLARE
 parmType  NUMBER;
 parmValue VARCHAR2(80);
BEGIN
 Get_Parameter_Attr(:System.Custom_Item_Event_Parameters,
                      'Bouton',parmType,parmValue);
 /*
 ** La valeur du paramètre 'Bouton' représente la direction
 ** dans laquelle une image doit être déplacée. Le sous-programme
/** Move_Image défini par l'utilisateur déplace une image de deux
/** pixels dans la direction indiquée par le paramètre 'Bouton'.
 */
 Move_Image(parmValue);
END;


SYSTEM.DATE_THRESHOLD - Variable système

Syntaxe

SYSTEM.DATE_THRESHOLD

Description

SYSTEM.DATE_THRESHOLD représente le seuil de réinterrogation de date de la base de données. Cette variable, utilisée avec les trois variables système $$DBDATE$$, $$DBDATETIME$$ et $$DBTIME$$, gère la fréquence de synchronisation, par Form Builder, de la date de la base de données sur le SGBDR. La valeur de cette variable doit avoir le format suivant :

MI:SS

Etant donné que la fréquence de l'interrogation du SGBDR peut pénaliser les performances, il est conseillé de donner à ce paramètre une valeur relativement élevée. Cependant, n'oubliez pas que, si la valeur n'est pas synchronisée suffisamment souvent, il peut en résulter une certaine différence. En outre, si vous développez une application client/serveur, les implications de la variable système SYSTEM.DATE_THRESHOLD sur les performances peuvent varier en fonction de la complexité de la configuration de votre réseau.

Valeur par défaut

01:00 (La synchronisation se produit après une minute.)

Cela ne signifie pas que Form Builder appelle le SGBDR toutes les minutes, mais que lorsque Form Builder doit générer la valeur des variables système $$DBDATE$$, $$DBDATETIME$$, $$DBTIME$$ ou SYSTEM.EFFECTIVE_DATE, il met à jour la date réelle en ajoutant le temps écoulé (mesuré par le système d'exploitation local) à la valeur du SGBDR interrogé en dernier.

Si le temps écoulé est supérieur au seuil de date, Form Builder exécute une nouvelle interrogation pour lire l'heure du SGBDR, et remet à zéro le compteur de temps écoulé.

Notes d'utilisation

Si une application Forms ne fait jamais référence à la date de la base de données, Form Builder n'exécute jamais d'interrogation de lecture de la date du SGBDR, quelle que soit la valeur de SYSTEM.DATE_THRESHOLD.

L'horloge du système d'exploitation et celle du SGBDR diffèrent rarement de plus d'une ou deux secondes, même après plusieurs heures de temps écoulé. Cependant, comme votre administrateur de base de données peut à tout moment restaurer l'horloge du SGBDR, il est conseillé, pour des raisons de sécurité, de ne pas indiquer de valeurs de seuil supérieures à quelques minutes.

Un bloc Form Builder peut parfois contenir plusieurs références aux valeurs par défaut des variables $$DBDATE$$, $$DBDATETIME$$ ou $$DBTIME$$. Si vous donnez à la variable SYSTEM.DATE_THRESHOLD une valeur par défaut de une minute, pratiquement toutes ces références, dans une application Forms, peuvent être satisfaites par une seule interrogation du SGBDR.


SYSTEM.EFFECTIVE_DATE - Variable système

 Exemples 	   Restrictions

Syntaxe

SYSTEM.EFFECTIVE_DATE

Description

SYSTEM.EFFECTIVE_DATE représente la date réelle de la base de données. La valeur de la variable doit toujours avoir le format suivant :

JJ-MOI-AAAA HH24:MI:SS

Valeur par défaut

date du SGBDR

Notes d'utilisation

Cette variable système est utile pour les tests. Comme vous pouvez l'utiliser pour définir une heure particulière, l'heure affichée pendant une application n'entraînera pas l'apparition de résultats de tests ultérieurs différents de ceux de la sortie valide connue.


SYSTEM.EFFECTIVE_DATE - Restrictions

Cette variable n'est valide que lorsque la base de données contient une définition de la table DUAL.


SYSTEM.EFFECTIVE_DATE - Exemples

Vous avez défini un élément texte DATE ou TIME à l'une des trois variables système $$DBDATE$$, $$DBDATETIME$$ ou $$DBTIME$$. Pour remplacer cette date ou cette heure, définissez la variable système SYSTEM.EFFECTIVE_DATE à une date et/ou une heure spécifiques.

:System.Effective_Date := '31-DEC-1997 10:59:00'

Notez que la date réelle est "actualisée" par l'horloge de la base de données. Par exemple, si vous voulez définir la date comme dans l'exemple précédent, dans une heure, la date s'affiche de la manière suivante :

31-DEC-1997 11:59:00

La valeur est synchronisée sur la date du SGBDR. Si votre administrateur de bases de données change la date du SGBDR, la différence entre l'ancienne et la nouvelle date du SGBDR est automatiquement répercutée sur la variable système SYSTEM.EFFECTIVE_DATE. Form Builder appelle le SGBDR chaque fois que l'application demande une référence à la date réelle.


SYSTEM.EVENT_WINDOW - Variable système

  Exemples 	  Rubriques connexes

Syntaxe

SYSTEM.EVENT_WINDOW

Description

La variable système SYSTEM.EVENT_WINDOW représente le nom de la dernière fenêtre affectée par une opération ayant entraîné l'activation de l'un des déclencheurs d'événement de fenêtre. Les déclencheurs qui entraînent la mise à jour de cette variable sont les suivants :

•	WHEN-WINDOW-ACTIVATED

•	WHEN-WINDOW-CLOSED

•	WHEN-WINDOW-DEACTIVATED

•	WHEN-WINDOW-RESIZED

A partir de ces déclencheurs, attribuez la valeur de la variable à l'un des éléments suivants :

•	variable globale

•	paramètre

•	variable

•	élément, y compris un élément de canevas nul


SYSTEM.EVENT_WINDOW - Exemples

L'exemple ci-dessous définit le point d'insertion dans un élément particulier, en fonction de la fenêtre concernée :

IF :System.Event_Window = 'ROOT_WINDOW' THEN
   Go_Item('NOEMP');
ELSIF :System.Event_Window = 'DEPT_WINDOW' THEN
   Go_Item('NODEPT');
END IF;


SYSTEM.FORM_STATUS - Variable système

 Exemples 	  Rubriques connexes

Syntaxe

SYSTEM.FORM_STATUS

Description

SYSTEM.FORM_STATUS représente l'état de l'application Forms en cours. Cette valeur peut être l'une des trois chaînes de caractères suivantes :

MODIFIE	Indique que l'application Forms contient au moins un bloc dont un enregistrement a été modifié. La valeur de SYSTEM.FORM_STATUS devient MODIFIE uniquement lorsqu'au moins un enregistrement de l'application Forms a été modifié et que l'unité de navigation associée a également été modifiée.
NOUVEAU	Indique que l'application Forms ne contient que de nouveaux enregistrements.
INTERROGATION	Indique qu'une interrogation est ouverte. L'application Forms contient au moins un bloc dont les enregistrements ont été interrogés, mais aucun bloc avec des enregistrements modifiés.
Notes d'utilisation

Chaque fois que cette valeur fait l'objet d'une référence, elle doit être construite par Form Builder. Si une application Forms contient un grand nombre de blocs et d'enregistrements, l'utilisation de SYSTEM.FORM_STATUS peut nuire aux performances.


SYSTEM.FORM_STATUS - Exemples

Supposons que vous vouliez créer un déclencheur qui exécute une validation avant l'effacement d'une application Forms si celle-ci contient des modifications à enregistrer dans la base de données. Le déclencheur Key-CLRFRM ci-dessous exécute cette fonction.

IF :System.Form_Status = 'MODIFIE'
   THEN Commit_Form;
END IF;
Clear_Form;


SYSTEM.LAST_FORM - Variable système

Syntaxe

SYSTEM.LAST_FORM

Description

SYSTEM.LAST_FORM représente l'ID de document d'application Forms de la précédente application Forms d'une application qui comporte plusieurs applications si les applications Forms ont été appelées par l'utilisation de OPEN_FORM. La valeur peut être soit NULL soit l'ID du document d'application Forms.

Notes d'utilisation

SYSTEM.LAST_FORM n'est pas valide avec CALL_FORM.


SYSTEM.LAST_QUERY - Variable système

 Exemples

Syntaxe

SYSTEM.LAST_QUERY

Description

SYSTEM.LAST_QUERY représente l'instruction d'interrogation SELECT que Form Builder a utilisée en dernier pour remplir un bloc au cours de la session Runform en cours. La valeur est toujours une chaîne de caractères.


SYSTEM.LAST_QUERY - Exemples

Exemple 1

Supposons que vous vouliez générer dans Form Builder un état qui extrait des informations identiques à une interrogation que vous exécutez dans Form Builder. Les exemples ci-dessous illustrent la façon d'utiliser SYSTEM.LAST_QUERY pour extraire la clause WHERE/ORDER BY de la dernière interrogation, afin de pouvoir transmettre les résultats à Form Builder à l'aide de la procédure interne RUN_PRODUCT.

FUNCTION Last_Where_Clause
RETURN VARCHAR2
  IS
    tmp_lstqry VARCHAR2(10000) := :System.Last_Query;
    tmp_curblk VARCHAR2(40);
    tmp_index  NUMBER;
    tmp_where  VARCHAR2(2000);
  BEGIN
    /*
    ** Rechercher le mot 'WHERE' dans le texte de la
    ** dernière interrogation.
    */
    tmp_index:= INSTR(tmp_lstqry,'WHERE');
    /*
    ** Si nous le trouvons (à un index positif
    ** dans la chaîne), nous extrayons le reste
    ** du texte qui suit le mot 'WHERE' comme clause
    ** Where. Cette opération peut également inclure
    ** une clause ORDER BY.
    */
    IF tmp_index > 0 THEN
      tmp_where := SUBSTR(tmp_lstqry, tmp_index + 6);
    END IF;
    RETURN (tmp_where);
EXCEPTION
  WHEN OTHERS THEN
    RETURN NULL;
END;

Exemple 2

PROCEDURE Run_Report_For_Last_Query

IS
   pl  ParamList;
   wc  VARCHAR2(2000); -- The Where Clause to Pass
BEGIN
   /*
   ** Créer une liste de paramètres permettant la
   ** transmission de paramètres.
   */
   pl := Create_Parameter_List('tmp');
   /*
   ** Rechercher la clause Where dans la dernière interrogation
   ** en utilisant une fonction définie par l'utilisateur
   */
   wc := Last_Where_Clause;
   /*
   ** S'il y a une clause Last Where Non-NULL à transmettre,
   ** ajouter un paramètre texte à la liste des paramètres
   ** pour indiquer le nom du paramètre et sa valeur.
   ** Dans ce cas, la définition du rapport comporte un
   ** paramètre appelé 'Clause_Where' qui est attendu.
   */
   IF wc IS NOT NULL THEN
      Add_Parameter(pl,                  -- Descripteur de
                                         -- ParamList
            'the_Where_Clause',          -- Nom du paramètre
                                         -- dans le rapport
            TEXT_PARAMETER,              -- Type de paramètre
            wc                           -- Valeur de chaîne
                                         -- du paramètre
            );
   END IF;
   /*
   ** Lancer l'état en transmettant les paramètres de la
   ** liste de paramètres..
   */
   Run_Product(REPORTS,              -- Produit à appeler
                'rep0058.rdf',       -- Nom de la définition
                                     -- du rapport
                SYNCHRONOUS,         -- Mode de communication
                BATCH,               -- Mode d'exécution
                FILESYSTEM,          -- Emplacement du document
                                     -- d'états
                pl                   -- Descripteur de la
      );                                -- liste de paramètres
   /*   Supprimer la liste de paramètres  */
   Destroy_Parameter_List(pl);
END;


SYSTEM.LAST_RECORD - Variable système

 Exemples

Syntaxe

SYSTEM.LAST_RECORD

Description

SYSTEM.LAST_RECORD indique si l'enregistrement en cours est le dernier enregistrement d'une liste d'enregistrements d'un bloc. Sa valeur est l'une des deux valeurs de type CHAR ci-dessous :

TRUE	TRUE Indique que l'enregistrement en cours est le dernier de la liste des enregistrements du bloc en cours.
FALSE	FALSE Indique que l'enregistrement en cours n'est pas le dernier de la liste des enregistrements du bloc en cours.


SYSTEM.LAST_RECORD - Exemples

Supposons que vous vouliez créer une procédure, définie par l'utilisateur, qui affiche un message personnalisé lorsqu'un utilisateur passe au dernier enregistrement de la liste des enregistrements d'un bloc. La procédure suivante, définie par l'utilisateur, exécute la fonction de base.

PROCEDURE LAST_RECORD_MESSAGE IS
BEGIN
   IF :System.Last_Record = 'TRUE'
      THEN Message('Cette ligne est la dernière');
   END IF;
END;

Vous pouvez alors redéfinir [Bas], [Enregistrement suivant] et [Défiler vers le bas] pour appeler la procédure définie par l'utilisateur, en plus du traitement normal.


SYSTEM.MASTER_BLOCK - Variable système

Syntaxe

SYSTEM.MASTER_BLOCK

Description

Cette variable système s'utilise avec la variable associée SYSTEM.COORDINATION_OPERATION pour permettre à un déclencheur On-Clear-Details de déterminer plus facilement le type de l'opération, entraînant une coordination, qui a activé le déclencheur, et le bloc maître d'une relation maître/détail sur lequel a porté l'opération.

Les valeurs des deux variables système restent constantes pendant toute la phase d'effacement d'une synchronisation de bloc. SYSTEM.MASTER_BLOCK représente le nom du bloc maître de commande, et SYSTEM_COORDINATION_OPERATION l'événement entraînant une coordination, qui s'est produit sur le bloc maître.

Pour plus d'informations, reportez-vous à la rubrique de référence SYSTEM.COORDINATION_OPERATION.


SYSTEM.MESSAGE_LEVEL - Variable système

 Examples

Syntaxe

SYSTEM.MESSAGE_LEVEL

Description

SYSTEM.MESSAGE_LEVEL stocke l'un des niveaux de gravité de message suivants : 0, 5, 10, 15, 20 ou 25. La valeur par défaut est 0.

SYSTEM.MESSAGE_LEVEL peut être définie sur une chaîne de caractères ou sur un nombre. Les valeurs attribuées peuvent être comprises entre 0 et 25 ; les valeurs inférieures à 0 ou supérieures à 25 génèrent une erreur.

Pendant une session Runform, Form Builder supprime tous les messages dont le niveau de gravité est identique ou inférieur au niveau de gravité indiqué.

Pour attribuer une valeur à la variable système SYSTEM.MESSAGE_LEVEL, utilisez la syntaxe PL/SQL standard suivante :

:System.Message_Level := valeur;

Les valeurs autorisées sont 0, 5, 10, 15, 20 ou 25. Form Builder ne supprime pas les invites ou les messages d'erreur vitaux, quel que soit le niveau de gravité que vous sélectionnez.


SYSTEM.MESSAGE_LEVEL - Exemples

Si vous vouliez que Form Builder n'affiche que les messages les plus graves (niveau 25), le déclencheur Pre-Form ci-dessous supprime tous les messages de niveaux 20 et inférieurs.

:System.Message_Level := '20';


SYSTEM.MODE - Variable système

 Examples

Syntaxe

SYSTEM.MODE

Description

SYSTEM.MODE indique si l'application Forms est en mode Normal, Saisie interrogation ou Extraction. La valeur est toujours une chaîne de caractères.

NORMAL	NORMAL Indique que l'application Forms est en mode de traitement Normal.
SAISIE INTERROGATION	SAISIE INTERROGATION Indique que l'application Forms est en mode Saisie interrogation.
INTERROGATION	INTERROGATION Indique que l'application Forms est en mode d'extraction, ce qui signifie qu'une interrogation est en cours de traitement.
Notes d'utilisation

Lorsque vous utilisez SYSTEM.MODE pour vérifier si le bloc en cours est en mode Saisie interrogation, n'oubliez pas que si vous effectuez le test à partir d'un déclencheur When-Button-Pressed dans un bloc de contrôle, le mode Saisie interrogation ne sera jamais activé, car le bloc de contrôle n'est pas le bloc en cours.


SYSTEM.MODE - Exemples

Supposons que vous vouliez que Form Builder affiche une LOV lorsque l'utilisateur passe en mode Interrogation et que le point d'insertion est dans un élément texte particulier. Le déclencheur ci-dessous exécute l'opération.

/*
** Déclencheur When-New-Item-Instance
*/
BEGIN
   IF :System.Cursor_Item = 'EMP.NOEMP' and
     :System.Mode = 'SAISIE INTERROGATION'
   THEN
      IF NOT Show_Lov('ma_lov') THEN
         RAISE Form_Trigger_Failure;
   END IF;
END;


SYSTEM.MOUSE_BUTTON_MODIFIERS - Variable système

Syntaxe

SYSTEM.MOUSE_BUTTON_MODIFIERS

Description

SYSTEM.MOUSE_BUTTON_MODIFIERS indique les touches sur lesquelles vous avez appuyé lors du clic, telles que MAJ, ALT ou CTRL. La valeur est toujours une chaîne de caractères.

Par exemple, si l'opérateur appuie sur les touches Ctrl et Maj tout en appuyant sur le bouton de la souris, SYSTEM.MOUSE_BUTTON_MODIFIERS contient la valeur « Maj+Ctrl+ ».

Les valeurs retournées par cette variable sont invariantes sur toutes les plates-formes et ne sont pas modifiées en fonction des langages. Il est préférable d'utiliser SYSTEM.MOUSE_BUTTON_MODIFIERS au lieu de SYSTEM.MOUSE_BUTTON_SHIFT_STATE.

Les différentes valeurs possibles sont : « Maj+ », « Verr Num+ », « Ctrl+ », « Alt+ », « Commande+ », « Super+ » et « Hyper+ ».


SYSTEM.MOUSE_BUTTON_PRESSED - Variable système

 Examples [image] Rubriques connexes

Syntaxe

SYSTEM.MOUSE_BUTTON_PRESSED

Description

SYSTEM.MOUSE_BUTTON_PRESSED indique le numéro du bouton sur lequel l'utilisateur a cliqué, (1, 2 ou 3, respectivement gauche, milieu ou droite). La valeur est toujours une chaîne de caractères.

Remarques :

Sur les plates-formes Motif, le fait de cliquer avec le bouton droit de la souris ne définit pas la valeur SYSTEM.MOUSE_BUTTON_PRESSED.


SYSTEM.MOUSE_BUTTON_PRESSED - Exemples

/*

**  Déclencheur : When-Mouse-Click
**  Exemple :     Lorsque l'utilisateur appuie sur le bouton 1
**                de la souris, une fenêtre d'aide s'affiche.
*/
DECLARE
   the_button_pressed  VARCHAR(1);
BEGIN
   the_button_pressed := :System.Mouse_Button_Pressed;
   IF the_button_pressed = '1' THEN
      Show_Window('online_help',20,5);
   END IF;
END;


SYSTEM.MOUSE_BUTTON_SHIFT_STATE - Variable système

 Exemples 	 Rubriques connexes

Syntaxe

SYSTEM.MOUSE_BUTTON_SHIFT_STATE

Description

SYSTEM.MOUSE_BUTTON_SHIFT_STATE indique la touche sur laquelle l'utilisateur a appuyé tout en cliquant avec la souris (MAJ, ALT ou CTRL). La valeur est toujours une chaîne de caractères. La chaîne elle-même peut dépendre de la plate-forme de l'utilisateur. Par exemple, dans Microsoft Windows, les chaînes retournées sont dans le langage du système d'exploitation.

Touche utilisée	Valeur
MAJ	Maj+
CTRL	Ctrl+
ALT	Alt+
MAJ+CTRL	Maj+Ctrl+


SYSTEM.MOUSE_BUTTON_SHIFT_STATE - Exemples

/*

**  Déclencheur : When-Mouse-Click
**  Exemple :     Si l'utilisateur appuie sur la touche Maj et
**                clique sur une image standard, une fenêtre
**                s'affiche.
*/
DECLARE
   key_pressed  VARCHAR(30) := 'FALSE';
   x_position_clicked NUMBER(30);
   y_position_clicked NUMBER(30);

BEGIN
   key_pressed := :System.Mouse_Button_Shift_State;
   x_position_clicked := To_Number(:System.Mouse_X_Pos);
   y_position_clicked := To_Number(:System.Mouse_Y_Pos);
/*
**  Si l'utilisateur appuie sur Maj et clique dans les
**  coordonnées x et y d'une image standard, afficher une fenêtre.
*/
   IF  key_pressed = 'Maj+' AND x_position_clicked
      BETWEEN 10 AND 20 AND y_position_clicked BETWEEN 10
      AND 20 THEN
      Show_Window('fenêtre_image_standard');
   END IF;
END;


SYSTEM.MOUSE_CANVAS - Variable système

  Exemples 	{button, ALink(SYSMBP; SYSMBSS;  SYSMOUFM; SYSMOUIT; SYSMOURC; SYSMRO; SYSMOUX; SYSMOUY,,,)} Rubriques connexes

Syntaxe

SYSTEM.MOUSE_CANVAS

Description

Si la souris se trouve dans un canevas, SYSTEM.MOUSE_CANVAS représente le nom de ce canevas sous la forme d'une valeur de type CHAR. Si la souris est dans un élément, cette variable représente le nom du canevas contenant l'élément.

SYSTEM.MOUSE_CANVAS est NULL si :

•	la souris n'est pas dans un canevas ;

•	l'opérateur appuie sur le bouton gauche de la souris, puis déplace celle-ci ;

•	la plate-forme n'est pas à interface graphique.


SYSTEM.MOUSE_CANVAS - Exemples

/*

**  Déclencheur : When-Mouse-Move
**  Exemple :     Lorsque la souris passe dans l'un des canevas
**                qui se chevauchent, Form Builder affiche ce
**                canevas au premier plan.
*/
DECLARE
   canvas_to_front  VARCHAR(50);
BEGIN
   canvas_to_front := :System.Mouse_Canvas;
   Show_View(canvas_to_front);
END;


SYSTEM.MOUSE_FORM - Variable système

 Rubriques connexes

Syntaxe

SYSTEM.MOUSE_FORM

Description

Si la souris est dans un document d'application Forms, SYSTEM.MOUSE_FORM représente le nom de ce document d'application Forms sous la forme d'une valeur de type CHAR. Par exemple, si la souris est dans Form_Module1, la valeur de SYSTEM.MOUSE_ITEM est FORM_MODULE1.

Remarque : SYSTEM.MOUSE_FORM est NULL si la plate-forme n'est pas une plate-forme à interface graphique.


SYSTEM.MOUSE_ITEM - Variable système

 Examples 	 	 Rubriques connexes

Syntaxe

SYSTEM.MOUSE_ITEM

Description

Si la souris est dans un élément, SYSTEM.MOUSE_ITEM représente le nom de cet élément sous la forme d'une valeur de type CHAR. Par exemple si la souris est dans l'élément 1 du bloc 2, la valeur de SYSTEM.MOUSE_ITEM est :BLOC2.ELEMENT1.

SYSTEM.MOUSE_ITEM est NULL si :

•	la souris n'est pas dans un élément ;

•	l'opérateur appuie sur le bouton gauche de la souris, puis déplace celle-ci ;

•	la plate-forme n'est pas une plate-forme à interface graphique.


SYSTEM.MOUSE_ITEM - Exemples

/* Déclencheur : When-Mouse-Click

**   Exemple :   Repositionner dynamiquement un élément si :
**               1) l'utilisateur clique sur un élément avec  **                  le bouton 2 de la souris et
**               2) clique ensuite, avec le bouton 2 de la
**                  souris, dans une zone du canevas qui ne
**                  se trouve pas directement au-dessus
**                  d'un autre élément.
*/
DECLARE
   item_to_move       VARCHAR(50);
   the_button_pressed VARCHAR(50);
   target_x_position  NUMBER(3);
   target_y_position  NUMBER(3);
   the_button_pressed VARCHAR(1);
BEGIN
   /* Lire le nom de l'élément dans lequel l'utilisateur a cliqué
   */
   item_to_move := :System.Mouse_Item;
   the_button_pressed := :System.Mouse_Button_Pressed;
   /*
   **  Si l'utilisateur a cliqué, avec le bouton 2 de la souris, dans une
   **  zone du canevas qui n'est pas directement au-dessus d'un autre élément, faire
   **  passer l'élément au nouvel emplacement de la souris.
   */
   IF item_to_move IS NOT NULL AND the_button_pressed =  '2' THEN
      target_x_position := To_Number(:System.Mouse_X_Pos);
      target_y_position := To_Number(:System.Mouse_Y_Pos);
      Set_Item_Property(item_to_move,position,
          target_x_position,target_y_position);
      target_x_position := NULL;
      target_y_position := NULL;
      item_to_move := NULL;
   END IF;
END;


SYSTEM.MOUSE_RECORD - Variable système

 Exemples 	 Rubriques connexes

Syntaxe

SYSTEM.MOUSE_RECORD

Description

Si la souris se trouve dans un enregistrement, SYSTEM.MOUSE_RECORD représente le numéro de cet enregistrement sous la forme d'une valeur de type CHAR.

Remarque : SYSTEM.MOUSE_RECORD a la valeur 0 si la souris n'est pas dans un élément (et n'est donc pas dans un enregistrement).


SYSTEM.MOUSE_RECORD - Exemples

/*

**  Déclencheur : When-Mouse-Move Exemple :     Si la souris se trouve dans un
**                enregistrement, afficher une fenêtre
**                contenant une barre d'outils d'édition.
*/
DECLARE
   mouse_in_record  NUMBER(7);
BEGIN
   mouse_in_record := To_Number(:System.Mouse_Record);

   IF mouse_in_record > 0 THEN
      Show_Window('barre_outils_édition');
   END IF;
END;


SYSTEM.MOUSE_RECORD_OFFSET - Variable système

 Rubriques connexes

Syntaxe

SYSTEM.MOUSE_RECORD_OFFSET

Description

Si la souris est dans un enregistrement, SYSTEM.MOUSE_RECORD_OFFSET représente le décalage à partir du premier enregistrement visible, sous la forme d'une valeur de type CHAR. SYSTEM.MOUSE_RECORD_OFFSET n'est valide que dans les déclencheurs de souris. Sa valeur représente la ligne, parmi les lignes affichées, sur laquelle la souris a cliqué.

Par exemple, si la souris se trouve dans le deuxième enregistrement de cinq enregistrements visibles d'un bloc, SYSTEM.MOUSE_RECORD_OFFSET a la valeur 2. (SYSTEM.MOUSE_RECORD_OFFSET utilise un index à base 1).

Remarque : SYSTEM.MOUSE_RECORD_OFFSET a la valeur 0 si la souris n'est pas dans un élément (et n'est donc pas dans un enregistrement).


SYSTEM.MOUSE_X_POS - Variable système

 Exemples 	 	 Rubriques connexes

Syntaxe

SYSTEM.MOUSE_X_POS

Description

SYSTEM.MOUSE_X_POS représente (sous la forme d'une valeur de type CHAR) la coordonnée x de la souris, en unités du système de coordonnées de l'application Forms en cours. Si la souris se trouve dans un élément, la valeur est liée à l'angle supérieur gauche de la boîte qui délimite l'élément. Si la souris est dans un canevas, la valeur est liée à l'angle supérieur gauche du canevas.

Remarque : SYSTEM.MOUSE_X_POS a toujours la valeur NULL sur les plates-formes en mode caractère.


SYSTEM.MOUSE_X_POS - Exemples

/*

**  Exemple : Voir SYSTEM.MOUSE_ITEM et
**            SYSTEM.MOUSE_BUTTON_SHIFT_STATE.
*/


SYSTEM.MOUSE_Y_POS - Variable système

 Exemples 	 Rubriques connexes

Syntaxe

SYSTEM.MOUSE_Y_POS

Description

SYSTEM.MOUSE_Y_POS représente (sous la forme d'une valeur de type CHAR) la coordonnée y de la souris, en unités du système de coordonnées de l'application Forms en cours. Si la souris se trouve dans un élément, la valeur est liée à l'angle supérieur gauche de la boîte qui délimite l'élément. Si la souris est dans un canevas, la valeur est liée à l'angle supérieur gauche du canevas.

Remarque : SYSTEM.MOUSE_Y_POS a toujours la valeur NULL sur les plates-formes en mode caractère.


SYSTEM.MOUSE_Y_POS - Exemples

/*

**  Exemple : Voir SYSTEM.MOUSE_ITEM et
**            SYSTEM.MOUSE_BUTTON_SHIFT_STATE.
*/


SYSTEM.RECORD_STATUS - Variable système

 Examples 	     Rubriques connexes

Syntaxe

SYSTEM.RECORD_STATUS

Description

SYSTEM.RECORD_STATUS représente l'état de l'enregistrement dans lequel se trouve le curseur. La valeur peut être l'une des quatre chaînes de caractères suivantes :

MODIFIE	MODIFIE Indique que l'état de validation d'un enregistrement interrogé est Modifié.
INSERTION	INSERTION Indique que l'état de validation de l'enregistrement est Modifié et que l'enregistrement n'existe pas dans la base de données.
NOUVEAU	NOUVEAU Indique que l'état de validation de l'enregistrement est Nouveau.
INTERROGATION	INTERROGATION Indique que l'état de validation de l'enregistrement est Valide et qu'il a été extrait de la base de données.
Notes d'utilisation

Les procédures internes SYSTEM.RECORD_STATUS et GET_RECORD_PROPERTY retournent l'état d'un enregistrement se trouvant dans un bloc donné et, dans la plupart des cas, retournent le même état. Cependant, dans certains cas les résultats peuvent différer.

SYSTEM.RECORD_STATUS peut, dans certains cas, retourner la valeur NULL, car SYSTEM.RECORD_STATUS n'est pas défini lorsqu'il n'y a pas d'enregistrement en cours dans le système. Par exemple, dans un déclencheur When-Clear-Block, Form Builder est au niveau bloc dans sa séquence de traitement, et il n'y a donc pas d'enregistrement en cours sur lequel établir un rapport, et la valeur de SYSTEM.RECORD_STATUS est NULL.

Par contre, GET_RECORD_PROPERTY a toujours la valeur NOUVEAU, MODIFIE, INTERROGATION ou INSERTION, car il retourne l'état d'un enregistrement spécifique, sans tenir compte de la séquence de traitement ou de l'éventualité, pour l'enregistrement, d'être l'enregistrement en cours.


SYSTEM.RECORD_STATUS - Exemples

Supposons que vous vouliez créer un déclencheur qui exécute une opération commit avant d'effacer un enregistrement modifié. Le déclencheur Key-CLRREC ci-dessous exécute cette fonction.

IF :System.Record_Status IN ('MODIFIE', 'INSERTION') THEN
   Commit_Form;
END IF;
Clear_Record;


SYSTEM.SUPPRESS_WORKING - Variable système

 Exemples

Syntaxe

SYSTEM.SUPPRESS_WORKING

Description

SYSTEM.SUPPRESS_WORKING supprime le message "En cours..." dans Runform pour empêcher la mise à jour de l'écran, généralement provoquée par l'affichage de ce message. La valeur de la variable est l'une des deux valeurs suivantes de type CHAR :

TRUE	Empêche Form Builder d'émettre le message « En cours... ».
FALSE	Permet à Form Builder de continuer à afficher le message « En cours... ».


SYSTEM.SUPPRESS_WORKING - Exemples

Supposons que vous vouliez que l'application Forms soit remplie de données lorsque l'utilisateur passe dans cette application. Le déclencheur When-New-Form-Instance ci-dessous empêche les mises à jour qui se produisent, normalement, lorsque vous remplissez les blocs de données.

:System.Suppress_Working := 'TRUE';
Go_Block ('DEPT');
Execute_Query;
Go_Block ('EMP');
Execute_Query;
Go_Block ('DEPT');
:System.Suppress_Working := 'FALSE';


SYSTEM.TAB_NEW_PAGE - Variable système

 Exemples 	     Rubriques connexes

Syntaxe

SYSTEM.TAB_NEW_PAGE

Description

La variable système SYSTEM.TAB_NEW_PAGE indique le nom de la page à onglet à laquelle la navigation s'est produite. Utilisez-la dans un déclencheur When-Tab-Page-Changed.


SYSTEM.TAB_NEW_PAGE - Exemples

/* Utiliser la variable système SYSTEM.TAB_NEW_PAGE dans un

** déclencheur When-Tab-Page-Changed pour faire passer en
** MAJUSCULES le libellé de la page à onglet lorsqu'un
** utilisateur passe dans cette page à onglet :
*/
DECLARE
  tp_nm   VARCHAR2(30);
  tp_id   TAB_PAGE;
  tp_lbl  VARCHAR2(30);
BEGIN
  tp_nm  := :SYSTEM.TAB_NEW_PAGE;
  tp_id  := FIND_TAB_PAGE(tp_nm);
  tp_lbl := GET_TAB_PAGE_PROPERTY(tp_id, label);
  IF tp_nm LIKE 'ORD%' THEN
    SET_TAB_PAGE_PROPERTY(tp_id, label, 'COMMANDES');
  END IF;
END;


SYSTEM.TAB_PREVIOUS_PAGE - Variable système

 Exemples 	     Rubriques connexes

Syntaxe

SYSTEM.TAB_PREVIOUS_PAGE

Description

La variable système SYSTEM.TAB_PREVIOUS_PAGE indique le nom de la page à onglet à partir de laquelle la navigation s'est produite. Utilisez-la dans un déclencheur When-Tab-Page-Changed.


SYSTEM.TAB_PREVIOUS_PAGE - Exemples

/* Utiliser la variable système SYSTEM.TAB_PREVIOUS_PAGE

** dans un déclencheur When-Tab-Page-Changed pour faire passer
** en majuscule initiale le libellé de la page à onglet  ** lorsqu'un utilisateur sort de la page à onglet :
*/
DECLARE
  tp_nm   VARCHAR2(30);
  tp_id   TAB_PAGE;
  tp_lbl  VARCHAR2(30);
BEGIN
  tp_nm  := :SYSTEM.TAB_PREVIOUS_PAGE;
  tp_id  := FIND_TAB_PAGE(tp_nm);
  tp_lbl := GET_TAB_PAGE_PROPERTY(tp_id, label);
  IF tp_nm LIKE 'ORD%' THEN
    SET_TAB_PAGE_PROPERTY(tp_id, label, 'Commandes');
  END IF;
END;


SYSTEM.TRIGGER_BLOCK - Variable système

 Exemples 	 	  Rubriques connexes

Syntaxe

SYSTEM.TRIGGER_BLOCK

Description

SYSTEM.TRIGGER_BLOCK représente le nom du bloc dans lequel se trouvait le curseur lorsque le déclencheur en cours a été activé pour la première fois. La valeur est NULL si le déclencheur en cours est un déclencheur Pre- or Post-Form. La valeur est toujours une chaîne de caractères.


SYSTEM.TRIGGER_BLOCK - Exemples

Supposons que vous vouliez écrire une procédure de niveau application Forms qui passe au bloc dans lequel se trouvait le curseur lorsque le déclencheur en cours a été activé pour la première fois. L'instruction ci-dessous exécute cette fonction.

Go_Block(Name_In('System.Trigger_Block'));


SYSTEM.TRIGGER_ITEM system variable

 Exemples 	   Restrictions

Syntaxe

SYSTEM.TRIGGER_ITEM

Description

SYSTEM.TRIGGER_ITEM représente l'élément (BLOCK.ELEMENT) dans la portée pour laquelle le déclencheur est actuellement activé. Lorsqu'il y est fait référence dans un déclencheur sur touche, il représente l'élément dans lequel se trouvait le curseur lorsque le déclencheur a commencé. La valeur est toujours une chaîne de caractères.

Notes d'utilisation

La variable SYSTEM.TRIGGER_ITEM reste la même du début à la fin du déclencheur donné, à la différence de SYSTEM.CURSOR_ITEM qui peut changer dans un déclencheur donné lorsque la navigation a lieu.


SYSTEM.TRIGGER_ITEM - Restrictions

Evitez d'utiliser SYSTEM.TRIGGER_ITEM dans des déclencheurs lorsque l'unité de navigation en cours n'est pas l'élément, comme les déclencheurs Pre- et Post-Record, Block et Form . Dans ces déclencheurs, la valeur de SYSTEM.TRIGGER_ITEM est NULL.


SYSTEM.TRIGGER_ITEM - Exemples

Supposons que vous vouliez écrire une procédure, définie par l'utilisateur, qui passe à l'élément dans lequel se trouvait le curseur lorsque le déclencheur en cours a été activé pour la première fois. L'instruction ci-dessous exécute cette fonction.

Go_Item(:System.Trigger_Item);


SYSTEM.TRIGGER_NODE_SELECTED - Variable système

Syntaxe

SYSTEM.TRIGGER_NODE_SELECTED

Description

SYSTEM.TRIGGER_NODE_SELECTED contient une valeur valide uniquement pendant que le déclencheur WHEN-TREE-NODE-SELECTED est activé, indiquant si celui-ci effectue une sélection ou une désélection. Les valeurs sont TRUE ou FALSE.


SYSTEM.TRIGGER_RECORD - Variable système

 Exemples

Syntaxe

SYSTEM.TRIGGER_RECORD

Description

SYSTEM.TRIGGER_RECORD représente le numéro de l'enregistrement en cours de traitement par Form Builder. Ce numéro représente l'ordre physique de l'enregistrement dans la liste des enregistrements du bloc. La valeur est toujours une chaîne de caractères.


SYSTEM.TRIGGER_RECORD - Exemples

Dans le bloc anonyme ci-dessous, l'instruction IF utilise SYSTEM.TRIGGER_RECORD pour identifier l'enregistrement en cours avant que le traitement se poursuive.

IF :System.Trigger_Record = '1'
   THEN Message('Premier élément de cet ordre.');
END IF;


Utilisation des horloges


A propos des horloges

  Rubriques connexes

Dans cette documentation, le terme "horloge" fait référence à une horloge interne que vous créez par programme pour l'exécution d'une action chaque fois que le délai est écoulé.

Le délai indiqué par l'horloge peut être compris entre 1 et 2 147 483 647 millisecondes (1 seconde=1 000 millisecondes). Le délai maximum que peut indiquer une horloge est d'environ 24,85 jours.

Lorsque vous utilisez une horloge interne, vous exécutez plusieurs opérations :

1.	Créez le nombre voulu d'horloges répétitives ou non répétitives à l'aide du sous-programme intégré CREATE_TIMER.

2.	Vous créez un déclencheur When-Timer-Expired qui exécute l'action voulue lorsque le délai indiqué par l'horloge est écoulé.


A propos des règles d'utilisation des horloges

  Rubriques connexes

Lorsque vous utilisez des horloges, vous devez respecter un certain nombre de règles d'usage, à savoir :

• Un déclencheur When-Timer-Expired ne peut pas être activé pendant des transactions, un traitement de déclencheur, une opération de navigation, etc. Cela étant, ce type de déclencheur n'est activé que lorsque Form Builder attend d'accepter une entrée de l'utilisateur.

Le délai indiqué par une horloge ne peut donc pas expirer exactement à la milliseconde prévue, mais l'horloge sera activée après le nombre de millisecondes indiquées.

• Par défaut, une horloge répète une opération lorsque le délai a expiré, à moins que vous n'ayez indiqué NO_REPEAT.

• Lorsque Form Builder a créé une horloge, il l'entre dans une file d'attente.

Un déclencheur When-Timer-Expired n'est activé qu'une fois par horloge stockée dans la file d'attente.

• Une horloge itérative ne répète l'opération que pendant qu'elle est dans la file d'attente. La répétition commence une fois l'horloge extraite de la file d'attente par un déclencheur When-Timer-Expired. Il n'est donc possible de placer qu'une instance d'une horloge à la fois dans la file d'attente des horloges dont le délai a expiré.

• Si l'utilisateur quitte une application avant l'expiration du délai, aucune horloge se trouvant dans la file d'attente ne sera exécutée par le déclencheur When-Timer-Expired.


Création d'une horloge

 Exemples   [image]  Rubriques connexes

Pour créer une horloge, vous pouvez utiliser le sous-programme interne CREATE_TIMER.

CREATE_TIMER(nom_horloge, millisecondes, itération);

où :

nom_horloge	Permet d'indiquer le nom de l'horloge (maximum 30 caractères alphanumériques). Le nom doit commencer par un caractère alphabétique. Les données du nom sont de type CHAR.
millisecondes	Permet d'indiquer la durée du délai, en millisecondes. La plage des valeurs autorisées pour ce paramètre est comprise entre 1 et 2147483648 millisecondes. Les valeurs supérieures à 2147483648 seront arrondies à 2147483648. Notez que seuls les nombres positifs sont autorisés. Les données du paramètre sont de type NUMBER. Pour plus d'informations, reportez-vous à Restrictions, ci-après.
Itération	Permet d'indiquer si l'horloge doit ou non répéter l'opération à l'expiration du délai. Utilisez comme argument les constantes suivantes :
	REPEAT (constante par défaut) Permet d'indiquer que l'horloge doit répéter l'opération à l'expiration du délai.
	NO_REPEAT Permet d'indiquer que l'horloge ne doit pas répéter l'opération à l'expiration du délai, mais qu'elle doit être utilisée une seule fois, jusqu'à ce qu'elle soit appelée à nouveau explicitement.


Création d'une horloge - Exemples

/*  Créer une horloge itérative dont le délai expire toutes les heures.*/
DECLARE
     hour_timer TIMER;
     one_hour     NUMBER(7):=3600000;
BEGIN
     hour_timer:= CREATE_TIMER('alarme',one_hour,REPEAT);
END;


Réponse à des horloges multiples

 Exemples   [image]  Rubriques connexes

Lorsque vous utilisez plusieurs horloges, notez que When-Timer-Expired est un déclencheur de niveau application Forms. Il est activé chaque fois que le délai indiqué par une horloge arrive à expiration. Si votre application contient plusieurs horloges, votre déclencheur When-Timer-Expired doit contenir un code qui gérera les différentes horloges en conséquence..

Remarque : Pour extraire le nom de l'horloge exécutée en dernier, déclenchez un appel à GET_APPLICATION_PROPERTY à partir d'un déclencheur When-Timer-Expired. Sinon, les résultats de la procédure interne seraient imprévisibles.


Réponse à des horloges multiples - Exemple

/*  Créer un déclencheur When-Timer-Expired qui peut gérer plusieurs
**  horloges d'application.
*/
DECLARE
     expired_timer  CHAR(20);
BEGIN
     expired_timer:=GET_APPLICATION_PROPERTY(TIMER_NAME);
     IF expired_timer='T1'
        THEN /* gérer l'horloge T1 */;
     ELSIF expired_timer='T2'
        THEN /* gérer l'horloge T2 */;
     ELSE /* gérer toutes les autres horloges */;
     END IF;
END;


Modification d'une horloge par programme

 Exemples   [image]  Rubriques connexes

Lorsque vous travaillez avec des horloges, vous pouvez utiliser les sous-programmes intégrés suivants :

•	CREATE_TIMER

•	DELETE_TIMER

•	FIND_TIMER

•	GET_APPLICATION_PROPERTY

•	SET_TIMER

Remarque : Vous ne pouvez pas modifier par programme le nom d'une horloge.


Modification d'une horloge par programme - Exemple

/*
** Procédure interne : FIND_TIMER
**
** Exemple :           Si l'horloge existe, la restaurer.
**                     Sinon, la créer.
*/
PROCEDURE Reset_Timer_Interval( Timer_Name VARCHAR2,
Timer_Intv NUMBER ) IS
  tm_id       Timer;
  tm_interval NUMBER;
BEGIN
  /*
  ** L'utilisateur indique l'intervalle en secondes, alors que
  ** les routines de l'horloge attendent des millisecondes.
  */
  tm_interval := 1000 * Timer_Intv;
  /* Rechercher l'horloge d'après son nom */
  tm_id := Find_Timer(Timer_Name);
  /* Si l'horloge n'existe pas, la créer */
  IF Id_Null(tm_id) THEN
    tm_id := Create_Timer(Timer_Name,tm_interval,NO_REPEAT);
  /*
  ** Sinon, relancer simplement l'horloge avec un nouvel intervalle.
  */
  ELSE
    Set_Timer(tm_id,tm_interval,NO_REPEAT);
  END IF;
END;


Suppression d'une horloge

 Exemples   [image]  Rubriques connexes

Pour supprimer les horloges répétitives et non répétitives, utilisez le sous-programme intégré DELETE_TIMER.


Suppression d'une horloge - Exemples

/*
** Procédure interne :  DELETE_TIMER
** Exemple :            Supprimer une horloge après
**                      vérification de son existence.
*/
PROCEDURE Cancel_Timer (tm_name VARCHAR2) IS
     tm_id  TIMER;
BEGIN
  tm_id:=Find_Timer(tm_name);
  IF NOT Id_Null(tm_id) THEN
    Delete_Timer(tm_id);
  ELSE
    Message('L'horloge '||' a déjà été annulée.');
  END IF;
END;


A propos des bulles d'information

  Rubriques connexes

Une bulle d'information est une petite boîte de texte qui affiche des informations d'aide sur un élément lorsque la souris passe dans l'élément.

Une bulle d'information s'affiche lorsque la souris passe dans un élément et reste dans l'élément pendant au moins une demi-seconde. Le texte s'affiche directement sous l'élément, dans une boîte centrée dont la taille est déterminée par l'espace nécessaire à l'affichage du texte. La boîte a pratiquement les dimensions du texte, horizontalement et verticalement, et est entourée d'une fine bordure.

La bulle d'information est affichée dans l'attribut visuel indiqué. En l'absence d'attribut visuel, elle utilise les mêmes informations d'attribut visuel que l'élément pour lequel elle est affichée.

La bulle d'information reste visible jusqu'à ce que la souris sorte de l'élément ou passe à un autre élément, qu'une autre fenêtre soit affichée ou que l'utilisateur exécute une action sur l'élément pour lequel la bulle d'information est affichée.


Création d'une bulle d'information

  Rubriques connexes

Pour créer une bulle d'information :

1.	Dans le Navigateur d'objet, cliquez deux fois sur l'icône d'objet en regard de l'élément pour lequel vous voulez créer une bulle d'information. La Palette de propriétés s'affiche.

2.	Sous le noeud Aide, sélectionnez la propriété Bulle d'information.

3.	Tapez le texte de la bulle d'information dans le champ de propriété Bulle d'information.

Création et manipulation de bulles d'information par programme  Vous pouvez également créer et manipuler des bulles d'information par programme, en utilisant TOOLTIP_TEXT et TOOLTIP_ATTRIBUTE avec les sous-programmes intégrés suivants :

GET_ITEM_PROPERTY

SET_ITEM_PROPERTY


A propos des déclencheurs et des événements

  Rubriques connexes

Les déclencheurs sont des blocs de code PL/SQL écrits pour effectuer certaines tâches lorsqu'un événement spécifique se produit au sein d'une application. En fait, un déclencheur Form Builder est un gestionnaire d'événements écrit en langage PL/SQL destiné à étendre (ou occasionnellement à remplacer) le déroulement du traitement par défaut. Chaque déclencheur a un nom et contient une ou plusieurs instructions PL/SQL. Un déclencheur intègre le code PL/SQL afin qu'il puisse être associé à un événement, exécuté et conservé sous la forme d'un objet distinct.

Lorsque Form Builder réagit à un événement en exécutant le code d'un déclencheur, ce dernier est dit "activé". La plupart des applications Forms comportent de nombreux déclencheurs activés en réponse à une grande variété d'événements.

Un déclencheur doit être attaché à un objet spécifique de l'application Forms, un élément, un bloc ou l'application Forms elle-même. L'objet auquel un déclencheur est attaché définit la portée du déclencheur et aide Form Builder à choisir le déclencheur à activer lorsque l'événement correspondant se produit. Tous les déclencheurs ne peuvent pas être utilisés pour tous les objets. Par exemple, un déclencheur When-Button-Pressed ne sera pas attaché à un élément d'affichage.

Les noms de déclencheur correspondent à des événements d'exécution prédéfinis. Par exemple, le déclencheur When-Button-Pressed correspond à l'événement Bouton enfoncé qui se produit lorsqu'un utilisateur sélectionne un bouton. Le nom du déclencheur établit la relation entre l'événement et le code du déclencheur ; lorsque l'utilisateur clique sur un bouton à l'aide de la souris, Form Builder réagit en exécutant le code du déclencheur When-Button-Pressed.

Par exemple, dans une application Forms comprenant trois boutons, à chaque bouton est attaché un déclencheur When-Button-Pressed, et chaque déclencheur contient des instructions PL/SQL différentes. Lorsqu'un utilisateur sélectionne l'un des boutons, c'est-à-dire lorsque l'événement Bouton enfoncé se produit, Form Builder réagit en n'activant que le déclencheur When-Button-Pressed attaché au bouton sélectionné. Les déclencheurs When-Button-Pressed attachés aux deux autres boutons ne sont pas pris en compte, car ils sont hors de la portée de l'événement.


Types d'événement

  Rubriques connexes

Form Builder reconnaît un ensemble prédéfini d'événements d'exécution, qui ont chacun un déclencheur intégré correspondant. Lorsque vous ajoutez du code à une application en écrivant un déclencheur, il est important de choisir l'événement qui activera ce dernier. L'événement que vous choisissez détermine le nom attribué au déclencheur.

Evénements d'interface

Lorsque vous sélectionnez des déclencheurs, vous devez savoir exactement à quel moment les événements se produisent par rapport aux autres événements et au traitement de l'application Forms. Certains événements sont des événements d'interface externe, et leur occurrence est perçue immédiatement. Parmi ces événements, et les déclencheurs correspondants, figurent :

Evénement	Nom du déclencheur
Enfoncer un bouton	When-Button-Pressed
Cliquer sur une case à cocher	When-Checkbox-Changed
Enfoncer la touche de tabulation	KEY-FN
Evénements de traitement interne

Les événements internes se produisent à la suite du traitement runtime. Ces événements se produisent selon le modèle de traitement de Form Builder.

Soit deux blocs, Bloc A et Bloc B, contenant chacun des éléments de texte. Sur les plates-formes  à interface graphique, les utilisateurs peuvent déplacer le point d'insertion d'un élément de texte du bloc A à un élément de texte du bloc B en cliquant sur l'élément cible à l'aide de la souris. Bien que cette opération implique une seule action d'interface (cliquer sur l'élément cible à l'aide de la souris), elle déclenche en réalité une série d'événements de traitement interne auxquels correspondent un ou plusieurs déclencheurs :

Evénement	Nom du déclencheur
Valider l'élément	When-Validate-Item
Sortir de l'élément	Post-Text-Item
Valider l'enregistrement	When-Validate-Record
Sortir de l'enregistrement	Post-Record
Sortir du bloc	Post-Block
Entrer dans le bloc	Pre-Block
Entrer dans l'enregistrement	Pre-Record
Entrer élément	Pre-Text-Item
Bloc prêt pour la saisie	When-New-Block-Instance
Enregistrement prêt pour la saisie	When-New-Record-Instance
Elément prêt pour la saisie	When-New-Item-Instance

Il est essentiel de comprendre que les événements de navigation autorisée, tels que "Sortir de l'élément" et "Entrer dans le bloc", se produisent en réaction à la navigation du traitement de format interne, au fur et à mesure que Form Builder enregistre des données dans le format et "navigue" dans la hiérarchie des objets pour passer d'un élément à un autre.

Dans le présent exemple, pour déplacer le point d'insertion d'un élément source d'un bloc à un élément cible d'un autre bloc, Form Builder commence par valider la valeur contenue dans l'élément source, puis "entre dans l'enregistrement" pour valider tous les éléments de l'enregistrement, sort ensuite de l'enregistrement et "entre dans le bloc" et ainsi de suite, pour terminer finalement dans l'élément cible.

Le modèle de traitement de Form Builder impose l'intégrité des données au niveau de l'élément, de l'enregistrement, du bloc et de l'application Forms. La gamme étendue d'événements auxquels il est possible de réagir par un code de déclencheur permet de contrôler intégralement chacun des aspects d'une application.

Processus et sous-processus

Un processus est une série d'événements individuels associés qui se présentent pendant une opération spécifique de Form Builder Runform. L'exemple précédent décrivait un processus de navigation. D'autres processus peuvent impliquer des transactions de validation et de base de données. Par exemple, le processus Transactions d'inscription et de validation comprend une série complexe d'événements et de sous-processus.


Niveau et portée d'une définition de déclencheur

  Rubriques connexes

Lors de sa création, un déclencheur est attaché à un objet spécifique : élément, bloc ou application Forms elle-même. L'objet auquel un déclencheur est attaché détermine le niveau de définition du déclencheur dans la hiérarchie des objets. Par exemple, un déclencheur attaché à un bloc appelé Client a un niveau de définition de bloc, et est appelé "déclencheur de niveau bloc".

Le niveau de définition d'un déclencheur est important, car il détermine la portée du déclencheur. La portée d'un déclencheur représente son domaine dans la hiérarchie des objets de Form Builder et détermine l'endroit où un événement doit se produire pour que le déclencheur y réagisse.

La portée d'un déclencheur correspond à son niveau de définition (application Forms, bloc ou élément) et aux niveaux inférieurs. Un déclencheur de niveau bloc est donc activé si l'événement du déclencheur se produit dans ce bloc, mais n'est pas activé si cet événement se produit dans un autre bloc.

Prenons par exemple le déclencheur When-New-Item-Instance. Ce déclencheur est activé en réponse à l'événement Entrer dans l'élément, qui se produit lorsque l'utilisateur ou l'application passe à un autre élément. Si le déclencheur When-New-Item-Instance est attaché à un élément texte, il n'est activé que lorsque l'utilisateur entre dans cet élément particulier. Si ce même déclencheur When-New-Item-Instance était attaché au bloc, il serait activé lorsque l'utilisateur entre dans un des éléments de ce bloc. De même, si le déclencheur était attaché à l'application Forms, il serait activé lorsque l'utilisateur entre dans n'importe quel élément de n'importe quel bloc de l'application Forms.

Priorité des déclencheurs réagissant à un même événement

Il n'est pas rare de définir à différents niveaux des déclencheurs qui réagissent au même événement. Lorsqu'il se produit un événement de la portée de plusieurs déclencheurs, le déclencheur dont le niveau de définition est le plus faible a la priorité.

Soit par exemple un déclencheur When-New-Item-Instance attaché à un bloc, et un autre déclencheur When-New-Item-Instance attaché à un élément texte de ce bloc. Lorsque l'utilisateur passe à l'élément texte, le déclencheur de niveau élément est activé, alors que le déclencheur de niveau bloc n'est pas pris en compte.

Restrictions applicables aux niveaux de définition des déclencheurs

Certains déclencheurs peuvent n'être définis qu'à un niveau de définition particulier. Par exemple, le déclencheur When-Validate-Record, activé lorsque l'événement Valider l'enregistrement se produit, n'est valide que s'il est attaché à un bloc ou à l'application Forms — il ne peut pas être attaché à un élément. Cependant, la plupart des déclencheurs peuvent être définis au niveau application Forms, bloc ou élément, et c'est à vous qu'il incombe de sélectionner le niveau de définition approprié pour réaliser la fonction choisie.


Création d'un déclencheur dans le Navigateur d'objet

  Rubriques connexes

Pour créer un déclencheur dans le Navigateur d'objet :

1	Dans le Navigateur d'objet, placez le curseur sur le noeud Déclencheurs sous l'application Forms, sous le bloc ou sous l'élément auquel vous attachez le déclencheur.

Par exemple, si vous attachez un déclencheur à un bouton, cliquez sur le noeud Déclencheurs, sous le nom du bouton.

2	Choisissez Navigateur [image] Créer pour appeler la liste de valeurs (LOV) des déclencheurs.

3	Sélectionnez un nom de déclencheur dans la LOV, puis cliquez sur OK.

L'éditeur PL/SQL apparaît. Les options Type, Objet et Nom sont définies automatiquement en fonction de l'objet auquel vous attachez le déclencheur et du nom de déclencheur que vous avez sélectionné.

4	Dans l'éditeur PL/SQL, entrez le code de déclencheur de votre choix.

5	Choisissez Compiler pour compiler le déclencheur.

6	Choisissez Fermer pour sortir de l'éditeur.


Création d'un déclencheur à l'aide de Smart Triggers

  Rubriques connexes

Pour créer un déclencheur à l'aide de Smart Triggers :

1	Dans le Navigateur d'objet, cliquez sur l'objet auquel vous voulez attacher un déclencheur.

2	Choisissez Programme [image] Smart Triggers…

3	Choisissez un déclencheur parmi ceux qui apparaissent dans le sous-menu.

L'éditeur PL/SQL apparaît. Les options Type, Objet et Nom sont définies automatiquement en fonction de l'objet auquel vous attachez le déclencheur et du nom de déclencheur que vous avez sélectionné.

4	Dans l'éditeur PL/SQL, entrez le code de déclencheur de votre choix.

5	Choisissez Compiler pour compiler le déclencheur.

6	Choisissez Fermer pour sortir de l'éditeur.


Création d'un déclencheur dans l'éditeur PL/SQL

  Rubriques connexes

Pour créer un déclencheur dans l'Editeur PL/SQL :

1	Dans l'Editeur PL/SQL, définissez l'option Type à Déclencheur.

2	Définissez l'option Objet de manière à indiquer l'objet (application Forms, bloc ou élément) pour lequel vous définissez le déclencheur.

Par exemple, pour attacher le déclencheur à un bloc, définissez la première liste déroulante Options au nom du bloc, et la seconde liste déroulante à Niveau bloc.

3	Choisissez Nouveau pour appeler la liste de valeurs (LOV) des déclencheurs.

4	Sélectionnez un nom de déclencheur dans la LOV, puis cliquez sur OK.

5	Entrez le code du déclencheur.

6	Choisissez Compiler pour compiler le déclencheur.

7	Choisissez Fermer pour sortir de l'éditeur.


Création d'un déclencheur dans l'Editeur de présentation

  Rubriques connexes

Pour créer un déclencheur pour un élément dans l'Editeur de présentation :

1	Dans l'Editeur de présentation, sélectionnez l'élément auquel vous voulez attacher le déclencheur.

2	Dans le menu instantané, sélectionnez Déclencheur pour appeler l'Editeur PL/SQL. (Sous Microsoft Windows, appuyez sur le bouton droit de la souris pour afficher le menu instantané.)

Les options Type et Objet de l'Editeur PL/SQL sont définies automatiquement, en fonction de l'élément sélectionné lorsque l'éditeur est appelé. S'il y a déjà un déclencheur attaché à l'élément, son nom et son code apparaissent dans l'éditeur.

3	Choisissez Nouveau pour appeler la liste de valeurs (LOV) des déclencheurs.

4	Sélectionnez un nom de déclencheur dans la LOV, puis cliquez sur OK.

5	Entrez le code du déclencheur.

6	Choisissez Compiler pour compiler le déclencheur.

7	Choisissez Fermer pour sortir de l'éditeur.


Définition des propriétés des déclencheurs

Comme les autres objets, les déclencheurs ont des propriétés que vous pouvez définir, une fois le déclencheur créé, en sélectionnant le déclencheur dans le Navigateur d'objet, et éditer dans la Palette de propriétés.


A propos de la compilation de déclencheurs

  Rubriques connexes

Form Builder compile les déclencheurs non compilés d'une application Forms lorsque l'application Forms est générée pour créer un fichier exécutable. La compilation des déclencheurs individuels n'est pas obligatoire. Cependant, la compilation locale permet de détecter et de corriger les erreurs survenues dans le code de déclencheur au moment de son écriture, plutôt que d'attendre que l'application Forms soit générée.

Lors de la compilation d'un déclencheur, Form Builder recherche dans son texte les éventuelles erreurs de syntaxe ou de sémantique, ainsi que les références à des objets ou à des sous-programmes qui n'existent pas. S'il détecte une erreur, Form Builder affiche le numéro de ligne de l'instruction erronée et fournit une description de l'erreur.


Appel des déclencheurs nommés par l'utilisateur

  Rubriques connexes

Un déclencheur nommé par l'utilisateur est un déclencheur dont le nom, unique, est attribué par l'utilisateur. Comme son nom ne correspond pas à un événement Form Builder, un déclencheur nommé par l'utilisateur ne peut être exécuté que s'il est appelé à partir d'un déclencheur intégré, d'une commande d'élément de menu ou d'un sous-programme nommé par l'utilisateur. Pour appeler un déclencheur nommé par l'utilisateur, faites appel à la procédure interne EXECUTE_TRIGGER. Cette procédure utilise un paramètre qui nomme le déclencheur à activer :

Execute_Trigger('mon_déclencheur_nommé_utilisateur');

Les déclencheurs nommés par l'utilisateur ne sont obligatoires que dans certains cas particuliers. Pour la plupart des applications, il est préférable d'écrire un sous-programme nommé par l'utilisateur, puis de l'appeler à partir d'une commande d'élément de menu ou d'un déclencheur.


A propos de l'écriture du code de déclencheur

  Rubriques connexes

Le code des déclencheurs et des commandes d'élément de menu de Form Builder est écrit en langage PL/SQL Oracle. PL/SQL est une extension du langage de base de données SQL. Il est possible d'inclure des instructions SQL et PL/SQL dans un déclencheur Form Builder. Les appels vers des sous-programmes Form Builder intégrés et des sous-programmes PL/SQL nommés par l'utilisateur sont autorisés.

L'appel des procédures PL/SQL au sein d'un déclencheur PL/SQL fonctionne comme si le texte de la totalité de la procédure était directement substitué à l'endroit du déclencheur où se trouve l'appel vers cette procédure. Toute exception (y compris FORM_TRIGGER_FAIL) suit les règles standard de portée du gestionnaire d'exceptions PL/SQL.

Le texte d'un déclencheur Form Builder est un bloc PL/SQL anonyme. Un bloc peut se composer de trois sections :

1	une section de déclaration de variables, de constantes, de curseurs et d'anomalies ;

2	une section d'instructions exécutables ;

3	une section de gestionnaires d'anomalies.

La syntaxe qui permet de délimiter les sections d'un bloc PL/SQL se présente de la manière suivante :

DECLARE
-- instructions déclaratives (facultatif)
BEGIN
-- instructions exécutables (obligatoire)
EXCEPTION
-- gestionnaires d'anomalies (facultatif)
END;

Dans un déclencheur, seule la section exécutable est obligatoire. Un déclencheur qui ne comporte pas de section DECLARE ne nécessite pas les mots-clés BEGIN et END, puisqu'ils sont ajoutés implicitement. Exemple de ce type de déclencheur :

/*  Key-CLRREC Trigger:         */
IF :System.Record_Status = 'CHANGED' OR
   :System.Record_Status = 'INSERT' THEN
Commit_Form;
END IF;
Clear_Record;

Cependant, si vous ajoutez une section DECLARE dans votre déclencheur, les mots-clés BEGIN et END sont aussi obligatoires pour que le compilateur puisse détecter le début de la section exécutable :

/*  Déclencheur When-Button-Pressed :  */
DECLARE
discount_variable NUMBER (5);
BEGIN
SELECT discount into discount_variable from Promotions
WHERE custid = :cust_id;
:total := calculate_total(:amount, discount_variable);
END;


A propos de l'appel de sous-programmes intégrés dans les déclencheurs

  Rubriques connexes

Form Builder regroupe plus de 100 sous-programmes intégrés pouvant être appelés à partir des déclencheurs. Un sous-programme intégré est une fonction ou une procédure en package qui est toujours disponible dans Form Builder. Les sous-programmes intégrés permettent de gérer un grand nombre de fonctions d'application. Par exemple, pour déplacer par programme le point d'insertion d'un élément dans un autre, appelez l'un des sous-programmes intégrés ci-dessous :

NEXT_ITEM	GO_ITEM
NEXT_BLOCK	GO_BLOCK
NEXT_RECORD

D'autres sous-programmes intégrés permettent d'exécuter des opérations sur des données de l'application Forms ou de la base de données :

CLEAR_RECORD	EXECUTE_QUERY
DELETE_RECORD	COMMIT_FORM
ENTER_QUERY

D'autres enfin peuvent être utilisés pour contrôler l'affichage des objets d'interface lors de l'exécution :

MOVE_WINDOW	SHOW_LOV
HIDE_WINDOW	SHOW_ALERT
SHOW_EDITOR

L'exemple ci-dessous affiche le texte d'un déclencheur When-Button-Pressed. Le fait d'appuyer sur le bouton affiche une boîte de dialogue appelée fenêtre_info_commande qui permet aux utilisateurs d'entrer des informations relatives à une commande :

/*  Déclencheur When-Button-Pressed :   */
Show_Window('fenêtre_info_commande');

Ce déclencheur ne comporte qu'une instruction, l'appel au sous-programme intégré SHOW_WINDOW. Le sous-programme SHOW_WINDOW est une procédure qui affiche la fenêtre nommée dans sa liste d'arguments.

Dans le Navigateur d'objet, vous pouvez parcourir la liste des procédures internes de Form Builder sous le noeud Packages intégrés. Le package Extensions standard comporte les procédures internes de base de Form Builder. D'autres packages offrent des fonctions spécialisées pour des applications spécifiques.


A propos des sous-programmes intégrés restreints

  Rubriques connexes

Tout sous-programme intégré qui déclenche une opération de navigation est restreint. Cette catégorie comprend les sous-programmes qui font passer le point d'insertion d'un élément à un autre, et ceux qui impliquent des transactions de la base de données. Les procédures internes restreintes ne sont pas autorisées dans les déclencheurs qui sont activés en réponse à des opérations de navigation.

Par exemple, les procédures internes GO_ITEM et NEXT_SET sont des procédures restreintes. GO_ITEM fait passer le point d'insertion d'un élément source à un élément cible, ce qui implique une navigation. De même, la procédure NEXT_SET fait passer Form Builder en interne au niveau bloc, extrait un ensemble d'enregistrements, puis passe au premier élément du premier enregistrement. (Notez que cette navigation se produit en interne à la suite d'un traitement par défaut, et peut être transparente pour l'utilisateur de l'application Forms.)

Comme GO_ITEM et NEXT_SET déclenchent tous deux une navigation, ils ne peuvent pas être appelés à partir des déclencheurs qui sont activés en réponse à des événements de navigation interne, c'est-à-dire des déclencheurs activés pendant une navigation. Une procédure restreinte ne peut donc pas être appelée à partir d'un déclencheur Pre-Block, car ce déclencheur Pre-Block est activé pendant la navigation interne. En fait, les sous-programmes restreints ne sont pas autorisés à partir des déclencheurs de navigation de type PRE- ou POST-.

Vous pouvez, cependant, appeler un sous-programme intégré restreint à partir d'un déclencheur When-New-Item-Instance. Par exemple, le déclencheur When-New-Item-Instance est activé après la navigation vers un élément, lorsque l'application Forms attend une entrée. N'oubliez pas ce point lorsque vous sélectionnez des types de déclencheur pendant le développement d'une application.

La rubrique de référence de chaque déclencheur comporte une section "Legal Commands (Commandes valides)" qui décrit les types de procédures internes (restreintes ou non restreintes) qu'il est possible d'appeler à partir du déclencheur. En outre, chaque description de procédure interne comporte une section "Built-in Type (Type de procédure interne)" qui indique si la procédure interne est une procédure ou une fonction restreinte ou non restreinte.


A propos de l'écriture d'instructions SQL dans les déclencheurs

  Rubriques connexes

Par défaut, un bloc de données prend en charge les fonctions d'interrogation par exemple, de mise à jour, d'insertion et de suppression. Form Builder émet les instructions SELECT, UPDATE, INSERT et DELETE SQL appropriées, en fonction des actions de l'utilisateur et du contrôle par programme. Pour exécuter, par exemple, une interrogation par programme, passez au bloc de votre choix (par exemple, à l'aide de GO_BLOCK), puis appelez la procédure interne EXECUTE_QUERY.

Il est inutile d'écrire l'instruction SQL SELECT pour remplir les éléments appropriés des blocs, car les éléments de données sont liés, lors de la conception, aux colonnes correspondantes de la base de données, et Form Builder émet automatiquement l'instruction SQL. Form Builder émet également les instructions SQL nécessaires à la prise en charge de la fonction de verrouillage par défaut.

Pour la plupart des applications, écrivez les instructions SQL dans des déclencheurs pour étendre les fonctions Form Builder par défaut. Par exemple, pour remplir un élément de consultation correspondant à une table autre que la table de données du bloc, écrivez une instruction SELECT...INTO dans un déclencheur Post-Query.

Pour sélectionner une valeur de base de données dans un élément d'application Forms, utilisez la notation nom_bloc.nom_élément faisant référence à l'élément de l'application Forms :

SELECT colonne
INTO :bloc.élément
FROM table
WHERE cléprimaire = :block.pri_key_item;

L'instruction ci-dessus ouvre un curseur implicite. Déclarez des curseurs explicites lorsque vous voulez être totalement maître des interrogations de la base de données.

En règle générale, les instructions DML ne sont acceptées que dans les déclencheurs transactionnels, c'est-à-dire les déclencheurs activés en réponse à des événements de traitement de transactions, comme Pre-Update, Post-Insert, et On-Delete. Les déclencheurs On-Event remplacent en totalité l'instruction SQL par défaut que Form Builder aurait émise dans ce cas. Bien qu'il soit possible d'écrire un déclencheur utilisant une instruction DML (Data Manipulation Language), Oracle vous conseille de suivre les recommandations pour chaque type de déclencheur dans les rubriques de référence.

L'utilisation d'instructions DML dans certains déclencheurs peut désynchroniser l'état des enregistrements entre Form Builder et les lignes de la base de données, et peut provoquer des résultats imprévisibles. Form Builder garde la trace des modifications apportées aux données d'une application Forms en examinant l'état des éléments, des enregistrements, des blocs et de l'application Forms.

Par exemple, lorsque l'utilisateur change la valeur d'un élément texte, puis émet la commande Enregistrer, Form Builder examine l'état de l'enregistrement pour savoir si une instruction UPDATE doit être traitée.

Lorsque des instructions DML sont émises indépendamment du traitement par défaut, Form Builder n'est pas informé de ces modifications, et vous ne pouvez donc pas compter, pour les gérer, sur le traitement commit par défaut.

Pour émettre les commandes DDL (Data Dictionary Language), telles que CREATE TABLE et DROP SEQUENCE, il est possible d'appeler la procédure interne FORMS_DDL. Notez que la procédure interne FORMS_DDL émet toujours un sous-programme COMMIT_FORM implicite après exécution de l'instruction voulue. Cela étant, vous ne devez appeler la procédure interne FORMS_DDL que lorsqu'il n'y pas, pour l'application, de modification non enregistrée en attente, que l'utilisateur pourrait vouloir annuler ultérieurement.


Généralités sur les catégories de déclencheurs

  Rubriques connexes

La présente rubrique offre une vue d'ensemble des déclencheurs courants, regroupés en catégories :

•	déclencheurs de traitement de bloc

•	déclencheurs événementiels

•	déclencheurs maître-détail

•	déclencheurs de gestion de message

•	déclencheurs de navigation

•	déclencheurs d'interrogation

•	déclencheurs transactionnels

•	déclencheurs de validation

Cette rubrique ne présente pas tous les déclencheurs disponibles dans Form Builder, car bon nombre d'entre eux ont des utilisations extrêmement spécialisées. Pour connaître la liste complète des déclencheurs ou avoir des informations détaillées sur un déclencheur spécifique, reportez-vous à Page des catégories de déclencheurs.


Déclencheurs de traitement de bloc

  Rubriques connexes

Les déclencheurs de traitement de bloc sont activés en réponse à des événements liés à la gestion des enregistrements d'un bloc.

Déclencheur	Utilisation type
When-Create-Record	Exécute une opération lorsque Form Builder tente de créer un nouvel enregistrement dans un bloc. Par exemple, pour créer des valeurs par défaut complexes calculées ou pilotées par données, qui doivent être indiquées lors de l'exécution et non de la conception.
When-Clear-Block	Exécute une opération lorsque Form Builder vide le bloc en cours, c'est-à-dire supprime tous les enregistrements qu'il contient.
When-Database-Record	Exécute une opération lorsque Form Builder change l'état d'un enregistrement en Insertion ou en Mise à jour pour indiquer que l'enregistrement doit être traité par la prochaine opération COMMIT_FORM.
When-Remove-Record	Exécute une opération lorsqu'un enregistrement est supprimé ou effacé. Par exemple, pour ajuster un total courant calculé pour tous les enregistrements affichés dans un bloc.


Déclencheurs événementiels

  Rubriques connexes

Les déclencheurs événementiels sont activés en réponse à des événements qui se produisent dans l'interface de l'application Forms. Certains, comme When-Button-Pressed, ne sont activés qu'en réponse à une entrée ou à une manipulation de l'utilisateur. D'autres, comme When-Window-Activated, peuvent être activés en réponse à une entrée de l'utilisateur et à un contrôle par programme

Déclencheur	Utilisation type
When-Button-Pressed	Déclenche une opération lorsqu'un utilisateur sélectionne un bouton, soit à l'aide de la souris, soit au clavier.
When-Checkbox-Changed	Déclenche une opération lorsque l'utilisateur modifie l'état d'une case à cocher, soit à l'aide de la souris soit par sélection au clavier.
When-Image-Activated	Déclenche une opération lorsque l'utilisateur clique deux fois sur un élément image.
When-Image-Pressed	Déclenche une opération lorsqu'un utilisateur clique sur un élément image.
Key- [toutes les touches]	Remplace la fonction par défaut associée à une touche de fonction. Par exemple, vous pouvez définir un déclencheur Key-EXIT de façon à remplacer la fonction par défaut de la touche [Aide].
When-Radio-Changed	Déclenche une opération lorsqu'un utilisateur change le bouton d'option en cours, sélectionné dans un élément d'un groupe de boutons d'option.
When-Timer-Expired	Déclenche une opération lorsqu'un délai programmé est dépassé.
When-Window-Activated	Déclenche une opération lorsqu'un utilisateur ou l'application active une fenêtre.
When-Window-Closed	Déclenche une opération lorsqu'un utilisateur ferme une fenêtre à l'aide de la commande Fermer du gestionnaire de fenêtres.
When-Window-Deactivated	Déclenche une opération lorsqu'une fenêtre est désactivée par l'activation d'une autre fenêtre.
When-Window-Resized	Déclenche une opération lorsqu'une fenêtre est redimensionnée, soit par l'utilisateur, soit par programme.


Déclencheurs Maître/Détail

  Rubriques connexes

Form Builder génère automatiquement des déclencheurs maître/détail lors de la définition d'une relation maître/détail entre des blocs. Les déclencheurs maître/détail par défaut imposent la coordination entre les enregistrements d'un bloc détail et l'enregistrement maître d'un bloc maître. Vous ne devez définir ces déclencheurs que si vous développez des systèmes personnalisés de coordination de blocs. Dans le cas contraire, vous pouvez simplement créer un objet de relation et laisser Form Builder générer les déclencheurs nécessaires à la gestion de la coordination entre les blocs maître et les blocs détail de la relation.

Déclencheur	Utilisation type
On-Check-Delete-Master	Est activé lorsque Form Builder tente de supprimer un enregistrement d'un bloc maître dans une relation maître/détail.
On-Clear-Details	Est activé lorsque Form Builder doit effacer des enregistrements d'un bloc détail dans une relation maître/détail, car ces enregistrements ne correspondent plus à l'enregistrement en cours dans le bloc maître.
On-Populate-Details	Est activé lorsque Form Builder doit entrer des enregistrements dans un bloc détail d'une relation maître/détail afin que les enregistrements détail soient synchronisés sur l'enregistrement en cours du bloc maître.


Déclencheurs de gestion de message

  Rubriques connexes

Form Builder génère automatiquement des messages d'information et des messages d'erreur appropriés en réponse aux événements qui se produisent lors de l'exécution. Les déclencheurs de gestion de message sont activés en réponse à ces événements.

Déclencheur	Utilisation type
On-Error	Remplace un message d'erreur par défaut par un message d'erreur personnalisé pour identifier l'erreur et la corriger.
On-Message	Identifie une erreur et répond à un message ; par exemple, remplace un message par défaut de Form Builder par un message personnalisé.


Déclencheurs de navigation

  Rubriques connexes

Les déclencheurs de navigation sont activés en réponse à des événements de navigation. Par exemple, si l'utilisateur clique sur un élément texte d'un autre bloc, des événements de navigation se produisent lorsque Form Builder fait passer le point d'insertion de l'élément en cours à l'élément cible.

Les événements de navigation se produisent à différents niveaux de la hiérarchie des objets de Form Builder (application Forms, bloc, enregistrement, élément). Les déclencheurs de navigation peuvent être subdivisés en deux catégories : les déclencheurs Pre- et Post- et les  déclencheurs When-New-Instance.

Les déclencheurs Pre- et Post- sont activés lorsque Form Builder passe en interne par les différents niveaux de la hiérarchie des objets, en réponse à une opération de navigation déclenchée par un utilisateur qui appuie, par exemple, sur la touche [Elément suivant]. Notez cependant que ces déclencheurs sont également activés en réponse à une opération de navigation interne effectuée par Form Builder pendant un traitement par défaut. Pour éviter des résultats imprévisibles, vous devez tenir compte de cette navigation interne lorsque vous utilisez ces déclencheurs.

Déclencheur	Utilisation type
Pre-Form	Exécute une opération juste avant que Form Builder ne passe à l'application Forms à partir de l'"extérieur" de l'application Forms, par exemple au démarrage de cette application.
Pre-Block	Exécute une opération lorsque Form Builder passe au niveau bloc à partir du niveau application Forms.
Pre-Record	Exécute une opération avant que Form Builder ne passe au niveau enregistrement à partir du niveau bloc.
Pre-Text-Item	Exécute une opération avant que Form Builder ne passe à un élément texte à partir du niveau enregistrement.
Post-Text-Item	Manipule un élément lorsque Form Builder sort d'un élément texte et passe au niveau enregistrement.
Post-Record	Manipule un enregistrement lorsque Form Builder sort d'un enregistrement et passe au niveau bloc.
Post-Block	Manipule l'enregistrement en cours lorsque Form Builder sort d'un bloc et passe au niveau application Forms.
Post-Form	Exécute une opération avant que Form Builder ne passe à l'"extérieur" de l'application Forms, par exemple lorsqu'il quitte l'application Forms.
Les déclencheurs When-New-Instance sont activés à la fin d'une séquence de navigation qui fait passer le point d'insertion sur un élément différent. Plus précisément, ces déclencheurs sont activés juste après le passage, par Form Builder, du point d'insertion dans un élément différent, lorsque l'application Forms revient à l'état de veille, en attendant une entrée de l'utilisateur.

A la différence des déclencheurs de navigation Pre- et Post-, les déclencheurs When-New-Instance ne sont pas activés en réponse à des événements de navigation interne qui se produisent pendant le traitement de l'application Forms par défaut.

Déclencheur	Utilisation type
When-New-Form-Instance	Exécute une opération au démarrage de l'application Forms. (Se produit après l'activation du déclencheur Pre-Form).
When-New-Block-Instance	Exécute une opération immédiatement après le passage du point d'insertion à un élément d'un bloc autre que le bloc dans lequel se trouvait précédemment le point d'insertion.
When-New-Record-Instance	Exécute une opération immédiatement après le passage du point d'insertion à un élément d'un enregistrement différent. Si le nouvel enregistrement se trouve dans un bloc différent, le déclencheur est activé après le déclencheur When-New-Block-Instance, mais avant le déclencheur When-New-Item-Instance.
When-New-Item-Instance	Exécute une opération immédiatement après le passage du point d'insertion à un élément différent. Si le nouvel élément est dans un bloc différent, le déclencheur est activé après le déclencheur When-New-Block-Instance.


Déclencheurs d'interrogation

  Rubriques connexes

Les déclencheurs d'interrogation sont activés immédiatement avant et après l'exécution, par l'utilisateur ou l'application, d'une interrogation dans un bloc.

Déclencheur	Utilisation type
Pre-Query	Valide les critères d'interrogation en cours ou fournit des critères d'interrogation supplémentaires par programme, juste avant l'envoi de l'instruction SELECT à la base de données.
Post-Query	Exécute une opération après l'extraction d'un enregistrement, par exemple la consultation de valeurs d'autres tables en fonction d'une valeur de l'enregistrement en cours. Est activé une fois par chaque enregistrement entré dans le bloc.


Déclencheurs transactionnels

  Rubriques connexes

Les déclencheurs transactionnels sont activés en réponse à une grande variété d'événements qui se produisent lors d'une interaction de l'application Forms avec la source des données.

Déclencheur	Utilisation type
On-Delete	Remplace le traitement Form Builder par défaut de gestion des enregistrements supprimés pendant l'inscription de transaction.
On-Insert	Remplace le traitement Form Builder par défaut de gestion des enregistrements insérés pendant l'inscription de transaction.
On-Lock	Remplace le traitement Form Builder par défaut de verrouillage des lignes de la base de données.
On-Logon	Remplace le traitement Form Builder par défaut de connexion à ORACLE, particulièrement pour une application Forms qui ne nécessite pas de connexion à la base de données ou pour la connexion à une base de données non ORACLE.
On-Logout	Remplace le traitement Form Builder par défaut de déconnexion d'ORACLE.
On-Update	Remplace le traitement Form Builder par défaut de gestion des enregistrements mis à jour pendant l'inscription de transaction.
Post-Database-Commit	Etend le traitement Form Builder par défaut après une opération commit de la base de données.
Post-Delete	Contrôle les transactions après la suppression d'une ligne de la base de données.
Post-Forms-Commit	Etend l'instruction commit Form Builder par défaut avant d'enregistrer une transaction dans la base de données.
Post-Insert	Contrôle les transactions après l'insertion d'une ligne dans la base de données.
Post-Update	Vérifie les transactions après la mise à jour d'une ligne dans la base de données.
Pre-Commit	Exécute une opération immédiatement avant le traitement Transactions d'inscription et de validation, lorsque Form Builder détermine que l'application Forms comporte des modifications à inscrire ou à enregistrer dans la base de données.
Pre-Delete	Manipule un enregistrement avant sa suppression de la base de données au cours du traitement  Transactions d'inscription et de validation ; par exemple pour empêcher dans certains cas la suppression de l'enregistrement.
Pre-Insert	Manipule un enregistrement avant son insertion dans la base de données, pendant le traitement Transactions d'inscription et de validation par défaut.
Pre-Update	Valide ou modifie un enregistrement avant sa mise à jour dans la base de données, pendant le traitement Transactions d'inscription et de validation par défaut.

Remarque : Cette liste ne comporte qu'une partie des déclencheurs transactionnels disponibles. La plupart de ceux qui n'y figurent pas sont des déclencheurs On-Event qui ont été essentiellement conçus pour les applications destinées à s'exécuter sur une source de données non ORACLE.


Déclencheurs de validation

  Rubriques connexes

Les déclencheurs de validation sont activés lorsque Form Builder valide les données d'un élément ou d'un enregistrement. Form Builder effectue des contrôles de navigation pendant la navigation qui se produit en réponse à une entrée par l'utilisateur, à un contrôle par programme ou à un traitement par défaut, une opération commit, par exemple.

Déclencheur	Utilisation type
When-Validate-Item	Etend la validation par défaut d'un élément.
When-Validate-Record	Etend la validation par défaut d'un enregistrement.


Autres catégories de déclencheurs

  Rubriques connexes

La section précédente présentait les déclencheurs par fonction. Les déclencheurs peuvent également être classés par nom. Dans ce cas, ils sont regroupés en cinq catégories, liées chacune à un type d'événement particulier qui se produit à l'exécution.

Les déclencheurs When-Event signalent le point auquel le traitement par défaut de Forms Builder peut être étendu par des tâches ou des opérations supplémentaires. Par exemple, le déclencheur When-Validate-Item est activé immédiatement après la validation des données d'un élément par Form Builder.

Pour étendre les contrôles de validation par défaut effectués par Form Builder, codez une validation supplémentaire dans un déclencheur When-Validate-Item. La plupart des déclencheurs When-Event peuvent comporter des appels à des sous programmes intégrés restreints.

Les déclencheurs On-Event signalent le point auquel le traitement par défaut de Form Builder peut être remplacé. Par exemple, le déclencheur On-Logon est activé lorsque Form Builder est prêt à se connecter à une source de données ORACLE. Si l'application nécessite une connexion à une source de données non ORACLE, codez un déclencheur On-Logon qui transmet les paramètres de connexion appropriés à la source de données non ORACLE. Cela remplace complètement la connexion par défaut à ORACLE. Les déclencheurs On-Event peuvent comporter des appels à des sous-programmes intégrés non restreints.

Les déclencheurs Pre-Event signalent un point situé juste avant l'occurrence d'un déclencheur When-Event ou On-Event. Utilisez des déclencheurs pour les événements pour préparer des objets ou des données à l'événement à venir. Les déclencheurs Pre-Event peuvent comporter des appels à des sous-programmes intégrés non restreints.

Les déclencheurs Post-Event signalent un point situé juste après l'occurrence d'un événement When-Event ou On-Event. Vous pouvez écrire, pour ces événements, des déclencheurs qui valident des objets ou des données, ou qui exécutent des tâches de vérification fondées sur l'événement précédent. Les déclencheurs Post-Event peuvent comporter des appels à des sous-programmes intégrés non restreints.

Les déclencheurs sur touche ont une relation un-à-un avec des touches spécifiques, c'est-à-dire qu'ils sont activés lorsqu'un utilisateur appuie sur une touche ou une séquence de touches spécifique.

N'oubliez pas que la plupart des applications à interface graphique offrent aux utilisateurs plusieurs façons d'exécuter des commandes. Par exemple, un utilisateur peut exécuter une interrogation en cliquant sur un bouton, en sélectionnant une commande de menu ou en appuyant sur la touche [Exécuter interrogation].

Dans ce cas, vous ne devez pas placer toute la logique de votre application dans un déclencheur sur touche qui pourrait ne jamais être activé. De même, dans une application pilotée à la souris, vous ne pouvez pas vous reposer entièrement sur des déclencheurs sur touche pour les touches de navigation telles que [Elément suivant] et [Bloc suivant]. Comme les utilisateurs peuvent se déplacer à l'aide d'une souris, ils peuvent choisir de ne pas utiliser ces touches pour la navigation, et les déclencheurs correspondants ne sont alors pas activés.


Déclencheur Delete-Procedure

 Tous les déclencheurs

Description

Ce déclencheur est créé automatiquement par Form Builder lorsque la source de suppression de données est une procédure stockée. Ce déclencheur est appelé lorsqu'une opération de suppression est nécessaire. Considérez-le comme un déclencheur ON-DELETE que le système appelle au lieu de procéder à des opérations de suppression par défaut.

Ne modifiez pas ce déclencheur.

Mode Saisie interrogation  Non applicable.

Sur échec

Sans effet


Déclencheurs sur touche de fonction

 Restrictions	 Tous les déclencheurs

Description

Les déclencheurs sur touches de fonction sont associés à des touches de fonction Runform particulières. Un déclencheur sur touche de fonction est activé uniquement lorsqu'un utilisateur appuie sur la touche de fonction associée. Les actions définies dans un déclencheur sur touche de fonction remplacent l'action par défaut que la touche de fonction exécute normalement.

Le tableau ci-dessous regroupe tous les déclencheurs sur touches de fonction, ainsi que les touches de fonction Runform correspondantes.

Déclencheur sur touche	Touche de fonction associée
Key-CLRBLK	[Effacer bloc]
Key-CLRFRM	[Effacer application Forms]
Key-CLRREC	[Effacer enregistrement]
Key-COMMIT	[Accepter]
Key-CQUERY	[Compter nbre de lignes extraites]
Key-CREREC	[Insérer enregistrement]
Key-DELREC	[Supprimer enregistrement]
Key-DOWN	[Bas]
Key-DUP-ITEM	[Dupliquer élément]
Key-DUPREC	[Dupliquer enregistrement]
Key-EDIT	[Editer]
Key-ENTQRY	[Saisir interrogation]
Key-EXEQRY	[Exécuter interrogation]
Key-EXIT	[Quitter]
Key-HELP	[Aide]
Key-LISTVAL	[Liste de valeurs]
Key-MENU	[Menu Bloc]
Key-NXTBLK	[Bloc suivant]
Key-NXT-ITEM	[Elément suivant]
Key-NXTKEY	[Clé primaire suivante]
Key-NXTREC	[Enregistrement suivant]
Key-NXTSET	[Ensemble d'enregistrements suivant]
Key-PRINT	[Imprimer]
Key-PRVBLK	[Bloc précédent]
Key-PRV-ITEM	[Elément précédent]
Key-PRVREC	[Enregistrement précédent]
Key-SCRDOWN	[Défilement vers le bas]
Key-SCRUP	[Défilement vers le haut]
Key-UP	[Haut]
Key-UPDREC	Equivaut à Enregistrement, commande Verrouiller, du menu par défaut

Notez que vous ne pouvez pas redéfinir toutes les touches de fonction de Runform à l'aide de déclencheurs sur touche de fonction. Plus précisément, vous ne pouvez jamais redéfinir les touches statiques ci-dessous, car leur fonction est souvent exécutée par le système de gestion d'interface ou de terminal, et non par Form Builder.

[Effacer élément]	[Première ligne	[Défilement vers la gauche]
[Copier]	[Insérer ligne]	[Défilement vers la droite]
[Couper]	[Dernière ligne]	[Rechercher]
[Supprimer caractère]	[Gauche]	[Sélectionner]
[Supprimer  ligne]	[Coller]	[Afficher touches]
[Afficher erreur]	[Régénérer]	[Basculer Insérer/Remplacer]
[Fin de ligne]	[Droite]	[Transmettre]

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Sur échec

sans effet

Mode Saisie interrogation oui

Notes d'utilisation

Les fonctions par défaut effectuées par les touches ci-dessous ne sont pas autorisées en mode Saisie interrogation :

[Effacer bloc]	[Bas]	[Enregistrement suivant]
[Effacer application Forms]	[Dupliquer élément]	[Ensemble d'enregistrements suivant]
[Effacer enregistrement]	[Dupliquer enregistrement]	[Bloc précédent]
[Accepter]	[Menu Bloc]	[Enregistrement précédent]
[Insérer enregistrement]	[Bloc suivant]	[Haut]
[Supprimer enregistrement]	[Clé primaire suivante]	[Verrouiller enregistrement]

Utilisations courantes

Utilisez les déclencheurs sur touche de fonction pour exécuter les tâches suivantes :

n	Désactiver dynamiquement des touches de fonction.

n	Remplacer le comportement par défaut de touches de fonction.

n	Etablir dynamiquement une nouvelle correspondance des touches de fonction.

n	Effectuer des fonctions complexes ou multiples à l'aide d'une seule touche ou d'une séquence de touches.


Déclencheurs sur touche de fonction - Restrictions

n	Form Builder ne tient pas compte du déclencheur Key-Commit lorsqu'un utilisateur appuie sur [Valider/Accepter] dans une boîte de dialogue.


Déclencheur Insert-Procedure

 Tous les déclencheurs

Description

Ce déclencheur est créé automatiquement par Form Builder lorsque la source d'insertion de données est une procédure stockée. Ce déclencheur est appelé lorsqu'une opération d'insertion est nécessaire. Considérez-le comme un déclencheur ON-INSERT que le système appelle au lieu de procéder à des opérations d'insertion par défaut.

Niveau de définition

Ne modifiez pas ce déclencheur.

Mode Saisie interrogation  Non applicable.

Sur échec

Sans effet


Déclencheur Key-Fn

 Restrictions	 Tous les déclencheurs

Description

Un déclencheur Key-Fn est activé lorsqu'un utilisateur appuie sur la touche associée.

Vous pouvez attacher des déclencheurs Key-Fn à 10 touches ou séquences de touches qui habituellement n'effectuent pas d'opérations Form Builder. Ces touches sont appelées Key-F0 à Key-F9. Avant de pouvoir leur attacher des déclencheurs sur touche, vous (ou l'administrateur de bases de données) devez utiliser Oracle Terminal pour établir la correspondance entre les touches et les fonctions appropriées.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

n	Utilisez le déclencheur Key-Fn pour créer de nouvelles touches de fonction pour des fonctions personnalisées.

n	La description de la touche affichée dans le menu par défaut Aide [image] Touches correspond toujours au déclencheur de niveau Application Forms défini pour cette touche. Si des déclencheurs de niveau inférieur (par exemple, des déclencheurs de niveau bloc) sont aussi définis pour la touche, leurs descriptions apparaissent lorsque le point d'insertion se trouve au niveau inférieur (par exemple, le bloc) et lorsque [Afficher touches] est enfoncé, mais elles ne sont pas affichées dans le menu par défaut Aide [image] Touches.

n	Sur certains systèmes d'exploitation, il n'est pas possible de reconfigurer toutes les touches. Par exemple, le système d'exploitation Microsoft Windows affiche toujours le système d'aide Windows lorsque la touche F1 est enfoncée, et tente de fermer la fenêtre d'application lorsque les touches Alt-F4 le sont.


Déclencheur Key-Fn - Restrictions

Form Builder ne tient pas compte des déclencheurs Key-Fn en mode Edition.


Déclencheur Key-Others

 Restrictions	 Tous les déclencheurs

Description

Un déclencheur Key-Others est activé lorsqu'un utilisateur appuie sur la touche associée.

Un déclencheur Key-Others est associé à toutes les touches auxquelles des déclencheurs sur touche peuvent être associés, mais qui ne sont pas définies par des déclencheurs sur touche de fonction (à quelque niveau que ce soit).

Un déclencheur Key-Others remplace le comportement par défaut d'une touche de fonction Runform (à moins que l'une des restrictions ne s'applique). Dans ce cas, cependant, Form Builder affiche toujours l'entrée par défaut de la touche de fonction dans l'écran Touches.

Type de déclencheur déclencheur sur touche

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez les déclencheurs Key-Others pour limiter les actions qu'un utilisateur peut effectuer. Plus précisément, utilisez-les pour effectuer les tâches suivantes :

n	Désactiver toutes les touches qui ne peuvent pas être utilisées dans un cas précis.

n	Effectuer une action spécifique lorsqu'un utilisateur appuie sur une touche.

Remarquez aussi :

n	La description de la touche affichée dans le menu par défaut Aide [image] Touches correspond toujours au déclencheur de niveau Application Forms défini pour cette touche. Si des déclencheurs de niveau inférieur (par exemple, des déclencheurs de niveau bloc) sont aussi définis pour la touche, leurs descriptions apparaissent lorsque le point d'insertion se trouve au niveau inférieur (par exemple, le bloc) et lorsque [Afficher touches] est enfoncé, mais elles ne sont pas affichées dans le menu par défaut Aide [image] Touches.


Déclencheur Key-Others - Restrictions

Form Builder ne tient pas compte d'un déclencheur Key-Others lorsque :

n	L'application Forms est en mode Saisie interrogation et que la propriété Activé en mode Saisie interrogation est désactivée.

n	Une liste de valeurs, l'écran Touches, un écran d'aide ou un écran d'erreur est affiché.

n	L'utilisateur répond à une invite de Runform.

n	L'utilisateur appuie sur une touche de fonction statique.


Déclencheur Lock-Procedure

 Tous les déclencheurs

Description

Ce déclencheur est créé automatiquement par Form Builder lorsque la source de verrouillage de données est une procédure stockée. Ce déclencheur est appelé lorsqu'une opération de verrouillage est nécessaire. Considérez-le comme un déclencheur ON-LOCK que le système appelle au lieu de procéder à des opérations de verrouillage par défaut.

Ne modifiez pas ce déclencheur.

Mode Saisie interrogation  Non applicable.

Sur échec

Sans effet


Déclencheur On-Check-Delete-Master

 Exemples	 Tous les déclencheurs

Description

Ce déclencheur est créé automatiquement par Form Builder lorsque vous établissez une relation maître/détail et définissez à Non isolé la propriété Supprimer comportement de l'enregistrement. Ce déclencheur est activé en cas de tentative de suppression d'un enregistrement du bloc maître d'une relation maître/détail.

Niveau de définition application Forms ou bloc

Commandes valides

Toutes les commandes, les procédures internes non restreintes, les procédures internes restreintes

Mode Saisie interrogation non

Sur échec

Empêche la suppression de l'enregistrement maître en cours.

Activé dans

Coordination Maître/Détail


Déclencheur On-Check-Delete-Master - Exemples

Exemple

Dans l'exemple ci-dessous, le déclencheur On-Check-Delete-Master généré par défaut pour une relation maître-détail, est remplacé par un déclencheur qui échoue si la somme des articles n'est pas égale au total du bon de commande.

DECLARE
  the_sum NUMBER;
BEGIN
  SELECT SUM(dollar_amt)
    INTO the_sum
    FROM po_distribution
   WHERE po_number = :purchase_order.number;

/* Rechercher les erreurs */
  IF the_sum <> :purchase_order.total THEN
    Message('La somme des articles et le total du bon de commande ne concordent pas.');
    RAISE Form_Trigger_Failure;
     ELSIF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  end if;
END;


Déclencheur On-Check-Unique

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Pendant une opération commit, le déclencheur On-Check-Unique est activé lorsque Form Builder vérifie normalement que les valeurs de clé primaire sont uniques avant d'insérer ou de mettre à jour un enregistrement d'une table de base. Le déclencheur est activé une fois par enregistrement inséré ou mis à jour.

Remplace le traitement par défaut de contrôle d'unicité des enregistrements. Lorsque la propriété PRIMKEYB d'un bloc est activée, Form Builder vérifie par défaut l'unicité d'un enregistrement en écrivant et en exécutant l'instruction SQL appropriée pour sélectionner les lignes qui correspondent aux valeurs de clé primaire de l'enregistrement en cours. S'il trouve une ligne en double, Form Builder affiche le message FRM-40600: Enregistrement déjà inséré.

Si l'enregistrement a déjà été marqué en vue de son insertion, Form Builder vérifie toujours les valeurs de clé primaire unique. Dans le cas d'une mise à jour, Form Builder ne vérifie les valeurs de clé primaire unique que si un ou plusieurs éléments ayant la propriété d'élément Clé primaire ont été modifiés.

Niveau de définition

applications Forms ou bloc

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Pour effectuer le traitement par défaut à partir de ce déclencheur, appelez la procédure interne CHECK_RECORD_UNIQUENESS.

Sur échec

sans effet

Activé dans

Vérifier l'unicité de l'enregistrement

Transactions d'inscription et de validation

Voir Organigrammes d'analyse


Déclencheur On-Check-Unique - Exemples

Exemple

L'exemple ci-dessous vérifie que l'enregistrement en cours en question n'existe pas déjà dans la table DEPT.

DECLARE
  CURSOR chk_unique IS SELECT 'x'
                         FROM dept
                        WHERE deptnon = :dept.deptno;
  tmp VARCHAR2(1);
BEGIN
  OPEN chk_unique;
  FETCH chk_unique INTO tmp;
  CLOSE chk_unique;
  IF tmp IS NOT NULL THEN
    Message('Ce département existe déjà.');
    RAISE Form_Trigger_Failure;
     ELSIF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;
END;


Déclencheur On-Clear-Details

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un événement provoque une synchronisation dans un bloc maître d'une relation Maître/Détail. Un événement provoquant une synchronisation est un événement qui remplace l'enregistrement en cours par un autre dans le bloc-maître.

Niveau de définition  application Forms ou bloc

Commandes valides

Toutes les commandes, les procédures internes non restreintes, les procédures internes restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Form Builder crée automatiquement le déclencheur On-Clear-Details lorsqu'une relation de bloc Maître/Détail est définie.

Sur échec

Entraîne l'interruption de l'opération ayant provoqué la synchronisation ainsi que des déclencheurs de synchronisation planifiés.

Activé dans

Synchronisation maître-détail

Voir Organigrammes d'analyse


Déclencheur On-Close

 Exemples	    Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un utilisateur ou l'application déclenche la fermeture d'une interrogation. Par défaut, Form Builder ferme une interrogation lorsque tous les enregistrements identifiés par les critères d'interrogation ont été extraits, ou lorsque l'utilisateur ou l'application met fin à l'interrogation.

Le déclencheur On-Close étend la phase normale de "fermeture du curseur" d'une interrogation de Form Builder.

Niveau de définition  application Forms

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

n	Utilisez un déclencheur On-Close après avoir utilisé les déclencheurs On-Select ou On-Fetch pour, respectivement, fermer des fichiers, fermer des curseurs et libérer de la mémoire.

n	Le déclencheur On-Close est activé automatiquement lorsque la procédure interne ABORT_QUERY est appelée à partir d'un déclencheur On-Select.

Sur échec

sans effet

Activé dans

ABORT_QUERY

Fermer l'interrogation

Voir Organigrammes d'analyse


Déclencheur On-Close - Exemples

Exemple

L'exemple ci-dessous libère la mémoire utilisée par une méthode d'accès aux données, définie par l'utilisateur via les déclencheurs transactionnels.

BEGIN
  IF NOT my_data source_open('DX110_DEPT') THEN
    my_datasource_close('DX110_DEPT');
     ELSIF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;
END;


Déclencheur On-Column-Security

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder doit normalement imposer la sécurité des colonnes de chaque bloc dont la propriété de bloc Imposer sécurité colonne est activée.

Le traitement normal de Form Builder de vérification de la sécurité des colonnes. Par défaut, Form Builder applique la sécurité des colonnes en interrogeant la base de données pour déterminer les colonnes de la table de base que l'utilisateur de l'application Forms en cours a le droit de mettre à jour. Pour les colonnes que l'utilisateur n'a pas le droit de mettre à jour, Form Builder interdit la mise à jour des éléments de la table de base correspondante, dans l'application Forms, en désactivant dynamiquement la propriété d'élément Mise à jour autorisée. Form Builder exécute cette opération au démarrage de l'application Forms en traitant les blocs les uns à la suite des autres.

Niveau de définition  application Forms ou bloc

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Pour effectuer le traitement par défaut à partir de ce déclencheur, appelez la procédure interne ENFORCE_COLUMN_SECURITY.

Sur échec

sans effet


Déclencheur On-Column-Security - Exemples

Exemple

L'exemple ci-dessous désactive les éléments texte de salaire et de commission du bloc en cours et interdit leur mise à jour, à moins que le rôle SUPERUTILISATEUR ne soit activé. Seuls les utilisateurs ayant le rôle SUPERUTILISATEUR défini par l'utilisateur peuvent modifier ces champs numériques.

DECLARE
  itm_id Item;
  on_or_off NUMBER;
BEGIN
  IF NOT role_is_set('SUPERUTILISATEUR') THEN
     on_or_off := PROPERTY_OFF;
  ELSE
    on_or_off := PROPERTY_ON;
  END IF;
  itm_id := Find_Item('Sal.Emp');
  Set_Item_Property(itm_id,ENABLED,on_or_off);
  Set_Item_Property(itm_id,UPDATEABLE,on_or_off);
  itm_id := Find_Item('Comm.Emp');
  Set_Item_Property(itm_id,ENABLED,on_or_off);
  Set_Item_Property(itm_id,UPDATEABLE,on_or_off);

 IF form_fatal OR form_failure THEN
     raise form_trigger_failure;
END IF;
END;


Déclencheur On-Commit

 Exemples	  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé chaque fois que Form Builder doit normalement émettre une instruction commit de la base de données pour finaliser une transaction. Par défaut, cette opération est exécutée lorsque tous les enregistrements marqués pour mise à jour, insertion et suppression ont été inscrits dans la base de données.

L'instruction par défaut COMMIT que Form Builder émet pour finaliser une transaction au cours du processus Transactions d'inscription et de validation.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

n	Utilisez un déclencheur On-Commit pour modifier les conditions de traitement normal d'enregistrement de Form Builder en fonction des caractéristiques d'une opération commit d'une base de données non ORACLE.

n	Pour exécuter le traitement par défaut à partir de ce déclencheur, appelez la procédure interne .

Sur échec

Interrompt les traitements d'inscription et de validation.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes d'analyse


Déclencheur On-Commit - Exemples

Exemple

Cet exemple désactive l'opération commit en cas d'exécution sur une source de données qui ne prend pas en charge le contrôle des transactions. Si l'application s'exécute sur ORACLE, l'opération commit se déroule normalement.

BEGIN
  IF Get_Application_Property(DATA_SOURCE) = 'ORACLE' THEN
    Commit_Form;
     ELSIF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;

  /*
  ** Sinon, aucune opération n'est exécutée
  */
END;


Déclencheur On-Count

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder doit normalement effectuer par défaut un comptage de lignes extraites pour déterminer le nombre de lignes de la base de données correspondant aux critères d'interrogation en cours. Lorsque le déclencheur On-Count a fini de s'exécuter, Form Builder émet le message standard suivant : FRM-40355: L'interrogation ramènera <n> enregistrements.

Niveau de définition  application Forms ou bloc

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation  oui

Notes d'utilisation

n	Utilisez un déclencheur On-Count pour remplacer le traitement par défaut de comptage du nombre de lignes extraites dans une application s'exécutant sur une source de données non ORACLE.

n	Pour exécuter le traitement par défaut de Form Builder à partir de ce déclencheur, ajoutez un appel à la procédure interne .

n	Si vous remplacez le traitement par défaut, vous pouvez définir la valeur de la propriété de bloc Compter nbre de lignes extraites pour indiquer le nombre d'enregistrements de la source de données non ORACLE correspondant aux critères d'interrogation.

n	Form Builder affiche le message FRM-40355 même si le déclencheur On-Count ne parvient pas à définir la valeur de la propriété de bloc QUERY_HITS. Dans ce cas, le message indique 0 enregistrement.

Sur échec

sans effet

Activé dans

COUNTQUE>referenc

Voir Organigrammes d'analyse


Déclencheur On-Count - Exemples

Exemple

Cet exemple appelle un sous-programme nommé par l'utilisateur pour compter le nombre d'enregistrements devant être extraits selon les critères d'interrogation en cours et définit en conséquence la propriété QUERY_HITS.

DECLARE
  j NUMBER;
BEGIN
  j := Recs_Returned('DEPT',Name_In('DEPT.DNAME'));
  Set_Block_Property('DEPT',QUERY_HITS,j);
END;


Déclencheur On-Delete

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Transactions d'inscription et de validation et remplace le traitement Form Builder par défaut de gestion des enregistrements supprimés pendant l'inscription des transactions. Il est activé après le déclencheur Pre-Delete et avant le déclencheur Post-Delete, et remplace la suppression effective d'une ligne spécifique de la base de données. Il est activé une fois par ligne marquée en vue de sa suppression de la base de donnée.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

n	Utilisez un déclencheur On-Delete pour remplacer le traitement Form Builder par défaut de gestion des enregistrements supprimés pendant l'inscription des transactions.

n	Pour exécuter le traitement Form Builder par défaut à partir de ce déclencheur, c'est-à-dire pour supprimer un enregistrement de votre application Forms ou de la base de données, ajoutez un appel à la procédure interne DELETE_RECORD.

Sur échec

Form Builder revient aux savepoints les plus récents.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes d'analyse


Déclencheur On-Delete - Exemples

Exemple

Cet exemple met à jour la table des employés afin de définir la date de cessation d'emploi (termination_date) au lieu de supprimer l'employé de la base de données.

BEGIN
  UPDATE emp
     SET termination_date = SYSDATE
   WHERE empno = :Emp.Empno;
IF form_fatal OR form_failure THEN
   raise form_trigger_failure;
END IF;
END;


Déclencheur On-Dispatch-Event

 Tous les déclencheurs

Description

Ce déclencheur est appelé lorsqu'un événement de contrôle ActiveX se produit. Vous pouvez appeler la procédure interne DISPATCH_EVENT à partir de ce déclencheur afin de préciser si le mode d'expédition est restreint ou non. Pour plus d'informations relatives au travail avec les événements de contrôle ActiveX, reportez-vous à Réaction aux événements de contrôle ActiveX.

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation  non

Sur échec

Sans effet


On-Dispatch Event - Exemples

Exemple

/*

déclencheur ON-DISPATCH-EVENT
*/
BEGIN
IF SYSTEM.CUSTOM_ITEM_EVENT = 4294966696 THEN
/*lorsque l'événement se produit, laissez-le s'appliquer à différents éléments */.
FORMS4W.DISPATCH_EVENT(RESTRICTED_ALLOWED);
ELSE
/*exécutez le déclencheur par défaut, qui ne permet	pas d'application à d'autre élément */
FORMS4W.DISPATCH_EVENT(RESTRICTED_UNALLOWED);
ENDIF;

  IF form_fatal OR form_failure THEN
     raise form_trigger_failure;
END IF;

END;


Déclencheur On-Error

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé chaque fois que Form Builder doit normalement provoquer l'affichage d'un message d'erreur.

Remplace

L'écriture d'un message d'erreur dans la ligne de message.

Niveau de définition  application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation  oui

Notes d'utilisation

n	Utilisez un déclencheur On-Error pour :

n	détecter une erreur et afficher un message ;

n	remplacer un message d'erreur standard par un message personnalisé.

Utilisez la fonction intégrée ERROR_CODE , ERROR_TEXT, ERROR_TYPE , DBMS_ERROR_TEXT  ou DBMS_ERROR_CODE dans un déclencheur On-Error pour identifier une condition d'erreur spécifique.

n	Dans la plupart des cas, les déclencheurs On-Error doivent être attachés à l'application Forms et non à un bloc ou à un élément. La détection de certaines erreurs, au niveau bloc ou élément, peut poser problème si ces erreurs se produisent pendant que Form Builder effectue une navigation interne, par exemple un processus commit.

Sur échec

sans effet


Déclencheur On-Error - Exemples

Exemple

L'exemple ci-dessous recherche des codes de message d'erreur spécifiques et réagit de manière appropriée.

DECLARE
   lv_errcod  NUMBER       := ERROR_CODE;
   lv_errtyp  VARCHAR2(3)  := ERROR_TYPE;
   lv_errtxt  VARCHAR2(80) := ERROR_TEXT;
BEGIN
   IF (lv_errcod = 40nnn) THEN
   /*
   **  Exécuter ici certaines tâches.
   */
   ELSIF (lv_errcod = 40mmm) THEN
   /*
   **  En exécuter d'autres ici.
   */
...
...
ELSIF (lv_errcod = 40zzz) THEN
   /*
   **  En exécuter encore d'autres ici.
   */
ELSE
   Message(lv_errtyp||'-'||to_char(lv_errcod)||': '||lv_errtxt);
   RAISE Form_Trigger_Failure;
END IF;
END;


Déclencheur On-Fetch

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

A la première ouverture d'une interrogation, ce déclencheur est activé immédiatement après le déclencheur On-Select lorsque les premiers enregistrements sont extraits du bloc. Pendant que l'interrogation reste ouverte, le déclencheur On-Fetch est activé chaque fois qu'un ensemble de lignes doit être extrait du bloc.

Niveau de définition  application Forms ou bloc

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Lorsque vous écrivez un déclencheur On-Fetch destiné à remplacer le traitement d'extraction par défaut, le déclencheur doit :

n	Extraire de la source de données non Oracle le nombre approprié d'enregistrements, indiqués par la définition de la propriété Records_to_Fetch.

n	Créer ce nombre d'enregistrements interrogés dans le bloc en cours.

n	Entrer les données extraites dans les enregistrements.

n	Créer des enregistrements interrogés, à partir d'un déclencheur On-Fetch, en appelant le sous-programme intégré CREATE_QUERIED_RECORD.

Pendant que l'interrogation reste ouverte, le déclencheur On-Fetch reste activé si le bloc demande davantage d'enregistrements. Ce comportement se poursuit :

n	jusqu'à ce qu'aucun enregistrement interrogé ne soit créé au cours d'une exécution du déclencheur. Si aucun enregistrement n'est créé, un signal de fin d'extraction est envoyé à Form Builder pour indiquer qu'il n'y a plus d'enregistrements à extraire.

n	jusqu'à ce que l'interrogation soit fermée, soit par l'utilisateur soit par programme, par un appel à ABORT_QUERY ;

n	jusqu'à ce que le déclencheur génère l'exception FORM_TRIGGER_FAILURE.

Pour exécuter le traitement Form Builder par défaut, à partir de ce déclencheur, ajoutez un appel à la procédure interne FETCH_RECORDS.

N'utilisez pas la procédure interne ABORT_QUERY dans un déclencheur On-Fetch. ABORT_QUERY n'est pas valide dans ce type de déclencheur et donne des résultats incohérents.

Sur échec

sans effet

Activé dans

Ramener enregistrements

Voir Organigrammes d'analyse


Déclencheur On-Fetch - Exemples

Cet exemple appelle une fonction de package côté client qui doit extraire d'un curseur de package le nombre approprié de lignes.

DECLARE
  j NUMBER := Get_Block_Property(blk_name, RECORDS_TO_FETCH);
  emprow emp%ROWTYPE;

BEGIN
  FOR ctr IN 1..j LOOP
    /*
    ** Essayer d'extraire la ligne suivante.
    */
    EXIT WHEN NOT MyPackage.Get_Next_Row(emprow);
    Create_Queried_Record;
    :Emp.rowid := emprow.ROWID;
    :Emp.empnon := emprow.EMPNO;
    :Emp.ename := emprow.ENAME;
       :
       :
  END LOOP;
    IF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;

END;


Déclencheur On-Insert

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Transactions d'inscription et de validation lorsqu'un enregistrement est inséré, c'est-à-dire après le déclencheur Pre-Insert et avant le déclencheur Post-Insert, lorsque Form Builder doit normalement insérer un enregistrement dans la base de données. Le déclencheur est activé une fois par ligne marquée en vue de son insertion dans la base de donnée.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

n	Utilisez un déclencheur On-Insert pour remplacer le traitement Form Builder par défaut de gestion des enregistrements insérés pendant l'inscription des transactions.

n	Pour exécuter le traitement Form Builder par défaut, à partir de ce déclencheur, ajoutez un appel à la procédure interne INSERT_RECORDS.

Sur échec

Lorsque le déclencheur On Insert échoue, Form Builder effectue les opérations suivantes :

n	localisation de l'erreur,

n	retour au savepoint le plus récent.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes d'analyse


Déclencheur On-Lock

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé chaque fois que Form Builder doit normalement tenter de verrouiller une ligne, comme lorsqu'un utilisateur appuie sur une touche pour modifier les données d'un élément. Le déclencheur est activé entre le moment où l'utilisateur appuie sur la touche et l'affichage des données modifiées.

Niveau de définition  application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

n	Utilisez un déclencheur On-Lock pour remplacer le traitement de Form Builder par défaut de verrouillage des lignes. Par exemple, pour une application destinée à un système mono-utilisateur, utilisez le déclencheur On-Lock pour accélérer le traitement en supprimant le traitement de tous les verrous. Utilisez également On-Lock en accédant directement à une source de données non ORACLE et non par Open Gateway.

n	Lorsque le déclencheur On-Lock est activé à la suite d'une tentative de modification des données par l'utilisateur, l'activation n'intervient que la première fois que l'utilisateur tente de modifier un élément de l'enregistrement. Il n'est pas activé pendant les modifications ultérieures des éléments du même enregistrement. En d'autres termes, le déclencheur est activé une fois pour chaque ligne qui doit être verrouillée.

n	Pour exécuter le traitement Form Builder par défaut à partir de ce déclencheur, ajoutez un appel à la procédure interne LOCK_RECORDS.

n	Utilisez ce déclencheur pour verrouiller les tables sous-jacentes des vues dont la mise à jour n'est pas autorisée.

Attention

Dans certains cas, vous pouvez utiliser l'instruction DML LOCK TABLE dans un déclencheur On-Lock. Cependant, comme cette opération pourrait interdire à d'autres utilisateurs l'accès à la table, utilisez LOCKTABLE avec prudence et reportez-vous à ORACLE RDMS Database Administrator's Guide.

Sur échec

Lorsque le déclencheur On-Lock échoue, l'enregistrement cible n'est pas verrouillé, et Form Builder tente de placer le point d'insertion sur l'élément en cours. Si cette opération n'est pas possible, Form Builder tente de placer le point d'insertion sur l'élément de navigation autorisée précédent.

Activé dans

Verrouiller ligne

Voir Organigrammes d'analyse


Déclencheur On-Logon

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé une fois pour chaque connexion lorsque Form Builder déclenche normalement la séquence de connexion.

Niveau de définition  application Forms

Commandes valides

Procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

n	Utilisez un déclencheur On-Logon pour déclencher une procédure de connexion à une source de données non ORACLE.

n	Les déclencheurs Pre-Logon et Post-Logon sont déclenchés pendant la procédure de connexion.

n	Pour créer une application ne demandant pas de source de données, vous pouvez placer une commande NULL dans ce déclencheur afin de supprimer la connexion à une source de donnée.

n	Pour exécuter le traitement Form Builder par défaut, à partir de ce déclencheur, ajoutez un appel à la procédure interne LOGON.

Sur échec

Form Builder tente de sortir progressivement de l'application Form et n'active pas le déclencheur Post-Logon.

Activé dans

LOGON

Voir Organigrammes d'analyse


Déclencheur On-Logout

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder déclenche une procédure de déconnexion de Form Builder et du SGBDR.

Niveau de définition  application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

n	Utilisez un déclencheur On-Logout pour remplacer le traitement de déconnexion par défaut, à partir soit du SGBDR, soit d'une source de données non ORACLE.

n	Pour exécuter le traitement Form Builder par défaut, à partir de ce déclencheur, ajoutez un appel à la procédure interne LOGOUT.

n	Si vous appelez certaines procédures internes à partir d'un déclencheur LOGOUT, les résultats sont imprévisibles. Par exemple, vous ne pouvez pas appeler la procédure interne COPY à partir d'un déclencheur Pre-Logout, car Pre-Logout est activé après un événement de sortie de l'application Forms. Comme l'application Forms n'est plus accessible, l'opération de copie n'est pas possible.

Sur échec

Si un déclencheur On-Logout génère une exception et une sortie de la session Runform en cours, Form Builder n'active pas de déclencheur, comme Post-Logout .

Activé dans

LOGOUT

Voir Organigrammes d'analyse


Déclencheur On-Message

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder doit normalement afficher le message, et entraîne le remplacement de ce message par un autre.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur On-Message pour :

n	détecter un message d'information et y répondre ;

n	remplacer un message informatif standard par un message personnalisé.

n	exclure un message inapproprié.

n	Utilisez la procédure interne MESSAGE_CODE, MESSAGE_TEXT, MESSAGE_TYPE dans un déclencheur On-Message pour identifier l'occurrence d'une condition de message spécifique.

n	Si vous utilisez le déclencheur On-Message pour détecter un message afin qu'il ne s'affiche pas dans la ligne de message, la procédure interne GET_MESSAGE ne retourne pas de valeur. Pour afficher le message en cours à partir de ce déclencheur, vous devez interrompre le message et l'écrire explicitement sur l'unité d'affichage.

n	Dans la plupart des cas, les déclencheurs On-Message doivent être attachés à l'application Forms et non à un bloc ou à un élément. La détection de certaines erreurs, au niveau bloc ou élément, peut poser problème si ces erreurs se produisent pendant que Form Builder effectue une navigation interne, par exemple un processus commit.

Sur échec

sans effet


Déclencheur On-Message - Exemples

Exemple

L'exemple ci-dessous répond à un message d'erreur par l'affichage d'un message d'alerte destiné à l'utilisateur lui permettant de choisir entre la poursuite ou l'arrêt de l'opération :

DECLARE
  alert_button NUMBER;
  lv_errtype VARCHAR2(3) := MESSAGE_TYPE;
  lv_errcod NUMBER := MESSAGE_CODE;
  lv_errtxt VARCHAR2(80) := MESSAGE_TEXT;
BEGIN
  IF lv_errcod = 40350 THEN
    alert_button := Show_Alert('continue_alert');
    IF alert_button = ALERT_BUTTON1 THEN
      ...
    ELSE
      ...
    END IF;
  ELSE
    Message(lv_errtyp||'-'||to_char(lv_errcod)||':  '||lv_errtxt);
    RAISE Form_Trigger_Failure;
  END IF;
    IF form_fatal OR form_failure THEN
     raise form_trigger_failure;
  END IF;

END;


Déclencheur On-Populate-Details

 Tous les déclencheurs

Description

Ce déclencheur est créé automatiquement par Form Builder lorsqu'une relation Maître/Détail est définie. Il est activé lorsque Form Builder doit normalement remplir le bloc détail d'une relation Maître/Détail.

Niveau de définition  application Forms ou bloc

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Utilisez un déclencheur On-Populate-Details lorsque vous avez créé une relation Maître/Détail et voulez remplacer la phase de remplissage par défaut d'une interrogation.

Le déclencheur On-Populate-Details n'est activé que lorsqu'un déclencheur On-Clear-Details est présent. Si vous utilisez la fonction Maître/Détail par défaut, Form Builder crée automatiquement les déclencheurs nécessaires. Cependant, si vous écrivez votre propre logique de relation Maître/Détail, n'oubliez pas que le déclencheur On-Clear-Details doit être présent, même s'il ne contient que l'instruction NULL.

Lorsque la synchronisation Immédiate est définie, les détails du maître instancié sont immédiatement remplis. La synchronisation immédiate est l'option par défaut.

Lorsque la Synchronisation différée est définie et que ce déclencheur est activé, Form Builder marque le bloc pour indiquer qu'il doit être synchronisé.

Si vous souhaitez gérer vous-même la synchronisation des blocs, vous pouvez appeler la procédure interne SET_BLOCK_PROPERTY (COORDINATION_STATUS).

Sur échec

Peut entraîner une incohérence de l'application Forms.

Activé dans

Coordination Maître/Détail

Voir Organigrammes d'analyse


Déclencheur On-Rollback

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder doit normalement émettre une instruction ROLLBACK pour annuler une transaction jusqu'au dernier savepoint émis.

Niveau de définition  application Forms

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Utilisez un déclencheur On-Rollback pour remplacer le traitement d'annulation Form Builder standard.

Pour effectuer un traitement Form Builder par défaut à partir de ce déclencheur, ajoutez un appel à la procédure interne ISSUE_ROLLBACK.

Activé dans

CLEAR_FORM

Transactions d'inscription et de validation

ROLLBACK_FORM

Voir Organigrammes d'analyse


Déclencheur On-Savepoint

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder doit normalement émettre une instruction Savepoint. Par défaut, Form Builder émet des savepoints au démarrage de l'application Forms, et au démarrage de chaque processus Transactions d'inscription et de validation.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Pour effectuer le traitement Form Builder par défaut à partir de ce déclencheur, ajoutez un appel à la procédure interne ISSUE_SAVEPOINT.

Dans un déclencheur On-Savepoint, la propriété d'application Savepoint_Name retourne le nom du prochain savepoint que Form Builder doit émettre par défaut si aucun déclencheur On-Savepoint n'est présent. Dans un déclencheur On-Rollback , Savepoint_Name retourne le nom du savepoint auquel Form Builder doit revenir.

Supprimez le traitement des savepoints par défaut en définissant à Off la propriété de document d'application Forms Mode Savepoint. Dans ce cas, Form Builder n'émet pas de savepoint, et le déclencheur On-Savepoint n'est donc jamais activé.

Sur échec

sans effet

Activé dans

CALL_FORM

Transactions d'inscription et de validation

SAVEPOINT

Voir Organigrammes d'analyse


Déclencheur On-Select

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder doit normalement exécuter les phases d'ouverture de curseur, d'analyse et d'exécution d'une interrogation pour identifier des enregistrements de la base de données correspondant aux critères d'interrogation en cours.

Niveau de définition  application Forms ou bloc

Commandes valides

Instructions SELECT, instructions PL/SQL, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Utilisez un déclencheur On-Select pour ouvrir et exécuter le curseur de base de données. Utilisez tout particulièrement ce déclencheur lorsque vous extrayez des données d'une source de données non ORACLE. Ce curseur peut être utilisé avec le déclencheur On-Fetch pour remplacer le traitement exécuté normalement dans le sous-programme intégré EXECUTE_QUERY.

Pour exécuter le traitement Form Builder par défaut à partir de ce déclencheur, ajoutez un appel à la procédure interne SELECT_RECORDS.

Sur échec

sans effet

Activé dans

EXECUTE_QUERY

Ouvrir l'interrogation

Voir Organigrammes d'analyse


Déclencheur On-Select - Exemples

Exemple

Dans l'exemple ci-dessous, ce déclencheur est utilisé pour appeler un user exit 'Interrogation' et un sous-programme intégré SELECT_RECORDS pour effectuer une interrogation sur une base de données.

IF Get_Application_Property(DATASOURCE) = 'DB2' THEN
  User_Exit ( 'Interrogation' );
  IF Form_Failure OR Form_Fatal THEN
    ABORT_QUERY;
  END IF;
ELSE
  /*
  **  Effectuer la tâche Form Builder par défaut d'ouverture de l'interrogation.
  */
  Select_Records;
END IF;


Déclencheur On-Sequence-Number

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder doit normalement exécuter le traitement par défaut de génération des numéros de séquence des valeurs d'éléments par défaut. Remplace la série d'événements par défaut survenant lorsque Form Builder exécute une interaction avec la base de données pour extraire la prochaine valeur d'un objet SEQUENCE défini dans la base de données.

Niveau de définition  application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Lorsqu'une SEQUENCE est utilisée comme valeur d'élément par défaut, Form Builder interroge la base de données à la recherche de la prochaine valeur de la SEQUENCE chaque fois que l'événement de création d'enregistrement se produit. Supprimez cette fonction ou la remplacer par un déclencheur On-Sequence-Number.

Pour exécuter le traitement Form Builder par défaut à partir de ce déclencheur, appelez la procédure interne GENERATE_SEQUENCE_NUMBER.

Sur échec

sans effet

Activé dans

GENERATE_SEQUENCE_NUMBER

Voir Organigrammes d'analyse


Déclencheur On-Update

 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Transactions d'inscription et de validation lors de la mise à jour d'un enregistrement, c'est-à-dire après le déclencheur Pre-Update et avant le déclencheur Post-Update lorsque Form Builder doit normalement mettre à jour un enregistrement de la base de données. Il est activé une fois par ligne marquée en vue de sa mise à jour dans l'application Forms.

Niveau de définition  application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Utilisez un déclencheur On-Update pour remplacer le traitement Form Builder par défaut de gestion des enregistrements mis à jour pendant l'inscription des transactions.

Pour effectuer le traitement Form Builder par défaut à partir de ce déclencheur, ajoutez un appel à la procédure interne UPDATE_RECORD.

Sur échec

Lorsque le déclencheur On-Update échoue, Form Builder exécute les opérations suivantes :

n	localisation de l'erreur,

n	retour au dernier savepoint émis.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes d'analyse


Déclencheur Post-Block

 Restrictions	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Sortir du bloc lorsque le point d'insertion sort du bloc actuel.

Niveau de définition  application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Utilisez un déclencheur Post-Block pour valider l'enregistrement en cours du bloc  c'est-à-dire celui dans lequel se trouvait le point d'insertion lorsque l'événement Sortir du bloc s'est produit.

Utilisez ce déclencheur pour tester une condition et empêcher l'utilisateur de sortir d'un bloc si cette condition est remplie.

Sur échec

Si le déclencheur échoue lors d'une tentative de faire de l'application Forms l'unité de navigation, Form Builder tente de définir la cible sur un bloc, sur un élément ou sur un enregistrement particulier. Si cette opération échoue, Form Builder tente de faire passer le curseur à un emplacement cible, mais si la cible se trouve en dehors de l'unité en cours ou que l'utilisateur demande de mettre fin au processus, Form Builder interrompt l'application Forms.

Activé dans

Sortir du bloc

Voir Organigrammes de processus


Déclencheur Post-Block - Restrictions

Un déclencheur Post-Block ne s'active pas lorsque la propriété de document d'application Forms Unité de validation est définie à Application Forms.


Déclencheur Post-Change

 Restrictions	    Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque l'une des conditions suivantes est remplie :

•	La propriété Valider élément détermine qu'un élément comporte une marque indiquant qu'il a été modifié et qu'il n'est pas NULL.

•	Un opérateur retourne une valeur dans un élément en effectuant une sélection à partir d'une liste de valeurs. Cet élément n'est pas NULL.

•	Form Builder extrait une valeur non NULL d'un élément. Dans ce cas, le déclencheur When-Validate-Item n'est pas activé. Pour éviter ce problème et supprimer le déclencheur Post-Change, vous devez ajouter un déclencheur Post-Query au déclencheur When-Validate-Item. Voir "Notes d'utilisation" ci-dessous.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Le déclencheur Post-Change n'est inclus que pour des raisons de compatibilité avec les précédentes versions de Form Builder. Son utilisation n'est pas conseillée dans les nouvelles applications.

Le déclencheur Post-Query n'est pas soumis aux mêmes restrictions que le déclencheur Post-Change. Vous pouvez l'utiliser pour modifier les valeurs extraites de la base de données. Dans ce cas, Form Builder inscrit, sur les éléments et les enregistrements correspondants, une marque indiquant qu'ils ont été modifiés.

Sur échec

Si ce déclencheur est activé pendant la validation amorcée par la navigation, la navigation échoue et le point d'insertion reste dans l'élément d'origine.

Si l'application Forms comporte des déclencheurs de style V2 et que Form Builder remplit un enregistrement de valeurs extraites, les restrictions applicables sont les suivantes :

•	Form Builder ne tient pas compte de toute tentative de modification de la valeur d'un élément de base de données dans l'enregistrement.

•	Form Builder n'exécute pas d'instruction SELECT n'affectant que les éléments de base de données dans l'enregistrement.

•	Form Builder n'exécute pas d'instruction SELECT ne comportant pas de clause INTO.

•	Si Form Builder n'exécute pas d'instruction SELECT au cours d'une étape de déclencheur de style V2, il considère que l'étape du déclencheur a réussi, même si la propriété d'étape de déclencheur Inverser code retour est définie.

Pendant le traitement des extractions, les déclencheurs Post-Change définis comme déclencheurs PL/SQL ne s'exécutent pas avec ces restrictions. Quel que soit le style de déclencheur, pendant une lecture d'enregistrement, Form Builder n'effectue pas de contrôle de validation, mais inscrit sur l'enregistrement et sur ses éléments une marque indiquant qu'ils sont valides, après activation, pour chaque élément, du déclencheur Post-Change.

Activé dans

Valider l'élément

Ramener enregistrements

Voir Organigrammes de processus


Déclencheur Post-Change - Restrictions

Notez qu'il est possible d'écrire un déclencheur Post-Change qui modifie la valeur d'un élément en cours de validation par Form Builder. Si la validation réussit, Form Builder inscrit sur l'élément modifié une marque indiquant qu'il est valide et ne le revalide pas. Ce comportement est nécessaire pour éviter les boucles de validation, mais vous permet d'enregistrer une valeur non valide dans la base de données.


Déclencheur Post-Database-Commit

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé une fois pendant le processus Transactions d'inscription et de validation, après la validation de la base de données. Notez que le déclencheur Post-Forms-Commit est activé après l'inscription d'insertions, de mises à jour et de suppressions dans la base de données, mais avant la finalisation de la transaction par une commande Commit. Ce déclencheur est activé après l'émission, par Form Builder, de la commande Commit pour finaliser la transaction.

Niveau de définition  application Forms

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation  non

Notes d'utilisation

Utilisez un déclencheur Post-Database-Commit pour effectuer une opération après une validation de la base de données.

Sur échec

Il n'y a pas d'annulation, car au stade auquel ce déclencheur risque d'échouer, Form Builder a déjà dépassé le moment où une annulation peut être amorcée pendant la réaction à l'échec.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Post-Database-Commit - Exemple

Exemple

/*

** FUNCTION recs_posted_and_not_committed
**  RETURN BOOLEAN IS
** BEGIN
**  Default_Value('TRUE','Global.Did_DB_Commit');
**  RETURN (:System.Form_Status = 'QUERY'
**         AND :Global.Did_DB_Commit = 'FALSE');
** END;
*/
BEGIN
  :Global.Did_DB_Commit := 'FALSE';
END;


Déclencheur Post-Delete

 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Transactions d'inscription et de validation, après la suppression d'une ligne. Il est activé une fois par ligne supprimée de la base de données au cours du processus de validation.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Delete pour vérifier les transactions.

Sur échec

Si le déclencheur Post-Delete échoue, Form Builder exécute les opérations suivantes :

•	localisation de l'erreur,

•	retour au savepoint le plus récent.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Post-Form

 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Sortir de l'application Forms.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Form pour effectuer les opérations suivantes :

•	Supprimer les données superflues de l'application Forms avant de sortir. Par exemple, utilisez un déclencheur Post-Form pour effacer les variables globales dont l'application Forms n'a plus besoin.

•	Afficher un message destiné à l'utilisateur lors de la sortie de l'application Forms.

Ce déclencheur n'est pas activé en cas de sortie anormale de l'application Forms, par exemple, si une validation échoue dans cette application.

Sur échec

arrêt de traitement

Activé dans

Sortir de l'application Forms

Voir Organigrammes de processus


Déclencheur Post-Forms-Commit

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé une fois pendant le processus Transactions d'inscription et de validation. Si l'application Forms comporte des enregistrements qui ont été marqués comme des insertions, des mises à jour ou des suppressions, ce déclencheur est activé après l'écriture de ces modifications dans la base de données, mais avant l'émission, par Form Builder, de la commande Commit pour finaliser la transaction.

Si l'utilisateur ou l'application déclenche une commande Commit alors que l'application Forms ne comporte pas d'enregistrement marqué comme insertion, mise à jour ou suppression, Form Builder active immédiatement le déclencheur Post-Forms-Commit, sans inscrire les modifications dans la base de données.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Forms-Commit pour effectuer une opération, comme la mise à jour d'une analyse rétrospective, chaque fois qu'une validation de la base de données doit avoir lieu.

Sur échec

Interruption du traitement Transactions d'inscription et de validation : Form Builder émet une commande ROLLBACK et décrémente le compteur interne de Savepoint.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Post-Forms-Commit - Exemple

Exemple

L'exemple ci-dessous peut être utilisé avec le déclencheur Post-Database-Commit pour détecter si des enregistrements ont été inscrits, mais non encore validés.

/*
** FUNCTION recs_posted_and_not_committed
** RETURN BOOLEAN IS
** BEGIN
**    Default_Value('TRUE','Global.Did_DB_Commit');
**    RETURN (:System.Form_Status = 'QUERY'
**       AND :Global.Did_DB_Commit = 'FALSE');
** END;
*/
BEGIN
  :Global.Did_DB_Commit := 'FALSE';
END;


Déclencheur Post-Insert

 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Transactions d'inscription et de validation, immédiatement après l'insertion d'un enregistrement. Il est activé une fois par enregistrement inséré dans la base de données au cours du processus de validation.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Insert pour vérifier les transactions.

Sur échec

Lorsque le déclencheur Post-Insert échoue, Form Builder effectue les opérations suivantes :

•	localisation de l'erreur,

•	retour au savepoint le plus récent.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Post-Logon

 Exemples	  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé après l'un des événements suivants :

•	Réussite du traitement de connexion par défaut de Form Builder

•	Réussite de l'exécution du déclencheur On-Logon

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Logon pour offrir un point d'événement pour une tâche comme la configuration d'un environnement personnalisé avec des variables spéciales  pour que l'initialisation ait lieu au niveau application, et non Application Forms par Application Forms. Vous pouvez obtenir le même résultat en initialisant des variables globales spéciales à partir de ce déclencheur.

Sur échec

Varie selon les conditions suivantes :

•	Si le déclencheur échoue pendant la première connexion, Form Builder quitte l'application Forms et revient au système d'exploitation.

•	Si le déclencheur échoue après une connexion réussie, Form Builder génère l'anomalie FORM_TRIGGER_FAILURE.

Activé dans

LOGON

Voir Organigrammes de processus


Déclencheur Post-Logon - Exemple

Exemple

L'exemple ci-dessous appelle un user exit pour consigner le nom utilisateur et l'heure dans un fichier cripté d'analyse rétrospective du système de fichiers qui, pour des raisons de sécurité, se trouve à l'extérieur de la base de données.

BEGIN
  User_Exit('CriptValid '||
            USER||' '  ||
            TO_CHAR(SYSDATE,'AAAAMMJJHH24MISS'));
END;


Déclencheur Post-Logout

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé après l'un des événements suivants :

•	Déconnexion de Form Builder d'ORACLE

•	Réussite de l'exécution du déclencheur On-Logout

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Logout pour vérifier ou exécuter des tâches sur une application Form Builder qui ne demande pas ou n'affecte pas le SGBDR ou une autre source de données.

Si vous appelez certaines procédures internes à partir de l'un des déclencheurs Logout, les résultats sont imprévisibles. Par exemple, vous ne pouvez pas appeler COPY à partir d'un déclencheur Pre-Logout, car Pre-Logout est activé après l'événement Sortir de l'application Forms. Comme l'application Forms n'est plus accessible, l'opération COPY n'est pas possible.

Sur échec

Si ce déclencheur échoue pendant la sortie de l'application Forms, il est sans effet.

Si ce déclencheur échoue alors que vous avez lancé un appel à la procédure interne LOGOUT à partir du déclencheur, l'anomalie FORM_FAILURE est définie à TRUE.

Activé dans

LOGOUT

Voir Organigrammes de processus


Déclencheur Post-Query

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Lorsqu'une interrogation est ouverte dans le bloc, le déclencheur Post-Query est activé chaque fois que Form Builder extrait un enregistrement d'un bloc. Il est activé une fois par enregistrement placé dans la liste des enregistrements du bloc.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Query pour effectuer les tâches suivantes :

•	remplir d'autres blocs en y entrant des éléments ou des éléments de contrôle ;

•	établir des statistiques sur les enregistrements extraits par une interrogation ;

•	calculer un total courant.

•	Lorsque vous utilisez un déclencheur Post-Query pour sélectionner (SELECT) des valeurs de table autres que des valeurs de table de base dans des éléments de contrôle, Form Builder inscrit sur chaque enregistrement une marque indiquant que celui-ci est modifié, et active donc le déclencheur When-Validate-Item par défaut. Pour éviter l'exécution du déclencheur When-Validate-Item, définissez explicitement la propriété d'état de chaque enregistrement à QUERY dans le déclencheur Post-Query. Pour définir l'état des enregistrements par programme, utilisez SET_RECORD_PROPERTY.

Sur échec

Form Builder supprime l'enregistrement du bloc et tente d'extraire le prochain enregistrement de la base de données. Si la base de données ne comporte plus d'enregistrement, Form Builder ferme l'interrogation et attend la prochaine action de l'utilisateur.

Activé dans

Ramener enregistrements

Voir Organigrammes de processus


Déclencheur Post-Query - Exemple

Exemple

L'exemple ci-dessous extrait des descriptions de champ de code pour les afficher dans des éléments autres que des éléments de base de données du bloc en cours.

DECLARE

  CURSOR lookup_payplan IS SELECT Payplan_Desc
                             FROM Payplan
                            WHERE Payplan_Id =
                                  :Employee.Payplan_Id;

  CURSOR lookup_area    IS SELECT Area_Name
                             FROM Zip_Code
                             WHERE Zip = :Employee.Zip;

BEGIN
  /*
  ** Consulter la description du plan de rémunération (Payplan) en
** fonction du Payplan_Id de l'enregistrement Employee qui vient d'être
** extrait. Pour une efficacité maximale, utiliser le curseur explicite.
  */
  OPEN lookup_payplan;
  FETCH lookup_payplan INTO :Employee.Payplan_Desc_Nondb;
  CLOSE lookup_payplan;

  /*
  ** Consulter la description de la région (Area) en fonction
  ** du Zip_Code postal de l'enregistrement Employee qui vient d'être extrait.
** Pour une efficacité maximale, utiliser le curseur explicite.
  */
  OPEN lookup_area;
  FETCH lookup_area INTO :Employee.Area_Desc_Nondb;
  CLOSE lookup_area;
END;


Déclencheur Post-Record

 Restrictions	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Sortir de l'enregistrement, plus précisément lorsque l'utilisateur ou l'application fait passer le point d'insertion d'un enregistrement à un autre. Le processus Sortir de l'enregistrement peut être exécuté à la suite de nombreuses opérations, dont INSERT_RECORD, DELETE_RECORD, NEXT_RECORD, NEXT_BLOCK, CREATE_RECORD, PREVIOUS_BLOCK, etc.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Record pour exécuter une action lorsque l'utilisateur ou l'application fait passer le point d'insertion d'un enregistrement à un autre. Par exemple, pour définir un attribut visuel d'un élément lorsque l'utilisateur fait défiler un ensemble d'enregistrements vers le bas, placez le code dans ce déclencheur.

Sur échec

Le point d'insertion reste dans l'enregistrement en cours.

Activé dans

Sortir de l'enregistrement

Voir Organigrammes de processus


Déclencheur Post-Record - Restrictions

Un déclencheur Post-Record n'est activé que lorsque l'application Forms s'exécute avec une unité de validation de l'élément ou de l'enregistrement, comme indiqué par la propriété d'application Forms Unité de validation.


Déclencheur Post-Select

 Tous les déclencheurs

Description

Ce déclencheur est activé après la phase de sélection par défaut du traitement de l'interrogation ou après l'exécution du déclencheur On-Select. Il est activé avant l'extraction effective des enregistrements par le traitement de l'extraction.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez le déclencheur Post-Select pour effectuer une opération en fonction du résultat de la phase de sélection du traitement d'interrogation comme une action fondée sur le nombre d'enregistrements correspondant aux critères d'interrogation.

Sur échec

sans effet

Activé dans

Exécuter interrogation

Ouvrir l'interrogation

Voir Organigrammes de processus


Déclencheur Post-Text-Item

 Restrictions	    Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Sortir de l'élément d'un élément texte, plus précisément lorsque le point d'insertion passe d'un élément texte à un autre élément.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Text-Item pour calculer ou modifier des valeurs d'élément.

Sur échec

La navigation échoue et le point d'insertion reste dans l'élément texte.

Activé dans

Sortir de l'élément

Voir Organigrammes de processus


Déclencheur Post-Text-Item - Restrictions

Le déclencheur Post-Text-Item n'est pas activé lorsque le point d'insertion est dans un élément texte et que l'utilisateur utilise la souris pour cliquer sur un bouton, une case à cocher, un élément liste ou un élément groupe de boutons d'option dont la propriété Navigation à la souris est désactivée. Lorsque la Navigation à la souris est désactivée pour ces éléments, cliquez sur ceux-ci alors que la souris est dans un événement sans navigation et que le point d'insertion reste dans l'élément en cours (dans cet exemple, un élément texte).


Déclencheur Post-Update

 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le traitement Transactions d'inscription et de validation, après la mise à jour d'une ligne. Il est activé une fois par ligne mise à jour dans la base de données pendant le processus de validation.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), codes de fonctions non restreintes.

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Post-Update pour vérifier des transactions.

Sur échec

Lorsque le déclencheur Post-Update échoue, Form Builder exécute les opérations suivantes :

•	localisation de l'erreur,

•	retour au savepoint le plus récent.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Pre-Block

 Restrictions	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Entrer dans le bloc, au cours de la navigation d'un bloc à l'autre.

Niveau de définition  forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Block pour :

•	activer ou désactiver l'accès à un block ;

•	définir des valeurs de variable.

Sur échec

La navigation échoue, et le point d'insertion reste dans l'élément source.

Activé dans

Entrer dans le bloc

Voir Organigrammes de processus


Déclencheur Pre-Block - Restrictions

Un déclencheur Pre-Block n'est activé que lorsque l'application Forms s'exécute avec une unité de validation de l'élément, de l'enregistrement ou du bloc, comme indiqué par la propriété d'application Forms Unité de validation.


Déclencheur Pre-Commit

 Tous les déclencheurs

Description

Ce déclencheur est activé une fois pendant le processus Transactions d'inscription et de validation, plus précisément avant que Form Builder traite les enregistrements à modifier et après que celui-ci a déterminé qu'il y avait, dans l'application Forms, des insertions, des mises à jour ou des suppressions à inscrire ou à valider mais, en tout cas, avant la validation des modifications. Il n'est pas activé en cas de tentative de validation, si l'application Forms ne comporte pas d'enregistrements modifiés.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Commit pour effectuer une opération, comme la configuration de caractéristiques spéciales de verrouillage, à chaque fois qu'une validation de la base de données va avoir lieu.

Sur échec

Si le processus Transactions d'inscription et de validation échoue, aucun enregistrement n'est écrit dans la base de données, et le point d'insertion reste dans l'élément en cours.

Remarque : Si vous exécutez DML dans un déclencheur Pre-Commit et que le déclencheur échoue, vous devez effectuer une annulation manuelle, car Form Builder n'effectue pas d'annulation automatique. En prévision d'une éventuelle annulation manuelle, enregistrez le nom du savepoint dans un déclencheur On-Savepoint , en utilisant GET_APPLICATION_PROPERTY (Nom_Savepoint). Vous pouvez alors annuler en utilisant ISSUE_ROLLBACK (Nom_Savepoint).

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Pre-Delete

 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Transactions d'inscription et de validation avant la suppression d'une ligne. Il est activé une fois par enregistrement comportant une marque indiquant qu'il doit être supprimé.

Remarque : Form Builder crée automatiquement un déclencheur Pre-Delete pour toute relation maître-détail dont la propriété Supprimer comportement de l'enregistrement est définie à En cascade.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Delete pour supprimer l'enregistrement détail d'un enregistrement maître.

Utilisez un déclencheur Pre-Delete pour empêcher la suppression d'un enregistrement si celui-ci est l'enregistrement maître pour des enregistrements détail existants.

Sur échec

Lorsque le déclencheur Pre-Delete échoue, Form Builder exécute les opérations suivantes :

•	localisation de l'erreur,

•	retour au savepoint le plus récent.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Pre-Form

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant l'événement Entrer dans l'application Forms, au démarrage de cette application.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Form pour effectuer les opérations suivantes :

•	attribuer une clé primaire à partir d'une séquence ;

•	limiter l'accès à une application Forms ;

•	initialiser des variables globales.

Sur échec

Form Builder quitte l'application Forms en cours et n'active pas d'autre déclencheur.

Activé dans

Entrer dans l'application Forms

Voir Organigrammes de processus


Déclencheur Pre-Insert

 Exemples	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Transactions d'inscription et de validation, avant l'insertion d'une ligne. Il est activé une fois par ligne marquée en vue de son insertion.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Insert pour effectuer les tâches suivantes :

•	modifier les valeurs des éléments ;

•	garder une trace de la date de création et de stockage d'un enregistrement avant sa validation.

Sur échec

Lorsque le déclencheur Pre-Insert échoue, Form Builder exécute les opérations suivantes :

•	localisation de l'erreur,

•	retour au savepoint le plus récent.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Pre-Insert - Exemple

Exemple

L'exemple ci-dessous affecte un champ de clé primaire fondé sur un numéro de séquence, puis écrit une ligne dans la table de vérification, en marquant d'un indicateur la création d'une nouvelle commande.

DECLARE
  CURSOR next_ord IS SELECT orderid_seq.NEXTVAL FROM dual;
BEGIN

  /*
  ** Entrer le numéro de séquence suivant du
  ** curseur explicite directement dans l'élément de l'enregistrement Order.
  ** Il est possible d'utiliser SELECT...INTO,
  ** mais le curseur explicite est plus efficace.
  */
  OPEN next_ord;
  FETCH next_ord INTO :Order.OrderId;
  CLOSE next_ord;

  /*
  ** Vérifier l'entrée du nouvel id de commande (OrderId) ok...
  */
  IF :Order.OrderId IS NULL THEN
    Message('Erreur de génération de l'Id de la commande suivante');
    RAISE Form_Trigger_Failure;
  END IF;

  /*
  ** Insérer une ligne dans la table de vérification.
  */
  INSERT INTO ord_audit( orderid, operation, username, timestamp )
  VALUES ( :Order.OrderId,
           'Nouvelle commande',
           USER,
           SYSDATE );

END;


Déclencheur Pre-Logon

 Tous les déclencheurs

Description

Ce déclencheur est activé immédiatement avant le déclenchement par Form Builder d'une procédure de connexion à la source des données.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Logon pour préparer l'application Forms à la procédure de connexion, surtout si la source de données est autre qu'ORACLE.

Sur échec

Le résultat d'un échec dépend des conditions dans lesquelles s'est déroulée l'opération :

•	Si Form Builder entre dans l'application Forms pour la première fois et que le déclencheur échoue, Form Builder sort progressivement de l'application Forms, mais aucun autre déclencheur n'est activé.

•	Si le déclencheur échoue pendant que Form Builder tente d'exécuter la procédure interne LOGON à partir du déclencheur, Form Builder génère l'anomalie FORM_TRIGGER_FAILURE.

Activé dans

LOGON

Voir Organigrammes de processus


Déclencheur Pre-Logout

 Tous les déclencheurs

Description

Ce déclencheur est activé une fois avant le déclenchement, par Form Builder, d'une procédure de déconnexion.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Logout pour préparer l'application Forms à une déconnexion de la source de données, surtout si la source de données est autre qu'ORACLE.

Si vous appelez certaines procédures internes à partir de l'un des déclencheurs Logout, les résultats sont imprévisibles. Par exemple, la procédure interne COPY ne peut pas être appelée à partir d'un déclencheur Pre-Logout, car celui-ci est activé après l'événement Sortir de l'application Forms. Comme cette application n'est plus accessible à ce moment-là, l'opération COPY n'est pas possible.

Sur échec

Le résultat d'un échec dépend des conditions dans lesquelles s'est déroulée l'opération :

•	 Si Form Builder quitte l'application Forms et que le déclencheur échoue, Form Builder sort progressivement de l'application Forms, mais aucun autre déclencheur n'est activé.

•	 Si le déclencheur échoue pendant que Form Builder tente d'exécuter la procédure interne LOGOUT à partir du déclencheur, Form Builder génère l'anomalie FORM_TRIGGER_FAILURE.

Si une anomalie est générée dans un déclencheur Pre-Logout, Form Builder n'active pas d'autres déclencheurs, comme On-Logout et Post-Logout .

Activé dans

LOGOUT

Voir Organigrammes de processus


Déclencheur Pre-Popup-Menu

 Tous les déclencheurs

Description

Ce déclencheur est appelé lorsqu'un utilisateur provoque l'affichage d'un menu instantané. (Dans un environnement Microsoft Windows, cela se produit lorsqu'il appuie sur le bouton droit de la souris.) Les opérations définies pour ce déclencheur sont effectuées avant l'affichage du menu instantané.

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez ce déclencheur pour activer ou désactiver les éléments d'un menu instantané avant son affichage.

Sur échec

Sans effet


Déclencheur Pre-Query

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le traitement Exécuter interrogation ou Compter nbre de lignes extraites, immédiatement avant l'écriture et le lancement, par Form Builder, d'une instruction SELECT d'identification des lignes correspondant aux critères d'interrogation.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Query pour modifier l'enregistrement exemple qui détermine les lignes qui seront identifiées par l'interrogation.

Sur échec

L'interrogation est annulée. Si l'utilisateur ou l'application a fait passer l'application Forms en mode Saisie interrogation, celle-ci reste dans ce mode.

Activé dans

COUNT_QUERY

EXECUTE_QUERY

Ouvrir l'interrogation

Préparer interrogation

Voir Organigrammes de processus


Déclencheur Pre-Query - Exemple

Exemple

L'exemple ci-dessous valide ou modifie les critères de recherche d'une interrogation de bloc de base de données.

BEGIN
  /*
  ** Définir la clause ORDER BY du bloc en cours d'interrogation,
  ** en fonction d'un groupe de boutons d'option appelé 'Sort_Column'
  **  dans un bloc de contrôle appelé 'Switches'. Le groupe se
  ** compose de trois boutons d'option comportant des
  ** valeurs de caractère fournissant le nom des trois
  ** colonnes de la table sur laquelle
  ** est fondé ce bloc :
  **
  **     SAL
  **     MGR,ENAME
  **     ENAME
  */
  Set_Block_Property('EMP',ORDER_BY, :Switches.Sort_Column);
  /*
  ** Vérifier que l'utilisateur a indiqué l'une des
  ** deux colonnes que nous avons indexées dans leurs
  ** critères de recherche, sinon déclencher l'échec
  ** de l'interrogation et l'émission d'un message d'aide.
  */
  IF :Employee.Ename IS NULL AND :Employee.Mgr IS NULL THEN
    Message('Fournir le nom de l'employé et/ou l'ID du manager '||
            'pour l'interrogation.');
    RAISE Form_Trigger_Failure;
  END IF;

  /*
  ** Modifier la clause WHERE par défaut pour qu'elle affiche
  ** soit "Employés actuels uniquement" soit "Employés partis",
  ** en fonction de la définition d'une case à cocher appelée
  ** 'Show_Term', dans un bloc de contrôle appelé 'Switches'.
  */
  IF Checkbox_Checked('Switches.Show_Term') THEN
    Set_Block_Property('EMP',DEFAULT_WHERE,'TERM_DATE IS NOT NULL');
  ELSE
    Set_Block_Property('EMP',DEFAULT_WHERE,'TERM_DATE IS NULL');
  END IF;
END;


Déclencheur Pre-Record

 Exemples	   Restrictions	    Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lors du processus Entrer enregistrement, pendant le passage à un enregistrement différent.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Record pour tenir à jour un total.

Sur échec

La navigation échoue, et le point d'insertion reste dans l'élément en cours.

Activé dans

Entrer enregistrement

Voir Organigrammes de processus


Déclencheur Pre-Record - Restrictions

Un déclencheur Pre-Record est activé uniquement lorsque l'application Forms s'exécute avec une unité de validation de l'élément ou de l'enregistrement, comme indiqué par la propriété d'application Forms Unité de validation.


Déclencheur Pre-Record - Exemple

Exemple

Le déclencheur ci-dessous empêche l'utilisateur de passer à un nouvel enregistrement en fonction de certaines conditions dynamiques et de l'état de SYSTEM.RECORD_STATUS donnant le résultat NOUVEAU.

IF (( dynamic-condition)
   AND :System.Record_Status = 'NOUVEAU') THEN
   RAISE Form_Trigger_Failure;
END IF;


Déclencheur Pre-Select

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le traitement Exécuter interrogation et Compter nbre de lignes extraites, après l'écriture, par Form Builder, de l'instruction SELECT à émettre, mais avant l'émission effective de cette dernière. Notez que l'instruction SELECT peut être analysée dans un déclencheur Pre-Select par lecture de la valeur de la variable système SYSTEM.LAST_QUERY.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Select pour préparer une interrogation avant qu'elle soit exécutée sur une source de données non ORACLE.

Sur échec

Sans effet : L'interrogation courante n'a ramené aucun enregistrement de la table. La table est vide ou ne contient aucun enregistrement répondant aux critères de recherche de l'interrogation.

Activé dans

EXECUTE_QUERY

Ouvrir l'interrogation

Préparer interrogation

Voir Organigrammes de processus


Déclencheur Pre-Text-Item

 Restrictions

Description

Ce déclencheur est activé pendant le processus Entrer élément, au cours de la navigation d'un élément à un élément texte.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Text-Item pour exécuter les tâches suivantes :

•	dériver une valeur par défaut complexe, en fonction d'autres éléments entrés précédemment dans le même enregistrement ;

•	enregistrer la valeur en cours de l'élément texte en vue d'une référence ultérieure, et stocker cette valeur dans une variable globale ou dans un paramètre d'application Forms.

Sur échec

La navigation échoue, et le point d'insertion reste dans l'élément en cours.

Activé dans

Entrer élément

Voir Organigrammes de processus


Déclencheur Pre-Text-Item - Restrictions

Un déclencheur Pre-Text-Item est activé uniquement lorsque l'application Forms s'exécute avec une unité de validation de l'élément, comme indiqué par la propriété d'application Forms Unité de validation.


Déclencheur Pre-Update

 Exemples	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Transactions d'inscription et de validation, avant la mise à jour d'une ligne. Il est activé une fois par enregistrement marqué en vue de sa mise à jour.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, instructions DML (DELETE, INSERT, UPDATE), procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur Pre-Update pour vérifier des transactions.

Sur échec

Lorsque le déclencheur Pre-Update échoue, Form Builder exécute les opérations suivantes :

•	localisation de l'erreur,

•	retour au savepoint le plus récent.

Activé dans

Transactions d'inscription et de validation

Voir Organigrammes de processus


Déclencheur Pre-Update - Exemple

Exemple

L'exemple ci-dessous écrit dans la Table de vérification une ligne correspondant à l'ancienne et à la nouvelle remise accordées à un client donné, ainsi que l'heure et la date de la modification et le nom de l'utilisateur l'ayant effectuée.

DECLARE
  old_discount NUMBER;
  new_discount NUMBER := :Customer.Discount_Pct;
  oper_desc    VARCHAR2(80);
  CURSOR old_value IS SELECT discount_pct FROM customer
                      WHERE CustId = :Customer.CustId;
BEGIN
  /*
  ** Extraire de la base de données l'ancien pourcentage
  ** de remise par IdClient (CustID). Cette opération
  ** est obligatoire car la valeur de :Customer.Discount_Pct sera la *nouvelle*
  ** valeur que nous allons valider, et nous voulons noter
  ** dans nos dossiers l'ancienne et la nouvelle valeurs.
  ** Nous pourrions utiliser SELECT...INTO, mais préférons le
  ** curseur explicite pour des raisons d'efficacité.
  */
  OPEN old_value;
  FETCH old_value INTO old_discount;
  CLOSE old_value;

  /*
  ** Si la nouvelle valeur est différente de l'ancienne,
  ** écrire un enregistrement de contrôle.
  */
  IF old_discount <> new_discount THEN
    /*
    ** Ecrire une chaîne affichant l'opération de
    ** remplacement de l'ancienne valeur par la nouvelle,
    **
    ** par exemple 'Remise passée de 13,5 % à 20 %'
    */
    oper_desc := 'Remise passée de '||
                 TO_CHAR(old_discount)||'% à '||
                 TO_CHAR(new_discount)||'%';

    /*
    ** Insérer l'enregistrement de contrôle avec l'heure et    ** la date de la modification ainsi que l'utilisateur.
    */
    INSERT INTO cust_audit( custid, operation, username,
       timestamp )
    VALUES ( :Customer.CustId,
             oper_desc,
             USER,
             SYSDATE );
  END IF;
END;


Déclencheur Query-Procedure

 Tous les déclencheurs

Description

Ce déclencheur est créé automatiquement par Form Builder lorsque la source d'interrogation des données est une procédure stockée. Ce déclencheur est appelé lorsqu'une opération d'interrogation est nécessaire. Considérez-le comme un déclencheur On-Query que le système appelle au lieu de procéder à des opérations d'interrogation par défaut.

Ne modifiez pas ce déclencheur.

Mode Saisie interrogation Reportez-vous aux notes d'utilisation

Notes d'utilisation

Lors de la construction d'une interrogation, n'importe quel élément peut être utilisé mais la propriété Colonnes de sources de données d'interrogation doit être définie de façon à ce que ces éléments soit transmis à la procédure stockée d'interrogation. Ensuite, la procédure stockée d'interrogation doit utiliser ces valeurs afin de filtrer les données. Le mode saisie d'interrogation n'est activé automatiquement que si vous le précisez.

Sur échec

Sans effet


Déclencheur Update-Procedure

 Tous les déclencheurs

Description

Ce déclencheur est créé automatiquement par Form Builder lorsque la source de mise à jour de données est une procédure stockée. Ce déclencheur est appelé lorsqu'une opération de mise à jour est nécessaire. Considérez-le comme un déclencheur On-Update que le système appelle au lieu de procéder à des opérations de mise à jour par défaut.

Ne modifiez pas ce déclencheur.

Mode Saisie interrogation  Non applicable.

Sur échec

Sans effet


Déclencheur nommé par l'utilisateur

 Tous les déclencheurs

Description

Un déclencheur nommé par l'utilisateur est un déclencheur défini dans une application Forms par le développeur. Les déclencheurs nommés par l'utilisateur ne sont pas automatiquement activés en réponse à un événement Form Builder, et doivent être appelés explicitement à partir d'autres déclencheurs ou sous-programmes nommés par l'utilisateur. Chaque déclencheur nommé par l'utilisateur et défini au même niveau doit avoir un nom qui lui est propre.

Pour exécuter un déclencheur nommé par l'utilisateur, vous devez appeler la procédure interne EXECUTE_TRIGGER, comme indiqué ci-dessous :

Execute_Trigger('mon_déclencheur_nommé_utilisateur');

Niveau de définition application Forms, bloc ou élément

Commandes valides

Toutes les commandes valides dans le déclencheur père à partir duquel a été appelé le déclencheur nommé par l'utilisateur.

Mode Saisie interrogation non

Notes d'utilisation

Les sous-programmes PL/SQL nommés par l'utilisateur peuvent être écrits en vue d'effectuer presque n'importe quelle tâche pour laquelle il est possible d'utiliser un déclencheur nommé par l'utilisateur.

Comme pour tous les déclencheurs, la portée d'un déclencheur nommé par l'utilisateur correspond au niveau de définition et à ses niveaux inférieurs. Lorsque plusieurs déclencheurs nommés par l'utilisateur ont le même nom, le déclencheur défini au niveau le plus bas a priorité sur les autres.

Il est plus pratique de définir des déclencheurs nommés par l'utilisateur au niveau Application Forms.

Créez un déclencheur nommé par l'utilisateur pour exécuter des sous-programmes nommés par l'utilisateur et définis dans un document d'application Forms à partir de commandes PL/SQL de menu et de sous-programmes nommés par l'utilisateur. (Les sous-programmes nommés par l'utilisateur et définis dans une application Forms ne peuvent pas être appelés directement à partir d'un menu PL/SQL, défini dans un document différent.) Dans le menu PL/SQL, appelez la procédure interne EXECUTE_TRIGGER pour exécuter un déclencheur nommé par l'utilisateur qui, à son tour, appelle le sous-programme nommé par l'utilisateur et défini dans l'application Forms en cours.

Sur échec

Définit la procédure interne FORM_FAILURE à TRUE. Comme le déclencheur nommé par l'utilisateur est toujours appelé par la procédure interne EXECUTE_TRIGGER, vous pouvez tester le résultat d'un déclencheur nommé par l'utilisateur comme vous le feriez  pour un sous-programme intégré, c'est-à-dire en recherchant les erreurs à l'aide des fonctions internes FORM_FAILURE, FORM_SUCCESS, FORM_FATAL.


Déclencheur When-Button-Pressed

 Exemples	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un utilisateur sélectionne un bouton à l'aide de la souris ou du clavier.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-Button-Pressed pour effectuer une opération de navigation, pour calculer des valeurs d'élément texte ou pour effectuer d'autres fonctions de niveau élément, bloc ou Application Forms.

Sur échec

sans effet


Déclencheur When-Button-Pressed - Exemple

Exemple

L'exemple ci-dessous exécute une opération COMMIT_FORM si l'application Forms a été modifiée.

BEGIN
  IF :System.Form_Status = 'MODIFIE' THEN
    Commit_Form;
    /*
    ** Si l'état de Form_Status n'est pas à nouveau
    ** 'INTERROGATION' après une validation, la
    ** validation a échoué.
    */
    IF :System.Form_Status <> 'INTERROGATION' THEN
      Message('Impossible de valider la commande dans la base de données...');
      RAISE Form_Trigger_Failure;
    END IF;
  END IF;
END;


Déclencheur When-Checkbox-Changed

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un utilisateur modifie l'état d'une case à cocher, soit en cliquant à l'aide de la souris, soit en utilisant le clavier.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-Checkbox-Changed pour déclencher une tâche dépendant de l'état d'une case à cocher.

Lorsqu'un utilisateur clique dans une case à cocher, la valeur interne de cet élément ne change que lorsque la navigation s'est effectuée de manière satisfaisante. Le déclencheur When-Checkbox-Changed est donc le premier à enregistrer la valeur d'un élément de case à cocher, qui a été modifiée. Pour tous les déclencheurs de navigation qui sont activés avant le déclencheur When-Checkbox-Changed, la valeur de l'élément de case à cocher est donc la même qu'avant l'opération déclenchée par l'utilisateur.

Sur échec

sans effet


Déclencheur When-Clear-Block

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé immédiatement avant l'effacement, par Form Builder, des données du bloc en cours.

Notez que le déclencheur When-Clear-Block n'est pas activé lorsque Form Builder efface le bloc en cours pendant un événement CLEAR_FORM.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation  oui

Notes d'utilisation

•	Utilisez un déclencheur When-Clear-Block pour effectuer une action chaque fois que Form Builder vide le bloc en cours. Par exemple, pour effectuer une validation automatique chaque fois que cette condition se présente.

•	Dans un déclencheur When-Clear-Block, la valeur de SYSTEM.RECORD_STATUS n'est pas fiable, car il n'y a pas d'enregistrement en cours. Vous pouvez également utiliser GET_RECORD_PROPERTY pour connaître l'état de l'enregistrement. Comme GET_RECORD_PROPERTY demande de faire référence à un enregistrement spécifique, sa valeur est toujours exacte.

Sur échec

sans effet sur l'effacement du bloc

Activé dans

CLEAR_BLOCK

COUNT_QUERY

ENTER_QUERY

Ouvrir l'interrogation

Voir Organigrammes de processus


Déclencheur When-Create-Record

 Exemples	  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder crée un nouvel enregistrement. Par exemple, lorsque l'utilisateur appuie sur la touche [Insérer] ou passe au dernier enregistrement d'un ensemble d'enregistrements en faisant défiler l'écran vers le bas, Form Builder active ce déclencheur.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur When-Create-Record pour effectuer une action chaque fois que Form Builder tente de créer un nouvel enregistrement. Ce déclencheur est également utile pour définir des valeurs par défaut complexes, calculées ou pilotées par données, qui doivent être indiquées à l'exécution et non lors de la conception.

Sur échec

Empêche la création du nouvel enregistrement. Si possible, revient à l'emplacement précédent.

Activé dans

CREATE_RECORD

Voir Organigrammes de processus


Déclencheur When-Create-Record - Exemple

Exemple

L'exemple ci-dessous attribue des valeurs par défaut calculées ou pilotées par données, sans inscrire sur l'enregistrement de marque indiquant qu'il a été modifié.

DECLARE
  CURSOR ship_dflt IS SELECT val
                        FROM cust_pref
                       WHERE Custid = :Customer.Custid
                         AND pref   = 'SHIP';
BEGIN
  /*
  ** Faire prendre par défaut à Invoice.Due_Date la valeur
Customer.Net_Days_Allowed, extraite du bloc Customer.
  */
  :Invoice.Due_Date := SYSDATE + :Customer.Net_Days_Allowed;
  /*
  ** Faire prendre par défaut à Ship_Method la préférence de ce
  ** client, stockée dans une table de préférences. Nous pourrions
  ** utiliser SELECT...INTO, mais préférons le curseur explicite
  ** pour des raisons d'efficacité.
 */
  OPEN ship_dflt;
  FETCH ship_dflt INTO :Invoice.Ship_Method;
  CLOSE ship_dflt;
END;


Déclencheur When-Custom-Item-Event

 Exemples	     Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un composant personnalisé JavaBean ou ActiveX (dans Microsoft Windows 32 bits) ou VBX (dans Microsoft Windows 3.x 16 bits) dans l'application Forms provoque un événement.

Niveau de définition:

application Forms, bloc, élément

Commandes valides

Procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation:

oui

Notes d'utilisation

Utilisez un déclencheur When-Custom-Item-Event en réponse à une sélection ou à un changement de valeur d'un composant personnalisé. La variable système SYSTEM.CUSTOM_ITEM_EVENT stocke le nom de l'événement, et la variable système SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS stocke un nom de paramètre contenant les arguments supplémentaires d'un événement qui est activé par un contrôle personnalisé.

Les noms des événements de contrôle respectent les majuscules et les minuscules.

Sur échec :

sans effet


Déclencheur When-Custom-Item-Event - Exemple

JavaBeans - Exemple

Ceci est l'exemple d'une procédure appelée par un déclencheur When-Custom-Item-Event d'une application Forms utilisant deux composants JavaBeas. (Pour plus de détails sur le contexte, voir l'exemple complet.)

Le déclencheur est activé par la distribution d'un événement personnalisé dans l'un des composants JavaBeans en réponse à une modification de valeur.

     CustomEvent ce = new CustomEvent(mHandler, VALUECHANGED);

     dispatchCustomEvent(ce);

Dans l'application Forms, le déclencheur When_Custom_Item_Event attaché à l'élément de zone JavaBean de ce composant est automatiquement activé en réponse à cet événement personnalisé.

Dans le code du déclencheur, il exécute la procédure suivante. Notez que cette procédure recueille les nouvelles valeurs définies dans le conteneur JavaBean (un nouveau taux d'animation, par exemple) en accédant à System.Custom_Item_Event_Parameters.

Dans cet exemple, la procédure utilise ensuite la procédure interne Set_Custom_Item_Property pour transmettre ces valeurs à l'autre composant JavaBean.

PROCEDURE Slider_Event_Trap IS

  BeanHdl   Item;

BeanValListHdl   ParamList;

paramType        Number;

EventName        VarChar2(20);

CurrentValue     Number(4);

NewAnimationRate Number(4);

Begin

-- Mettre à jour les éléments de données et champs d'affichage avec les informations actuelles relatives au rayon

BeanValListHdl := get_parameter_list(:SYSTEM.Custom_Item_Event_Parameters);

EventName      := :SYSTEM.Custom_Item_Event;

:event_name    := EventName;

if (EventName = 'MousePressed') then

   get_parameter_attr(BeanValListHdl,'Value',ParamType, CurrentValue);

   NewAnimationRate := (300 - CurrentValue);

   :Animation_Rate  := NewAnimationRate;

     set_custom_item_property('Juggler_Bean','SetAnimationRate', NewAnimationRate);

elsif (EventName = 'mouseReleased') then

   get_parameter_attr(BeanValListHdl,'Value',ParamType, CurrentValue);

     set_custom_item_property('Juggler_Bean','SetAnimationRate', NewAnimationRate);

  end if;

Fin;

VBX - Exemple

L'exemple ci-dessous concerne une procédure qui peut être appelée lorsque Form Builder active le déclencheur When-Custom-Item-Event.

DECLARE
 TabEvent  varchar2(80);
 TabNumber Number;
BEGIN
 TabEvent := :system.custom_item_event;
 /*
 ** Après avoir détecté un événement d'activation de souris,
 ** identifier l'onglet sélectionné et utiliser la procédure
 ** définie par l'utilisateur Goto_Tab_Page pour passer à la page sélectionnée.
 */
 IF (UPPER(TabEvent) = 'ACTIVATION DE SOURIS') THEN
  TabNumber := VBX.Get_Property('TABCONTROL','CurrTab');
  Goto_Tab_Page(TabNumber);
 END IF;
END;


Déclencheur When-Database-Record

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque Form Builder inscrit pour la première fois sur un enregistrement une marque d'insertion ou de mise à jour - c'est-à-dire que le déclencheur est activé dès que Form Builder détermine par validation que l'enregistrement doit être traité, par la prochaine opération d'inscription ou de validation, comme une insertion ou une mise à jour. Ce cas ne se présente généralement que lorsque l'utilisateur modifie le premier élément d'un enregistrement, et après une tentative de sortie de l'élément.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur When-Database-Record pour exécuter une action chaque fois qu'un enregistrement reçoit pour la première fois une marque d'insertion ou de mise à jour.

Sur échec

sans effet


Déclencheur When-Form-Navigate

 Exemples	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'une navigation entre applications Forms a lieu, comme lorsque l'utilisateur déplace le point d'insertion vers une autre application Forms chargée.

Niveau de définition application Forms

Commandes valides

Procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation:

non

Notes d'utilisation

Utilisez un déclencheur When-Form-Navigate pour exécuter une action lorsqu'une navigation interapplication Forms a lieu et sans tenir compte des événements d'activation et de désactivation de fenêtre.

Sur échec

sans effet


Déclencheur When-Form-Navigate - Exemple

Exemple

L'exemple ci-dessous concerne une procédure qui peut être appelée lorsque Form Builder active le déclencheur When-Form-Navigate.

DECLARE
 win_id WINDOW := FIND_WINDOW('WINDOW12');
BEGIN
 if (GET_WINDOW_PROPERTY(win_id,WINDOW_STATE) = 'MAXIMIZE' THEN
  SET_WINDOW_PROPERTY(win_id,WINDOW_STATE,MINIMIZE);
 else
  SET_WINDOW_PROPERTY(win_id,WINDOW_STATE,MAXIMIZE);
 end if;
END;


Déclencheur When-Image-Activated

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un utilisateur, à l'aide de la souris :

•	clique une fois sur un élément image

•	clique deux fois sur un élément image

Remarquez que vous activez également le déclencheur When-Image-Pressed en cliquant deux fois.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Sur échec

sans effet


Déclencheur When-Image-Pressed

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un utilisateur, à l'aide de la souris :

•	clique une fois sur un élément image

•	clique deux fois sur un élément image

Remarquez que vous activez également le déclencheur When-Image-Activated en cliquant deux fois.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-Image-Pressed pour exécuter une action lorsqu'un utilisateur clique une fois ou deux fois sur un élément image.

Sur échec

sans effet


Déclencheur When-List-Activated

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un utilisateur clique deux fois sur un élément d'une liste de type liste de sélection.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Un déclencheur When-List-Activated est activé uniquement pour les éléments liste de type liste de sélection, et non pour les éléments liste de type zone de liste déroulante. Le type d'affichage d'un élément liste est déterminé par la propriété Style de liste.

Sur échec

sans effet


Déclencheur When-List-Changed

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un utilisateur final sélectionne un autre élément dans une liste ou désélectionne l'élément actuellement sélectionné. De plus, si un déclencheur When-List-Changed est attaché à un élément liste de type zone de liste déroulante, il est activé chaque fois que l'utilisateur final entre ou modifie du texte.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-List-Changed pour lancer une opération lorsque la valeur de la liste est modifiée directement par l'utilisateur final. Le déclencheur When-List-Changed n'est pas lancé si la valeur de la liste est modifiée par programme, par exemple à l'aide de la procédure interne DUPLICATE_ITEM, ni si l'utilisateur final provoque l'appel d'une procédure modifiant la valeur. Par exemple, le déclencheur When-List-Changed n'est pas lancé si un utilisateur final duplique l'élément en utilisant une touche mise en correspondance avec la procédure interne DUPLICATE_ITEM.

Sur échec

sans effet


Déclencheur When-Mouse-Click

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque l'utilisateur clique avec la souris et que l'un des événements suivants se produit :

•	le déclencheur est attaché à l'application Forms lorsque l'utilisateur clique avec la souris dans un canevas ou un élément de l'application Forms ;

•	le déclencheur est attaché à un bloc lorsque l'utilisateur clique avec la souris dans un élément du bloc ;

•	le déclencheur est attaché à un élément lorsque l'utilisateur clique avec la souris dans l'élément.

Trois événements doivent se produire pour qu'un déclencheur When-Mouse-Click soit activé :

•	L'utilisateur appuie sur le bouton de la souris.

•	L'utilisateur relâche le bouton de la souris.

•	L'utilisateur clique sur le bouton de la souris.

L'utilisateur clique avec la souris. Tout déclencheur associé à ces événements est activé avant le déclencheur When-Mouse-Click.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez le déclencheur When-Mouse-Click pour déclencher une action chaque fois que l'utilisateur clique avec la souris dans un élément et/ou un canevas.

Sur échec

sans effet


Déclencheur When-Mouse-DoubleClick

 Exemples	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque l'utilisateur clique deux fois sur le bouton de la souris et que l'un des événements suivants se produit :

•	le déclencheur est attaché à l'application Forms lorsque l'utilisateur clique deux fois sur le bouton de la souris dans un canevas ou un élément de l'application Forms ;

•	le déclencheur est attaché à un bloc lorsque l'utilisateur clique deux fois sur le bouton de la souris dans un élément du bloc ;

•	le déclencheur est attaché à un élément lorsque l'utilisateur clique deux fois sur le bouton de la souris dans l'élément.

Le déclencheur When-Mouse-DoubleClick est activé lorsque les six éléments suivants se produisent :

•	L'utilisateur appuie sur le bouton de la souris.

•	L'utilisateur relâche le bouton de la souris.

•	L'utilisateur clique sur le bouton de la souris.

•	L'utilisateur appuie sur le bouton de la souris.

•	L'utilisateur relâche le bouton de la souris.

•	L'utilisateur clique deux fois sur le bouton de la souris.

L'utilisateur clique deux fois avec la souris. Tout déclencheur associé à ces événements est activé avant le déclencheur When-Mouse-DoubleClick.

Niveau de définition  application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation  oui

Notes d'utilisation

Utilisez un déclencheur When-Mouse-DoubleClick pour exécuter une action chaque fois que l'utilisateur clique deux fois sur le bouton de la souris dans un élément et/ou un canevas.

Sur échec

sans effet


Déclencheur When-Mouse-DoubleClick - Exemple

Exemple

Supposons qu'une application demande le comportement A lorsque l'utilisateur clique sur le bouton de la souris et le comportement B lorsqu'il clique deux fois sur le bouton de la souris. Par exemple, si l'utilisateur clique sur le bouton de la souris, une fenêtre d'informations produit doit s'afficher. Si l'utilisateur clique deux fois sur le bouton de la souris, une fenêtre d'aide en ligne doit s'afficher.

Cet exemple utilise trois déclencheurs : When-Mouse-Click, When-Timer-Expired et When-Mouse-DoubleClick.

/*
**  Déclencheur : When-Mouse-Click
**  Exemple :     Lorsque l'utilisateur clique sur le bouton de
**                la souris, créer un délai qui expire au bout de 0,5 seconde.
*/

DECLARE
   timer_id        TIMER;
   timer_duration  NUMBER(5) := 500;
BEGIN
   timer_id := Create_Timer('doubleclick_timer', timer_duration,
     NO_REPEAT);
END;

/*
**  Déclencheur : When-Timer-Expired
**  Exemple :     Lorsque le délai est écoulé, afficher la fenêtre d'aide
** en ligne si l'utilisateur a cliqué deux fois sur le bouton de la
**                souris dans ce délai de 0,5 seconde, sinon
**                afficher la fenêtre d'informations produit.
*/
BEGIN
   IF :Global.double_click_flag = 'TRUE' THEN
     Show_Window('online_help');
     :Global.double_click := 'FALSE';
   ELSE
     Show_Window('product_information');
   END IF;
END;

/*
**  Déclencheur : When-Mouse-DoubleClick
**  Exemple :     Si l'utilisateur clique deux fois sur le
**                bouton de la souris, positionner un
**                indicateur signalant cet événement.
*/
BEGIN
   :Global.double_click_flag := 'TRUE';
END;


Déclencheur When-Mouse-Down

 Restrictions	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque l'utilisateur appuie sur le bouton de la souris et que l'un des événements suivants se produit :

•	le déclencheur est attaché à l'application Forms lorsque l'utilisateur appuie sur le bouton de la souris dans un canevas ou un élément de l'application Forms ;

•	le déclencheur est attaché à un bloc lorsque l'utilisateur appuie sur le bouton de la souris dans un élément du bloc ;

•	le déclencheur est attaché à un élément lorsque l'utilisateur appuie sur le bouton de la souris dans l'élément.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-Mouse-Down pour exécuter une action chaque fois que l'utilisateur appuie sur le bouton de la souris dans un élément et/ou un canevas.

Remarque : L'événement bouton souris enfoncé est toujours suivi d'un événement bouton souris relâché.

Sur échec

sans effet


Déclencheur When-Mouse-Down - Restrictions

En fonction du gestionnaire de fenêtres, le code de navigation dans un déclencheur When-Mouse-Down peut échouer. Par exemple, sous Microsoft Windows, si l'utilisateur clique sur le bouton de la souris dans un champ (Item_One), un déclencheur When-Mouse-Down qui appelle GO_ITEM (Item_Two) échoue, car Windows rend le point d'insertion à Item_One, et non à Item_Two, puisque l'événement When-Mouse-Up s'est produit dans Item_Two.


Déclencheur When-Mouse-Enter

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque la souris passe dans un élément ou un canevas et que l'un des événements suivants se produit :

•	le déclencheur est attaché à l'application Forms lorsque la souris entre dans un canevas ou un élément de l'application Forms ;

•	le déclencheur est attaché à un bloc lorsque la souris entre dans un élément du bloc ;

•	le déclencheur est attaché à un élément lorsque la souris entre dans l'élément.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-Mouse-Enter pour exécuter une action chaque fois que la souris entre dans un élément ou un canevas.

N'utilisez pas le déclencheur When-Mouse-Enter sur un canevas plus grand que la fenêtre. Les boutons icône et les éléments du canevas situés sous la fenêtre initiale ne peuvent pas être sélectionnés. L'utilisateur peut faire défiler le canevas pour afficher ces éléments. Cependant, dès que la souris pénètre dans cette zone, le déclencheur est lancé et retourne à la cible précédente ; l'utilisateur ne peut donc jamais cliquer sur ces éléments.

La modification d'une propriété de bulle d'information dans un déclencheur When-Mouse-Enter annule la bulle d'information avant même sa première apparition.

Faites attention avant d'appeler une fenêtre modale à partir d'un déclencheur When-Mouse-Enter, car cette opération peut entraîner l'apparition d'une fenêtre modale non nécessaire.

Par exemple, supposons que votre déclencheur When-Mouse-Enter entraîne l'apparition de Alert_One lorsque la souris entre dans Canvas_One. Supposons également que votre application contient deux canevas, Canvas_One et Canvas_Two qui ne se chevauchent pas, mais figurent côte à côte sur l'écran. En outre, supposons que Alert_One s'affiche dans le cadre de Canvas_Two.

Enfin, supposons que la souris est entrée dans Canvas_One, activant le déclencheur When-Mouse-Enter qui déclenche à son tour l'affichage de Alert_One.

Lorsque l'utilisateur quitte une zone de message, Alert_One s'affiche de nouveau, sans nécessité, si l'utilisateur entre ensuite dans Canvas_One à l'aide de la souris. En outre, lorsque l'utilisateur fait sortir la souris de Canvas_Two, tout déclencheur When-Mouse-Leave associé à cet événement est activé - ce qui peut ne pas être le comportement voulu.

Sur échec

sans effet


Déclencheur When-Mouse-Leave

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque la souris sort d'un élément ou d'un canevas et que l'un des événements suivants se produit :

•	le déclencheur est attaché à l'application Forms lorsque la souris quitte un canevas ou un élément de l'application Forms ;

•	le déclencheur est attaché à un bloc lorsque la souris quitte un élément du bloc ;

•	le déclencheur est attaché à un élément lorsque la souris quitte l'élément.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-Mouse-Leave pour exécuter une action chaque fois que la souris quitte un élément et ou un canevas.

Sur échec

sans effet


Déclencheur When-Mouse-Move

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque la souris se déplace et que l'un des événements suivants se produit :

•	le déclencheur est attaché à l'application Forms lorsque la souris se déplace dans un canevas ou un élément de l'application Forms ;

•	le déclencheur est attaché à un bloc lorsque la souris se déplace dans un élément du bloc ;

•	le déclencheur est attaché à un élément lorsque la souris se déplace dans l'élément.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez le déclencheur When-Mouse-Move pour exécuter une action chaque fois que l'utilisateur déplace la souris.

Le déclencheur When-Mouse-Move peut influer sur les performances en raison du nombre de fois où il peut éventuellement être activé.

Sur échec

sans effet


Déclencheur When-Mouse-Up

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque l'utilisateur appuie sur le bouton de la souris, puis le relâche et que l'un des événements suivants se produit :

•	le déclencheur est attaché à l'application Forms lorsque l'événement bouton souris relâché est reçu dans un canevas ou un élément de l'application Forms ;

•	le déclencheur est attaché à un bloc lorsque l'événement bouton souris relâché est reçu dans un élément du bloc ;

•	le déclencheur est attaché à un élément lorsque l'événement bouton souris relâché est reçu dans l'élément.

Deux événements doivent se produire avant qu'un déclencheur When-Mouse-Up soit activé :

•	L'utilisateur appuie sur le bouton de la souris.

•	L'utilisateur relâche le bouton de la souris.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez le déclencheur When-Mouse-Up pour exécuter une action chaque fois que l'utilisateur appuie sur le bouton de la souris, puis le relâche.

L'événement bouton souris relâché est toujours associé à l'élément qui a reçu l'événement bouton souris enfoncé. Supposons, par exemple, qu'il y ait un déclencheur When-Mouse-Up attaché à Item_One. Si l'utilisateur appuie sur le bouton de la souris dans Item_One, mais le relâche dans Item_Two, le déclencheur bouton souris relâché sera activé pour Item_One, et non pour Item_Two.

Sur échec

sans effet


Déclencheur When-New-Block-Instance

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque le point d'insertion passe à un élément dans un bloc différent. Plus précisément, il est activé après la navigation vers un élément lorsque Form Builder est prêt à accepter une entrée dans un bloc différent de celui dans lequel le point d'insertion se trouvait précédemment.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur When-New-Block-Instance pour exécuter une action chaque fois que Form Builder passe à un nouveau bloc.

Sur échec

sans effet

Activé dans

Retourner sur entrée

Voir Organigrammes de processus


Déclencheur When-New-Form-Instance

 Exemples	 Restrictions	  Rubriques connexes	 Tous les déclencheurs

Description

Lors du démarrage de l'application Forms, Form Builder passe au premier élément de navigation autorisée du premier bloc de navigation autorisée. Un déclencheur When-New-Form-Instance est activé lorsqu'un déclencheur de navigation activé pendant la séquence de navigation initiale s'est déroulé correctement.

Ce déclencheur n'est pas activé lorsque le contrôle est rendu à une application Forms appelante à partir d'une application Forms appelée.

Dans une application comportant plusieurs applications Forms, ce déclencheur n'est pas activé lorsque le point d'insertion passe d'une application Forms à une autre.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes

Mode Saisie interrogation non

Sur échec

sans effet

Activé dans

Exécuter application Forms

Voir Organigrammes de processus


Déclencheur When-New-Form-Instance - Restrictions

1	Lorsque vous appelez FORMS_OLE.GET_INTERFACE_POINTER à partir du déclencheur When-New-Form-Instance, le système génère une anomalie (ORA-305500), à moins que vous n'initialisiez l'élément OLE ou le contrôle ActiveX à l'aide de la procédure interne SYNCHRONIZE.

2	Lorsqu'une nouvelle application Forms est appelée, elle apparaît par défaut à l'écran à la position x-y. Si cette position ne vous convient pas, vous pouvez modifier les coordonnées x-y. Cependant, elles ne peuvent pas être modifiées dans le déclencheur When-New-Form-Instance. (Ce dernier est lancé trop tard dans la séquence.) Pour modifier les coordonnées, utilisez le déclencheur Pre-Form.


Déclencheur When-New-Form-Instance - Exemple

Exemple

L'exemple ci-dessous appelle un sous-programme pour afficher des images dynamiques, démarre une horloge pour rafraîchir l'horloge écran et interroge le premier bloc.

BEGIN
  Populate_Dynamic_Boilerplate;
  Start_OnScreen_Clock_Timer;
  Go_Block('Primary_Ord_Info');

  /*
  ** Interroger le bloc sans afficher
  ** le message indiquant qu'une opération est en cours.
  */
  :System.Suppress_Working := 'TRUE';
  Execute_Query;
  :System.Suppress_Working := 'FALSE';
END;


Déclencheur When-New-Item-Instance

 Restrictions	    Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque le point d'insertion passe à un élément, plus précisément, après la navigation vers un élément lorsque Form Builder est prêt à accepter l'entrée dans un élément différent de celui dans lequel se trouvait précédemment le point d'insertion.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes restreintes, procédures internes non restreintes.

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-New-Item-Instance pour exécuter une action lorsque le point d'insertion passe dans un élément. Ce déclencheur est particulièrement utile pour appeler des procédures internes restreintes (de navigation).

Sur échec

sans effet

Activé dans

Retourner sur entrée

Voir Organigrammes de processus


Déclencheur When-New-Item-Instance - Restrictions

Les conditions dans lesquelles ce déclencheur est activé ne sont pas remplies lorsque :

•	Form Builder navigue dans un élément, sans s'arrêter pour accepter une entrée ;

•	le point d'insertion passe dans un champ d'une fenêtre d'alerte ou encore dans une partie quelconque d'un menu de Form Builder.


Déclencheur When-New-Record-Instance

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque le point d'insertion passe à un élément d'un enregistrement différent de l'enregistrement dans lequel le point d'insertion se trouvait précédemment. Plus précisément, il est activé après la navigation vers un élément d'un enregistrement lorsque Form Builder est prêt à accepter une entrée dans un enregistrement différent de celui dans lequel le point d'insertion se trouvait précédemment.

Il est activé lorsque Form Builder passe à un nouvel enregistrement.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-New-Record-Instance pour exécuter une action chaque fois que Form Builder passe à un nouvel enregistrement. Par exemple lorsqu'un utilisateur appuie sur [Bas] pour faire défiler un ensemble d'enregistrements, Form Builder active ce déclencheur chaque fois que le point d'insertion passe à l'enregistrement suivant, en d'autres termes chaque fois que Form Builder passe à un nouvel enregistrement du bloc.

Sur échec

sans effet

Activé dans

Retourner sur entrée

Voir Organigrammes de processus


Déclencheur When-Radio-Changed

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un utilisateur sélectionne un autre bouton d'option d'un groupe ou annule la sélection du bouton d'option sélectionné, soit en cliquant à l'aide de la souris, soit en utilisant le clavier.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez un déclencheur When-Radio-Changed pour exécuter une action dépendant de l'état d'un groupe de boutons d'option. (Si vous annulez la sélection d'un bouton d'option d'un groupe, la valeur du groupe passe à NULL ; les utilisateurs choisissent cette technique en mode Saisie interrogation pour exclure un groupe de boutons d'option d'une interrogation.)

Lorsqu'un utilisateur clique sur un élément d'un groupe de boutons d'option, la valeur interne de cet élément ne change que lorsque la navigation s'est effectuée correctement. Le déclencheur When-Radio-Changed est donc le premier à enregistrer la valeur modifiée d'un groupe de boutons d'option. Pour tous les déclencheurs de navigation activés avant le déclencheur When-Radio-Changed, le groupe de boutons d'option conserve la valeur qu'il avait avant que l'utilisateur ne déclenche un élément de navigation.

Sur échec

sans effet


Déclencheur When-Remove-Record

 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque l'utilisateur ou l'application annule ou supprime un enregistrement.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur When-Remove-Record pour exécuter une action chaque fois que Form Builder efface ou supprime un enregistrement.

Sur échec

Form Builder passe au niveau bloc avec ou sans validation, en fonction de l'opération en cours, et fait passer le curseur sur le bloc cible.

Activé dans

CLEAR_RECORD

DELETE_RECORD

Voir Organigrammes de processus


Déclencheur When-Tab-Page-Changed

 Exemples	  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lors de la navigation à la souris ou vers un élément explicite d'une page à onglet à une autre d'un canevas onglet.

Niveau de définition application Forms

Commandes valides

Procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation non

Notes d'utilisation

•	Utilisez un déclencheur When-Tab-Page-Changed pour exécuter des actions lors d'un changement de page à onglet au cours de la navigation à la souris ou vers un élément explicite.

•	Le déclencheur When-Tab-Page-Changed est activé uniquement lorsque la navigation vers une page à onglet est explicite ; il ne réagit pas à la navigation implicite. Par exemple, ce déclencheur est activé lorsque l'utilisateur navigue entre les pages à onglet à l'aide de la souris ou du clavier, mais il n'est pas activé si l'utilisateur appuie sur [Elément suivant] (tabulation) pour passer d'un champ à un autre du même bloc, mais sur des pages à onglet  différentes.

•	Le déclencheur When-Tab-Page-Changed n'est pas activé lors des changements de page à onglet par programme.

Sur échec

sans effet


Déclencheur When-Tab-Page-Changed - Exemple

Exemple

/* Utilisez un déclencheur When-Tab-Page-Changed pour faire

** passer dynamiquement le libellé d'une page à onglet  de
** minuscules en majuscules (pour indiquer aux utilisateurs
** qu'ils ont déjà navigué vers la page à onglet, le cas échéant):
*/
DECLARE
  tp_nm   VARCHAR2(30);
  tp_id   TAB_PAGE;
  tp_lb   VARCHAR2(30);

BEGIN
  tp_nm := GET_CANVAS_PROPERTY('emp_cvs', topmost_tab_page);
  tp_id := FIND_TAB_PAGE(tp_nm);
  tp_lb := GET_TAB_PAGE_PROPERTY(tp_id, label);

  IF tp_lb LIKE 'Sa%' THEN
    SET_TAB_PAGE_PROPERTY(tp_id, label, 'SALAIRE');
  ELSIF tp_lb LIKE 'Va%' THEN
    SET_TAB_PAGE_PROPERTY(tp_id, label, 'VACANCES');
  ELSE null;
  END IF;
END;


Déclencheur When-Timer-Expired

 Exemples	 Restrictions	  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'un délai est écoulé.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Les horloges sont créées par programme en appelant la procédure interne CREATE_TIMER.

•	Le déclencheur When-Timer-Expired ne peut pas être activé pendant le traitement d'un déclencheur, d'une navigation ou d'une transaction.

•	Utilisez un déclencheur When-Timer-Expired pour déclencher un événement, mettre à jour des valeurs d'élément ou effectuer une tâche qui doit être exécutée après un intervalle donné.

•	Vous pouvez appeler GET_APPLICATION_PROPERTY (NOM_DELAI) dans un déclencheur When-Timer-Expired pour déterminer le nom du dernier délai écoulé.

Sur échec

sans effet

Activé dans

Traiter horloge expirée

Voir Organigrammes de processus


Déclencheur When-Timer-Expired - Restrictions

Un déclencheur When-Timer-Expired n'est pas activé lorsque l'utilisateur navigue dans un menu.


Déclencheur When-Timer-Expired - Exemple

Exemple

L'exemple suivant affiche une zone de message chaque fois qu'un délai est écoulé. Il est extrait d'une application de télémarketing dans laquelle les appels de vente sont synchronisés, et les zones de message affichées pour envoyer, à chaque étape de l'appel, un message au vendeur. La zone de message est affichée chaque fois qu'un délai est écoulé.

DECLARE
  timer_id  TIMER;
  alert_id  ALERT;
  call_status NUMBER;
  msg_1       VARCHAR2(80) := 'Mettez fin à la première phase
                               de votre présentation';
  msg_2       VARCHAR2(80) := 'Passez à votre conclusion.';
  msg_3       VARCHAR2(80) := 'Demandez la commande ou
                               répétez la conclusion.'
  two_minutes NUMBER(6) := (120 * 1000);
  one_and_half NUMBER(5) := (90 * 1000);
BEGIN
  :GLOBAL.timer_count := 1
  BEGIN
    timer_id := FIND_TIMER('tele_timer');
    alert_id := FIND_ALERT('tele_alert');
  IF :GLOBAL.timer_count = 1 THEN
    Set_Alert_Property(alert_id, ALERT_MESSAGE_TEXT, msg_1);
  call_status := Show_Alert(alert_id);
  IF call_status = ALERT_BUTTON1 THEN
    Delete_Timer(timer_id);
    Next_Record;
  ELSIF
    call_status = ALERT_BUTTON2 THEN
    :GLOBAL.timer_count := 0;
  ELSE
    Set_Timer(timer_id, two_minutes, NO_CHANGE);
  END IF;
ELSIF :GLOBAL.timer_count = 2 THEN
    Change_Alert_Message(alert_id, msg_2);
    call_status := Show_Alert(alert_id);
    IF call_status = ALERT_BUTTON1 THEN
      Delete_Timer(timer_id);
      Next_Record;
    ELSIF
      call_status = ALERT_BUTTON2 THEN
      :GLOBAL.timer_count := 0;
    ELSE
      Set_Timer(timer_id, one_and_half, NO_CHANGE);
    END IF;
  ELSE
    Change_Alert_Message(alert_id, msg_3);
    call_status := Show_Alert(alert_id);
    IF call_status = ALERT_BUTTON1 THEN
      Delete_Timer(timer_id);
      Next_Record;
    ELSIF
     call_status = ALERT_BUTTON2 THEN
     :GLOBAL.timer_count := 0;
    ELSE
      Set_Timer(timer_id, NO_CHANGE, NO_REPEAT);
    END IF;
  END IF;
  :GLOBAL.timer_count = 2;
  END;
END;


Déclencheur When-Tree-Node-Activated

 Tous les déclencheurs

Description

Ce déclencheur est lancé lorsqu'un utilisateur clique deux fois sur un noeud ou appuie sur Entrée lorsqu'un noeud est sélectionné.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

•	SYSTEM.TRIGGER_NODE correspond au noeud sur lequel l'utilisateur a cliqué. SYSTEM.TRIGGER_NODE retourne une valeur de type NODE.

•	Aucune opération par programme ne provoque le lancement du déclencheur When-Tree-Node-Activated. Seule une opération de l'utilisateur final génère un événement.

Sur échec

sans effet


Déclencheur When-Tree-Node-Expanded

 Tous les déclencheurs

Description

Ce déclencheur est lancé lorsqu'un noeud est développé ou réduit.

Niveau de définition  forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation  oui

Notes d'utilisation

•	SYSTEM.TRIGGER_NODE correspond au noeud sur lequel l'utilisateur a cliqué. SYSTEM.TRIGGER_NODE retourne une valeur de type NODE.

•	Aucune opération par programme ne provoque le lancement du déclencheur When-Tree-Node-Expanded. Seule une opération de l'utilisateur final génère un événement.

Sur échec

sans effet


Déclencheur When-Tree-Node-Selected

 Tous les déclencheurs

Description

Ce déclencheur est lancé lorsqu'un noeud est sélectionné ou désélectionné.

Niveau de définition  forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation  oui

Notes d'utilisation

•	SYSTEM.TRIGGER_NODE correspond au noeud sur lequel l'utilisateur a cliqué. SYSTEM.TRIGGER_NODE retourne une valeur de type NODE.

•	Aucune opération par programme ne provoque le lancement du déclencheur When-Tree-Node-Selected. Seule une opération de l'utilisateur final génère un événement.

Sur échec

sans effet


Déclencheur When-Validate-Item

 Exemples	  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Valider l'élément, plus précisément, comme dernière opération de validation d'élément dont l'état de validation est Nouveau ou Modifié.

Niveau de définition application Forms, bloc ou élément

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

•	Utilisez un déclencheur When-Validate-Item pour compléter le traitement de validation d'élément par défaut de Form Builder.

•	Vous pouvez écrire un déclencheur When-Validate-Item modifiant la valeur d'un élément en cours de validation par Form Builder. Si la validation réussit, Form Builder inscrit sur l'élément modifié une marque de validation et ne le revalide pas. Ce comportement est nécessaire pour éviter les boucles de validation et permet à votre application d'entrer une valeur non valide dans la base de données.

•	La définition que vous avez choisie pour la propriété Différer la mise en vigueur obligatoire peut influencer le déclencheur When-Validate-Item. Pour plus de détails, voir Defer_Required_Enforcement.

Sur échec

Si ce déclencheur est activé pendant la validation amorcée par la navigation, la navigation échoue et le point d'insertion reste dans l'élément d'origine.

Activé dans

Valider l'élément

Voir Organigrammes de processus


Déclencheur When-Validate-Item - Exemple

Exemple

L'exemple ci-dessous recherche le plan de commission dans la table COMMPLAN, en fonction de la valeur actuelle de l'élément commcode du bloc EMPLOYEE de l'application Forms pour s'assurer de la validité du code. Si le code de la table COMMPLAN est localisé, la description de COMMPLAN est obtenue et placée dans l'élément Description non base de données. Sinon, une erreur est générée.

** Méthode 1 : L'utilisation d'une instruction SELECT...INTO
**             permet d'avoir un déclencheur plus lisible, mais éventuellement
** moins efficace que la Méthode 2 car, pour être conforme à la norme
**             ANSI, l'instruction SELECT...INTO doit retourner
**             une erreur si le système détecte plus d'une ligne correspondant
  ** aux critères - ce qui implique que PL/SQL peut tenter d'extraire deux
**             fois des données de la table en question pour
**             s'assurer qu'il n'y a pas deux lignes
**             correspondant à ces critères.
*/
BEGIN
  SELECT description
    INTO :Employee.Commplan_Desc
    FROM commplan
   WHERE commcode = :Employee.Commcode;
EXCEPTION
  WHEN No.Data_Found THEN
    Message('Plan de commission non valide. Utiliser <Liste> pour l'aide');
    RAISE Form_Trigger_Failure;
  WHEN Too_Many_Rows THEN
    Message('Erreur. La table COMMPLAN comporte des entrées en double!');
    RAISE Form_Trigger_Failure;
END;

/*
** Méthode 2 : L'utilisation d'un curseur explicite semble plus
**             complexe, mais ne l'est pas. L'instruction  SELECT est
**             déclarée comme curseur nommé dans la section DECLARE, puis
**             ouverte (OPENed), extraite (FETCHed) et fermée (CLOSEd)
**             explicitement dans le code (d'où son nom). Dans ce cas,
**             nous nous sommes certain qu'une seule opération
**             FETCH sera exécutée sur la base de
**             données.
*/
DECLARE
  noneFound BOOLEAN;
  CURSOR cp IS SELECT description
                 FROM commplan
                WHERE commcode = :Employee.Commcode;
BEGIN
  OPEN cp;
  FETCH cp INTO :Employee.Commplan_Desc;
  noneFound := cp%NOTFOUND;
  CLOSE cp;
  IF noneFound THEN
    Message('Plan de commission non valide. Utiliser <Liste> pour l'aide');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Déclencheur When-Validate-Record

 Exemples	  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé pendant le processus Valider l'enregistrement, plus particulièrement comme dernière opération de la validation d'enregistrements dont l'état de validation est Nouveau ou Modifié.

Niveau de définition application Forms ou bloc

Commandes valides

Instructions SELECT, procédures internes non restreintes

Mode Saisie interrogation non

Notes d'utilisation

Utilisez un déclencheur When-Validate-Record pour compléter le traitement de validation d'enregistrement par défaut.

Notez qu'il est possible d'écrire un déclencheur When-Validate-Record qui modifie la valeur d'un élément de l'enregistrement en cours de validation par Form Builder. Si la validation réussit, Form Builder inscrit sur l'enregistrement modifié une marque de validation et ne le revalide pas. Ce comportement est nécessaire pour éviter les boucles de validation et permet à votre application d'entrer une valeur non valide dans la base de données.

Sur échec

Si ce déclencheur est activé pendant la validation amorcée par la navigation, la navigation échoue et le point d'insertion reste dans l'élément d'origine.

Activé dans

Valider l'enregistrement

Voir Organigrammes de processus


Déclencheur When-Validate-Record - Exemple

Exemple

L'exemple ci-dessous vérifie que la date de début est inférieure à la date de fin. Comme ces deux éléments texte ont des valeurs liées, il est plus pratique de vérifier une fois leur combinaison au niveau enregistrement que de vérifier chaque élément séparément. Ce code présuppose que les deux éléments de date sont obligatoires, et qu'aucun d'entre eux n'est NULL.

/* Méthode 1 : Programmer les noms d'élément dans le
**             déclencheur. Cette solution permet de limiter
**             les risques de réutilisation de ce code dans
**             d'autres applications Forms en raison de leur
**             dépendance par rapport aux noms de bloc et d'élément.
*/
BEGIN
  IF :Experiment.Start_Date > :Experiment.End_Date THEN
    Message('La date de fin est antérieure à la date de début !');
    RAISE Form_Trigger_Failure;
  END IF;
END;

/* Méthode 2 : Appeler une procédure générique vérifiant la
**             plage de dates. Le contrôle de date peut alors être utilisé dans tout
**             déclencheur de validation lorsque nous voulons vérifier que la date de
**             début est antérieure à la date de fin. Cette solution offre
**             également un autre avantage : le message d'erreur étant à un emplacement
**             standard, c'est-à-dire dans la procédure,
**             l'utilisateur aura toujours un message d'échec
**             cohérent, quelle que soit l'application Forms
**             dans laquelle nous nous trouvons.
*/
BEGIN
  Check_Date_Range(:Experiment.Start_Date,:Experiment.End_Date);
END;

/*
** La procédure se présente de la manière suivante :
*/
PROCEDURE Check_Date_Range( d1 DATE, d2 DATE ) IS
BEGIN
  IF d1 > d2 THEN
    Message('La date de fin est antérieure à la date de début !');
    RAISE Form_Trigger_Failure;
  END IF;
END;


Déclencheur When-Window-Activated

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'une fenêtre devient la fenêtre active - c'est-à-dire au démarrage de l'application Forms et chaque fois que le point d'insertion passe dans une fenêtre différente. Notez que, avec certains gestionnaires de fenêtres, il est possible d'activer une fenêtre en cliquant sur sa barre de titres. Cette opération est indépendante de la navigation vers un élément de la fenêtre. La navigation vers un élément d'une fenêtre différente active donc toujours cette fenêtre, mais l'activation de celle-ci peut également avoir lieu indépendamment de la navigation.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez ce déclencheur pour effectuer les types de tâche suivants :

•	Saisie des définitions initiales de propriété de fenêtre via la procédure interne GET_WINDOW_PROPERTY.

•	Imposition de la navigation vers un élément particulier chaque fois qu'une fenêtre est activée.

•	Suivi du dernier déclencheur de fenêtre activé par attribution de la valeur de SYSTEM.EVENT_WINDOW à une variable ou à une variable globale.

Sur échec

sans effet


Déclencheur When-Window-Closed

 Exemples	  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque l'utilisateur ferme une fenêtre à l'aide d'une commande Fermer, propre au gestionnaire de fenêtres.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez ce déclencheur pour fermer une fenêtre par programme lorsque l'utilisateur émet la commande Fermer du gestionnaire de fenêtres.

Vous pouvez masquer la fenêtre qui contient l'élément en cours.

Sur échec

sans effet


Déclencheur When-Window-Closed - Exemple

Exemple

L'exemple ci-dessous d'un appel à SET_WINDOW_PROPERTY à partir de ce déclencheur ferme une fenêtre chaque fois que l'utilisateur ferme celle-ci en déclenchant une opération du gestionnaire de fenêtres :

Set_Window_Property('nom_fenêtre', VISIBLE, PROPERTY_OFF);


Déclencheur When-Window-Deactivated

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsque l'utilisateur désactive une fenêtre en faisant passer le point d'insertion dans une autre fenêtre au sein de la même application Forms.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez ce déclencheur pour vérifier l'état d'une fenêtre lorsque l'utilisateur désactive celle-ci en faisant passer le point d'insertion dans une autre fenêtre.

Remarquez que si cette application Forms en ouvre une autre, ce déclencheur de désactivation n'est pas immédiatement lancé. Au lieu de cela, il l'est plus tard lorsque le contrôle est rendu à cette application Forms. (Si cette fenêtre est aussi dotée d'un déclencheur d'activation, lorsque le contrôle est rendu à cette application Forms, le déclencheur de désactivation est d'abord activé, immédiatement suivi du déclencheur d'activation.)

Sur échec

sans effet


Déclencheur When-Window-Resized

  Rubriques connexes	 Tous les déclencheurs

Description

Ce déclencheur est activé lorsqu'une fenêtre est redimensionnée, soit par l'utilisateur soit par programme par un appel à RESIZE_WINDOW ou à SET_WINDOW_PROPERTY. (Même si la fenêtre n'est pas affichée, son redimensionnement par programme active le déclencheur When-Window-Resized.) Ce déclencheur est également activé lors du démarrage de l'application Forms, lorsque la fenêtre principale est dessinée pour la première fois. Il n'est pas activé lorsqu'une fenêtre est icônifiée.

Niveau de définition application Forms

Commandes valides

Instructions SELECT, procédures internes non restreintes, procédures internes restreintes

Mode Saisie interrogation oui

Notes d'utilisation

Utilisez ce déclencheur pour effectuer l'un des types de tâche suivants :

•	Saisie des propriétés (largeur, hauteur, coordonnée x ou y) de la fenêtre qui ont été modifiées.

•	Vérification des opérations demandées par un utilisateur.

•	Définition du point d'insertion dans un élément de la fenêtre cible.

•	Application de certaines normes visuelles en redimensionnant la fenêtre si celle-ci n'a pas été correctement dimensionnée.

Sur échec

sans effet


A propos des messages d'erreur

•	préfixe et numéro de message

•	description de l'erreur

•	cause(s) possible(s) de l'erreur

•	action(s) pouvant être entreprise(s) pour corriger l'erreur

Lorsqu'un message d'erreur s'affiche, vérifiez tout d'abord le préfixe de message pour déterminer le composant qui a généré le message. Prenez ensuite connaissance du numéro et de la description. Si vous désirez une description complète du message d'erreur (notamment la cause et l'action), consultez le système d'aide en ligne du composant.

Préfixes de message d'erreur

Chaque composant possède un préfixe unique pour ses messages d'erreur. La liste suivante présente les préfixes de message d'erreur pour Forms Developer :

Préfixe	Composant

FRM	Form Builder

OG	Graphics Builder

PDE	Procedure Builder

Aux messages d'erreur de Forms Developer peuvent éventuellement s'ajouter des messages provenant d'autres sources. La liste suivante présente les préfixes de ces messages ainsi que les sources d'information correspondantes :

Préfixe	Source	Aide

REP	Reports Developer	Aide en ligne de Reports Developer

ORA	Oracle Server	Oracle Server Messages and Codes

PLS	PL/SQL	Oracle Server Messages and Codes

NET	SQL*Net	Oracle Network Products Messages

Oracle Server Messages and Codes contient les préfixes de message d'erreur et les descriptions pour tous les utilitaires de base de données, tels que SQL*DBA, SQL*Loader, SQL*Module, Export, Import et les Précompilateurs Oracle.

Les messages d'erreur propres au système d'exploitation sont expliqués dans la documentation de votre système d'exploitation.


A propos des variables intégrées dans les messages

Pour vous aider à rechercher et à corriger les erreurs, Forms Developer intègre des noms d'objet, des numéros et des chaînes de caractères dans certains messages d'erreur. Dans l'aide en ligne, ces variables intégrées sont représentées par des termes mis entre chevrons (< >).

Par exemple, le message d'erreur :

PDE-CCM002: LIB1 n'est pas une bibliothèque ouverte.

S'affiche dans l'aide en ligne sous la forme suivante :

PDE-CCM002: <nom de la bibliothèque> n'est pas une bibliothèque ouverte.


Gestion des messages de Forms Runtime

  Rubriques connexes

Pour gérer les messages affichés à l'écran lorsque l'utilisateur se sert d'une application Form Builder, vous pouvez :

•	utiliser la variable système SYSTEM.MESSAGE_LEVEL pour supprimer les "niveaux de gravité" spécifiques des messages ;

•	utiliser les déclencheurs On-Error et On-Message pour remplacer le traitement standard des messages ;

•	utiliser la variable système SYSTEM.SUPPRESS_WORKING pour empêcher la mise à jour d'un écran d'utilisateur (en supprimant le message "En cours...").

Niveaux de gravité des messages

Les messages de Forms Runtime sont classés par niveau de gravité.  Utilisez la variable système SYSTEM.MESSAGE_LEVEL pour contrôler le niveau minimum de gravité affiché sur l'écran de l'utilisateur.

Les six niveaux de gravité que vous pouvez attribuer sont énumérés ci-dessous, par ordre croissant de gravité.

Niveau	Description du message
0	Tous les types de message des autres niveaux de gravité.
5	Réaffirme une condition évidente.
10	Indique une erreur de procédure de l'utilisateur.
15	Indique que l'utilisateur tente d'exécuter une fonction pour laquelle l'application Forms n'est pas prévue.
20	Indique une condition dans laquelle l'utilisateur ne peut pas poursuivre l'opération prévue en raison d'un problème avec un déclencheur ou d'une autre condition en suspens.
25	Indique une condition qui pourrait entraîner une mauvaise exécution de l'application Forms.
>25	Indique un niveau de gravité de message que vous ne pouvez pas supprimer à l'aide de la variable système SYSTEM.MESSAGE_LEVEL.

Le niveau de gravité est indiqué pour les différents messages de Forms Runtime dans le système d'aide en ligne de Form Builder.

Types de message

Pour remplacer les messages de Forms Runtime à l'aide des déclencheurs On-Error et On-Message, vous devez connaître leurs trois types :

Information	Informe l'utilisateur de l'état du traitement (par exemple, Dernière valeur extraite) ou lui fournit une aide contextuelle (par exemple, Appuyez sur [Accepter] pour entrer votre réponse).  Utilisez le déclencheur On-Message pour supprimer l'affichage de ces messages.

Erreur	Informe l'utilisateur des conditions d'erreur qui empêchent l'exécution de ses opérations (par exemple, Touche de fonction non autorisée. Appuyez sur [Afficher Touche de fonction] pour faire apparaître la liste des touches valides.). Utilisez les déclencheurs On-Error pour supprimer l'affichage de ces messages. Cependant, vous ne pouvez pas supprimer les messages d'erreur qui apparaissent dans la ligne de commande  (par exemple.,  Trop d'arguments dans la ligne de commande.).

En cours	Indique à l'utilisateur qu'un traitement Form Builder est en cours  (par exemple,  En cours...).  Vous ne pouvez pas utiliser de déclencheur On-Error ou On-Message, ni la variable système SYSTEM.MESSAGE_LEVEL pour supprimer ces messages.

Le type est indiqué pour les différents messages Forms Runtime dans le système d'aide en ligne de Form Builder.


Recours au Support technique Oracle

Dans certains cas (erreurs internes, par exemple), vous devrez faire appel au Support technique Oracle, mais auparavant, nous vous conseillons de réunir les informations suivantes :

1	Votre nom, celui de votre société et votre ID de Support Oracle.

2	Le matériel, le système d'exploitation et le numéro de version du système d'exploitation sur lequel tourne le produit.

3	Le numéro de version complet du composant que vous utilisiez lorsque l'erreur s'est produite, et notamment, le numéro de révision et le numéro de version du port, le cas échéant. (Pour vérifier le numéro de version du composant, sélectionnez Aide [image] A propos de ... à partir du menu.)

4	Tous les autres produits (avec leur numéro de version) utilisés lorsque l'erreur s'est produite (par exemple, Oracle 7.1.4).

5	Si un ou plusieurs messages se sont affichés, les numéros de message exacts et leur description, dans l'ordre de leur apparition.

6	Une description du problème, y compris toute condition inhabituelle.

7	La gravité du problème selon les codes suivants :

•	1:  Programme inutilisable. Impact grave sur le fonctionnement.

•	2:  Programme utilisable. Fonctionnement gravement réduit.

•	3:  Programme utilisable avec fonctions limitées. Pas d'impact grave sur l'ensemble du fonctionnement.

•	4:  Problème corrigé. Effet minime, voir nul, sur le fonctionnement.


A propos de la mise à niveau d'applications Forms

  Rubriques connexes

Forms Developer est compatible avec les versions précédentes d'Oracle Forms, notamment avec les versions 3.0, 4.0, 4.5 et 5.0.

Remarque: Avant de convertir vos applications Forms et vos menus, nous vous conseillons de faire des sauvegardes de tous vos fichiers. Une fois un module mis à niveau, il n'est plus possible de l'ouvrir sous une version plus ancienne de Forms Developer.


Mise à niveau d'une application Forms

  Rubriques connexes

Pour mettre à niveau une version  4.x ou 5.x vers la version Forms Developer6i :

1	Démarrez Forms Developer Form Builder.

2	Choisissez Fichier [image] Ouvrir pour afficher la boîte de dialogue de fichier ou de base de données.

3	Choisissez le module que vous voulez mettre à niveau.

4	Cliquez sur OK.

5	Choisissez Fichier [image] Enregistrer.

6	Choisissez Programme [image] Compiler [image] Tout pour compiler le module nouvellement mis à niveau.

Remarque : Tous les modules et bibliothèques d'applications Forms doivent être mis à niveau et recompilés.

Pour mettre à niveau une application Forms de version antérieure à 4.0 vers la version Forms Developer6i :

Pour mettre à niveau une application Forms de version antérieure à 4.0 vers la version Forms Developer6i, amenez-la à la version 4.5 (à l'aide de l'application Forms 4.5), puis effectuez une mise à niveau de la version 4.5 vers la version 6i conformément aux instructions ci-dessus.

Pour mettre à niveau une application Forms de version antérieure à 4.0 vers la version 4.5, entrez l'instruction suivante sur la ligne de commande, en utilisant la forme correcte de la commande Generate de l'application Forms 4.5 pour votre environnement:

f45gen32 <nom_module> <nom_utilisateur>/<mot_de_passe> upgrade=yes version=<numéro_version>

Pour passer de :	Utilisez le numéro de version :
la version 3,0	30
la version 2,3	23
la version 2.0	20


Création d'un bloc de données

  Etape suivante	     Rubriques connexes

Pour créer un bloc de données à partir d'une table :

Choisissez Outils-->Assistant Bloc de données pour appeler un assistant vous expliquant comment créer un bloc de données.

Ou,

1	Dans le Navigateur d'objet, cliquez sur le noeud Blocs.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

3	Cliquez deux fois sur l'icône d'objet Bloc [image] pour afficher la Palette de propriétés.

4	Sous le noeud Base de données :

•	Définissez à Table la propriété Type de source de données d'interrogation.

•	Entrez le nom d'une table de base de données dans le champ Nom de source de données.

5	Sous le noeud Base de données évoluée :

•	Définissez à Table la propriété Type de cible de données DML.

•	Entrez le nom de votre source de données dans le champ Nom de source de données DML.

6	Sous le noeud Général, cliquez sur la propriété Nom, puis entrez un nom ou acceptez le nom par défaut.

Vous pouvez utiliser tout nom respectant les conventions d'appellation ORACLE et unique parmi les blocs de l'application Forms. Le nom de bloc est un descripteur interne qui n'est pas affiché lors de l'exécution.


Création d'un élément d'interface

  Etape suivante

Pour créer un élément d'interface :

1	Dans le Navigateur d'objet, cliquez sur l'icône plus en regard du noeud Blocs de votre choix.

Form Builder développe le noeud Blocs et affiche ses sous-noeuds.

2	Cliquez sur l'icône plus en regard du noeud Eléments.

3	Cliquez sur le bouton Créer [image] de la barre d'outils.

Un nouvel élément, ayant un nom par défaut, est inséré sous le noeud Eléments.

4	Cliquez deux fois sur l'icône objet en regard de l'élément que vous venez de créer, pour afficher la Palette de propriétés.

5	Sous le noeud Base de données, définissez la propriété Elément de base de données à Non.

Remarque : Lorsque vous créez un élément dans un bloc de données, l'application Forms considère que l'élément est un élément de données et définit sa propriété Elément de base de données à Yes. Les éléments de données sont automatiquement inclus dans les instructions SELECT,UPDATE et INSERT transmises à la base de données. Si l'élément que vous créez est un élément de contrôle d'un bloc de données, vous devez explicitement définir sa propriété Elément de base de données à Non.

6	Sous le noeud Général, définissez la propriété Type pour indiquer le type d'élément de votre choix.

Par défaut, l'élément est de type texte. Pour modifier cette valeur par défaut, définissez-en la propriété Type d'élément de votre choix (case à cocher, bouton d'option, élément de liste, etc.).

7	Sous le noeud Physique, définissez la propriété Canevas au nom du canevas de votre choix.

Remarque : Pour afficher un élément lors de l'exécution, vous devez attribuer à un canevas chaque élément d'interface d'une application Forms.


Modification de la définition d'un bloc de données

  Rubriques connexes

Pour modifier la définition d'un bloc de données :

Dans le Navigateur d'objet, cliquez sur le bloc de votre choix et choisissez Outils [image] Assistant Bloc de données pour appeler un assistant vous expliquant comment modifier la définition d'un bloc de données.


A propos de Forms Runtime Diagnostics

  Rubriques connexes

Forms Runtime Diagnostics (FRD) est un système permettant de consigner les événements d'exécution. Il est conçu pour vous aider à déboguer vos applications.

Lorsqu'une application Forms est exécutée alors que FRD est activé, les interactions application-utilisateur externes et les événements de traitement Forms internes sont écrits dans l'ordre chronologique dans un fichier journal du système de fichiers. Ces événements peuvent ensuite être analysés pour vérifier qu'ils sont corrects.

Vous pouvez réunir les informations suivantes :

•	Activation du déclencheur

•	Exécution de procédure interne

•	Messages

•	Fichiers ouverts

•	Exceptions non traitées

•	Evénements utilisateur externes


Utilisation de Forms Runtime Diagnostics

  Rubriques connexes

Pour lancer le regroupement des données :

Ajoutez à l'argument d'exécution record la chaîne collect comme décrit ci-après :

f60runm module=foo userid=scott/tiger@hockey record=collect

Un fichier est créé dans le répertoire de travail courant, sous le nom : collect_<process ID>. Afin de choisir vous-même le nom du fichier, faites en sorte que la chaîne soit la valeur de l'argument log= :

f60runm module=foo userid=scott/tiger@hockey record=collect log=myfile


Sortie Forms Runtime Diagnostics attendue

  Rubriques connexes

Lorsque vous utilisez Forms Runtime Diagnostics, vous pouvez attendre la sortie suivante pour chacun des événements assemblés.

Déclencheurs

Placez n'importe quel type de déclencheur à n'importe quel niveau de la hiérarchie des objets. Lorsque vous activez le déclencheur, il doit être connecté de la façon suivante :

<trigger_name> Trigger Fired:

Form: <form_name>

Block: <block_name>

Item: <item_name>

Le niveau du déclencheur correspond au dernier élément de la liste. Prenons le cas d'un déclencheur au niveau de l'application Forms : seul le nom de l'application Forms apparaît sous le nom de ce déclencheur.

Un delta d'état doit être écrit dans le journal après l'activation d'un déclencheur. Un delta d'état est une copie de toutes les informations d'état internes modifiées depuis l'occurrence du delta d'état précédent. Le premier delta d'état copie l'état entier de l'application Forms dans le journal.

Procédures internes

Lorsqu'une procédure interne PL/SQL Forms est exécutée, la sortie diagnostic doit apparaître comme suit :

Executing <built-in name> Built-In:

In Argument 0 -Type: <type> Value: <value>

In Argument 1 -Type: <type> Value: <value>

…

Out Argument 0 -Type: <type> Value: <value>

…

Parmi les types de paramètres à tester figurent les suivants : Chaîne, Nombre, Entier, Flottant, Numéro Oracle, Date. L'argument de sortie 0 représente en général la valeur retournée de la fonction.

Messages

Tous les messages générés par Forms doivent apparaître dans le journal comme ils sont apparus à l'écran :

Error Message: <message>

Ouvertures de fichiers

Les fichiers ouverts sont écrits dans le journal au format suivant :

Opened file: <file_name>

Si l'ouverture d'un fichier échoue, le journal doit afficher la ligne suivante :

Failed to open file: <file_name>

Exceptions non traitées

Lorsqu'une exception est soulevée et non traitée, elle est enregistrée dans le fichier au format suivant :

Unhandled Exception: <exception_name>

Si son nom n'est pas disponible, FRD enregistre le numéro de l'exception en tant que référence :

Unhandled Exception ORA- <exception_number>

Dans le journal, les exceptions doivent être suivies d'un delta d'état.

Evénements d'exécution utilisateur externe

FRD utilise des mécanismes d'exécution existants pour enregistrer les événements utilisateur. Les informations d'exécution écrites dans le journal sont toujours précédées d'un signe , suivi d'un nombre représentant l'ordre chronologique de l'événement. Pour chaque événement, l'exécution écrit en général deux blocs d'informations, le premier détaillant l'événement en lui-même et le second représentant un delta d'état.


A propos de l'interface de user exit

  Rubriques connexes

Les fonctions étrangères sont des sous-programmes écrits dans un langage de programmation de troisième génération permettant de personnaliser des applications Form Builder en fonction des besoins propres à vos utilisateurs. Les fonctions étrangères sont souvent utilisées pour améliorer les performances ou offrir à Form Builder des fonctions supplémentaires.

Dans Form Builder, vous pouvez appeler un user exit à partir d'un déclencheur ou d'un sous-programme nommé par l'utilisateur, en utilisant la procédure interne USER_EXIT. Le user exit doit être écrit de manière à retourner, depuis la fonction, un code d'état de valeur entière. La valeur de retour du user exit indique la réussite de l'opération, son échec ou une erreur fatale. Une fois la procédure interne USER_EXIT exécutée, les valeurs des variables d'erreur de Form Builder — FORM_FAILURE, FORM_FATAL et FORM_SUCCESS — sont définies en conséquence.

L'utilisation d'un user exit pouvant être appelé à partir de Forms Runtime demande un traitement spécial. Sous Microsoft Windows, les fonctions de user exit doivent être liées dans une bibliothèque de liens dynamiques, et une bibliothèque de configuration spéciale doit être mise à jour à l'aide d'informations sur chaque user exit. Le fichier de configuration fournit des informations sur les interfaces de user exit et les points d'entrée qui permettent à Form Builder d'appeler des fonctions étrangères à partir d'une interface de user exit. Avec d'autres plates-formes, un fichier de configuration doit être mis à jour à l'aide d'informations sur chaque user exit, et la version de compilation de ce fichier, plus la version compilée du code de user exit, doivent être liés dans l'exécutable Forms Runtime.

Remarque : Vous pouvez également appeler une fonction étrangère à partir d'une interface PL/SQL. Le package intégré ORA_FFI offre une interface PL/SQL permettant d'appeler des fonctions étrangères à partir de Form Builder.


Instruction EXEC SQL

 Restrictions

Une instruction EXEC SQL est une commande SQL précédée de "EXEC SQL". Les instructions EXEC SQL permettent d'exécuter les commandes SQL dans une fonction étrangère du précompilateur ORACLE. Vous les utiliserez pour sélectionner ou manipuler des données dans la base de données, à partir d'une fonction étrangère.

Syntaxe

EXEC SQL instruction_sql;

où toute instruction_sql est une instruction SQL ORACLE valide, sauf les commandes restreintes indiquées dans cette section.

Vous devez exécuter une connexion (CONNECT) explicite dans une fonction étrangère du précompilateur ORACLE, car Form Builder n'établit automatiquement la connexion que sous UNIX. Le Serveur ORACLE ne prend pas en charge les connexions simultanées. Pour plus d'informations, reportez-vous à Programmer's Guide to the Oracle Precompilers.


Instruction EXEC SQL - Restrictions

Lorsque vous utilisez des commandes SQL dans une fonction étrangère du précompilateur ORACLE, vous devez respecter les restrictions ci-dessous :

•	N'émettez pas d'instruction SQL COMMIT ou ROLLBACK à partir d'une fonction étrangère si une application Forms comporte des modifications qui n'ont pas été consignées dans la base de données lors de l'appel de la fonction étrangère.

•	N'émettez pas de commande qui impliquerait implicitement une validation de la base de données, comme une commande DDL dans une fonction étrangère, si une application Forms comporte des modifications qui n'ont pas été constituées dans la base de données lors de l'appel de la fonction étrangère est appelée.


Instruction EXEC TOOLS GET

 Exemples	   Restrictions

Une instruction EXEC TOOLS GET extrait une valeur de Form Builder dans une fonction étrangère du précompilateur ORACLE. Plus précisément, cette instruction place la valeur d'une variable ou d'un élément de Form Builder dans une variable en langage hôte. Une fois que la fonction étrangère a extrait une valeur de Form Builder, elle peut utiliser cette valeur pour des calculs, des manipulations ou des mises à jour.

Syntaxe

EXEC TOOLS GET variable_appliForms_1[, variable_appliForms_2, ...]

   INTO :variable-hôte_1[, :variable_hôte_2, ...];

où

variable_appliForms_n	Indique le nom de l'élément ou de la variable de Form Builder dont vous extrayez une valeur.
variable_hôte_n	Indique le nom de la variable en langage hôte dans laquelle vous entrez une valeur.
Remarques :

La variable_appliForms peut être une référence à l'un des éléments suivants :

•	un élément totalement qualifié (bloc.élément)

•	un paramètre d'application Forms,

•	une variable système Form Builder,

•	une variable globale Form Builder,

•	une variable en langage hôte (précédée de deux-points) dont la valeur est l'une de celles mentionnées ci-dessus.

Pour connaître les restrictions applicables aux variables en langage hôte, reportez-vous à Programmer's Guide to the Oracle Precompilers.


Instruction EXEC TOOLS GET - Restrictions

Il n'est pas possible d'extraire ou de définir des valeurs directement dans un groupe d'enregistrement à partir d'une fonction étrangère.


Instruction EXEC TOOLS GET - Exemples

Exemple

/*

** Exemple :  Extraire un nom d'élément d'un bloc (empblock.empname)

*/

EXEC SQL BEGIN DECLARE SECTION;

char itm_buff[255];  /* tampon pour valeur d'élément */

VARCHAR itm_name[255]; /* nom d'élément application Forms  */

EXEC SQL END DECLARE SECTION;

strcpy(itm_name.arr,"EMBLOCK.EMPNAME");

itm_name.len=strlen("EMBLOCK.EMPNAME");

EXEC TOOLS GET :itm_name

INTO :itm_buff;


Instruction EXEC TOOLS SET

 Exemples

Une instruction EXEC TOOLS SET envoie à Form Builder une valeur provenant d'une fonction étrangère du précompilateur ORACLE. Plus précisément elle place la valeur d'une constante ou la valeur d'une variable en langage hôte dans une variable ou un élément de Form Builder.

Toute valeur transmise par une instruction EXEC TOOLS SET à un élément d'application Forms s'affiche lorsque la fonction étrangère a rendu le contrôle du traitement à l'application Forms ayant appelé la fonction étrangère (à condition, bien évidemment, que l'élément ait la propriété d'élément Activé définie sur Oui).

Syntaxe

EXEC TOOLS SET variable_appliForms[, ...]

    VALUES ({:variable_hôte | constante}[, ...]);

où

variable_appliForms_n	Indique le nom de l'élément ou de la variable Form Builder dont vous extrayez une valeur.
variable_hôte_n	Indique le nom de la variable en langage hôte dans laquelle vous entrez une valeur.
constante	Indique la constante lue. Elle ne doit pas être précédée de deux-points.
Remarques :

La variable_appliForms peut être une référence à l'un des éléments suivants :

•	un élément totalement qualifié (bloc.élément)

•	un paramètre d'application Forms,

•	une variable système Form Builder,

•	une variable globale Form Builder,

•	une variable en langage hôte (précédée de deux-points) dont la valeur est l'une de celles mentionnées ci-dessus.

Pour connaître les restrictions applicables aux variables en langage hôte, reportez-vous à Programmer's Guide to the Oracle Precompilers.

Représentez les constantes et les variables en langage hôte en format SQL standard :

Valeur	Résultat
:holder1	Insère la valeur de la variable hôte, holder1 (précédée de deux-points).
'Summit Sporting Goods'	Insère la valeur de la chaîne constante Summit Sporting Goods (entre guillemets simples).
413	Insère la valeur numérique de la constante, 413 (sans guillemets simples, puisqu'il s'agit d'une valeur numérique).


Instruction EXEC TOOLS SET - Exemples

Exemple

/*

** Exemple :  Ecrire'SMITH' dans emp.ename

*/

EXEC SQL BEGIN DECLARE SECTION;

char itm_buff[255];  /* tampon pour valeur d'élément  */

VARCHAR itm_name[255]; /* nom d'élément application Forms  */

EXEC SQL END DECLARE SECTION;

strcpy(itm_name.arr,"EMP.ENAME");

itm_name.len = strlen("EMP.ENAME");

strcpy(itm_buff,"SMITH");

EXEC TOOLS SET :itm_name

VALUES (:itm_buff);


Instruction EXEC TOOLS MESSAGE

 Exemples

Une instruction EXEC TOOLS MESSAGE affiche un message dans la ligne de message de Form Builder.

Syntaxe

EXEC TOOLS MESSAGE (message [gravité]);

où

message	Indique le message transmis à Form Builder. Le message peut se présenter sous la forme d'une chaîne entre guillemets simples ou d'une variable en langage hôte.
gravité	Indique le niveau de gravité du message transmis à Form Builder.


Instruction EXEC TOOLS MESSAGE - Exemples

Exemple

/*

** Exemple :  Message d'erreur pour un élément texte

*/

EXEC TOOLS MESSAGE

   'Argument non valide : le système attend un nom d'élément : le ré-entrer. ';


Instruction EXEC TOOLS GET CONTEXT

 Exemples

Une instruction EXEC TOOLS CONTEXT obtient des informations de contexte (un nom de pointeur) enregistrées précédemment à l'aide de EXEC TOOLS SET CONTEXT et les place dans une fonction étrangère.

Syntaxe

EXEC TOOLS GET CONTEXT nom_contexte [, ...]

   INTO :variable-hôte_1[, :variable_hôte_2, ...];

où

nom_contexte	Indique le nom du contexte que vous enregistrez.
variable_hôte_n	Indique le nom de la variable en langage hôte dans laquelle vous entrez la valeur du contexte.
Remarques :

La variable nom_contexte peut être une référence à l'un des éléments suivants :

•	une variable en langage hôte (précédée de deux-points);

•	une constante.


Instruction EXEC TOOLS GET CONTEXT - Exemples

Exemple

/*

** Exemple :  Extraire des informations de contexte enregistrées précédemment

*/

EXEC SQL BEGIN DECLARE SECTION;

char *pctx;

EXEC SQL END DECLARE SECTION;

EXEC TOOLS GET CONTEXT appl_1 INTO :pctx;


Instruction EXEC TOOLS SET CONTEXT

 Exemples

Une instruction EXEC TOOLS SET CONTEXT enregistre des informations de contexte, provenant d'une fonction étrangère, afin qu'elles puissent être utilisées dans des appels ultérieurs à des fonctions étrangères. Utilisez EXEC TOOLS SET CONTEXT au lieu de créer une variable globale destinée à stocker des informations. EXEC TOOLS SET CONTEXT vous permet d'attribuer un nom de texte significatif à un pointeur représentant une adresse en mémoire. Vous pouvez lire le pointeur en utilisant EXEC TOOLS GET CONTEXT.

Syntaxe

EXEC TOOLS SET CONTEXT nom_hôte[, ...]

    BY nom_contexte [, ...];

où

nom_hôte	Indique la variable en langage hôte qui contient les informations à enregistrer.
nom_contexte	Indique le nom du contexte enregistré.

Remarques :

La variable nom_contexte peut être une référence à l'un des éléments suivants :

•	une variable en langage hôte (précédée de deux-points);

•	une constante.


Instruction EXEC TOOLS SET CONTEXT - Exemples

Exemple

/*

** Exemple :  Enregistrer des informations de contexte pour pouvoir les réutiliser ultérieurement

*/

EXEC SQL BEGIN DECLARE SECTION;

char my_context[20];

EXEC SQL END DECLARE SECTION;

strcpy(my_context, "contexte_1");

EXEC TOOLS SET CONTEXT :my_context BY appl_1;


Instruction EXEC ORACLE

L'instruction EXEC ORACLE, qui n'est pas une instruction standard SQL, est utilisée pour exécuter les options du précompilateur ORACLE. Pour plus d'informations, reportez-vous à Programmer's Guide to the Oracle Precompilers.


Création d'un user exit

  Exemple	  Rubriques connexes

Pour créer un user exit :

1	Ecrivez le user exit en utilisant l'un des langages de programmation hôte.

2	Conseil : Créez une fonction étrangère du précompilateur Oracle, en utilisant le langage C.

3	Créez une structure de contrôle IAPXTB qui enregistre chaque user exit

4	Intégrez un user exit dans Form Builder


A propos des structures de contrôle IAPXTB

  Rubriques connexes

La structure de contrôle IAPXTB est une structure de données qui contient des informations concernant toutes les fonctions étrangères qui peuvent être appelées à partir d'un user exit. Elle désigne les points d'entrée nécessaires pour lier les fonctions étrangères à Form Builder. Ses différentes colonnes sont décrites ci-dessous :

Colonne	Contenu
NOM	Indique un nom de user exit pour une fonction étrangère qui peut être appelée à partir d'un user exit. (Ce nom n'est pas obligatoirement celui du fichier qui contient la fonction étrangère, ni celui de la fonction étrangère appelée.) Notez que certains langage hôtes font la différence entre les majuscules et les minuscules.
FONCTION	Indique le nom de la fonction étrangère.
TYPE	Indique le langage dans lequel la fonction étrangère est écrite. Les valeurs valides comprennent notamment : XITCC pour C, XITCOB pour COBOL, XITFOR pour FORTRAN, XITPLI pour PL/I, XITPAS pour PASCAL et XITAda pour Ada

Vous devez entrer une entrée dans la structure de contrôle IAPXTB pour chaque fonction étrangère pouvant être appelée à partir d'un user exit. Cette règle s'applique à toutes les fonctions étrangères qui peuvent être appelées à partir d'un user exit, que la fonction étrangère soit dans un fichier précompilé et compilé seul, soit précompilé et compilé avec plusieurs fonctions étrangères. Vous devez tenir à jour toutes les fonctions étrangères qui peuvent être appelées à partir d'un user exit pour un système de production, dans une structure de contrôle IAPXTB. Il est judicieux de conserver des versions de test de vos fonctions étrangères dans une structure de contrôle IAPXTB distincte.


Création d'une structure de contrôle IAPXTB

 Exemples	    Rubriques connexes

Pour créer la structure de contrôle IAPXTB :

1	Définissez la structure de donnée IAPXTB.

Assurez-vous que vous définissez la structure de données en utilisant trois champs qui représentent le nom du user exit, le nom de la fonction étrangère et le langage utilisé pour développer la fonction étrangère.

2	Entrez les données correspondant à chaque fonction étrangère.

3	Compilez le fichier source IAPXTB pour générer un fichier de code objet. Conservez ce fichier de code objet IAPXTB pour intégrer le user exit dans Form Builder.


A propos de l'intégration d'un user exit à Form Builder

  Rubriques connexes

L'intégration d'un user exit dans Form Builder dépend du système d'exploitation et du langage utilisés pour écrire la fonction étrangère.

Sous Microsolft Windows, vous créez une bibliothèque de liens dynamiques comprenant des fichiers de code objet de fonctions étrangères et des fichiers de code objet de structure de contrôle IAPXTB. Lorsqu'une fonction étrangère est appelée à partir d'un user exit, une bibliothèque de liens dynamiques se charge en mémoire.

Pour les autres environnements, vous devez recréer l'exécutable Forms Runtime en liant les fichiers de code objet de la fonction étrangère et la structure de contrôle IAPXTB aux fichiers de code objet de Form Builder.


Intégration d'un user exit à Form Builder

 Exemples	    Rubriques connexes

Pour intégrer un user exit à Form Builder :

1	Identifiez le fichier de code objet de fonction étrangère.

2	2.Identifiez le fichier de code objet de structure de contrôle IAPXTB.

3	Liez le fichier de code objet de fonction étrangère et le fichier de code objet de structure de contrôle IAPXTB à une bibliothèque de liens dynamiques ou à Forms Runtime.


Appel d'une fonction étrangère à partir d'un user exit

 Restrictions	    Rubriques connexes

Après avoir créé un user exit pour une fonction étrangère, appelez la fonction étrangère en utilisant une interface de user exit à partir de Form Builder. Pour appeler une fonction étrangère à partir d'un user exit, appelez le sous-programme interne USER_EXIT à partir d'un déclencheur ou à partir d'un sous-programme nommé par l'utilisateur.

Lorsque vous appelez une fonction étrangère à partir d'un user exit, Form Builder tranfère temporairement le contrôle du traitement à la fonction étrangère. Une fois l'exécution de la fonction étrangère achevée, Form Builder reprend le contrôle du traitement.

Syntaxe

USER_EXIT(chaîne_user_exit);

USER_EXIT(chaîne_user_exit, chaîne_erreur);

La procédure interne USER_EXIT appelle la fonction étrangère nommée dans la chaîne_user_exit.

Paramètres

chaîne_user_exit	Indique le nom d'un user exit pour une fonction étrangère à appeler à partir d'un user exit, paramètres inclus. La longueur maximum de chaîne est de 255 caractères.
chaîne erreur	Indique un message d'erreur, défini par l'utilisateur, que Form Builder affiche si l'appel à la fonction étrangère échoue. Longueur maximum de la chaîne : 255 caractères.


Appel d'une fonction étrangère à partir d'un user exit - Restrictions

Le nom du user exit qui représente une fonction étrangère (dans la chaîne_user_exit du sous-programme intégré USER_EXIT) doit respecter les règles de votre système d'exploitation et du langage hôte. N'oubliez pas que ces règles peuvent impliquer le respect de la différence entre majuscules et minuscules. Notez également que vous ne pouvez pas appeler plusieurs fonctions étrangères dans un même appel à la procédure interne USER_EXIT.


Transmission de valeurs de paramètres de Form Builder à l'aide de USER_EXIT

  Rubriques connexes

Vous pouvez transmettre des paramètres à une fonction étrangère qui est appelée à partir d'un user exit en définissant chaîne_user_exit et chaîne_erreur dans le sous-programme interne USER_EXIT.

Lorsque vous définissez chaîne_user_exit et chaîne_erreur dans Form Builder, la fonction étrangère considère que les valeurs correspondent à une valeur de ligne de commande et à une valeur de message d'erreur. Par exemple, Form Builder considère la valeur de chaîne_user_exit comme une variable de type chaîne. La valeur de chaîne_user_exit est la ligne de commande pour une fonction étrangère.

Les paramètres de fonction étrangère et les définitions Form Builder correspondantes, pour chaque fonction étrangère appelée à partir d'un user exit, sont les suivants :

Paramètres de fonction étrangère	Définition Form Builder
Ligne de commande	chaîne_user_exit.
Longueur ligne de commande	longueur (en caractères) de chaîne_user_exit.
Message erreur	chaîne_erreur
Longueur message erreur	longueur (en caractères) de chaîne_erreur.
Saisie interrogation	Valeur booléenne qui indique si la fonction étrangère a été appelée à partir d'un user exit lorsque l'application Forms était en mode Saisie interrogation.

Form Builder appelle automatiquement la fonction étrangère à partir de chaîne_user_exit, mais ne l'analyse pas automatiquement. C'est la fonction étrangère qui doit analyser la chaîne_user_exit.

Vous pouvez transmettre un nombre quelconque de paramètres à une fonction étrangère à partir de la chaîne_user_exit de la procédure interne USER_EXIT. Utilisez cette fonction pour transmettre des informations comme des noms d'éléments. Par exemple, pour transmettre deux paramètres, PARAM1 et PARAM2, à la fonction étrangère CALCULATE_VALUES, écrivez :

User_Exit('CALCULATE_VALUES PARAM1 PARAM2');


Renvoi d'une valeur provenant d'une fonction étrangère à l'aide de USER_EXIT

  Rubriques connexes

A la fin l'exécution du sous-programme intégré USER_EXIT Form Builder, une valeur entière est retournée à Form Builder. Cette valeur indique le résultat de l'exécution du sous-programme intégré USER_EXIT : réussite, échec ou erreur fatale. (Par exemple, si vous créez une fonction étrangère en C, Form Builder fournit les constantes dans un fichier ".h".)

Les variables d'erreur de Form Builder (FORM_FAILURE, FORM_FATAL et FORM_SUCCESS) sont définies en fonction de la valeur retournée par le sous-programme intégré USER_EXIT. Vous pouvez interroger les variables d'erreur pour déterminer le succès ou l'échec d'exécution du sous-programme intégré USER_EXIT, comme vous le feriez pour tout sous-programme intégré. Le déclencheur qui appelle le sous-programme intégré USER_EXIT détermine la façon de gérer la condition de retour.

Par exemple, vous pouvez vérifier la valeur de FORM_SUCCESS après l'exécution d'une fonction étrangère à partir d'un user exit :

User_Exit('ma_sortie');

IF NOT Form_Success THEN

/* gestion de l'erreur */

END IF;


Ecriture d'un user exit sous Microsoft Windows

  Rubriques connexes

Sous Microsoft Windows, une fonction étrangère qui peut être appelée à partir d'un user exit est stockée dans une bibliothèque de liens dynamiques (DLL),c'est-à-dire une bibliothèque qui se charge en mémoire uniquement lorsque le code qu'elle contient est appelé, et qui peut être partagée par plusieurs applications. Avant de poursuivre, vous devez connaître la procédure de création des DLL, décrite dans la documentation de votre compilateur.

Remarque : Certaines fonctions d'exécution écrites en C ne sont pas disponibles dans les fichiers DLL. Pour plus d'informations, reportez-vous à la documentation de votre compilateur.

Vous trouverez ci-dessous un exemple de création et d'appel d'une fonction étrangère à partir d'un user exit. Cet exemple utilise le fichier de projet UE_SAMP.MAK.


A propos de l'écriture d'un user exit sous Microsoft Windows

  Rubriques connexes

Pour créer une fonction étrangère qui peut être appelée à partir d'un user exit sous Microsoft Windows :

1.	Ecrivez une fonction étrangère en utilisant des instruction du précompilateur ORACLE et Pro*C pour accéder à la base de données.

Par exemple, créez un fichier texte appelé UEXIT.PC, puis ajoutez le texte suivant :

/* fichier UEXIT.PC */

/* Cette fonction étrangère ajoute une colonne ID à la table EMP. */

#ifndef UE

#include "ue.h"

#endif

#ifndef _WINDLL

#define SQLCA_STORAGE_CLASS extern

#endif

EXEC SQL INCLUDE sqlca.h

void AddColumn() {

EXEC SQL alter table EMP add ID varchar(9);

}

2	Précompilez la fonction étrangère en utilisant un précompilateur ORACLE (Précompilateur Pro*C).

Par exemple, utilisez Proc*C pour précompiler le fichier UEXIT.PC. Le fichier C obtenu est appelé UEXIT.C.

3.	Créez vos propres fichiers d'en-tête.

Votre fichier d'en-tête doit définir votre fonction étrangère. Par exemple, modifiez le fichier d'en-tête exemple, UE.H, en ajoutant le texte suivant :

extern   void   AddColumn();

4.	Compilez UEXIT.C pour générer un fichier de code objet de fonction étrangère. N'oubliez pas d'indiquer le gros modèle de mémoire dans votre compilateur.

5.	Créez la structure de contrôle IAPXTB.

Modifiez le fichier UE_XTB en incluant le fichier UEXIT.H et en ajoutant le nom du user exit, le nom de la fonction étrangère et le type de langage. Vous trouverez ci-dessous l'exemple du fichier UE_XTB.C, dans lequel l'entrée ajoutée est la suivante :

Add_ID_Column, AddColumn, XITCC

6.	Modifiez les fichiers d'intégration de fonction étrangère nécessaires.

Modifiez le fichier UE_SAMP.DEF en ajoutant des instructions d'exportation pour inclure la fonction étrangère AddColumn. Suivez les exemples du fichier UE_SAMP.DEF.

7.	Créez une DLL qui sera utilisée avec Forms Runtime.

A l'exception de UEXIT.C, les fichiers qui doivent déjà se trouver dans le fichier de projet UE_SAMP.MAK sont les suivants :

\orawin95\forms\userexit\uez.obj

\orawin95\forms\userexit\osswep.obj

\orawin95\forms\userexit\ue_samp.def

\orawin95\forms\userexit\ue_xtb.c

\orawin95\forms\userexit\uexit.c

Le projet UE_SAMP.MAK est défini de manière à lier les fichiers suivants :

LIBC.LIB

OLDNAMES

\orawin95\60\userexit\f60r.LIB

\orawin95\pro20\userexit\sqllib18.lib

\orawin95\pro20\userexit\sqxlib18

Le résultat de la création du projet UE_SAMP.MAK est une DLL appelée UE_SAMP.DLL. Ajoutez l'entrée UE_SAMP.DLL à la liste des DLL définies par le paramètre FORMS60_USEREXITS dans la base de registres.

Vous pouvez également renommer le fichier UE_SAMP.DLL en lui donnant le nom F60XTB32.DLL, créer une copie de sauvegarde de F60XTB32.DLL dans le répertoire c:\orawin95\bin et copier le nouveau F60XTB32.DLL dans le répertoire c:\orawin95\bin.

8.	N'oubliez pas d'inclure le nom de la DLL dans la variable FORMS60_USEREXITS dans la base de registres ou de renommer la DLL en l'appelant F60XTB32.DLL. Si vous renommez la DLL F60XTB32.DLL, remplacez le fichier F60XTB32.DLL existant dans le répertoire \ORAWIN95\BIN par le nouveau fichier F60XTB32.DLL.

9.	Appelez la fonction étrangère à partir d'un user exit dans Form Builder.

Dans ce cas, un déclencheur When-Button-Pressed appelle la fonction étrangère à partir d'un user exit. L'instruction ci-dessous explique comment appeler la fonction étrangère AddColumn en indiquant le nom du user exit Add_ID_Column dans le sous-programme intégré USER_EXIT :

/* déclencheur: When-Button-Pressed */

USER_EXIT('Add_ID_Column');


Fichiers d'interface de user exit Microsoft Windows

  Rubriques connexes

Pendant l'installation de Form Builder pour Windows, le système crée un groupe de fichiers liés à l'interface de user exit (à l'exception de F60XTB32.DLL) dans le répertoire \ORAWIN95\FORMS60\USEREXIT. Il est possible que vous n'ayez pas besoin de tous les fichiers de ce répertoire. Toutes les fonctions étrangères qui peuvent être appelées à partir d'une interface de user exit de Form Builder pour Windows doivent se trouver dans une DLL

F60XTB32.DLL	Fichier par défaut contenant les fonctions étrangères qui peuvent être appelées à partir d'une interface de user exit. Ce fichier est une DLL, fournie avec Form Builder, qui ne contient pas au départ de fonctions étrangères définies par l'utilisateur. Ce fichier est stocké dans le répertoire \ORAWIN95\BIN pendant l'installation. Lorsque vous créez de nouvelles fonctions étrangères, remplacez le fichier F60XTB32.DLL existant par un nouveau fichier F60XTB32.DLL.

Pour vous aider à créer la structure de contrôle IAPXTB, Form Builder vous fournit deux fichiers source de structure de contrôle IAPXTB, UE_XTB.C et UE_XTBN.C. Chacun de ces fichiers sert de modèle pour la création d'une structure de contrôle IAPXTB. Modifiez un fichier source de structure de contrôle IAPXTB pour qu'il contienne les fonctions étrangères que vous définissez. Ajoutez le fichier approprié dans votre projet. Vous n'avez besoin que d'un des deux fichiers source pour créer la structure de contrôle IAPXTB.

UE_XTB.C	Fichier qui contient un exemple d'entrée pour la structure de contrôle IAPXTB. Modifiez ce fichier et ajoutez-y vos entrées de fonctions étrangères. C'est ce fichier qui est dans le fichier de projet UE_SAMP.MAK.
UE_XTBN.C	Fichier qui contient une structure de contrôle IAPXTB vide. Ajoutez vos entrées de fonctions étrangères pour créer une structure de contrôle IAPXTB. C'est ce fichier qui se trouve dans le fichier de projet UE_XTBN.MAK.

Les fichiers décrits ci-dessous sont des fichiers de projet qui contiennent tous les fichiers nécessaires pour créer une DLL contenant des fonctions étrangères que vous pouvez appeler à partir d'une interface de user exit dans Form Builder.

UE_SAMP.MAK	Fichier de projet qui comprend la structure de contrôle IAPXTB provenant du fichier UE_XTB.C. La création de ce projet génère la bibliothèque UE_SAMP.DLL. dont vous pouvez changer le nom en F60XTB32.DLL. Remplacez le F60XTB32.DLL existant dans le répertoire \ORAWIN95\BIN, ou ajoutez UE_SAMP.DLL à la liste des DLL définies par le paramètre FORMS60_USEREXITS dans la base de registres.
UE_XTBN.MAK	Fichier de projet qui comprend la structure de contrôle IAPXTB provenant du fichier UE_XTBN.C. La création de ce projet génère le fichier de projet UE_XTBN.DLL, utilisé pour générer le fichier initial F60XTB32.DLL qui réside dans le répertoire \ORAWIN95\BIN. Changez en F60XTB32.DLL le nom de la DLL appelée UE_XTBN.DLL et remplacez le F60XTB32.DLL existant dans le répertoire \ORAWIN95\BIN, ou ajoutez UE_XTBN.DLL à la liste des DLL définies par le paramètre FORMS60_USEREXITS dans la base de registres.

Outre les fichiers de code objet de fonction étrangère et le fichier de code objet de structure de contrôle IAPXTB, vous devez avoir dans votre fichier de projet les fichiers décrits ci-dessous pour générer une DLL d'interface de user exit. (Ces fichiers sont inclus dans UE_SAMP.MAK et UE_XTBN.MAK) :

UE_SAMP.DEF	Contient les définitions dont vous avez besoin pour créer votre propre DLL.
OSSWEP.OBJ	Fichier .OBJ d'entrée Windows DLL dont vous avez besoin pour créer votre propre DLL. (Vous pouvez remplacer OSSWEP.OBJ par un fichier .OBJ vous appartenant.)
UEZ.OBJ	Fichier .OBJ que vous liez à vos propres fichiers .OBJ.


Compilation des fonctions étrangères Microsoft Windows

  Rubriques connexes

Lorsque vous compilez vos fonctions étrangères, n'oubliez pas d'indiquer le modèle de mémoire le plus grand. Pour plus d'informations (sur les restrictions concernant la création d'une DLL Microsoft Windows ou l'utilisation d'instructions define, par exemple) reportez-vous à la documentation sur votre compilateur Microsoft Windows. (Votre code de fonction étrangère peut devoir comporter le fichier UE.H pour accéder aux instructions define et typedefs.)


Création d'une structure de contrôle IAPXTB pour Microsoft Windows

  Rubriques connexes

Créer la structure de contrôle IAPXTB en utilisant comme modèle le fichier UE_XTB.C ou le fichier UE_XTBN.C. Vous pouvez également créer votre propre structure de contrôle IAPXTB dans un fichier auto-défini.

Remarque : Sous Microsoft Windows, une structure de contrôle IAPXTB est nécessaire pour créer chaque DLL qui contient des fonctions étrangères pouvant être appelées à partir d'un user exit. Vous ne devez inclure dans la structure de contrôle IAPXTB que les entrées de fonctions étrangères correspondantes stockées dans une DLL.

Extrait d'un fichier UE_XTB.C légèrement modifié :

extern exitr iapxtb[] = { /* Contient les pointeurs des routines de sortie */

   "Nom_UE", UE_Funct, XITCC,

   "USEREXECSQL", uxsql, XITCC,

   (char *)0, 0, 0    /* l'entrée zéro marque la fin */

} /* fin de iapxtb */

Le fichier comprend le nom du user exit UE_Name. Dans cet exemple, une ligne a été ajoutée au fichier UE_XTB.C d'origine :

"Nom_UE", UE_Funct, XITCC,

UE_Name	Nom du user exit à utiliser par le sous-programme intégré USER_EXIT pour appeler la fonction étrangère à partir de Form Builder.
UE_Funct	Nom de la fonction étrangère qui prend momentanément à Form Builder le contrôle du traitement.
XITCC	Indique le langage de programmation C utilisé pour développer la fonction étrangère.


A propos de la création d'une bibliothèque de liens dynamiques Microsoft Windows

  Rubriques connexes

Deux fichiers de projet, UE_SAMP.MAK et UE_XTBN.MAK, vous aideront à créer une DLL contenant des fonctions étrangères qui pourront être appelées à partir d'un user exit.

Vous avez également la possibilité de définir votre propre fichier de projet. Dans ce cas, n'oubliez pas d'inclure un fichier de code d'objet de structure de contrôle IAPXTB, les fichiers de code objet de fonction étrangère et les fichiers nécessaires à l'intégration des fonctions étrangères qui peuvent être appelés à partir d'un user exit dans Form Builder.

Le fichier UE_SAMP.DEF est l'un des fichiers nécessaires à l'intégration des fonctions étrangères dans Form Builder. Utilisez-le pour exporter des fonctions étrangères. Certaines instructions d'export de Form Builder existent déjà. Ne modifiez pas les instructions d'export existantes car les fonctions sont utilisées par Form Builder pour accéder aux user exit.

Le fichier de projet UE_SAMP.MAK est utilisé ici à titre d'exemple. Outre les fichiers de code objet contenant vos fonctions étrangères, UE_SAMP.MAK comprend les fichiers suivants :

\orawin95\forms60\userexit\uez.obj

\orawin95\forms60\userexit\osswep.obj

\orawin95\forms50\userexit\f60xtb.def

\orawin95\forms60\userexit\ue_xtb.c

Vous devez également lier les fichiers suivants :

LDLLCEW.LIB

LIBW.LIB

OLDNAMES

\orawin95\forms60\userexit\F60R.LIB

Si vous créez une fonction étrangère du précompilateur ORACLE, vous devez lier les bibliothèque suivantes :

\orawin95\forms60\userexit\sql18win.lib

\orawin95\forms60\userexit\sqx18win.lib

Vous créez UE_SAMP.DLL après avoir créé le fichier de projet UE_SAMP.MAK. Vous pouvez renommer UE_SAMP.DLL en F60XTB32.DLL, faire une copie de sauvegarde du fichier F60XTB32.DLL, située dans \ORAWIN95\BIN, et remplacer le fichier F60XTB32.DLL existant par le nouveau F60XTB32.DLL. Vous pouvez également ajouter UE_SAMP.DLL à la liste des DLL définies par le paramètre FORMS60_USEREXITS dans la base de registres.


Définition de fonctions étrangères dans des bibliothèques de liens dynamiques multiples

Les fonctions étrangères développées pour être utilisées dans Form Builder pour Windows sont stockées dans des DLL. Form Builder crée une seule DLL, F60XTB32.DLL, destinée à recevoir les fonctions étrangères. F60XTB32.DLL est la DLL par défaut destinée à contenir les fonctions étrangères. Une DLL peut contenir plusieurs fonctions étrangères.

L'utilisation d'une seule DLL contenant toutes les fonctions étrangères peut être cause de conflits, surtout lorsque deux programmes tentent d'accéder à la même DLL. Pour éviter les conflits de bibliothèques dynamiques, Form Builder prend en charge les DLL des user exit multiples ; les fonctions étrangères peuvent se trouver dans plusieurs DLL sans que le nom de la DLL fasse l'objet de restrictions.

Paramètre FORMS60_USEREXITS  Le paramètre FORMS60_USEREXITS de la base de registres vous permet de définir plusieurs DLL destinées à contenir des fonctions étrangères qui peuvent être appelées à partir d'un user exit. Le paramètre FORMS60_USEREXITS comprend une liste, délimitée par des points-virgules, de DLL de user exit.

Exemple de définition de plusieurs DLL de user exit :

FORMS60_USEREXITS = C:\mathlib\add.dll;C:\mathlib\mult.dll;

Une DLl se charge en mémoire lorsque l'une des fonctions étrangères qu'elle contient est appelée à partir du user exit. Bien que le paramètre FORMS60_USEREXITS puisse fournir la liste des nombreuses DLL contenant chacune plusieurs fonctions étrangères de user exit, il ne peut y en avoir qu'une en mémoire à la fois.

Form Builder détermine la fonction étrangère à appeler à partir d'un user exit en utilisant les critères suivants :

•	Si le paramètre FORMS60_USEREXITS n'existe pas dans la base de registres, les fonctions étrangères doivent se trouver dans un seul user exit, appelé F60XTB32.DLL, situé dans le répertoire \ORAWIN95\BIN.

•	Si le paramètre FORMS60_USEREXITS existe dans la base de registres et s'il y a plusieurs DLL de user exit définies, la première occurrence de la fonction étrangère dans la liste des DLL est appelée.

•	S'il y a plusieurs DLL de user exit qui contiennent des noms de fonctions étrangères non uniques, le nom de fonction non unique qui est appelé est la première occurrence de la fonction qui suit le contenu dans la mémoire cache de user exit.

REMARQUE :  Pour éviter d'appeler une fonction étrangère non attendue, n'utilisez pas un nom de fonction étrangère plusieurs fois dans vos DLL de user exit. Exemple de nom de fonction non unique : lorsque deux fonctions différentes ont le même nom, mais se trouvent dans des DLL de user exit différentes.

Mémoire cache de user exit  Form Builder gère les noms de fonctions non uniques en tenant à jour une mémoire cache de user exit. La sortie d'une application Forms vide la mémoire cache de user exit qui, sinon, contient la dernière fonction étrangère appelée en mémoire, jusqu'à ce que vous en appeliez une autre.

L'appel d'une fonction étrangère ayant un nom de fonction non unique dépend du contenu de la mémoire cache de user exit. La première occurrence d'une fonction étrangère ayant un nom de fonction non unique et qui suit la fonction étrangère dans la mémoire cache de user exit, est appelée.

Si la mémoire cache de user exit est vide, la première occurrence d'une fonction ayant un nom de fonction non unique dans la liste des DLL est appelée. Comme la mémoire cache n'est vidée que lorsque vous sortez d'une application Forms, les appels ultérieurs à un nom de fonction non unique peuvent entraîner un appel de fonction étrangère inattendu. Par exemple, vous pouvez appeler par accident une fonction qui suit une fonction ayant un nom unique, au lieu d'appeler une fonction qui apparaît antérieurement dans la séquence des DLL de user exit. Bien que dans de nombreux cas la mémoire cache de user exit identifie correctement les fonctions étrangères ayant des noms non uniques, vous devez, dans toute la mesure du possible, utiliser des noms de fonction étrangère uniques dans la liste des DLL qui sont membres de la variable FORMS60_USEREXITS.


Accès aux fonctions SDK Microsoft Windows à partir d'un user exit

  Rubriques connexes

Vous pouvez appeler des fonctions SDK Microsoft Windows à partir d'un user exit, de la même façon que vous appelez des fonctions étrangères, définies par l'utilisateur, à partir d'un user exit sous Microsoft Windows. Au lieu d'inclure les fichiers de code objet de votre fonction étrangère définie par l'utilisateur, lors de la création d'une bibliothèque de liens dynamiques, vous devez inclure les fichiers source de la fonction SDK Microsoft Windows.

Les valeurs de paramètre des fonctions SDK Microsoft Windows peuvent être transmises à Form Builder, ou reçues de Form Builder, comme toute autre fonction étrangère. Pour les fonctions SDK Microsoft Windows qui nécessitent un paramètre d'identificateur de fenêtre, vous pouvez obtenir de Form Builder l'identificateur requis en utilisant la fonction GET_ITEM_PROPERTY pour examiner la propriété Window_Handle property. Un identificateur de fenêtre est une constante caractère interne unique, utilisée pour faire référence à des objets.

Les raisons de l'accès aux fonctions SDK Microsoft Windows sont multiples. Par exemple, en obtenant de Form Builder un identificateur de fenêtre, vous pouvez appeler les fonctions SDK Microsoft Windows pour modifier de manière externe les propriétés des objets de vos applications Form Builder. Exemple d'appel de la fonction SDK Microsoft Windows GetWindowRect à partir d'un déclencheur Form Builder ou d'un sous-programme défini par l'utilisateur :

:block1.item_handle := get_item_property('block1.item1',Window_Handle);

USER_EXIT(GetWinRec || :block1.item_handle,'message_erreur');


Déploiement d'applications Forms sur le Web

  Afficher la version HTML (Windows 95)	  Afficher la version HTML (Windows NT)

Déploiement d'applications sur le Web présente des concepts et des informations de référence pour vous aider à déployer sur le Web vos applications Oracle Developer, nouvelles ou existantes. La documentation propre au déploiement d'applications Forms sur le Web se trouve ici.

Au cours de l'installation d'Oracle Developer, une version HTML de Déploiement d'applications sur le Web a été placée dans le répertoire /BIN de votre répertoire ORACLE_HOME. Si vous utilisez Microsoft Windows NT, le répertoire ORACLE_HOME est généralement \ORANT. Si vous utilisez Windows 95 (ou 98), ce répertoire est généralement \ORAWIN95. Vous pouvez, depuis ce répertoire, en afficher le sommaire dans votre navigateur par défaut ou encore cliquer sur le bouton Afficher la version HTML approprié situé dans la partie supérieure de la présente rubrique.


Présentation des fenêtres et des canevas

Lorsque vous créez une application Forms, vous utilisez des fenêtres et des canevas pour présenter à l'utilisateur les éléments visuels d'une application Forms (c'est-à-dire les éléments d'interface et les objets standard). Une même application Forms peut comporter un nombre illimité de fenêtres et de canevas.

Relation entre fenêtres et canevas Vous devez créer au moins un canevas par fenêtre que vous créez. De même, chaque canevas que vous créez doit être attribué à une fenêtre. A l'exécution, les fenêtres et les canevas s'affichent et se ferment en fonction des événements de navigation et du contrôle par programme.

Pour définir les relations entre éléments d'interface, canevas et fenêtres, vous devez définir un certain nombre de leurs propriétés. Par exemple, chaque élément d'interface (élément texte, case à cocher, etc.) a une propriété Canevas qui indique le canevas sur lequel l'élément est affiché. (Notez que lorsque vous créez un élément dans l'Editeur de présentation, Form Builder définit automatiquement cette propriété, en fonction du canevas en cours.) De même, chaque canevas a une propriété Fenêtre qui indique la fenêtre dans laquelle il est affiché.


Qu'est-ce qu'une fenêtre ?

  Rubriques connexes

Une fenêtre est un conteneur de tous les objets visuels qui constituent une application Form Builder, canevas inclus. Une application Forms peut comporter un nombre illimité de fenêtres. Bien que chaque nouvelle application Forms ait automatiquement une fenêtre par défaut appelée WINDOW1, vous pouvez créer des fenêtres supplémentaires en les insérant sous le noeud Fenêtres dans le Navigateur d'objet.

En soi, l'objet fenêtre est un cadre vide. Le cadre comporte une barre de titre et des descripteurs d'interaction avec la fenêtre, ce qui permet à l'utilisateur de faire défiler, de déplacer et de redimensionner la fenêtre.

En règle générale, une fenêtre contient un canevas avec des éléments de navigation autorisée, et est donc appelée à l'exécution en réponse à la navigation vers des éléments de ce canevas. Les fenêtres peuvent également être affichées et fermées par programme, indépendamment de tout événement de navigation d'élément. A l'exécution, lorsqu'une fenêtre est affichée par programme ou lorsque vous naviguez vers un élément d'un canevas attribué à cette fenêtre, Form Builder affiche la fenêtre avec le canevas approprié en arrière-plan.

Pour définir l'aspect et les fonctions des fenêtres que vous créez, vous pouvez indiquer de nombreuses propriétés de fenêtre, dont leur taille, leur position d'affichage et leur titre. Vous pouvez également rechercher (examiner) et définir la plupart des propriétés par programme lors de l'exécution. Enfin, vous pouvez, au besoin, afficher et masquer dynamiquement les fenêtres.


A propos des types de fenêtre

  Rubriques connexes

Lorsque vous créez une fenêtre, vous indiquez son type en définissant la propriété Type de fenêtre.

Il existe deux types de fenêtre :

• les fenêtres de document,

• les fenêtres de dialogue.

Fenêtres de document Les fenêtres de document affichent généralement les principaux canevas et zones de travail de cette application, où s'effectuent la plupart des opérations de saisie et d'extraction de données.

Fenêtres de dialogue  Les fenêtres de dialogue sont des conteneurs mobiles, généralement utilisés pour des dialogues de type modal qui demandent une interaction immédiate de l'utilisateur.


Qu'est-ce qu'un canevas ?

Un canevas est une surface, à l'intérieur d'un conteneur de fenêtre, sur laquelle vous placez les éléments d'interface et les objets standard sur lesquels l'utilisateur agit lorsqu'il utilise l'application Forms. Par défaut, tout canevas que vous créez à l'exécution est attribué à la fenêtre WINDOW1. Pour associer explicitement un canevas à une fenêtre spécifique, définissez en conséquence la propriété Fenêtre du canevas.


A propos des types de canevas

  Rubriques connexes

Form Builder offre quatre types de canevas, qui peuvent tous être affichés par la même fenêtre à l'exécution. Un type de canevas définit la façon dont Form Builder doit l'afficher dans la fenêtre à laquelle il est attribué. Lorsque vous créez un canevas, vous indiquez son type en définissant la propriété Type de canevas. Les quatre types de canevas sont les suivants :

• canevas intégral,

• canevas empilé,

• canevas onglet,

• canevas à barre d'outils.

Canevas intégral Le type le plus courant de canevas est le canevas intégral (type par défaut). Un canevas intégral est une vue de "base" qui occupe toute la fenêtre dans laquelle il est affiché. Vous devez définir au moins un canevas intégral par fenêtre que vous créez.

Canevas empilé Un canevas empilé est affiché ou empilé sur le canevas intégral attribué à la fenêtre en cours. Les canevas empilés masquent une partie du canevas intégral sous-jacent et sont souvent affichés et masqués par programme. Vous pouvez afficher simultanément plusieurs canevas empilés dans une fenêtre.

Canevas onglet Un canevas onglet — composé de plusieurs pages à onglet — vous permet de regrouper et d'afficher un gros volume d'informations connexes sur un seul objet canevas dynamique de Form Builder. Comme les canevas empilés, les canevas onglet sont affichés sur un canevas intégral, qu'ils masquent partiellement. Les pages à onglet (dont l'ensemble compose le canevas onglet) affichent chacune un sous-ensemble des informations affichées sur la totalité du canevas onglet.

Canevas à barre d'outils Un canevas à barre d'outils est souvent utilisé pour créer des barres d'outils pour différentes fenêtres. Les canevas à barre d'outils sont de deux types : canevas à barre d'outils horizontale ou verticale. Les canevas à barre d'outils horizontale sont affichés en haut d'une fenêtre, juste sous sa barre de menus, alors que les canevas à barre d'outils verticale sont affichés à gauche d'une fenêtre.


A propos des vues

  Rubriques connexes

Dans Form Builder, la relation entre un canevas et sa vue est un concept fondamental. Considérez la vue comme un rectangle placé sur le canevas. La partie du canevas visible dans la vue est celle que l'utilisateur voit lorsque le canevas est affiché à l'exécution.

Modification de la taille et de la position d'une vue Pour un canevas empilé, vous pouvez indiquer la taille de la vue lors de la conception en définissant les propriétés Largeur de vue et Hauteur de vue. Pour un canevas intégral, un canevas onglet ou un canevas à barre d'outils, ces propriétés ne sont pas prises en compte, car la taille de la vue est déterminée par la taille de la fenêtre elle-même. La modification de la taille de la fenêtre à l'exécution (c'est-à-dire son redimensionnement à l'aide de la souris) modifie effectivement la taille de la vue du canevas intégral de cette fenêtre.

Pour tout type de canevas, vous pouvez définir des propriétés qui indiquent le point d'origine de la vue sur le canevas - c'est-à-dire positionner le rectangle de la vue à un emplacement spécifique sur son canevas. Déplacer la vue, comme la redimensionner, change la partie du canevas que l'utilisateur voit dans la fenêtre à l'exécution. Lorsqu'un canevas intégral est plus grand que sa vue (c'est-à-dire plus grand que sa fenêtre), il est possible de faire défiler la fenêtre pour changer la position de la vue sur le canevas, et donc de rendre visible une autre partie du canevas.


A propos des fenêtres MDI et SDI

  Rubriques connexes

Form Builder prend totalement en charge les systèmes de gestion de fenêtres MDI (Multiple Document Interface) et SDI (Single Document Interface) de Microsoft Windows.

Interface MDI

Les applications MDI affichent une fenêtre père par défaut, appelée fenêtre d'application. Toutes les autres fenêtres de l'application sont soit des fenêtres de document soit des fenêtres de dialogue.

Les fenêtres de document sont toujours affichées dans le cadre de la fenêtre d'application MDI. Si l'utilisateur redimensionne la fenêtre MDI afin qu'elle soit plus petite qu'une fenêtre de document, la fenêtre de document est coupée. L'utilisateur peut agrandir au maximum une fenêtre de document afin qu'elle occupe toute la surface de la fenêtre d'application. Les fenêtres de dialogue sont mobiles, et l'utilisateur peut les extraire de la fenêtre d'application si elles sont définies comme des fenêtres mobiles. Si l'utilisateur redimensionne la fenêtre MDI pour qu'elle soit plus petite qu'une fenêtre de dialogue, la fenêtre de dialogue n'est pas coupée.

La fenêtre d'application MDI est créée par le gestionnaire de fenêtres à l'exécution et n'apparaît pas dans la liste des fenêtres d'une application Forms. Cependant, vous pouvez utiliser la procédure interne SET_WINDOW_PROPERTY pour redimensionner, réduire au minimum ou agrandir au maximum la fenêtre MDI par programme.

Interface SDI

Bien que l'interface MDI soit le système de gestion de fenêtres par défaut de Forms Runtime, Form Builder offre également le support pour une fenêtre principale SDI sous Microsoft Windows.

Vous pouvez définir à SDI le système de gestion de fenêtres en indiquant l'option de ligne de commande USESDI. Lorsque le système SDI est activé, les appels à la constante FORMS_MDI_WINDOW retournent NULL pour les indicateurs de fenêtre MDI. Il n'y a pas de fenêtre principale d'interface multiple, les barres d'outils MDI existent dans les fenêtres père et les menus MDI sont attachés à chaque fenêtre.


A propos de la fenêtre principale

Remarque : Le concept de fenêtre principale n'est plus utilisé dans les versions 5 et ultérieures de Form Builder. Cependant, dans un souci de compatibilité ascendante, le nom FENETRE_PRINCIPALE, les propriétés et procédures internes associées, ainsi que le comportement de la fenêtre principale sont encore pris en charge.

Une fenêtre principale affiche la fenêtre de commande de l'application Forms active dans votre application. La création d'une fenêtre principale dans une application Forms est facultative. Elle est surtout utilisée dans les applications comportant plusieurs applications Forms (qui doivent exécuter simultanément plusieurs modules Application Forms).

Une fenêtre principale a des caractéristiques particulières. Dans une application comportant plusieurs applications Forms, l'utilisation d'une fenêtre principale vous permet d'avoir une seule fenêtre qui affiche toujours la fenêtre de commande de l'application Forms active. Ceci n'est un avantage que pour les plates-formes autres que Microsoft Windows, puisque sous Microsoft Windows la fenêtre de commande s'affiche toujours dans la fenêtre d'application MDI.

A l'exécution, il ne peut y avoir qu'une fenêtre principale affichée à la fois. Lorsque plusieurs applications Forms, ayant chacune une fenêtre principale, s'exécutent simultanément, il n'y a qu'une fenêtre principale qui affiche la fenêtre de commande, quelle que soit l'application Forms active dans l'application.

La fenêtre principale d'une application comportant plusieurs applications Forms affiche non seulement la fenêtre de commande de l'application Forms active, mais aussi le canevas intégral de l'application Forms en cours. Lorsque l'utilisateur navigue entre les applications Forms ouvertes, la zone d'arrière plan de la fenêtre principale est mise à jour pour afficher le canevas attribué à la fenêtre principale dans l'application Forms active.

Dans une application comportant plusieurs applications Forms, le fait qu'une seule fenêtre principale puisse être affichée à la fois conditionne également le comportement des applications Forms qui en appellent d'autres en exécutant les procédures internes OPEN_FORM ou CALL_FORM. Si l'application Forms appelée et l'application Forms appelante ont une fenêtre principale et que le premier élément de navigation autorisée de l'application Forms appelée soit dans un canevas attribué à la fenêtre principale, l'exécution des procédures internes  OPEN_FORM ou CALL_FORM provoque le remplacement de la fenêtre principale par l'application Forms appelée à partir de l'application Forms appelante.

Création d'une fenêtre principale Pour créer une fenêtre principale, vous devez créer une fenêtre par défaut et lui donner le nom ROOT_WINDOW.

Pour les applications Forms autres que Microsoft Windows, indiquez la fenêtre sur laquelle vous voulez que la fenêtre de commande soit affichée en définissant la propriété d'application Forms Fenêtre de commande. Dans une application comportant plusieurs applications Forms, vous pouvez créer une fenêtre principale dans chaque application Forms et lui attribuer la fenêtre de commande en définissant la propriété Fenêtre de commande à ROOT_WINDOW.

Etant donné les caractéristiques propres à la fenêtre principale, certaines de ses propriétés ont des options fixes. Le remplacement de ces options dans Form Builder est sans effet sur le comportement de la fenêtre lors de l'exécution. Les propriétés (et leur valeur par défaut) sont les suivantes :

• Fermeture autorisée (Oui)

• Taille fixe (Non)

• Icônifiable (Oui)

• Menu hérité (Oui)

• Déplacement autorisé (Oui)

• Nom

• Fermeture sur sortie  (Non)

• Style (Document)

• Barre de défilement Vertical/Horizontal  (Non)

• Zoom autorisé (Oui)

Affichage de la fenêtre principale La fenêtre principale est affichée par Form Builder lors du démarrage de l'application Forms et reste affichée pendant toute la session, même si elle ne contient pas d'élément de navigation autorisée ni même de canevas. Par exemple, une application peut utiliser la fenêtre principale uniquement comme barre de menus affichant les lignes d'état et de message de Form Builder et réserver les fenêtres secondaires pour afficher les canevas de l'application principale.


A propos de la fenêtre de commande

  Rubriques connexes

La fenêtre de commande, qui comprend la ligne d'état et la ligne de message, est affichée au bas de la fenêtre à laquelle elle est attribuée.

Sous Microsoft Windows, la fenêtre de commande est affichée par défaut dans la fenêtre d'application MDI ; vous ne pouvez pas l'afficher dans des fenêtres individuelles de dialogue ou de document de l'application Forms. Pour masquer la fenêtre de commande, définissez à NULL la propriété de niveau application Forms Fenêtre de commande.

Sur les plates-formes autres que Windows, vous pouvez afficher la fenêtre de commande dans une seule fenêtre, mais vous ne pouvez pas modifier son attribution lors de l'exécution. Pour afficher la fenêtre de commande dans une fenêtre, définissez la propriété de niveau application Forms Fenêtre de commande à la fenêtre appropriée. Pour masquer la fenêtre de commande, définissez à NULL la propriété d'application Forms Fenêtre de commande.


A propos de la modalité de fenêtre

  Rubriques connexes

Une fenêtre peut être soit sans mode soit modale. Une fenêtre modale(souvent une boîte de dialogue) exige que l'utilisateur donne des réponses pour pouvoir poursuivre son travail dans l'application en cours. Une fenêtre sans mode ne demande pas ce type de réponse. Lorsque vous créez une fenêtre, vous indiquez sa modalité en définissant la propriété Modal à Oui ou à Non. La valeur par défaut est Non (sans mode).

Fenêtres sans mode Vous pouvez afficher simultanément plusieurs fenêtres sans mode. L'utilisateur peut se déplacer librement de l'une à l'autre (à condition que la logique de votre application le permette). Sur la plupart des plates-formes à interface graphique, vous pouvez superposer des fenêtres sans mode afin qu'elles apparaissent soit devant, soit derrière d'autres fenêtres.

Les fenêtres sans mode restent affichées jusqu'à ce que l'utilisateur les quitte ou qu'elles soient masquées par programme. Vous pouvez définir la propriété Masquer sur sortie d'une fenêtre sans mode pour indiquer si elle doit rester affichée lorsque l'utilisateur passe à une autre fenêtre. Vous pouvez également définir les propriétés d'une fenêtre sans mode de façon à indiquer sa bordure et son titre, et préciser si l'utilisateur doit être autorisé à la faire défiler, à la redimensionner, à la déplacer, à la fermer, à l'icônifier et à effectuer des zooms.

Fenêtres modales Les fenêtres modales sont généralement utilisées comme boîtes de dialogue et, par rapport aux fenêtres sans mode, ont des fonctions restreintes. Sur certaines plates-formes, par exemple, l'utilisateur ne peut pas redimensionner, faire défiler ou icônifier une fenêtre modale. Les fenêtres modales sont souvent affichées avec un cadre propre à la plate-forme considérée, et caractéristique des fenêtres modales. Sur certaines plates-formes, les fenêtres modales sont "toujours les premières de la pile" et ne peuvent pas être empilées derrière des fenêtres sans mode.

Outre les restrictions propres à la plate-forme considérée, les fenêtres modales ont les caractéristiques suivantes :

• La propriété Masquer sur sortie ne s'applique pas aux fenêtres modales. Par défaut, Form Builder empêche l'utilisateur de sortir des fenêtres modales à l'aide de la souris, mais lui permet de passer à une autre fenêtre en utilisant des commandes au clavier. Dans ce cas, Form Builder ferme toujours la fenêtre modale, à moins que la fenêtre cible ne soit elle-même une fenêtre modale.

• Comme les fenêtres de dialogue modales ne peuvent pas avoir de barre de défilement, la définition des propriétés Barre de défilement est sans effet. (Toutefois, les autres fenêtres modales peuvent être dotées de barres de défilement.)

Modalités de niveau système et de niveau d'application Sur certaines plates-formes, les fenêtres modales ne sont modales que par rapport à d'autres fenêtres de la même application - c'est-à-dire que lorsque Form Builder affiche une fenêtre modale, l'utilisateur peut encore travailler dans des fenêtres qui appartiennent à d'autres applications.

Sur d'autres plates-formes, les fenêtres modales sont modales par rapport à la totalité du système, et l'utilisateur doit en sortir pour pouvoir envoyer des entrées à des fenêtres qui appartiennent à d'autres applications.


A propos des fenêtres à barre de défilement

Une fenêtre à barre de défilement permet à l'utilisateur de faire défiler le canevas intégral affiché dans cette fenêtre. Le défilement consiste à déplacer le canevas intégral pour changer les coordonnées X, Y du point d'origine de la vue, et donc laisser apparaître une autre partie de ce canevas. Notez que le défilement ne modifie pas la taille de la vue, mais simplement son emplacement sur le canevas.

Une fenêtre ne peut défiler horizontalement que lorsque sa largeur d'affichage est inférieure à la largeur du canevas intégral affiché dans la fenêtre. De même, elle ne peut défiler verticalement que lorsque sa hauteur est inférieure à la hauteur de son canevas intégral en cours. (N'oubliez pas que l'utilisateur peut modifier la taille d'une fenêtre à l'exécution.)

Lorsqu'une fenêtre a la même taille ou est plus grande que son canevas intégral en cours, le défilement est sans effet, car aucune partie du canevas ne se trouve en dehors de la vue en cours (c'est-à-dire en dehors de la fenêtre elle-même).

Les barres de défilement d'une fenêtre ne font défiler que le canevas intégral de la fenêtre ; cependant, les canevas empilés affichés dans la fenêtre se déplacent vers le haut et vers le bas ainsi que vers la droite ou vers la gauche comme si elle faisait partie du canevas intégral. (Vous pouvez également définir des barres de défilement sur des canevas empilés, mais elles sont indépendantes des barres de défilement de la fenêtre.)


Création d'une fenêtre

  Rubriques connexes

Pour créer une fenêtre :

1	Dans le Navigateur d'objet, cliquez sur le noeud Fenêtres.

2	Cliquez sur le bouton Créer [image] de la barre d'outils.

Form Builder crée une fenêtre et lui donne un nom par défaut (WINDOW3, par exemple).

3	Cliquez deux fois sur l'icône objet de la fenêtre.

4	Dans la Palette de propriétés, définissez les propriétés de la fenêtre.

Les propriétés figurant sous les noeuds Fonctionnel et Physique contrôlent l'aspect et les fonctionnalités de la fenêtre lors de l'exécution. Certains gestionnaires de fenêtres peuvent ne pas prendre en charge toutes ces propriétés.

Remarque : Vous devez attribuer au moins un canevas intégral à chaque fenêtre que vous créez. Pour attribuer un canevas à une fenêtre, définissez la propriété Fenêtre du canevas à la fenêtre appropriée.


Création d'une fenêtre à barre de défilement

Pour créer une fenêtre à barre de défilement :

1	Créez une fenêtre et définissez ses propriétés de la manière suivante :

Largeur/Hauteur Taille de l'affichage initial. (N'oubliez pas que l'utilisateur peut redimensionner une fenêtre lors de l'exécution si vous l'y autorisez.)

Modale  Non. (Il est impossible de faire défiler une fenêtre modale.)

Barre de défilement H/V  Oui, pour un ou les deux. (Contrôle la direction dans laquelle les utilisateurs peuvent faire défiler la fenêtre.)

2	Créez un canevas pour la fenêtre et définissez ses propriétés de la manière suivante :

Type de canevas  Intégral.

Largeur/Hauteur  Définies de sorte que le canevas soit plus grand que sa fenêtre.

Fenêtre  Nom de la fenêtre que vous avez créée à l'étape 1.

Barre de défilement H/V de vue  A ne pas prendre en compte. (Ces propriétés ne s'appliquent qu'à un canevas empilé.)


Association d'une icône à une fenêtre

  Rubriques connexes

Sur les plates-formes à interface graphique, l'utilisateur peut icônifier, ou réduire au minimum, une fenêtre sans mode afin qu'elle ne soit représentée à l'écran que par une icône bitmap. Pour réafficher une fenêtre icônifiée, l'utilisateur doit cliquer deux fois sur l'icône.

Pour créer une fenêtre icônifiable, vous devez associer la fenêtre à un fichier de ressources d'icône existant dans votre système d'exploitation runtime. Pour cela, définissez les propriétés de fenêtre suivantes :

Réduction autorisée  Oui.

Nom de fichier d'icône  Nom du fichier d'icône bitmap. (Form Builder recherche ce fichier dans le chemin d'accès aux ressources par défaut de votre système.)

Titre réduit  Texte qui s'affiche avec l'icône lors de l'exécution. (Si vous n'indiquez pas de titre, certains gestionnaires de fenêtres utilisent un titre par défaut.)

Pour empêcher l'utilisateur d'icônifier une fenêtre, définissez à Non la propriété Réduction autorisée. (Dans ce cas, les propriétés Nom de fichier d'icône et Réduction autorisée ne sont pas prises en compte.)

Remarque : Sous Microsoft Windows, le chemin de recherche des fichiers d'icône est défini par la variable d'environnement UI60_ICON située dans le fichier ORACLE.INI, ou dans la base de registres de Microsoft Windows 32 bits. Lorsque vous entrez le nom du fichier d'icône dans la propriété Nom du fichier d'icône, n'incluez pas de chemin d'accès ni l'extension .ICO.


A propos des fenêtres de dialogue modales

Les fenêtres de dialogue modales servent souvent de boîtes de dialogue interactives. Lorsque l'utilisateur doit fournir des informations à une application pour que celle-ci puisse se poursuivre, vous pouvez afficher une fenêtre de dialogue modale pour permettre la saisie des informations nécessaires. La plupart des boîtes de dialogue exigent que l'utilisateur fournisse les informations nécessaires ou quitte la boîte de dialogue et annule l'opération.

Les boîtes de dialogue Fichier et Impression sont des exemples de fenêtre interactive qui—sur la plupart des plates-formes à interface graphique—sont conçues comme des fenêtres de dialogue modales. Les alertes et les listes de valeurs (LOV) sont des exemples de fenêtre de dialogue modale spécialisée constituant des objets natifs de Form Builder.


Affichage d'une fenêtre de dialogue modale

  Rubriques connexes

Lorsque vous créez une boîte de dialogue modale, vous devez prévoir son mode d'affichage et de fermeture. Comme ce type de boîte de dialogue demande l'entrée d'informations par l'utilisateur, son canevas intégral doit toujours contenir des éléments de navigation autorisée. La façon la plus simple d'afficher une boîte de dialogue modale est donc par passage d'un élément de la fenêtre en cours au premier élément de navigation autorisée de la fenêtre de dialogue. Lorsque cette navigation se produit, Form Builder affiche automatiquement la fenêtre (dans le cas présent, la boîte de dialogue modale) qui contient l'élément cible.

L'événement de navigation peut être une action de l'utilisateur sur la touche Tab [Elément suivant] ou, plus probablement, la navigation par programme d'un déclencheur sur touche ou d'une commande de menu. Vous pouvez, par exemple, appeler les procédures internes NEXT_BLOCK, GO_BLOCK ou GO_ITEM à partir d'un déclencheur When-Button-Pressed pour passer à un élément cible de la boîte de dialogue.

Vous pouvez également exécuter la procédure interne SHOW_WINDOW pour afficher la fenêtre modale. Dans ce cas, la fenêtre passe implicitement au premier élément de navigation autorisée du canevas de cette fenêtre.

Appel d'une fenêtre modale à partir d'une autre fenêtre modale Vous pouvez appeler une fenêtre modale à partir d'une autre fenêtre modale. Par exemple, la boîte de dialogue modale standard Configuration de l'imprimante de Microsoft Windows comporte un bouton Options qui appelle une seconde boîte de dialogue modale. Lorsqu'une fenêtre modale a été appelée à partir d'une autre, la navigation vers une fenêtre sans mode de la même application Forms ferme automatiquement la fenêtre modale père et la fenêtre modale fils.


Fermeture d'une fenêtre de dialogue modale

La plupart des applications sont conçues de telle sorte que les boîtes de dialogue modales restent affichées jusqu'à ce que l'utilisateur les accepte ou les annule. Lorsque vous créez ce type de fenêtre, vous devez faire en sorte que l'utilisateur ne puisse la fermer qu'en réponse aux événements choisis.

Par défaut, la définition de la propriété Modale à Oui empêche l'utilisateur de sortir de la fenêtre à l'aide de la souris, mais l'autorise à passer à une autre fenêtre en appuyant sur des touches comme [Elément suivant] (Tab) ou [Bloc suivant]. Lorsque l'utilisateur est autorisé à utiliser des touches pour passer à une autre fenêtre, Form Builder ferme toujours la fenêtre modale, à moins que la fenêtre cible ne soit elle-même une fenêtre modale. (Notez que la propriété Masquer sur sortie n'est pas prise en compte pour une fenêtre modale.)

Si vous ouvrez une nouvelle fenêtre modale, la fenêtre initiale demeure affichée. Cependant, si vous essayez de passer d'une fenêtre modale à une autre déjà activée, la fenêtre en cours est masquée.

Interdiction de navigation au clavier Lorsque vous développez une fenêtre modale, vous voulez généralement empêcher l'utilisateur d'en sortir à l'aide des touches de navigation, car la boîte de dialogue ne doit se fermer qu'en réponse à des événements spécifiques, comme l'activation du bouton Annuler ou OK.

Pour empêcher l'utilisateur de sortir d'une fenêtre de dialogue modale à l'aide des touches du clavier, vous pouvez :

• Définir les propriétés Bloc de navigation précédent et Bloc de navigation suivant des blocs de la boîte de dialogue de manière à empêcher l'utilisateur de naviguer en utilisant les touches [Bloc suivant] et [Bloc précédent]. Par exemple, pour un bloc appelé DIALOG, vous pouvez définir les deux propriétés à DIALOG pour que la navigation soit circulaire, ce qui empêche l'utilisateur de passer à un autre bloc à l'aide des touches du clavier.

• Ecrire des déclencheurs de niveau bloc appropriés à chaque bloc de la fenêtre modale. Vous pouvez, par exemple, définir un déclencheur Key-Others de niveau bloc qui désactive toutes les touches, sauf celles pour lesquelles vous avez également défini un déclencheur sur touche (comme Key-Nxt-Item) permettant de passer par tabulation aux différents éléments de la fenêtre modale.

Une fois que vous avez empêché l'utilisateur de fermer une boîte de dialogue par navigation au clavier, vous devez écrire les commandes de fermeture de la boîte de dialogue en réponse aux événements choisis. Vous pouvez fermer une boîte de dialogue modale par programme en passant à un élément ou à un bloc d'une fenêtre sans mode, à l'aide de procédures internes comme GO_ITEM et GO_BLOCK. Par exemple, une fenêtre modale peut contenir un bouton OK avec un déclencheur When-Button-Pressed exécutant une instruction GO_BLOCK pour sortir de la fenêtre modale.


Création d'une fenêtre de dialogue modale

Pour créer une fenêtre de dialogue modale :

1	Créez une nouvelle fenêtre et définissez ses propriétés de la manière suivante :

Type de fenêtre  Dialogue. (Valide uniquement sous Microsoft Windows.)

Modale  Oui.

Largeur/Hauteur  Facultatif. (Une boîte de dialogue est généralement plus petite que la fenêtre sans mode à partir de laquelle l'utilisateur l'appelle.)

2	Créez un canevas intégral et définissez sa propriété Fenêtre à la fenêtre modale que vous avez créée à l'étape 1.

3	Créez les éléments qui doivent apparaître dans la fenêtre.

4	Choisissez les événements qui afficheront et fermeront la fenêtre modale lors de l'exécution.


A propos de l'utilisation des canevas

Vous pouvez créer et supprimer des canevas dans le Navigateur d'objet, mais vous devez utiliser l'Editeur de présentation pour accomplir la plupart des tâches concernant vos canevas.

Edition de canevas Dans l'Editeur de présentation, vous éditez les canevas un à un. Par défaut, le canevas lui-même est un objet qui peut être sélectionné et mis en forme. Vous pouvez masquer l'objet canevas en basculant l'option de menu Vue [image] Afficher canevas. La plupart des propriétés de canevas peuvent être définies graphiquement dans l'Editeur de présentation et dans la Palette de propriétés.

Remarque : Vous ne pouvez pas effacer, couper, copier, exporter ou dupliquer les objets vue ou canevas dans l'Editeur de présentation.


Création d'un canevas

  Rubriques connexes

Pour créer un canevas dans le Navigateur d'objet :

1	Dans le Navigateur d'objet, cliquez sur le noeud Canevas, puis sur le bouton Créer [image] de la barre d'outils.

Form Builder crée un nouveau canevas et lui donne un nom par défaut (par exemple CANEVAS4).

2	Cliquez sur l'icône objet du canevas et choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Général, définissez la propriété Type de canevas.

Remarque : Le type de canevas par défaut est Intégral. Dans ce type de canevas, les propriétés qui apparaissent sous l'intitulé Vue empilée ne s'appliquent pas.

4	Définissez la propriété Fenêtre à la fenêtre dans laquelle vous voulez afficher le canevas.

Par défaut, les nouveaux canevas sont attribués à la première fenêtre figurant sous le noeud Fenêtres du Navigateur d'objet.

Remarque : Pour afficher le nouveau canevas dans l'Editeur de présentation, cliquez deux fois sur l'icône objet du canevas dans le Navigateur d'objet.


Définition d'un canevas principal

  Rubriques connexes

Pour définir le canevas principal d'une fenêtre, définissez la propriété Canevas principal de celle-ci au canevas de votre choix. Form Builder affiche une fenêtre avec son canevas principal lorsque la fenêtre est affichée par programme, et non en réponse à un événement de navigation.

Quand définir la propriété Canevas principal La définition de la propriété Canevas principal est facultative. La plupart des fenêtres sont affichées en réponse au passage à un élément d'un canevas spécifique. Dans ce cas, la définition de la propriété Canevas principal n'est pas obligatoire, puisqu'il n'y a jamais d'ambiguïté sur le canevas à afficher.

La première fois que vous affichez une fenêtre au cours d'une session en utilisant la procédure interne SHOW_WINDOW, Form Builder l'affiche avec son canevas principal. Si la propriété Canevas principal n'est pas indiquée, la fenêtre est affichée sans vue et apparaît vide.

Vous pouvez également définir la propriété Canevas principal pour le cas où une fenêtre est affichée à la suite du passage à un élément d'un canevas empilé. Si vous voulez que le canevas intégral de la fenêtre soit affiché derrière le canevas empilé, vous devez définir en conséquence la propriété Canevas principal.

Form Builder affiche toujours l'élément cible et le canevas pendant un événement de navigation. Même si vous avez défini la propriété Canevas principal, Form Builder affichera donc, si nécessaire, un canevas différent pour que l'élément cible soit visible.


Suppression d'un canevas

  Rubriques connexes

Pour supprimer un canevas :

1	Dans le Navigateur d'objet, cliquez sur l'icône objet du canevas que vous voulez supprimer.

2	Cliquez sur l'icône Supprimer dans la barre d'outils.

Remarque : Lorsque vous supprimez un canevas, Form Builder supprime également les éléments standard faisant partie du canevas. Cependant, les éléments d'interface attribués au canevas ne sont pas supprimés, mais deviennent des éléments canevas NULL (c'est-à-dire des éléments qui ne sont attribués à aucun canevas). Notez que les éléments canevas NULL ne sont pas affichés lors de l'exécution.


Utilisation des canevas empilés et des canevas onglet dans l'Editeur de présentation

Vous pouvez créer et éditer des canevas empilés et des canevas onglet directement dans l'Editeur de présentation.

Création Pour créer des canevas empilés ou des canevas onglet, vous pouvez utiliser les boutons Canevas empilés ou Canevas onglet de la barre d'outils de l'Editeur de présentation. Pour créer un canevas, onglet par exemple, commencez par afficher l'Editeur de présentation. Cliquez ensuite sur [image] dans la barre d'outils, puis cliquez et faites glisser une région rectangulaire dans laquelle vous voulez que le canevas onglet apparaisse sur le canevas intégral sous-jacent. Une fois que vous avez créé le canevas onglet, vous pouvez immédiatement le redimensionner ou le déplacer dans l'Editeur de présentation.

Edition Pour éditer des éléments d'un canevas empilé ou d'un canevas onglet, vous pouvez utiliser l'Editeur de présentation de deux façons : (1) directement ou (2) sur la vue empilée d'un canevas intégral. Pour éditer directement un canevas onglet ou un canevas empilé, appelez l'Editeur de présentation, sélectionnez un canevas dans la zone de liste déroulante Canevas qui se trouve en haut de la fenêtre, puis déplacez, redimensionnez ou manipulez les éléments du canevas. Pour éditer un canevas empilé ou un canevas onglet dans la vue empilée d'un canevas intégral, appelez l'Editeur de présentation, affichez le canevas intégral approprié, choisissez Afficher [image] Vues empilées, sélectionnez un canevas dans la boîte de dialogue Canevas empilés, puis déplacez, redimensionnez ou manipulez les éléments du canevas.

Synchronisation automatique Form Builder synchronise automatiquement les éléments de la vue empilée du canevas intégral et l'élément correspondant du canevas empilé réel. Par exemple, le déplacement, le redimensionnement ou le changement des attributs visuels d'un élément d'un canevas empilé, à partir de la vue empilée du canevas intégral, sont répercutés sur le canevas empilé lorsqu'il est appelé à partir d'un Editeur de présentation. De même, lorsque les éléments d'un canevas empilé sont modifiés à partir d'un Editeur de présentation, les modifications sont répercutées sur la vue empilée du canevas intégral.


Redimensionnement d'un canevas dans l'Editeur de présentation

Pour redimensionner un canevas dans l'Editeur de présentation :

1	Dans l'Editeur de présentation, assurez-vous que l'objet Canevas est affiché en choisissant Vue et en cochant l'option Afficher canevas (par défaut).

2	Faites défiler la fenêtre de l'Editeur de présentation jusqu'à ce que l'angle inférieur droit du canevas soit visible, puis cliquez sur le bord droit ou le bord inférieur du canevas pour le sélectionner.

Lorsque le canevas est sélectionné, une poignée de sélection noire est affichée à son angle inférieur droit.

3	Cliquez et faites glisser la poignée de sélection pour redimensionner le canevas.


Définition des attributs visuels d'un canevas dans l'Editeur de présentation

Pour définir les attributs visuels d'un canevas dans l'Editeur de présentation :

1	Dans l'Editeur de présentation, assurez-vous que le canevas est affiché dans la zone de liste déroulante Canevas (c'est-à-dire qu'il est le canevas en cours dans l'Editeur de présentation).

2	Choisissez des couleurs dans la palette de couleurs.


Ajustement de la vue dans l'Editeur de présentation

  Rubriques connexes

Affichage de la vue Pour afficher la vue du canevas en cours sous la forme d'un rectangle noir d'un point dans l'Editeur de présentation, activez l'option de menu Vue [image] Afficher la vue.

Redimensionnement de la vue Pour un canevas intégral ou à barre d'outils, le rectangle de vue représente la fenêtre à laquelle est attribué le canevas. Le redimensionnement de la vue dans l'Editeur de présentation modifie les propriétés de largeur et de hauteur de la fenêtre. Inversement, la modification des propriétés de largeur ou de hauteur de la fenêtre redimensionne le rectangle de vue dans l'Editeur de présentation. Pour un canevas empilé, la vue est indépendante de la fenêtre dans laquelle le canevas est affiché, et sa taille est contrôlée par les propriétés Largeur et Hauteur de lucarne.

Déplacement de la vue  Pour déplacer la vue, cliquez sur son contour et faites-la glisser à l'emplacement choisi. Le déplacement de la vue modifie les propriétés Position X/Y de la lucarne sur le canevas. Pour redimensionner la vue, cliquez pour la sélectionner, puis faites glisser l'une des poignées de sélection.


A propos des canevas intégraux

L'une des premières étapes du développement d'une application est la création de canevas intégraux qui seront affichés dans les fenêtres de votre ou de vos applications Forms. Bien que vous puissiez attribuer plusieurs canevas intégraux à la même fenêtre lors de la conception, les canevas intégraux ne sont affichés qu'un à un dans la fenêtre à l'exécution.

Création d'un canevas intégral

Pour créer un canevas intégral dans Form Builder, vous avez le choix entre trois possibilités :

•	Assistant Présentation Lorsque vous utilisez l'assistant Présentation pour disposer les éléments de bloc de données sur un canevas, vous pouvez placer ceux-ci sur un nouveau canevas intégral (que l'assistant Présentation crée pour vous, et auquel il donne un nom par défaut, comme CANEVAS3).

•	Editeur de présentation Dans l'Editeur de présentation, vous pouvez créer des éléments et des objets standard sur un canevas spécifique. (S'il n'y a pas de canevas dans une application Forms lorsque vous appelez l'Editeur de présentation, Form Builder crée automatiquement à votre intention un canevas intégral par défaut.)

•	Navigateur d'objet Pour créer un canevas intégral dans le Navigateur d'objet, commencez par créer le canevas, puis indiquez son type en définissant la propriété Type de canevas dans la Palette de propriétés.


Attribution de plusieurs canevas intégraux à une fenêtre

  Rubriques connexes

Si vous attribuez plusieurs canevas intégraux à la même fenêtre lors de la conception, vous désignez des canevas intégraux potentiels pour cette fenêtre. Lors de l'exécution, vous ne pouvez pas afficher à la fois plusieurs canevas intégraux dans une fenêtre. En d'autres termes, lorsque plusieurs canevas intégraux sont attribués à la même fenêtre, les événements runtime déterminent le canevas intégral en cours qui est affiché dans cette fenêtre.

Prenons par exemple une application Forms comportant une fenêtre et deux canevas intégraux (tous deux attribués à cette fenêtre). Lors du démarrage de l'application Forms, Form Builder doit déterminer le canevas qui s'affichera au départ dans la fenêtre et définit, par défaut, le point d'insertion au premier élément de navigation autorisée du premier bloc de l'application Forms. Dans le présent exemple, le canevas intégral qui contient le premier élément de navigation autorisée de l'application Forms (défini par la séquence de navigation) devient le canevas intégral en cours pour la fenêtre.

Prenons maintenant une fenêtre d'aide en ligne à laquelle sont attribués deux canevas. Chaque canevas intégral affiche le texte standard de l'aide, et aucun des deux ne contient d'élément de navigation autorisée. L'utilisateur peut appeler la fenêtre d'aide en appuyant sur un bouton qui exécute la procédure interne SHOW_WINDOW. Là aussi, Form Builder doit déterminer le canevas qui s'affichera au départ, lors de l'appel de la fenêtre. Etant donné qu'il n'y a pas d'événement de navigation, le canevas intégral, défini comme canevas principal de la fenêtre, est affiché dans la fenêtre. (Pour définir un canevas principal pour une fenêtre, définissez la propriété facultative Canevas principal.)


A propos des canevas empilés

  Rubriques connexes

Les canevas empilés s'affichent dans une fenêtre avec le ou les canevas intégraux de la fenêtre et un nombre quelconque d'autres canevas empilés. Vous pouvez définir les attributs de relief, de couleur et de motif d'un canevas empilé pour le différencier du canevas intégral sous-jacent. Inversement, vous pouvez demander que le canevas empilé se présente comme le canevas intégral, puis afficher et masquer par programme le canevas empilé pour que l'utilisateur n'ait pas connaissance de l'affichage d'un canevas séparé.

Cette technique peut être utilisée pour que les éléments ou le texte standard semblent changer dynamiquement. Lorsque vous passez d'un élément de canevas intégral à un élément de canevas empilé, vous ne verrez que ce dernier car le canevas intégral disparaît.

La création d'un canevas empilé est semblable à celle d'un canevas intégral. Pour définir un canevas empilé, vous devez préciser certaines propriétés de canevas qui ne s'appliquent qu'aux canevas empilés et créer des éléments, un texte standard et des graphiques comme vous le feriez pour un canevas intégral.

Remarque : Pour convertir un canevas intégral en canevas empilé, il suffit de remplacer la propriété Type de canevas Intégral par Empilé.

Lors de l'exécution, les canevas empilés s'affichent automatiquement en réponse à la navigation, comme les canevas intégraux. Pour afficher et masquer par programme des canevas empilés, utilisez les procédures internes SHOW_VIEW, HIDE_VIEW et SET_VIEW_PROPERTY.

Utilisation des canevas empilés

Vous pouvez utiliser les canevas empilés pour :

•	Afficher des éléments ou des graphiques standard qui ne doivent être affichés que dans certains cas. (Définir un canevas empilé affichant des images ou un texte d'aide qui restent masqués jusqu'à ce qu'ils soient appelés explicitement par l'utilisateur.)

•	Afficher des en-têtes qui présentent des informations constantes (noms de société, dates ou informations d'état, par exemple). (Définir un canevas empilé qui apparaît toujours devant le canevas intégral en cours. Lorsque le canevas intégral en cours est remplacé par un autre, le canevas empilé reste visible dans la fenêtre. Utilisez cette technique pour éviter de dupliquer les éléments d'interface sur plusieurs canevas intégraux dans la même fenêtre.)

•	Créer un bloc comportant des éléments qui défilent dynamiquement dans la fenêtre dans laquelle ils sont affichés, comme dans une feuille de calcul. (Si un bloc contient davantage d'éléments que la fenêtre ne peut en contenir, Form Builder fait automatiquement défiler la fenêtre lorsque l'utilisateur appuie sur la touche de tabulation pour passer à des éléments situés en dehors du cadre de la fenêtre—ce qui peut entraîner le défilement de champs importants (comme des valeurs de clé primaire) en dehors de la fenêtre, et donc hors de la vue de l'utilisateur. Par exemple, pour un bloc qui affiche des informations sur des commandes, l'ID de commande doit toujours être visible, quelle que soit l'opération de navigation effectuée par l'utilisateur. Si vous placez l'élément ID commande sur le canevas intégral sous-jacent et les éléments qui peuvent disparaître de la vue de l'utilisateur sur un canevas empilé, le canevas empilé, et non la fenêtre elle-même, devient la région de défilement. Notez que les canevas empilés ont leurs propres barres de défilement, qui sont indépendantes des barres de défilement de la fenêtre.)


Création d'un canevas empilé

  Rubriques connexes

Pour créer un canevas empilé :

1	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez deux fois sur l'icône objet du canevas intégral sur lequel vous voulez créer un canevas empilé.

2	Dans l'Editeur de présentation, cliquez sur le bouton Canevas empilé de la barre d'outils.

3	Cliquez sur la région dans laquelle vous voulez placer le canevas empilé et faites-la glisser.

Form Builder crée un canevas empilé et lui donne un nom par défaut (par exemple, CANEVAS6).

4	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez sur l'icône objet du canevas empilé, puis choisissez Outils [image] Palette de propriétés.

5	Dans la Palette de propriétés, sous les noeuds Physique, Lucarne et Divers, définissez les propriétés de la manière suivante :

Visible  Oui (Le canevas empilé est visible lorsque la fenêtre est appelée) ou Non (Le canevas empilé reste masqué jusqu'à ce qu'il s'affiche en réponse à un événement de navigation ou à un événement programmé.)

Largeur/Hauteur  Dimensions du canevas. Les canevas empilés sont généralement plus petits que le ou les canevas intégraux qui se trouvent dans la même fenêtre.

Relief  Type de bordure du canevas. Utilisez une bordure pour séparer visuellement un canevas empilé des autres canevas se trouvant dans la même fenêtre.

Largeur/Hauteur de lucarne  Dimensions de la vue du canevas empilé. Si la vue est plus petite que le canevas, l'utilisateur peut faire défiler le canevas lors de l'exécution.

Position X/Y de la lucarne sur le canevas  Coordonnées d'affichage X et Y de l'angle supérieur gauche de la vue (par rapport à l'angle supérieur gauche du canevas intégral affiché dans la fenêtre). 0,0 (par défaut) affiche le canevas empilé à l'angle supérieur gauche du canevas intégral.

Barre de défilement H/V de vue  Le canevas empilé aura-t-il une barre de défilement (horizontale, verticale, horizontale et/ou verticale, ou aucune) ? L'utilisateur peut faire défiler le canevas empilé indépendamment du canevas intégral sous-jacent.

6	Définissez la position du canevas empilé dans la pile.

Si le canevas empilé n'est pas affiché par programme ou en réponse à un élément de navigation, assurez-vous que sa position dans la pile le place devant le canevas intégral attribué à la même fenêtre. Sinon, il s'affichera derrière le canevas intégral, et ne sera pas visible lors de l'exécution. N'oubliez pas que l'ordre de la pile des canevas dans une fenêtre est défini par la séquence dans laquelle les canevas sont affichés sous le noeud Canevas, dans le Navigateur d'objet.


Edition d'un canevas empilé dans l'Editeur de présentation

Pour éditer un canevas empilé dans l'Editeur de présentation :

1	Dans le Navigateur d'objet, ouvrez le noeud Canevas et cliquez sur l'icône objet du canevas empilé voulu.

2	Cliquez deux fois sur l'icône objet du canevas empilé.

Vous pouvez alors créer des éléments et des graphiques standard en procédant comme pour un canevas intégral. Vous pouvez également modifier graphiquement la taille du canevas ou de la vue elle-même.


Affichage des vues empilées d'un canevas intégral dans l'Editeur de présentation

  Rubriques connexes

Pour afficher des vues empilées attribuées à la fenêtre d'un canevas intégral :

1	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez deux fois sur l'icône objet du canevas intégral.

2	Dans l'Editeur de présentation, choisissez Vue [image] Vues empilées.

Form Builder affiche la boîte de dialogue Canevas empilés, qui contient tous les canevas empilés attribués à la même fenêtre que le canevas intégral affiché dans l'Editeur de présentation.

3	Sélectionnez le ou les canevas empilés que vous voulez afficher dans l'Editeur de présentation. (Annulez leur sélection si vous ne voulez pas qu'ils soient affichés.)

Pour sélectionner un canevas empilé, cliquez sur celui-ci dans la boîte de dialogue Canevas empilés. Pour afficher plusieurs canevas empilés sur le même canevas intégral, appuyez sur Ctrl et cliquez sur ces canevas empilés.

Pour annuler la sélection d'un canevas empilé déjà affiché dans le canevas intégral, appuyez sur Ctrl et cliquez sur le canevas empilé sélectionné dans la boîte de dialogue Canevas empilés.

Lorsque vous utilisez cette procédure pour afficher un canevas empilé, vous voyez exactement ce que l'utilisateur verra à l'exécution - c'est-à-dire uniquement la partie du canevas empilé qui se trouve dans sa vue, tel qu'il est défini par les propriétés Largeur et Hauteur de lucarne.

Une fois que le canevas empilé est affiché, vous pouvez modifier ses propriétés dans l'Editeur de présentation en le manipulant graphiquement de la manière suivante :

•	Déplacez le canevas empilé pour modifier ses propriétés Position X/Y de la lucarne.

•	Redimensionnez le canevas empilé pour modifier ses propriétés Largeur et Hauteur de lucarne. Ce type de redimensionnement ne modifie pas la taille du canevas, mais uniquement celle de la vue. Pour redimensionner le canevas, définissez les propriétés de canevas Largeur et Hauteur dans la Palette de propriétés.  Seuls les éléments et le texte standard qui figurent en totalité sur le canevas seront affichés à l'exécution, même si la vue est plus grande que le canevas.

•	Pour un canevas empilé comportant des barres de défilement, faites défiler le canevas pour modifier les propriétés initiales d'exécution pour les propriétés Position X/Y de la lucarne sur le canevas.


A propos des canevas onglet

  Rubriques connexes

Un canevas onglet, composé d'une ou plusieurs pages à onglet, permet de regrouper et d'afficher un grand nombre d'informations connexes sur un même objet canevas dynamique. Comme les canevas empilés, les canevas onglet sont affichés sur un canevas intégral, qu'ils masquent partiellement. Chaque page à onglet affiche un sous-ensemble des informations affichées dans le canevas onglet intégral.


A propos des pages à onglet

  Rubriques connexes

Un canevas onglet doit avoir au moins une page à onglet, mais peut en comporter plusieurs. Les pages à onglet sont comparables aux dossiers d'un classeur. Chaque page à onglet (dossier) comporte un onglet avec un libellé sur lequel les développeurs et les utilisateurs cliquent pour accéder à la page. Lors de la conception ou de l'exécution, vous cliquez sur l'onglet comportant un libellé pour afficher la page devant le canevas onglet, masquant ainsi la ou les autres pages.

Toutes les pages à onglet occupent la même place sur le canevas onglet, qui est pratiquement égale à la taille du canevas lui-même. Cet empilage de sections de canevas liées les unes aux autres vous permet d'afficher plusieurs informations sur un même canevas.

Les pages à onglet sont des sous-objets d'un canevas onglet. Comme le canevas auquel elle est attachée, chaque page à onglet a ses propres propriétés. De même, chaque élément que vous placez sur un canevas onglet a une propriété de canevas et des propriétés de page à onglet. L'ordre des pages à onglet dans le Navigateur d'objet détermine l'ordre gauche-droite (ou haut-bas) des onglets lors de l'exécution.


Création d'un canevas onglet

  Rubriques connexes

Pour créer un canevas onglet :

1	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez deux fois sur l'icône objet du canevas intégral sur lequel vous voulez créer un canevas onglet.

2	Dans l'Editeur de présentation, cliquez sur [image] dans la barre d'outils.

3	Cliquez et faites glisser jusqu'à la région dans laquelle vous voulez placer le canevas onglet.

Form Builder crée un canevas onglet (avec deux pages à onglet) et lui donne un nom par défaut (CANEVAS6, par exemple).

4	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez sur l'icône objet du canevas onglet, puis choisissez Outils [image] Palette de propriétés pour afficher la Palette de propriétés.

5	Sous le noeud Lucarne :

• Définissez les propriétés Position X/Y de lucarne sur le canevas (Entrez les coordonnées d'affichage X et Y de l'angle supérieur gauche de la vue par rapport à l'angle supérieur gauche du canevas intégral affiché dans la fenêtre. 0,0 (par défaut) affiche le canevas onglet à l'angle supérieur gauche du canevas intégral.)

• Définissez les propriétés Largeur/Hauteur de la lucarne. (Entrez les dimensions de la vue du canevas onglet. Si la vue est plus petite que le canevas, l'utilisateur peut faire défiler le canevas lors de l'exécution.)

6	Sous le noeud Physique :

• Définissez la propriété Visible à Oui (le canevas onglet est visible lorsque la fenêtre est appelée) ou Non (le canevas onglet reste masqué jusqu'à ce qu'il s'affiche en réponse à un événement de navigation ou à un événement programmé).

• Définissez les propriétés Largeur/Hauteur. (Entrez les dimensions du canevas. En règle générale, les canevas onglet sont plus petits que le ou les canevas intégraux figurant dans la même fenêtre.)

7	Définissez la position du canevas onglet dans la pile.

Si le canevas onglet n'est pas affiché par programme ou en réponse à un événement de navigation, assurez-vous que sa position dans la pile le place devant le canevas intégral attribué à cette fenêtre. Dans le cas contraire, il ne s'affichera pas derrière le canevas intégral, et ne sera pas visible lors de l'exécution. N'oubliez pas que l'ordre des canevas d'une fenêtre dans la pile est défini par la séquence dans laquelle ils figurent sous le noeud Canevas, dans le Navigateur d'objet.


Création d'une page à onglet

  Rubriques connexes

Pour créer une page à onglet :

1	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez sur le noeud Pages à onglet du canevas onglet.

2	Cliquez sur le bouton Créer [image] de la barre d'outils autant de fois que vous voulez créer de pages à onglet.

Form Builder crée la ou les pages à onglet et donne à chacune d'elles un nom par défaut (PAGE3, par exemple).

3	Choisissez Outils [image] Palette de propriétés.

4	Dans la Palette de propriétés, sous le noeud Fonctionnel, définissez la propriété Libellé au texte qui doit apparaître dans la zone des onglets de la page à onglet lors de l'exécution. (L'utilisateur doit cliquer sur la zone des onglets pour naviguer entre les pages d'un canevas onglet.)


Placement d'un élément sur une page à onglet

Pour placer un élément sur une page à onglet :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet de l'élément.

2	Dans la Palette de propriétés, sous le noeud Physique, définissez les propriétés Page à onglet et Canevas de l'élément aux valeurs correctes pour obtenir que l'élément apparaisse sur le canevas onglet et la page à onglet voulus.

Remarque : Lorsque vous ajoutez un élément à une page à onglet, assurez-vous que l'élément tout entier (et les éventuels graphiques standard associés) se trouve intégralement dans la région de la page à onglet.


Transfert d'un élément sur une autre page à onglet

Pour transférer un élément sur une autre page à onglet :

1	Dans le Navigateur d'objet, cliquez sur l'icône objet de l'élément et choisissez Outils [image] Editeur de présentation.

2	Dans l'Editeur de présentation, cliquez sur le ou les éléments, puis sur les boutons Couper ou Copier de la barre d'outils.

Form Builder coupe ou copie l'élément dans le presse-papiers.

3	Cliquez sur l'onglet de la page à onglet sur laquelle vous voulez coller le ou les éléments, puis sur la page à onglet elle-même lorsque Form Builder l'affiche.

4	Cliquez sur l'outil Coller de la barre d'outils.

Form Builder colle l'élément sur la page à onglet sélectionnée, à la même position X,Y que celle qu'occupait l'élément sur sa page à onglet précédente.

Remarque : Vous pouvez également transférer un élément sur une autre page à onglet en changeant la propriété Page à onglet de l'élément dans la Palette de propriétés.


Réorganisation des pages à onglet

Pour réagencer des pages à onglet :

1	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez sur le noeud Pages à onglet du canevas onglet.

2	Cliquez sur l'icône objet d'une page à onglet et faites-la glisser pour la repositionner dans la hiérarchie et modifier sa place dans la pile.

Remarque : L'ordre des pages à onglet dans le Navigateur d'objet détermine l'ordre gauche-droite (ou haut-bas) des onglets lors de l'exécution. A l'exécution, l'onglet occupant la place la plus élevée dans le Navigateur d'objet sera affiché soit en haut, soit à l'extrémité gauche de la pile d'onglets, en fonction de l'orientation des onglets.


Suppression d'une page à onglet

Pour supprimer une page à onglet :

1	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez sur le noeud Pages à onglet du canevas onglet.

2	Cliquez sur l'icône objet de la page à onglet, puis sur le bouton Supprimer de la barre d'outils.

Form Builder affiche un message de confirmation.

3	Cliquez sur Oui pour supprimer la page à onglet.

Form Builder supprime la page à onglet.

Remarque : La suppression de la dernière page d'un canevas onglet ne supprime pas le canevas lui-même.


Affichage d'un canevas onglet

Pour afficher un canevas onglet dans l'Editeur de présentation :

1	Dans le Navigateur d'objet, cliquez deux fois sur l'icône objet du canevas onglet.

ou

Cliquez deux fois sur l'icône objet d'un canevas intégral attribué à la même fenêtre que le canevas onglet, puis choisissez Vue [image] Vues empilées et sélectionnez le ou les canevas onglet que vous voulez afficher dans le canevas intégral.

ou

Cliquez deux fois sur l'icône objet d'un canevas intégral attribué à la même fenêtre que le canevas onglet, puis sélectionnez le canevas onglet dans la zone de liste déroulante Canevas, en haut de l'Editeur de présentation.


Passage d'une page à onglet à l'autre lors de la conception

Passer d'une page à onglet à une autre lors de la conception :

1	Cliquez sur l'onglet comportant un libellé. Si l'onglet que vous désirez afficher n'est pas visible, cliquez sur un onglet visible pour le mettre en surbrillance puis utilisez les flèches droite et gauche pour passer d'un page à l'autre.


Redimensionnement d'un canevas onglet

Pour redimensionner un canevas onglet dans l'Editeur de présentation :

1	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez deux fois sur l'icône objet du canevas onglet.

L'Editeur de présentation s'affiche.

2	Choisissez Vue [image] Afficher la vue.

3	Sélectionnez la vue du canevas onglet.

4	Sélectionnez un point, puis cliquez sur le canevas onglet et déplacez-le jusqu'à ce que sa taille vous convienne.

Remarque : N'oubliez pas que lorsque vous redimensionnez un canevas onglet, Form Builder redimensionne automatiquement chacune de ses pages à onglet. Les objets se trouvant précédemment à l'intérieur de la bordure d'une page à onglet peuvent donc se trouver à l'extérieur de cette bordure si vous voulez redimensionner le canevas onglet.


Déplacement d'un canevas onglet

Pour déplacer un canevas onglet sur le canevas intégral :

1	Dans le Navigateur d'objet, sous le noeud Canevas, cliquez deux fois sur l'icône objet du canevas intégral.

L'Editeur de présentation s'affiche.

2	Choisissez Vue [image] Afficher la vue.

3	Sélectionnez la vue du canevas onglet.

4	Dans l'Editeur de présentation, cliquez sur la vue du canevas onglet et faites-la glisser à l'endroit voulu sur le canevas intégral.

Remarque : En déplaçant le canevas onglet, vous modifiez les positions X et Y de la lucarne sur sa vue.


Affichage des canevas

Affichage d'un canevas empilé

Affichage d'un canevas onglet


A propos des canevas à barre d'outils

Vous pouvez créer des canevas à barre d'outils, horizontale ou verticale, pour chacune des fenêtres d'une application Forms. Form Builder affiche les canevas à barre d'outils horizontale en haut d'une fenêtre, et les canevas à barre d'outils verticale sur le bord gauche d'une fenêtre.(Form Builder a plusieurs barres d'outils : par exemple, la fenêtre du Navigateur d'objet a des barres d'outils horizontale et verticale, et la Palette de propriétés uniquement une barre d'outils horizontale.)

Lorsque vous créez un canevas à barre d'outils, vous l'attribuez à une fenêtre en définissant la propriété Fenêtre du canevas, puis l'enregistrez avec la fenêtre en définissant en conséquence les propriétés Canevas à barre d'outils verticale ou horizontale de la fenêtre.

Vous pouvez modifier l'aspect d'une barre d'outils lors de l'exécution en affichant et en masquant dynamiquement certains éléments de la barre d'outils. Vous pouvez également créer plusieurs barres d'outils pour la même fenêtre, et les afficher en réponse à des événements de navigation et des événements programmés, pratiquement comme des canevas empilés attribués à la même fenêtre.

Canevas à barre d'outils de fenêtre MDI Sous Microsoft Windows, vous pouvez créer des barres d'outils pour la fenêtre d'application MDI et pour toutes les fenêtres document de l'application Forms. La fenêtre d'application MDI est créée et gérée par le gestionnaire de fenêtres et n'apparaît pas dans la liste des objets fenêtre d'un module Application Forms.

Remarque : Dans une application comportant plusieurs applications Forms, chaque application Forms peut potentiellement avoir sa propre barre d'outils MDI. Lorsque l'utilisateur se déplace d'une application Forms à l'autre, la fenêtre MDI est mise à jour pour afficher la barre d'outils MDI définie dans l'application Forms en cours. Si une barre d'outils MDI n'est pas définie dans l'application Forms en cours, la fenêtre MDI est affichée sans barre d'outils chaque fois que le point d'insertion se trouve dans cette application Forms.


Création d'un canevas à barre d'outils

  Rubriques connexes

Pour créer un canevas à barre d'outils :

1	Dans le Navigateur d'objet, cliquez sur le noeud Canevas, puis sur le bouton Créer [image] de la barre d'outils.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous les noeuds Général et Physique, définissez les propriétés suivantes :

Type de canevas - Barre d'outils horizontale ou barre d'outils verticale.

Fenêtre—Nom de la fenêtre dans laquelle vous voulez afficher le canevas à barre d'outils.

Largeur/Hauteur—Dimensions du canevas à barre d'outils. Un canevas à barre d'outils est généralement aussi large (ou haut) que la fenêtre à laquelle il est attribué et suffisamment profond (ou large) pour afficher une ligne (ou une colonne) d'éléments. (Notez que Form Builder accepte les dimensions que vous indiquez, même si la barre d'outils résultante masque totalement le canevas intégral de la fenêtre.)

4	Dans le Navigateur d'objet, sous le noeud Fenêtre, cliquez sur la fenêtre à laquelle vous avez attribué le canevas à barre d'outils, à l'étape 3.

5	Cliquez deux fois sur l'icône objet de la fenêtre pour afficher la Palette de propriétés.

6	Dans la Palette de propriétés, sous le noeud Fonctionnel, définissez les propriétés Canevas à barre d'outils horizontale et/ou verticale au nom de la barre d'outils que vous avez créée à l'étape 1.

7	Ajoutez des éléments et des graphiques standard au canevas à barre d'outils comme vous le feriez pour un autre canevas.

Remarque : Dans les canevas à barre d'outils, l'utilisation des éléments navigables, via la souris ou via un autre moyen, n'est pas prise en charge.


Création d'un canevas à barre d'outils pour la fenêtre MDI

  Rubriques connexes

Pour créer un canevas à barre d'outils MDI :

1	Dans le Navigateur d'objet, cliquez sur le noeud Canevas, puis sur le bouton Créer [image] de la barre d'outils.

2	Choisissez Outils [image] Palette de propriétés.

3	Dans la Palette de propriétés, sous le noeud Général, définissez la propriété Type de canevas à Barre d'outils horizontale ou verticale.

4	Dans le Navigateur d'objet, sous le noeud Application Forms, cliquez deux fois sur l'icône objet du module Application Forms en cours pour afficher la Palette de propriétés.

5	Dans la Palette de propriétés, sous le noeud Physique, définissez les propriétés Canevas à barre d'outils horizontale et/ou verticale d'application Forms au nom de la barre d'outils que vous avez créée à l'étape 1.

Remarque : Lorsque vous créez une barre d'outils de canevas qui doit s'afficher dans la fenêtre MDI, Form Builder ne tient pas compte de l'attribution de fenêtre de ce canevas (indiquée par la définition de sa propriété Fenêtre) lors de l'exécution, et copie automatiquement à la place le canevas à barre d'outils dans la fenêtre MDI.

6	Ajoutez les éléments et le texte standard au nouveau canevas à barre d'outils, comme vous le feriez à un canevas empilé ou à un canevas intégral.

Remarque : Dans un canevas à barre d'outils MDI, l'utilisation des éléments navigables, via la souris ou via un autre moyen, n'est pas prise en charge.


Création de plusieurs canevas à barre d'outils pour la même fenêtre

  Rubriques connexes

Vous pouvez créer plusieurs canevas à barre d'outils du même type (horizontale ou verticale) et les attribuer à la même fenêtre d'application Forms en définissant la propriété Fenêtre.

Lorsque plusieurs barres d'outils sont attribuées à la même fenêtre d'application Forms, Form Builder tente d'afficher le canevas à barre d'outils principal dans la fenêtre lors de l'exécution. Vous indiquez que le canevas à barre d'outils principal d'une fenêtre en définissant la propriété Canevas à barre d'outils horizontale ou verticale de la fenêtre.

Cependant, Form Builder peut afficher un canevas à barre d'outils autre que le canevas à barre d'outils principal si l'utilisateur passe à un élément d'une autre barre d'outils ou que l'application affiche ou génère un canevas à barre d'outils différent en exécutant SHOW_VIEW ou SET_VIEW_PROPERTY.

La définition de barres d'outils MDI peut également entraîner la copie du canevas à barre d'outils dans la même fenêtre d'application Forms. Par exemple, vous pouvez créer une application Forms comportant deux canevas à barre d'outils de même type (horizontale ou verticale), attribués à la même fenêtre d'application Forms, dont l'un est conçu comme barre d'outils MDI (par définition des propriétés Canevas à barre d'outils verticale/horizontale d'application Forms du module Application Forms). Sous Microsoft Windows, la barre d'outils MDI est toujours copiée sur la fenêtre MDI, et n'est pas affichée dans la fenêtre à laquelle elle est attribuée (comme l'indique la définition de sa propriété Fenêtre). Cependant, sur les plates-formes autres que Windows qui prennent en charge les barres d'outils, comme Motif, la barre d'outils MDI est copiée dans la fenêtre à laquelle elle est attribuée et devient l'un des canevas à barre d'outils potentiels de la fenêtre. Dans ce cas, Form Builder tente d'afficher la fenêtre avec la barre d'outils que vous avez déclarée barre d'outils principale, mais peut afficher une barre d'outils différente en réponse à des événements de navigation ou à des événements programmés.


A propos de l'ordre d'empilage des canevas

Lorsque vous travaillez sur des canevas, vous devez définir la position de chacun d'entre eux dans la pile, par rapport aux autres canevas attribués à la même fenêtre. Cet ordre détermine les canevas qui sont affichés devant les autres canevas (ou "au-dessus") dans la même fenêtre. L'ordre des canevas peut changer lors de l'exécution, en réponse à des événements de navigation ou à des événements programmés.

L'ordre d'empilage des canevas est important, surtout lorsque vous avez plusieurs canevas empilés et canevas intégraux attribués à la même fenêtre. Vous devez toujours placer un canevas empilé devant le ou les canevas intégraux attribués à la même fenêtre ; sinon, le ou les canevas intégraux risquent de masquer complètement le ou les canevas empilés lors de l'exécution.

Ordre initial L'ordre d'empilage initial des canevas est déterminé par l'ordre dans lequel ils figurent sous le noeud Canevas, dans le Navigateur d'objet. Le premier canevas figurant sous le noeud Canevas est affiché derrière tous les autres canevas attribués à la même fenêtre. Le dernier canevas de la liste est affiché devant tous les autres canevas.

Modification de l'ordre d'empilage Pour modifier l'ordre des canevas, faites-les glisser dans le Navigateur d'objet pour les placer dans la séquence de votre choix. Avant d'utiliser cette procédure, assurez-vous que le Navigateur d'objet est en Organisation hiérarchique (par défaut).


A propos des canevas intégraux dans l'ordre d'empilage

  Rubriques connexes

Lorsque vous attribuez à la même fenêtre plusieurs canevas intégraux et au moins un canevas empilé à la même fenêtre, notez la façon dont Form Builder gère les canevas intégraux dans l'ordre d'empilage. Etant donné que Form Builder ne peut afficher dans une fenêtre qu'un canevas intégral à la fois, il considère tous les canevas intégraux attribués à la même fenêtre comme si chacun avait la même position dans la pile, par rapport aux canevas empilés attribués à cette fenêtre.

Prenons par exemple une fenêtre comportant quatre canevas, soit CNT_A et CNT_C, des canevas intégraux, STK_B, un canevas empilé et TAB_D, un canevas onglet.

Lors de l'exécution, Form Builder n'affiche dans la fenêtre qu'un canevas intégral à la fois. Si, lors du démarrage de l'application Forms, l'application passe à un élément de CNT_A, celui-ci devient le canevas intégral en cours affiché dans la fenêtre. Si l'utilisateur passe alors à un élément de CNT_C, celui-ci remplace CNT_A, mais à la même position dans la pile, et non à la position qui lui avait été attribuée lors de la conception dans le Navigateur d'objet

Cette fonction permet de remplacer le canevas intégral en cours sans masquer les canevas empilés affichés dans la même fenêtre. Lorsque CNT_C remplace CNT_A, les canevas empilés et onglet, placés au-dessus de CNT_A lors de la conception, restent visibles.

Lorsque vous utilisez cette technique, assurez-vous que les canevas empilés et les canevas onglet sont placés devant le premier canevas intégral (au-dessus de celui-ci) qui sera affiché dans la fenêtre.


Modification de l'ordre d'empilage des canevas lors de l'exécution

A l'exécution, l'ordre d'empilage que vous avez indiqué lors de la conception change lorsque les canevas sont affichés en réponse à des événements de navigation ou à des événements programmés.

Lorsqu'un utilisateur ou l'application passe à un élément d'un canevas qui est masqué par un autre, Form Builder affiche automatiquement le canevas cible à l'avant de la fenêtre, ce qui modifie l'ordre d'empilage en cours. (Cela étant, si dans l'application Forms que vous développez, les canevas empilés ou les canevas onglet sont toujours appelés en réponse à des événements de navigation, l'ordre d'empilage des canevas est sans importance lors de la conception.)

De même, si vous exécutez les procédures internes SHOW_VIEW ou SET_VIEW_PROPERTY pour afficher un canevas par programme, Form Builder affiche le canevas indiqué devant tous les autres canevas affichés dans cette même fenêtre.


Affichage et fermeture d'une fenêtre en réponse à un événement de navigation

  Rubriques connexes

Affichage d'une fenêtre en réponse à un événement de navigation Lors de l'exécution, Form Builder veille toujours à ce que l'élément dans lequel se trouve le point d'insertion soit visible par l'utilisateur. Pour que l'élément cible soit visible lorsqu'un événement de navigation se produit, Form Builder appelle ou affiche les fenêtres qui sont masquées ou se trouvent derrière d'autres fenêtres.

Lorsqu'un événement de navigation se produit, Form Builder commence par déterminer le canevas dans lequel se trouve l'élément cible, puis affiche la fenêtre à laquelle ce canevas est attribué. Par exemple, lors du démarrage de l'application Forms, Form Builder identifie l'élément qui est le premier élément de navigation autorisée du premier bloc de navigation autorisée de l'application Forms, puis affiche le canevas et la fenêtre à laquelle cet élément est attribué.

Vous pouvez tirer parti de ce comportement en utilisant les événements de navigation pour appeler des fenêtres sans avoir à écrire des lignes de code pour les afficher explicitement.

Parmi les événements de navigation figurent notamment Elément suivant, Elément précédent, Bloc suivant et Bloc précédent. L'utilisateur peut émettre ces commandes en appuyant sur des touches ou en sélectionnant les commandes correspondantes du Menu par défaut. Vous pouvez également déclencher la navigation par programme en appelant les procédures internes appropriées, dont GO_ITEM et GO_BLOCK.

Fermeture d'une fenêtre en réponse à un événement de navigation Lorsqu'un utilisateur ou l'application quitte une fenêtre sans mode, la propriété Masquer sur sortie de la fenêtre détermine si la fenêtre reste affichée ou est fermée automatiquement.

Si la propriété Masquer sur sortie est définie à Oui, Form Builder ferme automatiquement la fenêtre lorsque l'utilisateur ou l'application passe à un élément d'une autre fenêtre. Si la propriété Masquer sur sortie est définie à Non (par défaut), Form Builder ne ferme pas la fenêtre lorsque l'utilisateur ou l'application passe à un élément d'une autre fenêtre.

Notez que la propriété Masquer sur sortie n'est pas prise en compte pour les fenêtres modales (c'est-à-dire les fenêtres dont la propriété Modale est définie à Oui).


Affichage et fermeture d'une fenêtre par programme

 Exemples   [image]  Rubriques connexes

Affichage d'une fenêtre L'affichage d'une fenêtre ne contenant pas d'éléments de navigation autorisée se fait par programme. Il faut également définir la propriété Canevas principal de manière à indiquer le canevas intégral que vous voulez afficher dans la fenêtre.

Pour afficher une fenêtre à l'exécution, utilisez les procédures internes SHOW_WINDOW ou SET_WINDOW_PROPERTY. (Si vous utilisez SHOW_WINDOW, vous avez la possibilité d'indiquer des coordonnées d'affichage X, Y. En l'absence d'indication, Form Builder utilise les coordonnées d'affichage par défaut de la fenêtre.)

Lorsque vous affichez une fenêtre par programme, Form Builder affiche dans la fenêtre les canevas suivants :

• le canevas intégral en cours de la fenêtre

• les canevas empilés, attribués à la fenêtre, dont la propriété Visible est définie à Oui

Remarque : Si vous affichez par programme une fenêtre qui est déjà affichée, mais qui se trouve derrière d'autres fenêtres, Form Builder fait passer la fenêtre devant les autres.

Fermeture d'une fenêtre Pour fermer une fenêtre, vous pouvez utiliser les procédures internes HIDE_WINDOW ou SET_WINDOW_PROPERTY.

Elément en cours Lorsque vous affichez et masquez des fenêtres par programme, n'oubliez pas que Form Builder fait toujours en sorte que l'élément dans lequel se trouve le point d'insertion soit visible par l'utilisateur. Si vous tentez de fermer par programme la fenêtre dans l'élément en cours, Form Builder ne tient pas compte de cet appel. Si vous affichez une fenêtre qui masque l'élément en cours, Form Builder exécute l'appel, mais affiche immédiatement les fenêtres ou les canevas nécessaires pour que l'élément en cours reste visible.


Affichage et fermeture d'une fenêtre par programme - Exemples

/*

** Exemple 1 : Les deux appels de procédure ci-après affichent
** une fenêtre MA_FEN, avec des résultats équivalents :

   SHOW_WINDOW('ma_fen');
   SET_WINDOW_PROPERTY('ma_fen', visible, property_true);

** Exemple 2 : La procédure ci-dessous appelle la même fenêtre
** aux coordonnées d'écran 5 et 10:

   SHOW_WINDOW('ma_fen', 5, 10);

** Exemple 3 : La procédure interne SET_WINDOW_PROPERTY ne
** définit qu'une propriété de fenêtre à la fois. Vous devez
** l'appeler deux fois pour obtenir le même résultat que dans l'exemple précédent :

   SET_WINDOW_PROPERTY('ma_fen', visible, property_true);
   SET_WINDOW_PROPERTY('ma_fen', window_position, 5, 10);

** Exemple 4 : Les deux appels de procédure ci-après ferment une
** fenêtre appelée MA_FEN, avec des résultats équivalents :

   HIDE_WINDOW('ma_fen');
   SET_WINDOW_PROPERTY('ma_fen', visible, property_false);

*/


Déplacement et redimensionnement d'une fenêtre par programme

 Exemples   [image]  Rubriques connexes

Déplacement d'une fenêtre Pour déplacer une fenêtre, utilisez les procédures internes MOVE_WINDOW ou SET_WINDOW_PROPERTY.

Redimensionnement d'une fenêtre Pour redimensionner une fenêtre, utilisez les procédures internes RESIZE_WINDOW ou SET_WINDOW_PROPERTY.

Réduction/Agrandissement d'une fenêtre Pour réduire (icônifier) ou agrandir (affichage plein écran) une fenêtre par programme, utilisez la procédure interne SET_WINDOW_PROPERTY pour définir la propriété Etat de la fenêtre à Réduire ou Agrandir.

Manipulation de la fenêtre d'application MDI Sous Microsoft Windows, vous pouvez manipuler par programme la fenêtre d'application MDI. Pour cela, faites référence au nom de la fenêtre en utilisant FORMS_MDI_WINDOW. Vous pouvez définir par programme certaines propriétés de fenêtre MDI. Pour plus de détails, reportez-vous à l'aide en ligne de la procédure interne SET_WINDOW_PROPERTY.

Manipulation de fenêtres lors du démarrage d'une application Pour définir la taille, la position et l'état d'affichage d'une fenêtre lors du démarrage d'une application (c'est-à-dire avant que l'utilisateur ne voie l'application Forms), appelez les procédures internes appropriées à partir d'un déclencheur When-New-Form-Instance. Si vous développez une application destinée à s'exécuter sur différents systèmes d'exploitation et différentes unités d'affichage, vous pouvez utiliser la procédure interne GET_APPLICATION_PROPERTY pour examiner les propriétés décrites ci-après, puis calculer la dimension de votre fenêtre en conséquence :

• DISPLAY_HEIGHT

• DISPLAY_WIDTH

• OPERATING_SYSTEM

• USER_INTERFACE

Remarque : Les sous-programmes intégrés qui modifient la taille et la position des objets demandent la fourniture d'arguments pour les coordonnées d'affichage X et Y ainsi que les dimensions de largeur et de hauteur. Lors de l'exécution, Form Builder interprète ces arguments dans les unités indiquées par la propriété Système de coordonnées du module Application Forms : en cellules de caractère, en centimètres, en pouces, en pixels ou en points.


Déplacement et redimensionnement d'une fenêtre par programme - Exemples

/*

** Exemple 1 : Les deux appels de procédure ci-après font
** passer la fenêtre MA_FEN aux coordonnées X, Y 6 et 8 :

   MOVE_WINDOW('ma_fen', 6, 8);
   SET_WINDOW_PROPERTY('ma_fen', position, 6, 8);

** Exemple 2 : Les deux appels de procédure ci-après
** redimensionnent MA_FEN à une largeur de 80 et une hauteur de 20 :

   RESIZE_WINDOW('ma_fen', 80, 20);
   SET_WINDOW_PROPERTY('ma_fen', window_size, 80, 20);

** Exemple 3 : L'appel de procédure ci-après réduit la fenêtre
** de document MA_FEN :

   SET_WINDOW_PROPERTY('ma_fen', window_state, minimize);

** Exemple 4 : L'appel de procédure ci-après utilise
** la constante de Form Builder FORMS_MDI_WINDOW pour
** agrandir la fenêtre MDI (applicable uniquement à Microsoft Windows) :

   SET_WINDOW_PROPERTY(forms_mdi_window, window_state, maximize);

*/


Défilement d'une fenêtre par programme

 Exemples   [image]  Rubriques connexes

Lorsque vous faites défiler une fenêtre par programme, vous modifiez la position de la vue sur le canevas de la fenêtre (c'est-à-dire que vous modifiez la définition des propriétés Position X et Y de la lucarne sur le canevas).

Pour faire défiler une fenêtre par programme, utilisez l'une des deux procédures internes ci-après :

• SCROLL_VIEW, qui fait défiler la fenêtre aux coordonnées X et Y que vous indiquez.

• SET_VIEW_PROPERTY qui vous permet de définir les coordonnées X ou Y de la vue en définissant les propriétés Position X et Y de la lucarne sur le canevas. (Notez que pour définir les coordonnées X et Y de la vue, vous devez appeler cette procédure interne deux fois.)

Défilement dynamique Lorsque l'utilisateur ou l'application se déplace d'un élément à l'autre, Form Builder maintient toujours l'élément cible visible pour l'utilisateur. Si nécessaire, il fait automatiquement défiler un canevas pour que l'élément cible apparaisse dans la vue. Par exemple, lorsqu'un utilisateur appuie sur [Elément suivant] (Tab) pour passer à un élément se trouvant dans le même canevas, mais à l'extérieur de la fenêtre, Form Builder fait défiler dynamiquement le canevas pour que l'élément cible soit visible.

Seule exception à cette règle : lorsque l'utilisateur ou l'application fait défiler la fenêtre explicitement, et non en réponse à un événement de navigation. Dans ce cas, Form Builder permet que l'élément dans lequel se trouve le point d'insertion sorte de la vue par défilement. Cependant, le prochain événement de navigation entraînera à nouveau le défilement de l'élément cible dans la vue.


Défilement d'une fenêtre par programme - Exemples

/*

** Exemple 1 : L'appel de procédure ci-après fait défiler
** horizontalement un canevas intégral de fenêtre aux coordonnées X, Y 14 et 18 :

   SCROLL_VIEW('c'est_ma_vue', 14, 10);

** Exemple 2 : Les deux appels de procédure ci-après
** repositionnent également la vue du canevas intégral aux coordonnées X, Y 14 et 10

   SET_VIEW_PROPERTY('c'est_ma_vue', x_pos_on_canvas, 14);
   SET_VIEW_PROPERTY('c'est_ma_vue', y_pos_on_canvas, 10);

*/


Utilisation des déclencheurs en réponse à des événements de fenêtre lors de l'exécution

Pour répondre à des événements de fenêtres, vous pouvez utiliser les déclencheurs suivants :

• When-Window-Activated

• When-Window-Closed

• When-Window-Deactivated

• When-Window-Resized

Lorsque vous utilisez ces déclencheurs, vous pouvez examiner la variable système intégrée SYSTEM.EVENT_WINDOW pour déterminer le nom de la fenêtre pour laquelle le déclencheur a été activé.


Affichage et masquage d'un canevas par programme

 Exemples   [image]  Rubriques connexes

Affichage d'un canevas Pour afficher par programme un canevas dans la fenêtre à laquelle il est attribué, utilisez les procédures internes SHOW_VIEW ou SET_VIEW_PROPERTY.

Remarque : A une exception près, lorsque vous affichez un canevas par programme, Form Builder l'affiche devant les autres canevas de la même fenêtre, quel que soit l'ordre d'empilage que vous avez indiqué lors de la conception, ou que le canevas ait, ou non, été affiché (mais masqué derrière d'autres) lors de l'appel à la procédure interne. Exception : lorsque vous tentez d'afficher par programme un canevas qui masquerait le canevas de l'élément en cours. Dans ce cas, Form Builder affiche le canevas, mais derrière le canevas de l'élément en cours.

Si vous utilisez les procédures internes SHOW_VIEW ou SET_VIEW_PROPERTY pour afficher un canevas intégral, celui-ci remplace le canevas intégral en cours dans la fenêtre.

Masquage d'un canevas Pour masquer un canevas par programme, utilisez les procédures internes HIDE_VIEW ou SET_VIEW_PROPERTY.


Affichage et masquage d'un canevas par programme - Exemples

/*

** Exemple 1 : Les deux appels de procédure ci-après affichent
** un canevas intégral appelé UN_CANEVAS :

   SHOW_VIEW('un_canevas');
   SET_VIEW_PROPERTY('un_canevas', visible, property_true);

** Exemple 2 : Les deux appels de procédure ci-après masquent
** un canevas intégral appelé UN_CANEVAS :

   HIDE_VIEW('un_canevas');
   SET_VIEW_PROPERTY('un_canevas', visible, property_false);

*/


Utilisation de la propriété de canevas Afficher au premier plan sur saisie

  Rubriques connexes

La propriété de canevas Afficher au premier plan sur saisie détermine l'impact, sur l'ordre d'empilage, du passage (pour l'utilisateur ou l'application) à un élément du canevas. Si vous définissez Afficher au premier plan sur saisie à :

• Non, Form Builder affiche le canevas devant la fenêtre uniquement si l'élément cible est masqué derrière un autre canevas de cette fenêtre (lorsque l'utilisateur ou l'application passe à un élément de ce canevas).

• Oui, Form Builder affiche le canevas devant la fenêtre chaque fois que l'utilisateur ou l'application passe à un élément de ce canevas. (Réfléchissez bien avant de définir Afficher au premier plan sur saisie à Oui pour un canevas intégral : comme ce type de canevas occupe toute la surface de sa fenêtre, il masque toujours les canevas empilés lorsque Form Builder l'affiche devant la pile de canevas.)

Canevas empilés

La définition de la propriété Afficher au premier plan sur saisie pour un canevas empilé, peut présenter certaines difficultés. Pour les éviter, vous devrez envisager l'interaction des fenêtres, la navigation par défaut, l'ordre d'empilage et la manipulation par programme des fenêtres et des canevas.

Un canevas empilé dont la propriété Afficher au premier plan sur saisie est définie à Non ne peut être affiché que par navigation ou par programme.

N'oubliez pas que lorsqu'un utilisateur (ou votre application) passe à un élément du canevas empilé, Form Builder affiche celui-ci dans la fenêtre qui lui est attribuée. Cependant, une fenêtre peut également être affichée par programme, ou en réponse au passage à un élément du canevas intégral de la fenêtre. Dans ces cas, vous devez définir Afficher au premier plan sur saisie à Oui pour que Form Builder affiche le canevas empilé lorsque la fenêtre est affichée pour la première fois.

Notez qu'un canevas empilé dont la propriété Afficher au premier plan sur saisie est définie à Oui peut être masqué dans les cas suivants :

• Si la position du canevas empilé dans la pile le place derrière un canevas intégral ou un autre canevas empilé de la même fenêtre.

• Si la fenêtre est affichée à la suite du passage à un élément d'un autre de ses canevas, Form Builder masque le canevas empilé s'il chevauche l'élément cible. (Form Builder affiche d'abord le canevas empilé, puis immédiatement le canevas cible, devant le canevas empilé, afin que l'élément cible soit visible.)

• Si la fenêtre est affichée à la suite du passage à un élément d'un autre de ses canevas, et que la propriété Afficher au premier plan sur saisie du canevas cible soit définie à Oui, Form Builder affiche le canevas cible devant le canevas empilé, même si celui-ci ne chevauche pas l'élément cible.


Evénements modifiant le canevas intégral en cours

  Rubriques connexes

Lorsqu'un canevas intégral est affiché dans une fenêtre—en réponse à un événement de navigation ou par programme—il devient le canevas intégral en cours de la fenêtre. S'il n'est pas remplacé par un autre canevas intégral, il reste le canevas intégral en cours pour toute la durée de la session d'exécution (même si l'utilisateur ferme ou icônifie la fenêtre).

Lorsque plusieurs canevas intégraux sont attribués à la même fenêtre, le canevas intégral en cours peut être remplacé par un autre canevas intégral dans les cas suivants :

• l'utilisateur ou l'application passe à un élément d'un autre canevas intégral attribué à la même fenêtre ;

• un déclencheur ou un sous-programme nommé par l'utilisateur exécute la procédure interne REPLACE_CONTENT_VIEW.

Par exemple, l'utilisateur peut appuyer sur [Elément suivant] (Tab) pour passer à un élément d'un autre canevas intégral. Comme une fenêtre ne peut afficher qu'un canevas intégral à la fois, Form Builder remplace le canevas intégral en cours dans la fenêtre par le nouveau canevas intégral contenant l'élément cible.


Remplacement par programme du canevas intégral en cours

 Exemples   [image]  Rubriques connexes

Pour remplacer par programme le canevas intégral en cours dans une fenêtre, utilisez la procédure interne REPLACE_CONTENT_VIEW.

Le canevas indiqué doit être un canevas intégral, attribué à la fenêtre indiquée. (Vous ne pouvez pas remplacer le canevas intégral en cours d'une fenêtre par un canevas attribué à une autre fenêtre.)

Vous pouvez également utiliser les procédures internes SHOW_VIEW et SET_VIEW_PROPERTY pour remplacer le canevas intégral d'une fenêtre. Cependant, si la fenêtre contient des canevas empilés, ces procédures internes et la procédure REPLACE_CONTENT_VIEW sont sensiblement différentes au niveau des fonctions :

• SHOW_VIEW et SET_VIEW_PROPERTY affichent le canevas intégral indiqué devant les canevas empilés dans la fenêtre, et donc les masquent.

• Par contre, REPLACE_CONTENT_VIEW affiche le canevas intégral indiqué à la même position dans la pile que le canevas intégral qu'il remplace.

N'oubliez pas que l'élément en cours est toujours visible par l'utilisateur. Si vous remplacez par programme le canevas intégral qui contient l'élément en cours, Form Builder réaffiche automatiquement le canevas d'origine.


Remplacement par programme du canevas intégral en cours - Exemples

/*

** Exemple : L'appel de procédure ci-après remplace le
** canevas intégral en cours de la fenêtre FEN_5 par le canevas intégral appelé CAN_1 :

   REPLACE_CONTENT_VIEW('fen_5', 'can_1');

*/


Manipulation par programme d'un canevas empilé

 Exemples

Affichage d'un canevas empilé Pour afficher par programme un canevas empilé dans la fenêtre à laquelle il est attribué vous pouvez utiliser la procédure interne SHOW_VIEW. (Notez que la propriété Visible d'un canevas empilé est définie à Non par défaut.)

Défilement d'un canevas empilé Pour faire défiler un canevas empilé afin de rendre visible une autre partie de ce canevas, utilisez la procédure interne SCROLL_VIEW (qui déplace la vue par rapport à son canevas).

Déplacement d'un canevas empilé Pour déplacer un canevas empilé sur le canevas intégral sous-jacent, utilisez la procédure interne SET_VIEW_PROPERTY (qui change la propriété Position de la lucarne du canevas). Notez que cette opération ne change pas la partie de canevas visible dans la vue.

Agrandissement de la vue Pour agrandir la vue d'un canevas empilé (pour en rendre visible une plus grande partie), utilisez la procédure interne SET_VIEW_PROPERTY. Notez que l'agrandissement de la vue ne change pas les coordonnées X et Y de son angle supérieur gauche sur le canevas empilé, ni la position de la vue elle-même par rapport au canevas intégral sous-jacent.


Manipulation par programme d'un canevas empilé - Exemples

/* Exemple 1 : Les deux appels de procédure ci-après

** affichent le canevas empilé PILE_CAN :
*/
   SHOW_VIEW('pile_can');
   SET_VIEW_PROPERTY('pile_can', visible, property_true);

/* Exemple 2 : L'appel de procédure ci-après fait défiler la
** vue du canevas empilé PILE_CAN et le positionne aux coordonnées X,Y 12 et 0 :
*/
   SCROLL_VIEW('pile_can', 12, 0);

/* Exemple 3 : L'appel de procédure ci-après change la
** position du canevas empilé PILE_CAN et le place aux
** coordonnées X,Y 12 et 20 du canevas intégral sous-jacent :
*/
   SET_VIEW_PROPERTY('pile_can', display_position, 12, 20);

/* Exemple 4 : L'appel de procédure ci-après augmente la largeur de la vue
, pour qu'une plus grande partie du canevas soit visible dans la fenêtre :
*/
   SET_VIEW_PROPERTY('pile_can', width, 22);


Manipulation par programme d'un canevas onglet

 Exemples   [image]  Rubriques connexes

Comme pour les canevas empilés, utilisez les procédures internes SHOW_VIEW, HIDE_VIEW et SET_VIEW_PROPERTY pour afficher et masquer un canevas onglet par programme.

Pour afficher ou masquer une page à onglet, utilisez la procédure interne SET_TAB_PAGE_PROPERTY. Pour qu'une page à onglet devienne la première d'un canevas, utilisez la procédure interne SET_CANVAS_PROPERTY. Enfin, pour changer la page à onglet sur laquelle est affiché un élément, utilisez la procédure interne SET_ITEM_PROPERTY.

Affichage/masquage d'une page à onglet Pour afficher ou masquer une page à onglet, utilisez la procédure interne SET_TAB_PAGE_PROPERTY pour définir la propriété VISIBLE de la page à onglet.

Activation/désactivation d'une page à onglet  Pour activer ou désactiver une page à onglet, utilisez la procédure interne SET_TAB_PAGE_PROPERTY pour définir sa propriété ENABLED. (Lors de l'exécution, une page à onglet désactivée est affichée avec un libellé grisé.)

Définition de la première page à onglet Pour qu'une page à onglet devienne la première du canevas onglet sous-jacent, utilisez la procédure interne SET_CANVAS_PROPERTY pour définir la propriété du canevas TOPMOST_TAB_PAGE.


Manipulation par programme d'un canevas onglet - Exemples

/*

** Exemple 1 : L'appel de procédure ci-après affiche la page
** à onglet ONG1 sur le canevas onglet CAN5 :
*/
   SET_TAB_PAGE_PROPERTY('can5.ong1', visible, property_true);

/* Exemple 2 : L'appel de procédure ci-après désactive la
** page à onglet ONG1, mais la laisse visible sur le canevas onglet sous-jacent CAN5 :
*/
   SET_TAB_PAGE_PROPERTY('can5.ong1', enabled, property_false);

/* Exemple 3 : L'appel de procédure ci-après fait passer la
** page à onglet ONG1 en première position du canevas onglet sous-jacent CAN5 :
*/
   SET_CANVAS_PROPERTY('can5', topmost_tab_page, 'ong1');


Manipulation d'un canevas onglet lors de l'exécution

  Rubriques connexes

Lors de l'exécution, la navigation entre canevas onglet, et entre les différentes pages à onglet du canevas, doit respecter certaines règles.

Navigation entre canevas onglet  Lors de l'exécution, les canevas onglet sont affichés automatiquement en réponse aux événements de navigation, tout comme les canevas intégraux et les canevas empilés.

Les procédures internes SYSTEM.CURRENT_ITEM et SYSTEM.TRIGGER_ITEM peuvent ne pas comporter de point d'insertion et même être invisibles lorsque ce point apparaît dans un canevas onglet. En cliquant sur un canevas onglet, vous y placez le point d'insertion, mais la procédure interne SYSTEM.CURRENT_ITEM n'est pas modifiée.

Navigation entre pages à onglet  Lors de l'exécution, les possibilités de navigation entre les différentes pages à onglet sont multiples. La méthode la plus directe consiste à cliquer sur l'onglet avec libellé de la page souhaitée. L'utilisateur peut également appuyer sur les touches de déplacement du curseur vers la droite et vers la gauche pour alterner entre les pages à onglet, mais uniquement si le point d'insertion se trouve sur l'onglet muni d'un libellé (c'est-à-dire si le point d'insertion n'est pas dans un élément ou dans le canevas onglet). Le passage d'une page à onglet à une autre en réponse à un événement de navigation équivaut à afficher un canevas empilé masqué en réponse à un événement de navigation. Si cet événement se produit entre un élément de la page à onglet PO1 et l'élément de la page à onglet PO2, Form Builder affiche automatiquement PO2. Si le passage à un élément d'une autre page à onglet échoue (pour des raisons de validation), Form Builder retourne le point d'insertion à l'élément précédent—et non à l'onglet sur lequel se trouve l'élément précédent.


Boîte de dialogue de sélection de tables de données

  Rubriques connexes

Description  La boîte de dialogue de sélection de tables de données vous permet d'inclure dans votre interrogation des objets de source de données provenant de la base de données connectée.

Cette boîte de dialogue contient les éléments suivants :

Afficher	Indique si les tables, vues, interrogations, clichés et/ou synonymes peuvent être affichés dans la liste.
Boîte déroulante	Indique la source de données contenant les objets à afficher. Vous pouvez également sélectionner une table d'un compte ou d'une base de données distincts.
Sélectionner tables de données	Fournit la liste des objets de source de données que vous pouvez inclure dans votre interrogation. Conseil
Infos	Affiche des informations sur l'objet sélectionné : type, nom, propriétaire, date de création et commentaires.
Inclure	Incorpore l'élément sélectionné dans l'espace de travail de Query Builder.
Fermer	Ferme la boîte de dialogue sans incorporer d'objet de source de données.


Accès à d'autres comptes de la base de données en cours

  Rubriques connexes

Pour accéder aux tables situées dans d'autres comptes de la base de données en cours :

1	Cliquez sur le nom de la base de données en cours. Le bouton Inclure est remplacé par le bouton Ouvrir et la zone de liste répertorie les comptes de cette base de données.

2	Cliquez sur le nom du compte à ouvrir.

3	Cliquez sur Ouvrir ou cliquez deux fois sur le nom du compte. Query Builder affiche la liste des tables de ce compte et le bouton Inclure réapparaît à la place du bouton Ouvrir, ce qui vous permet d'inclure des tables selon la procédure habituelle.


Ouverture d'autres comptes

  Rubriques connexes

Si la table qui vous intéresse n'est pas répertoriée dans la base de données en cours, vous pouvez explorer d'autres comptes et d'autres bases de données, et sélectionner des tables dans ces comptes.

Pour explorer d'autres comptes et bases de données :

1	Cliquez dans la case située au-dessus de la liste des tables. Deux éléments apparaissent : le nom de la base de données en cours et le mot Bases de données.

2	Pour accéder à des tables situées dans d'autres comptes de la base de données en cours, cliquez ici.

Si vous ne parvenez pas à vous connecter à une base de données répertoriée, la liaison peut être non valide du fait d'un problème réseau ou de la modification d'un mot de passe à distance. Demandez l'intervention de l'administrateur de base de données.


Inclusion multiple d'une table

  Rubriques connexes

Lorsque vous incluez plusieurs fois la même table dans une interrogation, un alias est automatiquement affecté aux tables en double. Cet alias contient le nom de la table de base, suivi d'un trait de soulignement et d'une séquence alphanumérique.


Boîte de dialogue de sélection de tables en relation

 Description  La boîte de dialogue de sélection de tables en relation vous permet d'incorporer dans la fenêtre Interrogation des tables liées à la table sélectionnée.

Cette boîte de dialogue contient les éléments suivants :

Afficher	Option non disponible.
Boîte déroulante	Indique si toutes les tables liées doivent, ou non, être affichées.
Sélectionner tables de données	Répertorie les tables liées disponibles. Conseil
Infos	Affiche des informations relatives à la table sélectionnée : type, nom, propriétaire, date de création et commentaires.
Inclure	Incorpore la table sélectionnée.
Fermer	Ferme la boîte de dialogue sans incorporer de table liée.


Boîte de dialogue de changement de nom de table

  Rubriques connexes

Description  La boîte de dialogue de changement de nom de table vous permet de renommer la table active.

Cette boîte de dialogue contient les éléments suivants :

Nom de table par défaut	Indique le nom de la table.
Zone de liste	Fournit la liste des tables que vous avez ouvertes en vue de les renommer.
Nouveau nom	Indique le nouveau nom de la table.
Définir	Met à jour le nom de la table tout en maintenant la boîte de dialogue ouverte.


Identification d'une table dont le nom a été modifié

Dans les interrogations stockées, une distinction immédiate du type de nom d'une table donnée (nom défini par l'utilisateur ou nom d'origine) s'avère impossible.

Pour vérifier si le nom d'une table donnée a été modifié :

1	Cliquez sur [image] dans la barre d'icônes.

2	Dans la liste Tables disponibles, cliquez sur cette table.

Si le nom de la table a été modifié, l'alias apparaît dans le champ Nouveau nom et un autre nom (le nom d'origine de la table) apparaît dans le champ Nom de table par défaut.

Les utilisateurs SQL peuvent également identifier les tables renommées en cliquant sur [image] dans la barre d'icônes. Cette opération ouvre la boîte de dialogue Afficher instructions SQL, où toutes les modifications de nom apparaissent dans l'instruction SELECT, dans la syntaxe SQL standard des alias de table.


Boîte de dialogue de définition de relation

  Rubriques connexes

Description  La boîte de dialogue de définition de relation vous permet de créer entre deux tables des relations simples, composées, sans correspondance, sans égalité et des auto-relations.

Cette boîte de dialogue contient les éléments suivants :

Relation	Indique les noms des colonnes d'origine (dans A->) et cible (dans B->).
Opérateurs	Indique le type de relation entre les colonnes.
Intégrer relation dans interro	Indique si la relation sera utilisée dans l'interrogation. Par défaut, cette case est cochée.
Bouton d'option A introuvable dans B	Indique que les données extraites sont celles communes aux deux tables, plus les données qui sont dans la table A, mais non dans la table B.
Bouton d'option B introuvable dans A	Indique que les données extraites sont celles communes aux deux tables, plus les données qui sont dans la table B, mais non dans la table A.
Bouton d'option Supprimer discordances	Par défaut. Indique que les données extraites sont communes aux deux tables.


A propos des relations

  Rubriques connexes

Une base de données relationnelle se compose d'un certain nombre de tables en relation. Chaque table se compose de colonnes (parfois appelées champs) disposées verticalement. Chaque colonne a un nom et contient un type de données particulier.

Les relations, ou jointures, définissent la façon dont une colonne d'une table est reliée à une colonne d'une autre table. Dans de nombreux cas, les relations dont vous avez besoin sont déjà définies dans la base de données. Les relations diminuent également la redondance des données. Lorsqu'il existe une relation entre des colonnes de différentes tables, vous pouvez utiliser ces tables ensemble dans une interrogation. Remarque

Les colonnes en relation n'ont pas toujours le même nom. Vous pouvez toujours établir une relation entre des colonnes qui ont le même type de données et, dans certains cas, entre des colonnes dont les données sont de type différent, si la relation a un sens. Par exemple, vous pouvez toujours relier une colonne de données de type numérique à une colonne de type caractère, car un nombre peut également être interprété comme un caractère. En fait, vous pouvez relier pratiquement n'importe quelle colonne (à l'exception des colonnes contenant du texte long) à des colonnes de type caractère.

Les relations peuvent être définies par l'utilisateur (temporaires) ou créées dans le dictionnaire de données sous-jacent. Les relations du dictionnaire de données apparaissent automatiquement lorsque vous incorporez des tables en relation (c'est-à-dire des tables qui ont une relation clé primaire/clé étrangère). Ces relations sont toujours valides et vous pouvez donc toujours les utiliser. Elles peuvent être créées ou modifiées dans Schema Builder.

Les relations définies par l'utilisateur ne sont valides que pour l'interrogation dans laquelle vous les créez. La création d'une relation définie par l'utilisateur n'établit pas de relation permanente correspondante dans la table sous-jacente. La principale différence entre les deux est que, dans le cas d'une relation définie par l'utilisateur, vous devez tracer la ligne de relation alors que dans une relation stockée dans la base de données, Query Builder la trace pour vous.

Remarque (concerne uniquement Report Builder) : Les liaisons de données de Report Builder ne sont pas identiques aux relations de Query Builder. Les liaisons de données de Report Builder sont créées entre plusieurs interrogations, tandis que les relations Query Builder (ou jointures) sont créées à l'intérieur d'une même interrogation. Pour plus d'informations, reportez-vous à l'aide en ligne de Report Builder.


Activation et désactivation d'une relation

  Rubriques connexes

Les relations que vous créez en utilisant la souris sont automatiquement activées et désactivées dans une interrogation en fonction des besoins. Les relations actives sont affichées avec une ligne noire épaisse, et les relations inactives avec des lignes grisées.

Pour activer manuellement une relation en utilisant la souris :

  Cliquez deux fois sur une ligne de relation inactive.

Pour désactiver une relation :

  Cliquez deux fois sur une ligne de relation active.


Boîte de dialogue de définition de colonne

Description La boîte de dialogue de définition de colonne vous permet de créer dans votre interrogation une nouvelle colonne fondée sur les valeurs d'une autre. Les colonnes définies apparaissent dans la fenêtre Sources de données et dans la fenêtre Résultats.

Cette boîte de dialogue contient les éléments suivants :

Colonnes définies	Indique le nom de la colonne que vous voulez créer.
Zone de liste	Fournit la liste des colonnes définies existantes.
Définies comme	Indique l'expression de la colonne sélectionnée.
Définir	Applique la définition à la colonne.
Supprimer	Supprime la colonne sélectionnée.
Coller colonne	Affiche la boîte de dialogue de collage de colonne.
Coller fonct.	Affiche la boîte de dialogue de collage de fonction.
Remarque : La colonne définie n'est qu'une partie de votre interrogation et ne modifie pas la définition de table enregistrée dans la base de données.


Boîte de dialogue de tri

Description La boîte de dialogue de tri vous permet de trier les données de votre interrogation en fonction des colonnes de votre table.

Cette boîte de dialogue contient les éléments suivants :

Colonnes disponibles	Fournit la liste des colonnes de table que vous pouvez trier dans la fenêtre Résultats.
Colonnes triées	Fournit la liste des colonnes de table qui sont triées dans la fenêtre Résultats.
Copier	Copie, dans la liste Colonnes triées, la colonne sélectionnée dans la liste Colonnes disponibles.
Supprimer	Supprime la colonne sélectionnée de la liste Colonnes triées.
Ordre de tri	Trie la colonne sélectionnée en ordre ascendant ou descendant. L'option par défaut est Ascendant.


Aide de Query Builder

  Rubriques connexes

Création d'une nouvelle interrogation

Ajout de conditions à une interrogation

Création d'une relation simple

Définition d'une colonne

Tri des données d'interrogation


A propos de Query Builder

  Rubriques connexes

Oracle Query Builder est un outil d'accès aux données facile à utiliser, conçu pour les analystes, les managers et, au sens large, tous les professionnels. Il offre un moyen logique et intuitif d'accéder aux informations stockées dans les bases de données de l'entreprise, pour les analyser et créer des états.

Query Builder est conçu pour les professionnels qui n'ont pas de connaissance spéciale de la programmation ou des bases de données. Toutefois, grâce à ses puissantes fonctions d'interrogation et sa prise en charge des instructions SQL (Structured Query Language), Query Builder répond aussi aux attentes des programmeurs et des utilisateurs qui connaissent bien les bases de données.

Dans la fenêtre Interrogation de Query Builder, vous pouvez demander à accéder à des données de la ou des bases de données de votre entreprise. La demande de données est appelée interrogation.

Query Builder vous permet de définir presque toutes les interrogations que vous pouvez créer via l'instruction SQL SELECT. Il génère automatiquement la clause SELECT FROM [table.colonne] appropriée à partir des colonnes affichées dans l'espace de travail Query Builder.


Boîte de dialogue Séquence de colonne

Description : La boîte de dialogue Séquence de colonne vous permet d'ajuster le résultat de votre interrogation dans l'espace de travail de Query Builder.

Cette boîte de dialogue contient les éléments suivants :

Colonnes disponibles	Fournit la liste des colonnes de table que vous pouvez afficher dans l'espace de travail de Query Builder. Conseil
Colonnes affichées	Fournit la liste des colonnes de table actuellement affichées dans l'espace de travail de Query Builder.
Copier	Copie dans la liste Colonnes affichées la colonne sélectionnée dans la liste Colonnes disponibles.
Supprimer	Supprime la colonne sélectionnée de la liste Colonnes affichées.
Mise en forme	Affiche la boîte de dialogue de mise en forme.
Totaux	Affiche la boîte de dialogue de totaux.
Exécuter	Exécute l'interrogation.


Boîte de dialogue de collage de colonne

  Rubriques connexes

Description  La boîte de dialogue de collage de colonne vous permet de coller dans votre interrogation une colonne d'une table sélectionnée.

Cette boîte de dialogue contient les éléments suivants :

Zone de liste	Fournit la liste des colonnes que vous pouvez coller. Conseil


Boîte de dialogue de collage de fonction

Description  La boîte de dialogue de collage de fonction vous permet de coller une fonction dans votre condition ou votre interrogation.

Cette boîte de dialogue contient les éléments suivants :

Afficher catégories	Indique les types de fonction qui apparaissent dans la liste : nombre, caractère, date, conversion, groupe, autre.
Zone de liste	Fournit la liste des fonctions disponibles dans la catégorie sélectionnée.
Coller arguments	Indique si l'argument (l'expression figurant entre parenthèses dans une fonction, et qui fournit des informations que la fonction doit utiliser) doit être incorporé ou non.


Boîte de dialogue d'affichage des instructions SQL

  Rubriques connexes

La boîte de dialogue d'affichage des instructions SQL répertorie les instructions SQL utilisées dans votre interrogation. Vous ne pouvez ni modifier ni copier les instructions SQL de cette boîte de dialogue.


Colonne(s) identifiant de manière unique chaque ligne de la table. Les clés primaires apparaissent en caractères gras.


Colonne faisant référence aux valeurs de clé primaire d'une autre table. Les clés étrangères apparaissent en italique.


Sources, notamment les tables, les vues, les interrogations, les synonymes et les clichés, à partir desquelles une interrogation extrait des données.


Source de données composée de colonnes provenant d'une ou de plusieurs tables de base de données combinées en une seule table logique.


Chaîne comportant une fonction ou une opération, et la ou les colonnes de base de données sur lesquelles porte la fonction ou l'opération (par exemple, SALARY+COMMISSION).


Pour respecter les conventions d'appellation, chaque nom d'interrogation doit commencer par une lettre et ne pas dépasser 30 caractères alphanumériques. Si vous ne respectez pas ces conventions lorsque vous nommez les interrogations de base de données, Query Builder convertit le nom en une valeur "littérale" (entre guillemets).


A propos de la fenêtre Conditions

La fenêtre Conditions est une partie de la fenêtre Interrogation, qui contient le champ Condition dans lequel vous entrez des expressions et des conditions. Les conditions de Query Builder génèrent automatiquement les clauses WHERE ou HAVING qui conviennent.

Les noms de table et de colonne indiquent les colonnes qui seront filtrées dans la condition. Vous pouvez omettre le nom de la table si le nom de la colonne est unique. Conseil

Remarque : Lorsque vous activez le champ Condition, le curseur prend la forme d'un signe (+) qui indique que chaque élément sur lequel vous cliquez sera ajouté à votre condition. Pour le désactiver, cliquez sur [image] dans la barre d'icônes.


A propos de la fenêtre Interrogation

Lorsque vous ouvrez une interrogation, Query Builder l'affiche dans la fenêtre Interrogation, qui est divisée en deux fenêtres :

•	La fenêtre Conditions, qui contient le champ Condition. Elle permet d'affiner l'interrogation.

•	la fenêtre Source de données, qui affiche les tables (vues, clichés, etc.) utilisées dans l'interrogation.

Les fenêtres peuvent être divisées verticalement ou horizontalement, selon votre préférence.

Chaque table est affichée dans une zone contenant le nom de la table et le nom des colonnes qu'elle contient. Des icônes permettent d'identifier l'objet de base de données en cours. Elles indiquent si des commentaires descriptifs sont attachés, le type de source de données, le type de données de la colonne et si des index ont, ou non, été définis pour les tables de l'interrogation.

L'existence de relations entre des colonnes est matérialisée par un tracé de ligne. Les relations définies entre des tables identifient la façon dont une colonne d'une table est liée à une colonne d'une autre table.

Une coche à gauche du nom de la colonne indique que la colonne a été incorporée dans l'interrogation, c'est-à-dire que Query Builder recherchera les données correspondant au nom de la colonne lorsque vous exécuterez l'interrogation. L'absence de coche indique que les données de la colonne ne seront pas incorporées.


A propos de la fenêtre Source de données

  Rubriques connexes

La fenêtre Source de données est la partie de la fenêtre Interrogation dans laquelle sont affichés les éléments tels que les tables et les relations.


A propos de la barre d'icônes

  Rubriques connexes

La barre d'icônes apparaît en haut de la fenêtre de Query Builder. Cliquez sur chaque icône pour en obtenir une description.


Icône Enregistrer

Enregistre votre interrogation dans le fichier indiqué.


Icône Couper

Coupe le texte sélectionné et le place dans le presse-papiers de votre système d'exploitation.


Icône Copier

Copie le texte sélectionné dans le presse-papiers de votre système d'exploitation sans modifier le texte d'origine.


Icône Coller

Cette icône colle à l'emplacement actif les éléments se trouvant dans le presse-papiers. Si le presse-papiers est vide, cette icône est sans effet. Vous pouvez coller tout texte que vous avez préalablement coupé ou copié.


Icône Effacer

Supprime l'élément sélectionné (texte, table, etc.). L'option Effacer ne place pas le ou les éléments supprimés dans le presse-papiers de votre système d'exploitation, comme le fait la commande Couper.


Icône Sélectionner tout

Cette icône sélectionne tous les éléments de la fenêtre active. Par exemple, si la fenêtre Conditions est active, toutes les conditions affichées dans cette dernière sont sélectionnées.


Icône Sélectionner tables de données

Affiche la boîte de dialogue de sélection de tables de données.


Icône Sélectionner tables en relation

Affiche la boîte de dialogue de sélection de tables en relation. Cette icône n'est disponible que lorsque la table que vous avez sélectionnée est en relation avec une autre table dans la base de données connectée.


Icône Renommer une table

Affiche la boîte de dialogue de changement de nom de table. Cette icône n'est disponible que s'il existe au moins une table dans l'espace de travail de Query Builder.


Icône Infos

Affiche la boîte de dialogue d'informations, ainsi que des informations relatives à l'objet de base de données sélectionné. Cette icône n'est disponible que lorsqu'un objet de source de données est actif.


Icône Définir une relation

Affiche la boîte de dialogue de définition de relation. Cette icône n'est disponible que lorsque la fenêtre Source de données contient plusieurs tables à lier.


Icône Afficher instructions SQL

Affiche la boîte de dialogue d'affichage des instructions SQL et les instructions SQL de l'interrogation active.


Icône Séquence de colonne

Affiche la boîte de dialogue Affichage.


Icône Définir une colonne

Affiche la boîte de dialogue de définition de colonne.


Icône Trier

Affiche la boîte de dialogue de tri.


Icône AND

Insère l'opérateur AND dans votre condition. Cette icône ne peut être utilisée que lorsque le champ Condition est actif. Vous pouvez également entrer AND directement dans ce champ.


Icône OR

Insère l'opérateur OR dans votre condition. Cette icône ne peut être utilisée que lorsque le champ Condition est actif. Vous pouvez également entrer OR directement dans ce champ.


Icône NOT

Insère l'opérateur NOT dans votre condition pour la nier. Cette icône ne peut être utilisée que lorsque le champ Condition est actif. Vous pouvez également entrer NOT directement dans ce champ.


Icône Séparer les conditions

Dissocie les conditions combinées par des opérateurs logiques comme AND, OR et NOT. Cette icône n'est disponible que lorsque vous avez sélectionné un opérateur logique dans la fenêtre Conditions.


Icône Accepter

Valide et accepte la condition active. Cette icône ne peut être utilisée que lorsque le champ Condition est actif. Vous pouvez également appuyer sur Entrée ou sur Retour lorsque ce champ est actif pour accepter et valider votre condition.


Icône Annuler

Annule la condition en cours. Cette icône ne peut être utilisée que lorsque le champ Condition est actif.


Icône Coller une colonne

Affiche la boîte de dialogue de collage de colonne. Cette icône ne peut être utilisée que lorsque le champ Condition est actif.


Icône Coller une fonction

Affiche la boîte de dialogue de collage de fonction. Elle ne peut être utilisée que lorsque le champ Condition est actif.


A propos des types de données

  Rubriques connexes

Dans Query Builder, les types de données les plus courants sont les suivants :

CHAR ou VARCHAR2	CHAR est utilisé pour les données de type caractère de longueur fixe ; taille maximum 255 octets, valeur par défaut 1 octet. VARCHAR2 est utilisé pour les chaînes de caractères de longueur variable ; longueur maximum 2 000 octets. Pour VARCHAR2, vous devez indiquer la taille.
NUMBER	Indique que la colonne de base de données contient des nombres (entiers, décimaux ou tout autre type de valeurs numériques). Vous pouvez exécuter des calculs sur les nombres représentés sous la forme NUMBER, mais non sur ceux représentés sous la forme CHAR.
DATE	Indique que la colonne de base de données contient des valeurs de type date. Les valeurs valides sont comprises entre le 1er janvier 1999 av. J.-C. et le 31 décembre 1999 apr. J.-C. Le format par défaut est JJ-MOI-AA ; exemple, '01-JAN-97'.
NUMBER(p,s)	Indique la précision (p) des valeurs décimales, sous la forme d'un nombre compris entre 1 et 38. La plage des valeurs de s (échelle) va de -84 à 127. La précision décimale indique le nombre de chiffres à stocker. L'échelle indique le nombre de chiffres à droite du séparateur décimal. Si l'échelle est négative, les données sont arrondies au nombre de positions à gauche du séparateur décimal. Par exemple (10, -2) demande un arrondi au chiffre des centaines.
En outre, Query Builder offre une prise en charge limitée des types de données Oracle suivants :

LONG	Une colonne de type LONG contient des données alphanumériques de longueur variable allant jusqu'à 2 giga-octets (ou 231-1). Lorsque vous entrez une colonne de type LONG dans une interrogation Query Builder, les 2 000 premiers caractères sont affichés.
RAW	Données binaires brutes ; maximum 255 octets. Les valeurs doivent être insérées sous la forme de chaînes de caractères en notation hexadécimale. Elles sont affichées en hexadécimal. Vous devez indiquer la taille des données de type RAW.
LONG RAW	LONG RAW affiche des données binaires de type RAW d'un maximum de 2 giga-octets (qui apparaissent en hexadécimal dans la fenêtre Résultats). Les limites applicables sont les mêmes que celles concernant les données de type RAW.
Remarque : Query Builder prend en charge les conversions de type de données lorsque les conditions et les expressions font référence à des types de données différents dans leur comparaison. Pour plus d'informations, reportez-vous à Oracle8 Server SQL Language Reference Manual.


Icônes de types de données

  Rubriques connexes

Les types de données pris en charge par Query Builder pour toutes les colonnes d'un objet de source de données sont indiqués ci-dessous, et sont représentés par des icônes qui apparaissent dans la colonne de droite de l'objet, dans l'espace de travail Query Builder.

Type de données	Icônes	Description
Caractère		Type de données à utiliser pour les données de type caractère de longueur fixe ; taille maximum 255 octets, valeur par défaut 1 octet. Remarque : Vous pouvez représenter des nombres en utilisant le type de données Character, mais vous pouvez exécuter des calculs uniquement avec des données de type numérique.
Varchar2		Type de données à utiliser pour les chaînes de caractères de longueur variable ; taille maximum 2 000 octets. Vous devez indiquer la taille des données de type VARCHAR2.
Number (Nombre)		Type de données à utiliser pour les valeurs entières ou en virgule flottante. Vous devez entrer la précision (nombre de chiffres) des valeurs entières. Le type de données Floating (en virgule flottante) s'applique aux nombres décimaux. Lorsque vous attribuez ce type de données à une colonne, vous devez indiquer la précision et l'échelle. La précision (nombre total de chiffres du nombre) doit être comprise entre 1 et 38. L'échelle (nombre de chiffres à droite du séparateur décimal) doit être comprise entre -84 et 127. Si l'échelle est négative, les données sont arrondies au nombre indiqué de positions à gauche du séparateur décimal. Par exemple, (10,2) correspond à dix chiffres avec deux chiffres à droite du séparateur décimal. (10,-2) correspond à un entier de dix chiffres, arrondi au chiffre des centaines le plus proche.
Date		Type de données à utiliser pour tout type de date. Les dates valides sont comprises entre le 1er janvier 4712 av. J.-C. et le 31 décembre 4712 apr. J.-C. Le format par défaut est JJ-MOI-AA ; exemple, '01-JAN-97'.
Long		Type de données à utiliser pour les données alphanumériques de longueur variable des champs de texte Long, jusqu'à 2 giga-octets.
Raw		Type de données à utiliser pour les données binaires brutes. Taille maximum : 255 octets. Les valeurs doivent être insérées sous forme de chaînes de caractères en notation hexadécimale et les valeurs sont affichées en hexadécimal. Vous devez indiquer la taille des données de type Raw.
Long Raw		Type de données permettant de stocker jusqu'à 2 giga-octets de données binaires de type Raw (entrées et affichées en format hexadécimal). Il n'est pas nécessaire d'indiquer une taille.
MLSLABEL		Type de données MLSLABEL pour stocker le format binaire d'une étiquette utilisée sur un système d'exploitation sécurisé. Les étiquettes sont utilisées par Trusted ORACLE pour permettre l'accès aux informations. Vous pouvez également utiliser ce type de données pour définir des colonnes si vous utilisez ORACLE Server standard. Pour plus d'informations sur Trusted ORACLE, et notamment sur les types de données et les étiquettes, reportez-vous à Trusted ORACLE8 Server Administrator's Guide.


Notation d'objets de source de données.

  Rubriques connexes

Exemple de deux objets de source de données reliés par une relation :

Cliquez sur une icône, un indicateur ou une partie de ces objets pour afficher une description.


Indicateur de type d'objet

L'icône située dans l'angle supérieur gauche d'un objet de source de données indique le type de cet objet :

  Table

  Vue

  Interrogation

  Cliché

  Synonyme


Titre d'objet

Nom de l'objet de source de données. Pour modifier le nom de l'objet, cliquez sur le titre de l'objet.


Indicateur de commentaire

Cette icône indique qu'un commentaire est associé à l'objet (ou à la colonne). Cliquez deux fois sur cette icône pour ouvrir la boîte de dialogue d'informations dans laquelle vous pouvez visualiser les commentaires.


Nom de colonne

Nom de l'une des colonnes de cet objet. Si vous cliquez deux fois sur un nom de colonne, la colonne est incorporée dans votre interrogation.


Indicateurs de type de données

Ces icônes indiquent le type de données de leurs colonnes respectives. Si vous cliquez sur l'une de ces icônes, tout en maintenant le bouton de souris enfoncé, un menu instantané apparaît et vous pouvez choisir un autre type de données.


Ligne de relation

Une ligne grisée entre deux colonnes indique qu'une relation a été créée entre les colonnes à l'une ou l'autre des extrémités de la ligne. La ligne va de la clé étrangère à la clé primaire.


Indicateur d'auto-relation

Cette icône indique qu'une auto-relation a été créée entre cette colonne (clé étrangère) et une autre colonne (clé primaire) de la même table.


Clé primaire

Un nom de colonne affiché en Gras indique que cette colonne a été définie comme clé primaire de l'objet.


Clé étrangère

Un nom de colonne affiché en italique indique que cette colonne est une clé étrangère, reliée à une clé primaire d'une autre colonne. La définition d'une relation entre deux colonnes est la seule façon de définir une clé étrangère.


Au lieu de sélectionner une table et de cliquer sur Inclure, vous pouvez cliquer deux fois sur chaque table cible pour la déplacer vers l'espace de travail de Query Builder. Pour inclure une plage de tables, maintenez la touche MAJ enfoncée tout en cliquant sur la première et sur la dernière table de la plage.


Bien que vous puissiez définir des relations à l'aide de cette boîte de dialogue, utilisez de préférence la souris pour créer des relations. Query Builder active et désactive automatiquement les lignes des relations créées de la sorte.


Une coche mise en évidence à côté d'une colonne signifie que cette dernière apparaît dans l'instruction SELECT et sera affichée dans les résultats de l'interrogation. Une coche grisée à côté de la colonne signifie que cette dernière est utilisée en tant que critère de tri ou de groupe.


En général, Query Builder vous permet de lier des colonnes pouvant être interprétées à l'aide de la fonction de conversion implicite de la base de données Oracle. Pour toute information technique sur les conversions implicites, reportez-vous à Oracle8 Server SQL Language Reference Manual.


L'expression contenue dans le champ Définies comme se compose généralement d'une fonction ou d'une opération et de la ou des colonnes de base de données sur lesquelles devra porter l'opération. Si le nom de colonne se retrouve dans plusieurs tables, n'oubliez pas de faire également référence au nom de la table et de séparer ce nom de celui de la colonne par un point. Si le nom de colonne est unique, vous pouvez indiquer uniquement ce nom.


Renommer une table n'entraîne pas de modification correspondante dans le nom de la table sous-jacent de la base de données. Le nouveau nom n'est valide que pour l'interrogation active ; il reste dans l'interrogation si vous l'enregistrez.


Pour afficher la boîte de dialogue de définition de relations, cliquez sur [image] dans la barre d'icônes.


Pour afficher la boîte de dialogue de sélection de tables, cliquez sur [image] dans la barre d'icônes.


Pour afficher la boîte de dialogue de changement des noms de tables, cliquez sur [image] dans la barre d'icônes.


Lorsque vous sélectionnez dans une table un objet colonne, Query Builder utilise automatiquement l'alias de cette table dans l'interrogation. De même, si vous incluez un objet colonne dans le champ Condition et acceptez la condition, Query Builder insère automatiquement les alias de table appropriés dans la condition.


Vous pouvez sélectionner ou désélectionner une colonne des manières suivantes :

•	Cochez (ou désélectionnez) la case à côté de la colonne.

OU

Cliquez deux fois sur le nom de la colonne.


A propos des fonctions de Query Builder

  Exemples 	  Rubriques connexes

Une fonction est semblable à un opérateur, car elle manipule des éléments de données et retourne un résultat. Les fonctions diffèrent des opérateurs au niveau du format dans lequel elles apparaissent avec leurs arguments. Ce format leur permet d'agir sur un nombre quelconque d'arguments, ou sur aucun. Chaque fois que vous associez une colonne à un nom de fonction, Query Builder exécute l'opération indiquée sur la valeur ou les valeurs de cette colonne.

Les fonctions que vous pouvez utiliser avec les interrogation de Query Builder sont les suivantes :

•	fonctions de type numérique

•	fonctions de type caractère

•	fonctions de type caractère retournant des valeurs numériques

•	fonctions de conversion

•	fonctions de type date

•	fonctions de groupe

•	autres fonctions

Informations supplémentaires : pour obtenir des informations sur les autres fonctions, reportez-vous au manuel Oracle8 Server SQL Language Reference Manual.


Fonctions et arguments

  Exemples 	  Rubriques connexes

Une fonction permet de manipuler des données dans une colonne spécifique. Une fonction accepte un ou plusieurs arguments. Un argument est une expression qui figure entre les parenthèses d'une fonction et qui fournit des informations destinées à la fonction.

Exemple : la fonction ROUND qui arrondit un nombre à la précision que vous indiquez. Si vous entrez ROUND (CREDIT_LIMIT, -2), Query Builder arrondit chaque valeur de CREDIT_LIMIT au chiffre des centaines le plus proche. Si vous entrez ROUND(CREDIT_LIMIT, 1), Query Builder arrondit les valeurs de CREDIT_LIMIT au chiffre des dixièmes le plus proche.

Les valeurs utilisées dans les arguments sont les suivantes :

Valeur d'argument	Description
char, set, search,	Constante de type caractère entre guillemets simples,
replace	ou expression retournant des données de type caractère.
d, e	Constante de date entre guillemets simples, ou expression retournant des données de type date.
m, n	Constante numérique ou expression retournant des données de type numérique.
X	Le type d'argument dépend du contexte de la fonction.
Expr	Expression de n'importe quel type.
Fmt	Format utilisé pour modifier l'affichage des données ou pour entrer des données dans un champ Query Builder ou une condition dans un format autre que le format par défaut.


Fonctions de type numérique

  Rubriques connexes

Les fonctions de type numérique acceptent des données numériques et retournent des données numériques. Vous pouvez les utiliser pour définir des colonnes et des conditions.

Fonction (arguments)	Description
ABS(n)	Valeur absolue de n.
CEIL(n)	Plus petit entier supérieur ou égal à n.
COS(n)	Retourne le cosinus de n (angle exprimé en radians).
COSH(n)	Retourne le cosinus hyperbolique de n.
EXP(n)	Notation exponentielle. Retourne e (2.71828183...) à la puissance n.
FLOOR(n)	Plus grand entier supérieur ou égal à n.
LN(n)	Retourne le logarithme népérien de n, où n est supérieur à 0.
LOG(m,n)	Retourne le logarithme, base m, de n. La base m peut être tout nombre positif autre que 0 ou 1, et n peut être tout nombre positif.
MOD(m,n)	Reste de m divisé par n.
POWER(m,n)	m à la puissance n. Si n n'est pas un entier, il est tronqué.
ROUND(n[,m])	n arrondi à m positions décimales ; si m est omis, arrondi à 0 position. m peut être une valeur négative pour arrondir les chiffres à gauche du séparateur décimal.
SIGN(n)	Si n<0, -1; si n=0, 0; si n>0, 1.
SIN(n)	Retourne le sinus (sine) de n (angle exprimé en radians).
SINH(n)	Retourne le sinus hyperbolique de n.
SQRT(n)	Racine carrée de n ; si n<0, NULL.
TAN(n)	Retourne la tangente de n (angle exprimé en radians).
TANH(n)	Retourne la tangente hyperbolique de n.
TRUNC(n[,m])	n tronqué à m positions décimales ; si m est omis, arrondi à 0 position. m doit être une valeur négative pour tronquer (renvoyer à 0) les chiffres situés à gauche du séparateur décimal.


Fonctions de type caractère

  Rubriques connexes

Vous pouvez utiliser des fonctions de type caractère qui acceptent des données de type caractère et retourne des données de type caractère lorsque vous définissez des colonnes et des conditions.

Fonction (arguments)	Description
CHR(n)	Caractère ayant l'équivalent binaire de n dans le jeu de caractères de la base de données.
CONCAT(car1,car2)	Retourne car1 concaténé à car2.  Cette fonction équivaut à l'opérateur de concaténation (||).
INITCAP(car)	car, avec la première lettre de chaque mot en majuscules. Les mots sont délimités par des blancs ou des caractères non alphanumériques.
LOWER(car)	car, avec toutes les lettres en minuscules.
LPAD(car1,n[,car2])	car1, rempli à gauche jusqu'à la longueur n de la séquence de caractères de car2, dupliquée autant de fois que nécessaire ; si car2 est omis, rempli de bancs.
LTRIM(car[,jeu])	car, avec les caractères initiaux supprimés jusqu'au premier caractère absent du jeu.  jeu est par défaut ` ' (un seul blanc).
NLS_INITCAP(car [,paramnls])	Retourne car, avec la première lettre de chaque mot en majuscules. Les mots sont délimités par des blancs ou des caractères non alphanumériques. Les paramètres indiqués dans paramnls peuvent avoir la forme NLS_SORT=tri, où tri est une séquence de tri linguistique valable pour votre session ou BINARY. Si vous indiquez BINARY, cette fonction retourne car. Pour toute information sur les séquences de tri, reportez-vous à Oracle8 Server Concepts Manual.
NLS_LOWER(car[,paramnls])	Retourne car, avec toutes les lettres en minuscules. Voir NLS_INITCAP pour l'argument paramsnls.
NLS_UPPER(car[,paramnls])	Retourne car, avec toutes les lettres en majuscules. Voir NLS_INITCAP pour l'argument paramnls.
REPLACE(car,recherche [,remplacement])	car, avec chaque remplacement de chaque occurrence de recherche par remplacement. Si remplacement est omis, toutes les occurrences de recherche sont supprimées.
RPAD(car1,n[,car2])	car1, rempli à droite jusqu'à la longueur n de la séquence de caractères de car2, dupliquée autant de fois que nécessaire ; si car2 est omis, rempli de bancs.
RTRIM(car[,jeu])	car, avec les caractères finals supprimés après le dernier caractère absent du jeu. jeu est par défaut ` ' (un seul blanc).
SOUNDEX(car)	Valeur de type car représentant le son du (ou des) mot(s) de car.
SUBSTR(car,m[,n])	Sous-chaîne de car, commençant au caractère m, n caractères de long si n est omis.
SUBSTRB(car,m[,n])	Identique à SUBSTR, sauf que les arguments m et n sont exprimés en octets, et non en caractères. Pour les jeux de caractères sur un seul octet, SUBSTRB est identique à SUBSTR.
UPPER(car)	car, avec toutes les lettres en majuscules.


Fonctions de type caractère retournant des données numériques

  Rubriques connexes

Vous pouvez utiliser des fonctions de type caractère pour retourner des données numériques lorsque vous définissez des colonnes et des conditions.

Abréviation	Description
ASCII (car)	Valeur ASCII du premier caractère de car.
INSTR(car1,car2[,n[,m]])	Position de la nième occurrence de car2 dans car1, la recherche commençant à la position n. Si m est omis, le système utilise 1 par défaut. Si n est omis, le système utilise 1 par défaut. La position est indiquée par rapport au premier caractère de car1, même lorsque n>1.
INSTRB(car1,car2[,n[,m]])	Identique à INSTR, sauf que n et la valeur retournée sont exprimées en octets et non en caractères. Pour les jeux de caractères de base de données sur un octet, INSTRB équivaut à INSTR.
LENGTH(car)	Longueur, en caractères, de car.
LENGTHB(car)	Identique à LENGTH, sauf que car est exprimé en octets et non en caractères. Si car est NULL, cette fonction retourne NULL. Pour les jeux de caractères de base de données sur un octet, LENGTHB est identique à LENGTH.
NLSSORT(car[,paramnls])	Retourne la chaîne d'octets utilisée pour trier car. Les paramètres indiqués dans paramnls peuvent avoir la forme NLS_SORT=tri, où tri est une séquence de tri linguistique valable pour votre session, ou BINARY. Si vous indiquez BINARY, cette fonction retourne car. Pour toute information sur les séquence de tri, reportez-vous à Oracle8 Server Concepts Manual.


Fonctions de conversion

  Rubriques connexes

Vous pouvez utiliser des fonctions de conversion pour convertir des données d'un type en un autre lorsque vous définissez des colonnes et des conditions.

Abréviation	Description
TO_CHAR (d[,fmt])	Convertit d en une valeur de type caractère dans le format indiqué par la valeur de caractère fmt.  Si fmt est omis, d est converti en une valeur de type caractère dans le format de date par défaut de Query Builder, JJ-MOI-AA.
TO_CHAR(n[,fmt])	Convertit n en une valeur de type caractère dans le format indiqué par la valeur de caractère fmt.  Si fmt est omis, n est converti en une valeur de type caractère de la longueur exacte nécessaire pour stocker les chiffres significatifs.
TO_DATE(car[,fmt])	Convertit une date d'une valeur de type caractère en une valeur de type date. fmt est une valeur de type caractère qui indique le format de car. Si fmt et jomis, car doit avoir le format de date par défaut de Query Builder, JJ-MOI-AA.
TO_DATE(n,[fmt])	Convertit un nombre en date. fmt doit être un format qui, lorsqu'il est utilisé avec TO_CHAR, donne une DATE (par exemple, J ou MM).
TO_LABEL(car[,fmt])	Convertit car, valeur de type CHAR ou VARCHAR2 contenant une étiquette en format fmt, en une valeur de type MLSLABEL. Si vous omettez fmt, car doit être dans le format d'étiquette par défaut.
TO_MULTI_BYTE (car)	Retourne car avec tous les caractères sur un octet convertis en caractères multi-octets correspondants. Les caractères sur un octet qui n'ont pas d'équivalent sur plusieurs octets apparaissent dans la chaîne de sortie sous la forme d'un octet. (Cette fonction n'est utile que si votre jeu de caractères de base de données contient les deux types.)
TO_NUMBER (car)	Convertit car, données de type caractère contenant une valeur numérique, en données numériques.
TO_SINGLE_BYTE (car)	Retourne car avec tous les caractères multi-octets convertis en caractères sur un octet correspondants. Les caractères multi-octets qui n'ont pas d'équivalent sur un octet apparaissent dans la chaîne de sortie sous la forme multi-octets. (Cette fonction n'est utile que si votre jeu de caractères de base de données contient les deux types.)


Fonctions de type date

  Rubriques connexes

Toutes les fonctions de type date retournent des données de type date, sauf MONTHS_BETWEEN qui retourne des données numériques. Vous pouvez utiliser ces fonctions lorsque vous définissez des colonnes et des conditions.

Abréviation	Description
ADD_MONTHS (d,n)	Date d plus n mois.
LAST_DAY(d)	Date du dernier jour du mois contenant d.
MONTHS_BETWEEN(d,e)	Nombre de mois entre les dates d et e. Si d est postérieur à e, le résultat est positif ; s'il est antérieur, le résultat est négatif.
NEW_TIME(d,a,b)	Date et heure du fuseau horaire b lorsque la date et l'heure du fuseau horaire a sont d. a et b sont des expressions de type caractère, dont la signification est la suivante :
AST, ADT:	Heure au format Atlantic Standard ou Daylight
BST, BDT:	Heure au format Bering Standard ou Daylight
CST, CDT:	Heure au format Central Standard ou Daylight
EST, EDT:	Heure au format Eastern Standard ou Daylight
GMT:	Greenwich Mean Time
HST, HDT:	Heure au format Alaska-Hawaii Standard ou Daylight
MST, MDT:	Heure au format Mountain Standard ou Daylight
NST:	Heure au format Newfoundland Standard
PST, PDT:	Heure au format Pacific Standard ou Daylight
YST, YDT:	Heure au format Yukon Standard ou Daylight
NEXT_DAY(d,car)	Date du premier jour de la semaine, indiquée par car, qui n'est pas égale ou postérieure à d.
ROUND(d[,fmt])	d arrondi de la manière indiquée par l'unité d'arrondi fmt ; si fmt est omis, jour le plus proche.
SYSDATE	Date et heure en cours. Ne demande aucun argument.
TRUNC(d[,fmt])	d avec l'heure du jour tronquée jusqu'à l'unité de troncation indiquée, fmt ; si fmt est omis, l'heure du jour est supprimée.
Informations supplémentaires : Pour connaître les modèles de format à utiliser avec les fonctions de date ROUND et TRUNC, reportez-vous à Oracle8 Server SQL Language Reference Manual.


Fonctions de groupe

  Rubriques connexes

Les fonctions de groupe extraient des données en se fondant sur des groupes de lignes, et non un résultat par ligne. Elles exécutent des opérations de type calcul de moyenne, décompte, total et écart type.

Vous pouvez également utiliser les fonctions de groupe pour définir une nouvelle colonne ; la totalité des résultats est considérée comme un groupe lorsque vous n'affichez pas d'autres colonnes. L'affichage d'autres colonnes répartit le résultat en groupes plus petits. Vous pouvez utiliser les fonctions de groupe avec des conditions, mais uniquement avec un opérateur de comparaison, et la totalité des résultats est alors considérée comme un groupe. Par exemple, la condition SALAIRE > AVG(SALAIRE) est remplie (TRUE) lorsque la valeur de SALAIRE dans la ligne en cours est supérieure à la moyenne de SALAIRE dans toutes les autres lignes.

Les fonctions de groupe peuvent être utilisées avec les options DISTINCT ou ALL. Si vous indiquez DISTINCT, une fonction de groupe ne prend en compte que les fonctions distinctes d'une expression. Par exemple, la moyenne de 1, 1, 1, et 3 est 1,5, alors que la moyenne de DISTINCT est 2. Si vous indiquez ALL, la fonction de groupe prend toutes les valeurs en compte, y compris les doublons.

Toutes les fonctions de groupe décrites ci-dessous sautent les valeurs NULL, sauf COUNT(*). Les arguments peuvent être de type caractère, numérique ou date si expr est indiqué.

Fonction (argument)	Description
AVG([DISTINCT|ALL]n)	Valeur moyenne de n, sans tenir compte des valeurs NULL.
COUNT([DISTINCT|ALL] expr)	Nombre de lignes où expr n'est pas NULL.
COUNT(*)	Nombre de lignes du tableau, y compris les doublons et lignes comportant des valeurs NULL.
GLB([DISTINCT|ALL] étiquette)	Retourne la limite inférieure la plus élevée de étiquette.
LUB([DISTINCT|ALL] étiquette)	Retourne la limite supérieure la moins élevée de étiquette.
Informations supplémentaires : GLB et LUB retournent des valeurs de type MLSLABEL. Pour plus d'informations sur les fonctions GLB et LUB, reportez-vous à Trusted Oracle8 Server Administrator's Guide.

Fonction (argument)	Description
MAX([DISTINCT|ALL] expr)	Valeur maximum de expr.
MIN([DISTINCT|ALL] expr)	Valeur minimum de expr.
STDDEV([DISTINCT|ALL]n)	Ecart type de n, sans tenir compte des valeurs NULL, en fonction d'un calcul n-1 (exemple).
SUM([DISTINCT|ALL] n)	Somme des valeurs de n.
VARIANCE([DISTINCT|ALL] n)	Variance de n, sans tenir compte des valeurs NULL.


Autres fonctions

  Rubriques connexes

Query Builder accepte également les fonctions suivantes :

Fonction (argument)	Description
USER	Retourne le nom de l'utilisateur Oracle en cours. Ne demande pas d'argument.
DECODE(expr,recherche1, remplacement1[,recherche2,  remplacement2,] ... [défaut])	Si expr est égal à une recherche, retourne le remplacement suivant. Dans le cas contraire, retourne défaut. Si défaut est omis et s'il n'y a pas de concordance, retourne NULL. expr  peut être tout type de données ; recherche doit être du même type. La valeur retournée est forcée au même type de données que le premier retour.
GREATEST(expr1,expr2,...)	Retourne la valeur la plus élevée d'une liste de valeurs. Toutes les expressions suivant expr1 sont converties en type de expr1 avant que la comparaison soit effectuée.
GREATEST_LB(étiquette [,étiquette] ...)	Retourne la limite inférieure la plus élevée de la liste d'étiquettes. Chaque étiquette doit avoir des données de type MLSLABEL ou RAW MLSLABEL ou être un littéral entre guillemets simples dans le format d'étiquette par défaut. La valeur de retour est de type RAW MLSLABEL.
LEAST(expr1,expr2,...)	Retourne la plus petite valeur d'une liste de valeurs. Toutes les expressions suivant expr1 sont converties en type de expr1 avant que la comparaison soit effectuée.
LEAST_UB(étiquette [,étiquette] ...)	Retourne la plus petite limite supérieure de la liste d'étiquettes. Chaque étiquette doit avoir des données de type MLSLABEL ou RAW MLSLABEL ou être un littéral entre guillemets simples dans le format d'étiquettes par défaut. La valeur de retour est de type RAW MLSLABEL.
NVL(x,expr)	Si x est null, retourne expr ; si x n'est pas null, retourne x. x et expr peuvent être du type de votre choix. La valeur retournée est de même type que x.
Informations supplémentaires : Pour plus d'informations sur les fonctions GREATEST_LB et LEAST_UB, reportez-vous à Trusted Oracle8 Server Administrator's Guide.


A propos des auto-relations

  Rubriques connexes

Une auto-relation relie une table à elle-même. Les auto-relations ont une utilisation limitée et très spécifique : elles permettent d'établir un lien hiérarchique entre deux colonnes d'une même table. Vous pouvez, par exemple, utiliser une auto-relation pour relier les filiales d'une entreprise à la société mère, ou des employés à leurs dirigeants.

Une auto-relation n'est utilisable que si les colonnes de la table sont les contreparties les unes des autres. Dans la table Employee de la base de données, par exemple, le Manager ID est le même que l'Employee ID de ce responsable. L'icône d'auto-relation est donc affichée dans la colonne Manager ID.


Création d'une auto-relation

  Rubriques connexes

Pour créer une auto-relation :

1	Dans la boîte de dialogue de définition de relation, Query Builder affiche la liste des tables pour lesquelles des relations avec la table sélectionnée ont été définies.

2	Cliquez sur le nom de la table.

3	Cliquez sur Inclure.

4	Cliquez sur OK.

5	Répétez la procédure ci-dessus pour le nom de table.

6	Query Builder donne automatiquement à la copie de la table en relation un nom d'alias. Renommez la table pour que son nom corresponde au nom de l'original.

Remarque : Si l'auto-relation a déjà été identifiée dans le dictionnaire de données sous-jacent, les deux colonnes en relation dans la table et l'alias sont reliés par une ligne de relation. Si l'auto-relation n'a pas été identifiée dans le dictionnaire de données, vous pouvez créer une auto-relation en traçant une ligne de relation temporaire reliant les deux colonnes équivalentes dans la table et l'alias.


 Création d'une relation simple

  Rubriques connexes

Pour créer une relation en utilisant la souris :

1	Dans la fenêtre Interrogation, ouvrez les tables à relier.

2	Pendant que la table est affichée, sélectionnez la colonne à relier (clé étrangère).

3	Tout en maintenant le bouton de la souris enfoncé, faites glisser le pointeur sur la colonne reliée de la seconde table (clé primaire) pour tracer une ligne de relation.

4	Lorsque la colonne cible est mise en évidence, relâchez le bouton de la souris pour ancrer la ligne de relation. Par défaut, la relation est inactive (la ligne apparaît grisée).

Pour créer une relation en utilisant la boîte de dialogue de définition de relation :

1	Dans la boîte de dialogue de définition de relation, entrez le nom de la colonne d'origine (A->) et de la colonne cible (->B). Remarque Query Builder trace une ligne de relation entre les deux colonnes.

2	Cliquez sur Fermer.

Pour créer une relation en utilisant un raccourci :

1	Dans la boîte de dialogue de définition de relation, cliquez dans le champ A.

2	Dans la fenêtre Interrogation, sélectionnez une colonne. Query Builder place automatiquement le nom de la table et celui de la colonne dans le champ A.

3	Répétez la procédure pour le champ B.


Création d'une relation composite

  Rubriques connexes

Une relation composite connecte plusieurs colonnes d'une table à celles d'une autre table. Par exemple, vous pouvez relier les colonnes Order ID et Item ID de la table Items à des colonnes de noms identiques dans la table Item List.

Pour créer une relation composite :

1	Dans l'espace de travail de Query Builder, cliquez sur [image] dans la barre d'icônes.

2	Sélectionnez les deux tables à inclure.

3	Sélectionnez la colonne à relier (clé étrangère).

4	Tout en maintenant le bouton de la souris enfoncé, faites glisser le pointeur sur la colonne en relation dans la seconde table (clé primaire). Remarquez que le pointeur trace une ligne de relation au cours de cette opération.

5	Lorsque la colonne cible est mise en évidence, relâchez le bouton de la souris pour ancrer la ligne de relation. Par défaut, la relation est inactive (la ligne apparaît grisée).

Vous pouvez utiliser autant de relations composites que nécessaire pour votre interrogation, et inclure des colonnes dans des relations composites, qu'elles soient ou non utilisées dans d'autres relations.


Vous devez entrer le nom complet de la table et de la colonne (séparés par un point). A-> représente la (ou les) clé(s) étrangère(s) de la table et ->B la (ou les) clé(s) primaire(s) de la table. Séparez par des virgules les clés primaires et les clés étrangères supplémentaires.


Création d'une relation non concordante

  Rubriques connexes

Pour créer une relation non concordante, ou extérieure :

1	Dans la fenêtre Interrogation, cliquez sur la ligne de relation qui relie vos tables. Si cette ligne n'existe pas, créez une relation simple entre les deux tables.

2	Dans la boîte de dialogue de définition de relation, choisissez l'une des options d'affichage pour extraire tous les enregistrements inclus dans une relation simple ou uniquement les lignes pour lesquelles il existe une valeur correspondante dans les deux tables.

Remarque : Ne confondez pas une ligne qui retourne la valeur zéro (0) et une ligne non concordante. L'option Supprimer discordances n'est utilisable que sur les lignes qui retournent des valeurs nulles et non des valeurs zéro. Utilisez cette fonction si vous voulez afficher les données lorsqu'une table ne contient aucune valeur, par exemple des commandes sans ligne article, des clients qui n'ont pas passé de commande, des représentants qui n'ont pas de client, etc.


Suppression de lignes sans correspondance

  Rubriques connexes

Pour supprimer une relation non concordante :

1	Dans l'espace de travail de Query Builder, cliquez sur la ligne de relation qui relie vos tables cibles.

2	Dans la boîte de dialogue de définition de relation, cliquez sur le bouton d'option Supprimer discordances.

3	Cliquez sur OK.


Utilisation d'une relation de non-égalité

  Rubriques connexes

Pour créer une relation de non-égalité dans la boîte de dialogue de définition de relation :

  Sélectionnez l'opérateur.

Lorsque vous définissez une relation de non-égalité, Query Builder place une icône (le symbole différent de) sur la ligne de relation.


Suppression d'une relation

  Rubriques connexes

Pour supprimer une relation :

1	Dans la fenêtre Interrogation, cliquez sur la ligne de relation qui connecte les deux colonnes de table.

2	Lorsque les deux noms de colonnes et la ligne de relation sont en évidence, appuyez sur la touche Suppr.


A propos des lignes sans correspondance (NULL)

  Rubriques connexes

Query Builder vous permet de demander l'extraction de lignes sans correspondance lorsque vous utilisez une relation dans une interrogation. Il y a non correspondance de ligne lorsque la relation relie des tables contenant d'un côté des valeurs qui n'ont pas de valeur correspondante de l'autre côté. Les utilisateurs de SQL reconnaîtront ce cas comme une condition d'interrogation appelée jointure externe. Les lignes sans correspondance retournent généralement des valeurs null.

Remarque : Ne confondez pas une ligne qui retourne la valeur 0 (zéro) et une ligne sans correspondance. L'option Supprimer lignes discordantes de la boîte de dialogue de définition de relation n'est utilisable que pour les lignes qui retournent des valeurs NULL et non celles qui retournent des valeurs 0. Utilisez cette fonction pour afficher des données lorsqu'aucune valeur n'a été entrée dans une table (commandes ne comportant pas de ligne article, par exemple). Lorsque vous utilisez une relation sans correspondance, vous pouvez uniquement choisir un côté dans lequel afficher des enregistrements sans correspondance.


Création d'une nouvelle interrogation

  Rubriques connexes

Pour créer une nouvelle interrogation :

1	Dans l'espace de travail de Query Builder, cliquez sur [image] dans la barre d'icônes.

2	Cliquez deux fois sur la ou les tables dont vous voulez extraire des données.

3	Cliquez sur Inclure pour fermer la boîte de dialogue et afficher la table.

4	Sélectionnez chaque colonne. Une coche apparaît dans la case correspondant à chaque colonne sélectionnée. Pour inclure toutes les colonnes, cochez la case de la barre de titre de la table. Conseil

5	Entrez une ou plusieurs conditions afin de préciser votre interrogation.

6	Cliquez sur OK pour refermer Query Builder.


Localisation des tables disponibles

  Rubriques connexes

Pour localiser les tables que vous pouvez utiliser dans votre interrogation :

1	Dans l'espace de travail de Query Builder, cliquez sur [image] dans la barre d'icônes.

2	Utilisez les cases à cocher Afficher pour trier les tables par type.


Suppression d'une table

Pour supprimer (effacer) une table de l'espace de travail de Query Builder :

1	Dans la fenêtre Interrogation, cliquez sur la table à supprimer.

2	Cliquez sur [image] dans la barre d'icônes. Query Builder supprime la table de son espace de travail. Vous pouvez alors cliquer sur [image] pour l'inclure de nouveau dans votre interrogation.

Lorsque vous coupez ou que vous effacez une table, cette dernière n'est pas supprimée de la base de données, mais seulement de l'interrogation.


Changement de nom de table

  Rubriques connexes

Pour renommer une table :   Remarque

1	Cliquez sur [image] dans la barre d'icônes.

2	Dans la boîte de dialogue de changement de nom de table, sélectionnez la table dont vous voulez modifier le nom dans la liste Tables disponibles.

3	Cliquez dans le champ Nouveau Nom.

4	Supprimez les informations dont vous n'avez pas besoin.

5	Entrez le nouveau nom de la table. Ce nom de peut pas avoir plus de 30 caractères.

6	Cliquez sur Définir.

7	Cliquez sur OK.

Lorsque vous renommez une table dans l'espace de travail de Query Builder, le nom de la table sous-jacente n'est pas modifié. Le nouveau nom n'est valide que pour l'interrogation en cours.


Affichage d'informations et de commentaires sur les tables et les colonnes

Pour afficher les informations et les commentaires stockés dans la base de données :

  Dans l'espace de travail de Query Builder, cliquez deux fois sur l'icône située à l'extrémité droite de l'en-tête de la table pour afficher les informations sur la table ; cliquez deux fois sur la première icône de chaque colonne pour afficher les informations de colonne.


Suppression d'une colonne d'une interrogation

  Rubriques connexes

Pour supprimer une colonne d'une interrogation :

  Sélectionnez la colonne dans l'espace de travail de Query Builder. La coche située dans la table disparaît.


Décompte des lignes d'une interrogation

Pour compter les lignes de résultat d'une interrogation avant d'exécuter cette dernière :

  Dans l'espace de travail de Query Builder, cliquez sur [image] dans la barre d'icônes. Un message d'alerte indiquant le nombre de lignes qui seront extraites apparaît.


Ajout de conditions à une interrogation

  Exemples	  Rubriques connexes

Pour ajouter des conditions à une interrogation :

1	Cliquez dans le champ Condition vierge de la fenêtre Conditions pour l'activer. Un signe plus apparaît à côté de la flèche du curseur. Vous pouvez maintenant utiliser votre pointeur de souris pour sélectionner des champs automatiquement en cliquant dessus.

2	Dans l'espace de travail de Query Builder, sélectionnez la colonne à laquelle vous voulez appliquer une condition. Pour afficher la liste des colonnes disponibles, cliquez sur [image] dans la barre d'icônes. Conseil

3	Cliquez sur l'opérateur approprié dans la barre d'icônes. Pour ajouter des fonctions à la condition, cliquez sur [image] dans la barre d'icônes.

4	Entrez la valeur appropriée correspondant à la partie droite de l'expression de condition qui suit l'opérateur. Pour ajouter une autre condition, appuyez sur Maj-Entrée pour déplacer le curseur vers une nouvelle ligne.

5	Si l'expression vous convient, cliquez hors du champ de conditions mais dans la fenêtre Conditions pour désactiver ce champ, ou cliquez sur [image] dans la barre d'icônes. Pour effacer le contenu de la fenêtre Conditions et recommencer, cliquez sur [image] dans la barre d'icônes.


A propos des conditions

  Exemples 	  Rubriques connexes

Une condition est une expression de texte que vous placez dans une interrogation pour cibler les informations voulues et éliminer les informations non voulues. Les conditions permettent de gagner du temps et d'affiner les interrogations en extrayant des colonnes de la table. Conseil

Par exemple, vous incluez la table Employee dans votre interrogation et vous sélectionnez les colonnes Name, Salary et Job. Si vous n'ajoutez aucune condition, vous demandez à la base de données de sélectionner les données des employés contenues dans les colonnes Name, Salary et Job de la table Employee. Vous pouvez ajouter des conditions à votre requête initiale, par exemple : "dont

•	le salaire mensuel est supérieur à $ 1000 et inférieur à $ 2000."

•	le nom de famille est Smith."

•	le poste occupé est Cadre."

Pour éviter d'entrer les longues phrases des exemples précédents dans la condition, utilisez des opérateurs, de manière à ce que la condition soit proche d'une formule. Par exemple, pour indiquer les employés dont le salaire dépasse $ 3000, entrez :

SALARY > 3000

Vous pouvez également utiliser des fonctions afin de faciliter la création de conditions complexes.


Exemple de condition

  Rubriques connexes 	  Tous les exemples

Supposez que vous vouliez créer une interrogation permettant d'afficher les données concernant uniquement l'état de Californie.

1	Cliquez sur le champ de conditions pour l'activer.

2	Dans la zone de travail de Query Builder, sélectionnez la colonne State de la table appropriée. Le mot STATE apparaît dans le champ de conditions.

3	Entrez le symbole EGAL (=).

4	Dans le champ Condition, entrez 'CA' à droite du signe égal.

La condition prend la forme suivante : STATE='CA'


A propos des opérateurs

  Rubriques connexes

Un opérateur est un caractère ou un mot réservé utilisé pour exécuter une opération particulière. Les trois principaux types d'opérateur utilisés dans Query Builder sont :

•	opérateurs de comparaison

•	opérateurs arithmétiques

•	opérateurs logiques

Remarque : Vous pouvez également créer des conditions de négation basées sur ces opérateurs.


Opérateurs de comparaison

  Rubriques connexes

Les opérateurs de comparaison permettent de comparer deux valeurs. Lorsque vous insérez l'opérateur entre un nom de colonne et une valeur, dans la fenêtre Conditions, Query Builder compare tous les éléments de cette colonne à la valeur et ne retourne que les lignes dans lesquelles l'instruction de condition est vraie.

Par exemple, pour ne retourner que les lignes dans lesquelles la valeur de la colonne CREDIT_LIMIT est inférieure à $ 6000, utilisez l'opérateur < (inférieur à).

CREDIT_LIMIT < 6000

Les opérateurs de comparaison de Query Builder sont les suivants :

Opérateurs	Utilisation
=	Egal
<>	Différent de
<	Inférieur à
<=	Inférieur ou égal à
>	Supérieur à
>=	Supérieur ou égal à
BETWEEN...AND...	Entre deux valeurs
IN (LIST)	Egal à tout membre de la liste suivante
IS NULL	Est une valeur NULL. Une ligne sans valeur dans une colonne est considérée comme contenant une valeur NULL.


Opérateurs arithmétiques

  Rubriques connexes

Les opérateurs arithmétiques permettent d'exécuter des calculs sur des colonnes numériques et des colonnes de dates. Lors de l'exécution des calculs, Query Builder commence par effectuer la multiplication ou la division, puis l'addition ou la soustraction.

•	Par exemple, dans l'expression 1+2x3, Query Builder commence par multiplier 2 par 3, puis ajoute le résultat à 1, ce qui donne un résultat final de 7.

Pour modifier ces règles de priorité, placez une partie de l'expression entre parenthèses ; dans ce cas, Query Builder commence par calculer les expressions entre parenthèses.

•	Par exemple, dans le calcul (1+2)x3, (1+2) est calculé en premier, puis le résultat est multiplié par 3, pour donner un résultat final de 9.

Les opérateurs arithmétiques de Query Builder sont les suivants :

Opérateurs	Utilisation
+	Addition
-	Soustraction
*	Multiplication
/	Division


Opérateurs logiques

  Rubriques connexes

Les opérateurs logiques (également appelés booléens) sont AND, OR et NOT :

•	Utilisez AND pour extraire uniquement les données pour lesquelles toutes les conditions sont remplies.

•	Utilisez OR pour extraire les données qui remplissent au moins l'une des conditions indiquées.

•	Utilisez NOT pour nier l'opérateur ou les opérateurs, ou la ou les condition(s).

La barre d'icônes contient les icônes des opérateurs logiques. Ces icônes sont disponibles lorsque la fenêtre Conditions est active ou lorsque la boîte de dialogue de définition de colonne est ouverte. Vous pouvez insérer un opérateur dans le texte de la condition ou de la colonne définie en cliquant sur cet opérateur dans la barre d'icônes.


A propos des colonnes définies (et calculées)

  Exemples 	  Rubriques connexes

Vous pouvez exécuter des calculs sur les données extraites par Query Builder de la base de données, puis afficher les données calculées dans la fenêtre Résultats sous la forme d'une nouvelle colonne (également appelée champ défini). Vous pouvez nommer, définir et afficher ces colonnes comme toute autre colonne de votre interrogation.

Vous pouvez utiliser les colonnes définies dans une interrogation Query Builder pour construire des hypothèses, des prévisions, des projections et d'autres analyses, comme des variances et des pourcentages de totaux.

Remarque : Lorsque vous affichez une colonne définie (un champ défini) contenant une fonction cumulée, Query Builder génère automatiquement la clause GROUP BY correspondante pour les autres colonnes affichées qui n'impliquent pas de fonction cumulée. Les utilisateurs connaissant bien le produit peuvent aussi indiquer manuellement des colonnes GROUP BY pour obtenir un regroupement par colonnes non affichées.

Bien que les colonnes soient généralement synonymes des colonnes de données stockées dans vos tables, elles peuvent également faire référence aux nouvelles colonnes de données d'une interrogation, qui sont dérivées des valeurs d'une autre colonne, ou calculées à partir de celle-ci. Ces colonnes calculées sont parfois appelées champs dérivés ou champs définis. Par exemple, la table Employee peut comporter deux colonnes qui décrivent la rémunération : Salary et Commission. Vous pouvez créer une colonne définie qui combine les valeurs de ces colonnes en une nouvelle colonne appelée Net Pay qui représente le total du salaire et des commissions.

Vous pouvez fonder vos colonnes définies sur toute combinaison de colonnes de base de données simples ou multiples, en fonction de vos besoins.

Les colonnes définies existent dans votre interrogation, mais non dans la base de données. Vous pouvez choisir de les afficher dans la fenêtre Résultats, sous la forme de colonnes, ou de les garder masquées (comme lorsque vous les utilisez pour créer d'autres colonnes définies).

Remarque : La colonne définie n'est qu'une partie de votre interrogation et ne modifie pas la définition de table enregistrée dans la base de données.


Suppression d'une colonne définie

  Rubriques connexes

Pour supprimer d'une interrogation une colonne définie :

1	Dans l'espace de travail de Query Builder, cliquez sur [image] dans la barre d'icônes.

2	Cliquez sur le nom de la colonne à supprimer.

3	Cliquez sur Supprimer.


Colonnes définies (et calculées) - Exemple

  Rubriques connexes 	  Tous les exemples

Vous voulez calculer des prévisions de budget concernant la paye nette de l'année prochaine (NET_PAY_NEXT) en tenant compte d'une augmentation de salaire de 10 %. Dans le champ Expression, entrez :

(SALARY*1.1) + COMMISSION

Ou, si vous voulez étudier l'effet des augmentations de 10 % de salaire et de commission, entrez :

(SALARY+COMMISSION) * 1.1

Comme NET_PAY est égal à SALARY+COMMISSION, vous pouvez aussi écrire :

NET_PAY * 1.1

Vous pouvez également créer une colonne définie qui affiche la différence entre la paye nette en cours et les prévisions pour l'année prochaine. Appelez cette colonne VARIANCE et définissez-la de la manière suivante :

NET_PAY_NEXT - NET_PAY

Lorsque vous définissez de nouvelles colonnes, les colonnes de base décrites dans votre expression n'ont pas besoin d'exister dans la base de données sous-jacente, bien qu'elles soient finalement extraites des colonnes de la table sous-jacente. VARIANCE, par exemple, équivaut à :

((SALARY+COMMISSION) * 1.1) - (SALARY+COMMISSION)


Suppression d'une colonne de tri

  Rubriques connexes

Pour supprimer une colonne de tri :

1	Dans l'espace de travail de Query Builder, cliquez sur l'icône Trier.

2	Dans la liste Colonnes triées, cliquez deux fois sur le nom de la colonne à supprimer.


Tri des données d'interrogation

  Rubriques connexes

Pour trier les données extraites par l'interrogation :

1	Dans l'espace de travail de Query Builder, cliquez sur [image] dans la barre d'icônes.

2	Dans la liste Colonnes disponibles, cliquez deux fois sur la ou les colonnes à trier. L'inclusion d'une colonne de tri dans l'interrogation n'est pas nécessaire.

Pour modifier l'ordre de tri d'une colonne par rapport à l'option par défaut (ordre croissant) :

1	Dans la liste Colonnes triées, cliquez sur la colonne voulue pour la sélectionner.

2	Sélectionnez le bouton d'option Descendant.

3	Cliquez sur OK.


Définition d'une colonne

  Rubriques connexes

Pour définir une nouvelle colonne dans une table :

1	Ouvrez la table dans laquelle vous voulez définir une colonne.

2	Cliquez sur [image] dans la barre d'icônes.

3	Cliquez dans la boîte Colonnes définies.

4	Entrez le nom de la nouvelle colonne.

5	Cliquez dans la boîte Définies comme.

6	Entrez l'expression qui définit votre colonne.

7	Cliquez sur OK.


Collage d'une fonction

  Exemples 	  Rubriques connexes

Pour coller une fonction dans une condition :

1	Activez le champ Condition et placez le curseur à l'endroit où vous voulez insérer la fonction.

2	Cliquez sur [image] dans la barre d'icônes.

3	Utilisez les cases à cocher Afficher catégories pour filtrer les types de fonction affichés.

4	Sélectionnez une fonction dans la liste.

5	Cochez la case Coller des arguments pour inclure les arguments par défaut.

6	Cliquez sur OK.

7	Dans le champ Condition, remplacez les arguments par défaut par ceux à utiliser.


Exemple de fonction (extraction de noms de plus de 30 caractères)

  Rubriques connexes 	  Tous les exemples

Supposez que vous vouliez répertorier les noms de clients dépassant 30 caractères, car leur taille est trop importante pour vos étiquettes de publipostage. Pour ce faire, créez une condition à l'aide de la fonction LENGTH. Cette fonction compte les caractères d'une chaîne.

Dans cet exemple, l'argument de la fonction LENGTH correspond à la colonne NAME de la table client. La fonction apparaît donc de la manière suivante dans la condition :

LENGTH (NAME) > 30

A l'aide de cette condition, Query Builder étudie tous les noms de la colonne NAME et renvoie ceux dont la longueur de champ dépasse 30 caractères.


Création d'une condition imbriquée

  Rubriques connexes

Pour créer une condition imbriquée :

1	Dans le champ Condition, entrez la première expression en utilisant un opérateur de comparaison, comme : TOTAL<1000.Conseil

2	Entrez l'expression suivante, en utilisant un autre opérateur de comparaison, comme : EMP.LAST_NAME=SMITH

3	Entrez une troisième expression, en utilisant le même opérateur de comparaison (=) comme : EMP.LAST_NAME=JONES.

4	Sélectionnez la deuxième et la troisième expressions.

5	Cliquez sur [image] dans la barre d'icônes.

6	Cliquez sur [image] dans la barre d'icônes.


Dimensionnement de la fenêtre Conditions

Pour dimensionner la fenêtre Conditions :

1	Cliquez sur le rectangle noir situé en bas à gauche de la barre de défilement de l'espace de travail de Query Builder et déplacez le curseur vers le haut, dans la zone de travail.

2	Faites glisser la ligne noire épaisse vers la gauche pour agrandir la fenêtre Conditions ou vers la droite pour la diminuer. Si la fenêtre est entièrement masquée, la barre de partage apparaît à l'extrémité gauche de la barre de défilement.


Syntaxe des conditions

  Rubriques connexes

Le format général d'une condition est le suivant :

[expression] [opérateur] [expression]

où

expression	indique les valeurs qui définissent la condition ; les expressions peuvent indiquer des dates, des caractères, des valeurs littérales, des nombres, des fonctions et des colonnes de bases de données.
opérateur	indique un opérateur de comparaison comme supérieur à (>), inférieur à (<) et égal à (=). Les opérateurs les plus courants sont indiqués dans le menu Données et la barre d'icônes. A ces opérateurs viennent s'ajouter des opérateurs de comparaison spéciaux comme BETWEEN, LIKE et IN.
Valeurs de données

Lorsque vous travaillez sur des dates, les opérateurs de comparaison font référence à un temps relatif. Inférieur à (<) signifie "avant".

Les valeurs de date doivent être entre guillemets simples et indiquées au format JJ-MOI-AA, où JJ représente le jour du calendrier, MOI le mois et AA l'année.

Valeurs de caractères

Dans les colonnes de type caractère, les opérateurs font référence à l'ordre alphanumérique (A précédant B, les noms qui commencent par A sont "inférieurs à" ceux qui commencent par B, et ainsi de suite).

Valeurs littérales

Les valeurs littérales doivent être entre guillemets simples pour ne pas être confondues avec des noms de colonne. La comparaison entre les valeurs de base de données et les valeurs que vous indiquez tient compte de la différence entre majuscules et minuscules.

Valeurs numériques

Si la valeur que vous entrez est de type NUMBER, entrez uniquement la valeur numérique, sans mise en forme (c'est-à-dire sans séparateur décimal ou symbole monétaire ($), par exemple). Les guillemets simples ne sont pas nécessaires dans les colonnes numériques contenant des valeurs numériques.

Remarque : Trois opérateurs logiques (booléens) (AND, OR, NOT) vous permettent de créer des conditions multiples ou des conditions de négation.

Informations complémentaires : Pour plus d'informations sur la syntaxe Oracle des différents types de données, reportez-vous à Oracle8 Server SQL Language Reference Manual.


Création d'une condition de négation

  Rubriques connexes

Pour créer une condition de négation :

1	Créez une condition.

2	Cliquez sur le champ Condition pour l'activer.

3	Sélectionnez un opérateur logique pour la condition.

4	Cliquez sur [image] dans la barre d'icônes.

5	Appuyez sur la touche Entrée ou Retour pour valider la condition.

Remarque : L'opérateur NOT AND renvoie toutes les lignes, sauf celles qui remplissent toutes les conditions ; l'opérateur NOT OR renvoie toutes les lignes, sauf celles qui remplissent l'une des conditions.


Enregistrement des instructions SQL d'une interrogation

  Rubriques connexes

Pour enregistrer les instructions SQL d'une interrogation :

  Dans la fenêtre Interrogation, sélectionnez Fichier [image] Enregistrer instructions SQL pour afficher la boîte de dialogue correspondante, dans laquelle vous pouvez indiquer un nom de répertoire et de fichier.


Modification de l'ordre des colonnes

  Rubriques connexes

Pour modifier l'ordre d'apparition des colonnes dans les résultats de votre interrogation :

1	Dans l'espace de travail de Query Builder, cliquez sur [image] dans la barre d'icônes.

2	Dans la boîte de dialogue Séquence de colonne, cliquez sur une colonne de la liste Colonnes affichées et faites-la glisser vers l'emplacement voulu. La première colonne apparaît à l'extrémité gauche de l'écran et la dernière à l'extrémité droite.


Affichage des instructions SQL d'une interrogation

  Rubriques connexes

Pour afficher les instructions SQL d'une interrogation :

  Dans l'espace de travail de Query Builder, cliquez sur [image] dans la barre d'icônes.

La boîte de dialogue d'affichage des instructions SQL est en lecture seule ; vous ne pouvez ni modifier ni copier les instructions SQL.


Ajout d'une colonne à une interrogation

  Rubriques connexes

Pour ajouter une colonne à une interrogation :

 Sélectionnez la colonne dans la table de la fenêtre Interrogation. Conseil

Lorsqu'une coche apparaît dans la colonne, cette dernière est affichée dans les résultats de l'instruction SQL et de l'interrogation. Vous ne pouvez pas inclure une colonne dans l'instruction SQL et la masquer dans les résultats affichés.


Messages de Query Builder

  Rubriques connexes

Cliquez sur une série de messages, puis utilisez les boutons de défilement page à page jusqu'au message qui vous intéresse.

BRW-15000 à BRW-15092

BRW-15093 à BRW-15146

BRW-15147 à BRW-15196

BRW-15197 à BRW-15390

BRW-15391 à BRW-15424

BRW-15430 à BRW-15520

BRW-15521 à BRW-15569

BRW-15570 à BRW-15912

BRW-15913 à BRW-16551

BRW-16552 à BRW-16660


BRW-15000 : Erreur interne dans le gestionnaire d'erreur de Query Builder

Cause :	Le gestionnaire d'erreurs n'a pas pu être lancé.

Action :	Contactez le Support technique Oracle.


BRW-15001 : <numéro de message>

Cause :	Le fichier de messages est introuvable ou incompatible avec cette version de Query Builder.

Action :	Vérifiez la présence du fichier de messages approprié dans le répertoire Query Builder d'Oracle Home.


BRW-15002 : Mémoire insuffisante !

Cause :	Mémoire insuffisante.

Action :	Enregistrez vos documents et relancez Oracle Query Builder.


BRW-15003 : Nom de fichier incorrect : <nom>

Cause :	L'utilisateur a entré un nom de fichier non valide (comprenant, par exemple, trop de caractères).

Action :	Entrez un nom de fichier valide.


BRW-15004 : Erreur interne (<valeur1>:<valeur2>)

Cause :	Il s'est produit une erreur interne. Oracle Query Builder est dans un état non fiable.

Action :	Contactez le Support technique Oracle.


BRW-15005 : Aucun nom de fichier indiqué

Cause :	L'utilisateur n'a pas entré de nom de fichier dans la boîte de dialogue Export de données.

Action :	Entrez un nom de fichier.


15006 : Description impossible (DESCRIBE) de la table de données

Cause :	Message interne.

Action :	Contactez le Support technique Oracle.


BRW-15007 : Instruction SQL trop complexe à afficher

Cause :	La taille de la mémoire tampon d'édition de MSWINDOWS est dépassée.

Action :	Supprimez certaines colonnes de l'interrogation pour diminuer la taille de l'instruction SQL.


BRW-15009 : Privilèges insuffisants pour se connecter via Oracle Query Builder

Cause :	Les privilèges de connexion sont désactivés dans la table SYSTEM.BROWSER_PROFILE.

Action :	Contactez votre administrateur de bases de données.


BRW-15065 : Erreur de syntaxe

Cause :	L'utilisateur a entré une formule incorrecte.

Action :	Entrez à nouveau l'expression.


BRW-15066 : Expression trop complexe

Cause :	Expression trop complexe.

Action :	Simplifiez l'expression.


BRW-15068 : Fonction inconnue : <nom>

Cause :	L'utilisateur a entré un nom de fonction non valide.

Action :	Indiquez une fonction valide.


BRW-15069 : Colonne non valide : <nom>

Cause :	L'utilisateur a entré un nom de colonne non valide.

Action :	Entrez un nom de colonne valide.


BRW-15070 : Table non valide : <nom>

Cause :	L'utilisateur a entré un nom de table non valide.

Action :	Entrez un nom de table valide.


BRW-15071 : Propriétaire non valide : <nom>

Cause :	L'utilisateur a entré un nom d'entité ou un nom d'utilisateur non valide.

Action :	Entrez un nom d'entité ou un nom d'utilisateur valide.


BRW-15072 : Condition non valide

Cause :	L'utilisateur a entré une condition non valide.

Action :	Supprimez la condition et entrez une condition valide.


BRW-15073 : Expression non valide

Cause :	L'utilisateur a entré une expression non valide (généralement un blanc).

Action :	Entrez une expression valide.


BRW-15074 : Utilisation erronée du mot réservé <nom>

Cause :	L'utilisateur a utilisé un mot réservé comme identificateur.

Action :	Les identificateurs ne peuvent pas être des mots réservés. Pour plus de détails, reportez-vous à l'aide ou à la documentation.


BRW-15075 : Fonction <nom> : nombre d'arguments erroné

Cause :	L'utilisateur a entré trop peu ou trop d'arguments pour la fonction indiquée.

Action :	Entrez les arguments appropriés. Pour plus de détails, reportez-vous à l'aide ou à la documentation.


BRW-15077 : Nom ambigu : <nom>

Cause :	L'utilisateur a entré un nom de colonne ambigu.

Action :	Entrez un nom de colonne spécifique et éventuellement des qualificateurs.


BRW-15078 : Redéfinition du nom  <nom>

Cause :	L'utilisateur a redéfini une table de données ou une colonne en utilisant un nom qui existe déjà.

Action :	Définissez la colonne ou la table en utilisant un nouveau nom.


BRW-15079 : Aucune colonne sélectionnée dans l'interrogation

Cause :	L'interrogation a été créée ou entrée sans que des colonnes soient affichées.

Action :	Sélectionnez des colonnes avant d'exécuter à nouveau l'interrogation.


BRW-15080 : Aucune table indiquée dans l'interrogation

Cause :	L'utilisateur a entré une interrogation sans indiquer de tables.

Action :	Sélectionnez des tables avant d'exécuter à nouveau l'interrogation.


BRW-15081 : La commande START WITH exige CONNECT BY

Cause :	L'instruction SQL contenait une clause START WITH sans clause CONNECT BY.

Action :	Indiquez une clause CONNECT BY si vous avez l'intention d'utiliser START WITH.


BRW-15082 : La commande PRIOR exige CONNECT BY

Cause :	L'instruction SQL contenait une clause PRIOR sans clause CONNECT BY.

Action :	Indiquez une clause CONNECT BY si vous avez l'intention d'utiliser PRIOR.


BRW-15083 : Fonction <nom> : argument incorrect

Cause :	L'utilisateur a entré, pour la fonction, un type d'argument erroné.

Action :	Entrez un type d'argument correct.


BRW-15084 : Commentaire interrompu

Cause :	La mémoire tampon en cours de lecture comporte un commentaire de type C non déterminé.

Action :	Editez le fichier (en veillant à ce qu'il se termine correctement) et ouvrez-le à nouveau à partir de Query Builder.


BRW-15085 : Présence de référence circulaire dans la colonne définie

Cause :	La modification d'une colonne définie a conduit à une référence circulaire.

Action :	Redéfinissez la colonne afin qu'elle ne fasse pas référence à elle-même dans sa propre définition.


BRW-15086 : Les arguments d'une fonction de sous-interrogation corrélative doivent être de type colonne

Cause :	Vous avez fourni un argument complexe (comme sal, deptno*2).

Action :	Indiquez uniquement des colonnes valides, et non des expressions, dans la sous-interrogation.


BRW-15087 : Emplacement non valide : <nom>

Cause :	L'utilisateur a entré une adresse de base de données non valide pour une table.

Action :	Entrez une adresse de base de données valide.


BRW-15088 : Table ambiguë : <nom>

Cause :	L'utilisateur a entré un nom de table de données ambiguë (que plusieurs tables utilisent).

Action :	L'utilisateur doit fournir davantage de qualificatifs pour la table de données. Pour plus de détails, reportez-vous à l'aide ou à la documentation.


BRW-15089 : Un seul opérateur PRIOR autorisé dans une expression

Cause :	L'utilisateur a entré plusieurs clauses PRIOR dans une expression.

Action :	Supprimez l'une des clauses PRIOR.


BRW-15090 : Le nom <nom> est déjà utilisé

Cause :	L'utilisateur a entré un nom qui était déjà utilisé.

Action :	Entrez un nouveau nom.


BRW-15091 : Nom erroné : <nom>

Cause :	L'utilisateur a entré un nom qui n'était pas valide (qui comportait des espaces ou des caractères impossibles à imprimer).

Action :	Entrez un nouveau nom.


BRW-15092 : Mauvaise utilisation d'une relation externe

Cause :	L'utilisateur a indiqué une relation extérieure dans un élément autre qu'une colonne.

Action :	Les relations extérieures ne sont valides que pour les colonnes.


BRW-15093 : Nombre d'éléments erronés dans l'enregistrement correspondant

Cause :	L'utilisateur a entré deux d'enregistrements ayant des nombres d'éléments différents.

Action :	Entrez à nouveau la condition.


BRW-15094 : Fonction de groupe trop imbriquée

Cause :	L'utilisateur a entré une condition (expression) globale double (triple).

Action :	Simplifiez la condition ou l'expression globale.


BRW-15096 : Nom de table en conflit avec <nom1>, renommé en <nom2>

Cause :	Lors de l'ouverture d'une interrogation, un nom d'alias de table est en conflit avec une nouvelle colonne.

Action :	L'utilisateur peut renommer l'alias.


BRW-15097 : Nom en conflit avec <nom1>, renommé en <nom2>

Cause :	Lors du chargement d'une interrogation enregistrée, un nom d'alias est en conflit avec une nouvelle colonne.

Action :	Renommez l'alias.


BRW-15098 : Table <nom> dupliquée dans la clause FROM

Cause :	La table de données figure plusieurs fois dans la clause FROM (sans alias).

Action :	Supprimez de la clause FROM les tables de données dupliquées.


BRW-15099 : La sous-interrogation ramène un nombre incorrect de valeurs

Cause :	La sous-interrogation retourne trop peu ou trop de valeurs.

Action :	Entrez à nouveau la condition.


BRW-15100 : Les expressions corrélatives ne sont pas autorisées dans ce cas

Cause :	L'utilisateur a entré une expression corrélative en dehors d'une condition.

Action :	Entrez à nouveau la condition ou l'expression.


BRW-15101 : Pseudonyme de table non ré-utilisable dans la même clause FROM : <nom>

Cause :	L'utilisateur a tenté d'utiliser un alias dans la même clause FROM que celle dans laquelle il avait été défini.

Action :	Supprimez la référence à l'alias.


BRW-15102 : Trop d'éléments dans cet enregistrement

Cause :	L'utilisateur a entré un enregistrement comportant plus de 254 éléments.

Action :	Diminuez le nombre d'éléments - fractionnez la condition en éléments OR.


BRW-15103 : Instruction SELECT sans nom dans la clause FROM

Cause :	La clause SQL FROM contient une interrogation sans nom.

Action :	Ajoutez le nom de l'interrogation et relancez l'analyse.


BRW-15110 : Numéro erroné ou précision dépassée <nom_colonne>
BRW-15110 : Numéro erroné ou précision dépassée : <nom_colonne>

Cause :	Entrée non numérique ou valeur numérique dépassant la précision de cette colonne.

Action :	Entrez à nouveau une valeur numérique et une précision valides.


BRW-15111 : Date non valide : <valeur>

Cause :	Le masque de format de colonnes ou le masque par défaut ne permet pas la mise en forme.

Action :	Entrez à nouveau un masque de format valide.


BRW-15112 : La chaîne de caractères entrée dépasse la limite permise pour cette colonne : <##>

Cause :	L'utilisateur a entré une chaîne dépassant la limite autorisée par cette colonne.

Action :	Entrez un chaîne plus courte.


BRW-15113 : Tous les paramètres n'ont pas été indiqués

Cause :	L'utilisateur a tenté d'exécuter une interrogation sans définir tous les paramètres.

Action :	Indiquez les paramètres nécessaires ou excluez les expressions paramétrées et relancez l'opération.


BRW-15114 : Les paramètres ne peuvent être que des expressions constantes

Cause :	L'utilisateur a tenté d'entrer une valeur de paramètre dépendant d'une valeur de colonne.

Action :	Indiquez un paramètre valide, qui ne dépend pas de la valeur d'une colonne.


BRW-15115 : Mauvaise utilisation du paramètre <nom>

Cause :	L'utilisateur a entré un nom de paramètre pour une colonne ou une table.

Action :	Indiquez un paramètre valide.


BRW-15116 : Nom de paramètre non valide <nom>

Cause :	L'utilisateur a entré un nom de paramètre non valide.

Action :	Indiquez un nom de paramètre valide.


BRW-15117 : Paramètre non valide <nom>

Cause :	L'utilisateur a entré un paramètre non valide.

Action :	Indiquez un paramètre valide.


BRW-15128 : Erreur interne dans l'analyseur : <valeur>

Cause :	Erreur interne de l'analyseur/scanneur.

Action :	Contactez le Support technique Oracle.


BRW-15129 : La colonne dérivée <nom> n'est pas un argument autorisé dans une sous-interrogation corrélative

Cause :	Utilisation de colonnes dérivées (DQ4) dans une sous-interrogation corrélative.

Action :	Supprimez cet argument de la sous-interrogation corrélative.


BRW-15130 : Echec d'exécution de l'interrogation

Cause :	Erreur d'accès à la base de données.

Action :	Etudiez l'erreur et relancez l'interrogation.


BRW-15131 : Opérateur relationnel non valide

Cause :	L'utilisateur a appliqué à une condition un opérateur non valide.

Action :	Entrez un opérateur valide.


BRW-15132 : Absence de clause FROM à l'emplacement prévu

Cause :	Une clause FROM n'est pas précédée d'une clause FROM ou d'une clause GROUP/HAVING.

Action :	Editez une instruction SQL.


BRW-15133 : Présence de clause FROM sans clause SELECT correspondante

Cause :	Une clause FROM n'est pas précédée d'une clause SELECT.

Action :	Editez une instruction SQL.


BRW-15135 : Condition non modifiable

Cause :	L'utilisateur a tenté de modifier la première condition de l'Editeur de schémas.

Action :	Exécutez l'opération sur les conditions fils.


BRW-15136 : SQL contient des opérateurs d'ensemble

Cause :	Les opérateurs d'ensemble ne sont pas pris en compte.

Action :	Exécutez l'interrogation dans SQL*Plus.


BRW-15137 : Génération impossible des noms des expressions complexes

Cause :	Lors de l'ouverture d'un fichier SQL, le programme a rencontré des expressions sans nom.

Action :	Définissez des noms de colonne dans le fichier .sql.


BRW-15138 : La clause CONNECT BY existe, mais n'a pas été prise en compte

Cause :	La clause CONNECT BY n'est pas prise en compte à ce niveau (supérieur).

Action :	Exécutez l'interrogation dans SQL*Plus si vous voulez obtenir des résultats de CONNECT BY.


BRW-15139 : Impossible de séparer la condition

Cause :	Tentative de séparation d'une condition supérieure.

Action :	Cette opération n'est pas prise en charge.


BRW-15141 : La table d'interrogation ne peut pas contenir de paramètres

Cause :	Lors de la création d'une vue, le système a rencontré un ou plusieurs paramètres.

Action :	Excluez les paramètres de l'interrogation ou ignorez-les.


BRW-15142 : Deux colonnes au moins ont le même nom : <nom>

Cause :	Lors de la création d'une vue, le système a rencontré des noms de colonne en double.

Action :	Utilisez la commande Define pour renommer les colonnes en double.


BRW-15143 : <nom> est déjà une colonne affichée

Cause :	L'utilisateur a tenté d'indiquer une colonne d'affichage en double.

Action :	Pour avoir des colonnes en double, donnez un nouveau nom à la colonne et affichez-la à nouveau.


BRW-15144 : <nom> est déjà une colonne de tri

Cause :	L'utilisateur a tenté d'indiquer une colonne de tri en double.

Action :	Pour avoir des colonnes en double, donnez un nouveau nom à la colonne et triez-la à nouveau.


BRW-15145 : <nom> est déjà une colonne de groupe

Cause :	L'utilisateur a tenté d'indiquer une colonne de groupe en double.

Action :	Pour avoir des colonnes en double, donnez un nouveau nom à la colonne et regroupez-les à nouveau.


BRW-15146 : Erreur interne lors de l'ouverture de l'interrogation

Cause :	Erreur interne pendant l'ouverture de l'interrogation.

Action :	Contactez le Support technique Oracle..


BRW-15147 : Erreur interne lors de la sauvegarde de l'interrogation

Cause :	Il s'est produit une erreur interne pendant l'enregistrement de l'interrogation.

Action :	Contactez le Support technique Oracle..


BRW-15148 : Une relation doit être définie entre des types de données/tailles compatibles

Cause :	L'utilisateur a tenté d'établir une relation entre deux colonnes ayant des types de données incompatibles.

Action :	N'établissez de relations qu'entre des types de données compatibles. Pour tous détails, reportez-vous à l'aide ou à la documentation.


BRW-15150 : Définition impossible d'auto-relation

Cause :	L'utilisateur a tenté de définir une relation dans une table de données.

Action :	Définissez un pseudonyme pour la table de données, puis définissez la relation.


BRW-15151 : La relation définie par l'utilisateur existe déjà

Cause :	L'utilisateur a tenté de définir une relation qui existe déjà.

Action :	Aucune.


BRW-15152 : Colonne non autorisée dans cette relation

Cause :	L'utilisateur a indiqué une expression non valide lorsqu'il a défini une relation.

Action :	Entrez une nouvelle colonne.


BRW-15153 : Un alias de table ne peut pas se terminer par _A<nombre>

Cause :	Nom d'alias non valide.

Action :	Entrez un nouveau nom qui ne se termine pas par _A<nombre>.


BRW-15154 : Suppression impossible de la relation de base de données

Cause :	L'utilisateur a tenté de supprimer la relation de dictionnaire de base de données.

Action :	Seules les relations définies par l'utilisateur peuvent être supprimées.


BRW-15155 : Il se peut que les documents suivants aient été touchés : <nom>

Cause :	Une interrogation enregistrée a été utilisée comme table de données dans d'autres documents d'interrogation.

Action :	Si vous modifiez ou supprimez cette interrogation, ces autres interrogations seront également concernées.


BRW-15156 : Impossible d'inclure une table portant le même nom que l'interrogation

Cause :	L'utilisateur a tenté d'inclure une table de données D dans un document d'interrogation D.

Action :	Renommez l'interrogation avant d'inclure cette table.


BRW-15157 : Opérations de tri, de groupe ou de ventilation impossibles sur des colonnes de type LONG

Cause :	Tentative d'exécution d'opérations de tri, de groupe ou de ventilation sur une colonne de type LONG.

Action :	Annulez l'opération. Elle n'est pas prise en charge par Oracle.


BRW-15158 : Opérations de tri, de groupe ou de ventilation impossibles sur des colonnes de type RAW

Cause :	Tentative d'exécution d'opérations de tri, de groupe ou de ventilation sur une colonne de type RAW.

Action :	Annulez l'opération. Elle n'est pas prise en charge par Oracle.


BRW-15159 : Affichage impossible de colonnes de type LONG à partir de bases de données éloignées

Cause :	Tentative d'inclusion de colonnes de type LONG à partir de bases de données éloignées.

Action :	Annulez l'opération. Elle n'est pas prise en charge par Oracle.


BRW-15160 : Nombre maximum <##> de colonnes dépassé

Cause :	L'utilisateur a dépassé le nombre maximum de colonnes d'affichage/de groupe/de tri admis.

Action :	Supprimez les colonnes dont vous n'avez pas besoin, puis ajoutez celles dont vous avez besoin


BRW-15161 : Erreur d'ouverture de la/des colonne(s) affichée(s) <nom_colonne(s)>

Cause :	Impossible d'ouvrir une colonne d'affichage, car la base de données a été modifiée depuis l'enregistrement.

Action :	Cette colonne peut avoir été modifiée ou ne plus exister dans la base de données.


BRW-15162 : Erreur d'ouverture de la/des colonne(s) de tri <nom_colonne(s)>

Cause :	Impossible d'ouvrir une colonne de tri, car la base de données a été modifiée depuis l'enregistrement.

Action :	Cette colonne peut avoir été modifiée ou ne plus exister dans la base de données.


BRW-15163 : Erreur d'ouverture de la/des colonne(s) de groupement <nom_colonne(s)>

Cause :	Impossible d'ouvrir une colonne de groupement, car la base de données a été modifiée depuis l'enregistrement.

Action :	Cette colonne peut avoir été modifiée ou ne plus exister dans la base de données.


BRW-15164 : Erreur d'ouverture de la/des colonne(s) de ventilation <nom_colonne(s)>

Cause :	Impossible d'ouvrir une colonne de ventilation, car la base de données a été modifiée depuis l'enregistrement.

Action :	Cette colonne peut avoir été modifiée ou ne plus exister dans la base de données.


BRW-15165 : Nombre maximum <##> de colonnes de ventilation dépassé

Cause :	L'utilisateur a dépassé le nombre maximum de colonnes de ventilation prises en charge.

Action :	Supprimez les colonnes de ventilation dont vous n'avez plus besoin, puis entrez à nouveau celles dont vous avez besoin.


BRW-15166 : Erreur d'ouverture de la/des conditions <valeur>

Cause :	Impossible d'ouvrir les conditions indiquées, car la base de données a été modifiée depuis l'enregistrement.

Action :	Les tables ou les colonnes utilisées dans cette condition peuvent ne plus exister dans la base de données.


BRW-15167 : Le pseudonyme doit comporter <##> octets ou moins : <nom>

Cause :	Le nom du pseudonyme est trop long.

Action :	Essayez d'entrer un pseudonyme ayant au maximum 30 octets de long.


BRW-15168 : Opération de groupement impossible sur expression globale

Cause :	Tentative d'exécution d'un groupement sur une expression globale.

Action :	Exécutez un groupement sur une autre expression.


BRW-15169 : <nom> a déjà été défini comme colonne de ventilation

Cause :	L'utilisateur a tenté d'indiquer une colonne de ventilation dupliquée.

Action :	Si vous voulez une colonne dupliquée, donnez-lui un nouveau nom et relancez la ventilation.


BRW-15170 : Contrainte non valide pour la table <nom>

Cause :	L'utilisateur a entré une contrainte non valide pour la table sélectionnée.

Action :	Entrez à nouveau la contrainte.


BRW-15171 : Contrainte non valide pour la colonne de table <nom>

Cause :	L'utilisateur a entré une contrainte non valide pour la colonne sélectionnée.

Action :	Entrez à nouveau la contrainte.


BRW-15172 : Les sous-interrogations ne sont pas autorisées dans les contraintes

Cause :	L'utilisateur a entré une contrainte non valide.

Action :	Entrez à nouveau la contrainte.


BRW-15173 : Les conditions globales ne sont pas autorisées dans les contraintes

Cause :	L'utilisateur a entré une contrainte non valide.

Action :	Entrez à nouveau la contrainte.


BRW-15174 : Les contraintes ne peuvent porter que sur une seule table

Cause :	L'utilisateur a entré une contrainte non valide.

Action :	Entrez à nouveau la contrainte.


BRW-15175 : Le masquage de toutes les colonnes entraîne le non chargement de la table

Cause :	Toutes les colonnes sont masquées. Au moins l'une d'entre elles doit être affichée.

Action :	Utilisez l'utilitaire Query Builder Administrator pour afficher les colonnes masquées.


BRW-15188 : 1 ligne ramenée

Cause :	Message d'état pour une ligne ramenée.

Action :	Aucune.


BRW-15189 : <##> lignes ramenées

Cause :	Message d'état pour n lignes ramenées.

Action :	Aucune.


BRW-15190 : Décompte impossible sans exécution ; l'interrogation ramène <= <##> ligne(s)

Cause :	Message d'état pour différence de n lignes ramenées.

Action :	Aucune.


BRW-15192 : Format <nom1> non autorisé pour la colonne '<nom2>'

Cause :	L'utilisateur a entré un format non reconnaissable pour une colonne d'affichage.

Action :	Essayez un autre format.


BRW-15193 : Format non autorisé

Cause :	L'utilisateur a entré un format non reconnaissable pour une colonne d'affichage.

Action :	Essayez un autre format.


BRW-15195 : Type de colonne incompatible dans la relation : <nom>

Cause :	Tentative de création d'une relation non valide.

Action :	Les types de colonne ne sont pas compatibles. Pour plus de détails, reportez-vous à l'aide ou à la documentation.


BRW-15196 : Erreur d'ouverture de <nom(s)> table(s)

Cause :	Impossible d'ouvrir des tables de données, car la base de données a été modifiée ou l'objet n'existe pas.

Action :	Vérifiez votre chaîne de connexion (ou contactez l'administrateur de bases de données).


BRW-15197 : Erreur de restauration de position pour la ou les colonnes <nom>

Cause :	La colonne n'a pas pu être repositionnée, car la base de données a été modifiée ou l'objet n'existe pas.

Action :	Vérifiez votre chaîne de connexion (ou contactez l'administrateur de bases de données).


BRW-15198 : Erreur de restauration de jointure : <valeur>

Cause :	Le lien n'a pas pu être restauré pendant l'ouverture, car la base de données a été modifiée ou l'objet n'existe pas.

Action :	Vérifiez votre chaîne de connexion (ou contactez l'administrateur de bases de données).


BRW-15199 : Erreur de restauration de l'état d'inclusion : <valeur>

Cause :	L'état d'inclusion n'a pas pu être défini pendant l'ouverture, car la base de données a été modifiée ou l'objet n'existe pas.

Action :	Vérifiez votre chaîne de connexion (ou contactez l'administrateur de bases de données).


BRW-15200 : Erreur de restauration d'un état de jointure externe pour la jointure : <valeur>

Cause :	La jointure externe n'a pas pu être définie pendant  l'ouverture, car la base de données a été modifiée ou l'objet n'existe pas.

Action :	Vérifiez votre chaîne de connexion (ou contactez l'administrateur de bases de données).


BRW-15258 : Nom de document non valide : <nom>

Cause :	L'utilisateur a entré un nom de document non valide.

Action :	Entrez un nom de document valide.


BRW-15259 : Le document dépasse la taille maximum autorisée de 64 Ko

Cause :	L'utilisateur a tenté d'enregistrer/d'ouvrir un document de plus de 64 Ko.

Action :	Diminuez la taille du document.


BRW-15260 : Le document <nom> n'existe pas

Cause :	L'utilisateur a indiqué un document qui n'existe pas.

Action :	Indiquez un autre document.


BRW-15261 : Le document <nom> existe déjà

Cause :	L'utilisateur a tenté d'enregistrer un document sous le nom d'un document existant.

Action :	Indiquez un autre nom de document ou supprimez le document existant.


BRW-15262 : Plusieurs documents du même nom <nom>

Cause :	Il existe plusieurs documents portant le même nom.

Action :	Supprimez-les tous sauf un.


BRW-15263 : L'objet de base de données <nom> existe déjà

Cause :	L'utilisateur a tenté d'enregistrer un document sous le nom d'un objet existant.

Action :	Indiquez un autre nom de document.


BRW-15264 : La table <nom> n'existe pas

Cause :	La vue correspondant à un document enregistré a été supprimée.

Action :	Enregistrez à nouveau le document (il n'existe plus en tant que vue d'interrogation).


BRW-15265 : Suppression ou modification de la table <nom>

Cause :	La vue Table de données correspondant à un document enregistré a été modifiée.

Action :	Enregistrez à nouveau le document.


BRW-15266 : Le fichier <nom> n'existe pas

Cause :	L'utilisateur a indiqué un fichier qui n'existait pas.

Action :	Indiquez un autre fichier


BRW-15267 : Le fichier <nom> existe déjà

Cause :	L'utilisateur a tenté d'enregistrer un document sous le nom d'un fichier existant.

Action :	Indiquez un autre nom de fichier.


BRW-15268 : Ouverture impossible du fichier <nom>

Cause :	Le noyau d'entrée/sortie n'a pas pu ouvrir un fichier.

Action :	Indiquez un autre fichier


BRW-15269 : Verrouillage impossible du fichier <nom>

Cause :	Le noyau d'entrée/sortie n'a pas pu verrouiller un fichier.

Action :	Indiquez un autre fichier


BRW-15270 : Erreur de lecture du fichier <nom>

Cause :	Erreur du système d'exploitation ou erreur de format de fichier.

Action :	Indiquez un autre fichier


BRW-15271 : Erreur d'écriture du fichier <nom>

Cause :	Erreur du système d'exploitation ou erreur de noyau d'entrée/sortie.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15272 : Document <nom> Oracle Query Builder obsolète

Cause :	L'utilisateur a tenté d'ouvrir un ancien document, qui n'est plus pris en charge.

Action :	Indiquez un autre document.


BRW-15273 : Le fichier <nom> n'est pas un fichier Oracle Query Builder

Cause :	L'utilisateur a tenté d'ouvrir un fichier qui n'était pas de type Query Builder.

Action :	Indiquez un autre fichier à ouvrir.


BRW-15274 : Le fichier <nom> n'est pas un fichier SQL valide

Cause :	L'utilisateur a tenté d'importer un fichier SQL non valide.

Action :	Indiquez un autre fichier à importer.


BRW-15275 : Aucune donnée à exporter ou à imprimer

Cause :	L'utilisateur a tenté d'exporter ou d'imprimer une interrogation (ou une région) qui ne comportait pas de données.

Action :	Indiquez une autre région ; exécutez l'interrogation ; modifiez l'interrogation.


BRW-15277 : Impossible d'écraser la table courante <nom>

Cause :	Erreur pendant une tentative de suppression/changement de nom d'une ancienne table de données lors d'un enregistrement.

Action :	Réglez le problème posé par la table de données et enregistrez à nouveau.


BRW-15278 : Document enregistré, mais vue <nom> non créée

Cause :	L'interrogation n'est pas une vue valide. Elle a été enregistrée, mais non sous la forme d'une vue de base de données.

Action :	Redéfinissez l'interrogation sous la forme d'une vue valide, ou n'en tenez pas compte (elles sera enregistrée, mais non sous la forme d'une vue).


BRW-15279 : '<nom>' n'est pas un littéral SQL reconnu

Cause :	L'utilisateur a tenté d'importer un fichier qui n'était pas de type SQL*Plus.

Action :	Indiquez un autre fichier à importer.


BRW-15320 : Erreur de mémoire interne E/S (<valeur>, ligne <##>)

Cause :	Etat interne non valide.

Action :	Contactez le Support technique Oracle..


BRW-15321 : Ressource introuvable (<nom>)

Cause :	Les noms de ressource ne correspondent pas au code Query Builder (ou le fichier est altéré).

Action :	Obtenez une version correcte du fichier de ressources Query Builder.


BRW-15322 : Fichier de ressource introuvable

Cause :	La structure du répertoire n'est pas valide, ou il manque un fichier.

Action :	Localisez le fichier de ressource (vérifiez le nom du fichier NLS_LANG).


BRW-15323 : Interrogation déjà ouverte dans l'application en cours (<nom>)

Cause :	L'utilisateur a tenté d'ouvrir plusieurs interrogations ayant le même nom.

Action :	Indiquez un autre fichier


BRW-15324 : Démarrage impossible du système de fenêtrage

Cause :	Variables d'environnement non valides ou manquantes (par exemple, DISPLAY, APIPATH).

Action :	Toutes les variables d'environnement requises doivent être définies correctement.


BRW-15342 : Informations sur cliché introuvables

Cause :	Cette base de données n'accepte pas les clichés (ou erreur de base de données).

Action :	Vérifiez la présence d'une table de dictionnaires de clichés.


BRW-15387 : Echec de connexion

Cause :	Il s'est produit une erreur de base de données ou SQLNet.

Action :	Vérifiez les informations de connexion et relancez l'opération.


BRW-15388 : Chargement de relations de base de données impossible

Cause :	Erreur interne de schéma pendant le chargement des relations de base de données.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15389 : Chargement impossible de la liste de propriétaires accessibles

Cause :	Erreur interne de schéma pendant le chargement de la liste des propriétaires accessibles

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15390 : Chargement impossible de la liste de tables accessibles

Cause :	Erreur interne de schéma pendant le chargement de la liste des tables de données.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15391 : Chargement de table impossible

Cause :	Erreur interne de schéma lors du chargement de la table de données.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15392 : Chargement de table impossible

Cause :	Erreur interne de schéma au cours du chargement de la table.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15393 : Chargement de synonyme impossible

Cause :	Erreur interne de schéma au cours du chargement du synonyme.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15394 : Chargement d'interrogation impossible

Cause :	Erreur interne de schéma au cours du chargement de l'interrogation.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15395 : Chargement impossible des informations associées à une colonne de la table

Cause :	Erreur interne de schéma au cours du chargement d'informations sur une colonne.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15396 : Chargement impossible des informations associées à une colonne synonyme

Cause :	Erreur interne de schéma au cours du chargement d'informations sur une colonne synonyme.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15397 : Chargement de contraintes impossible

Cause :	Erreur interne de schéma au cours du chargement de contraintes.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15398 : Informations sur clé primaire introuvables

Cause :	Erreur interne de schéma lors de la recherche de clés primaires.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15399 : Informations sur clé étrangère introuvables

Cause :	Erreur interne de schéma lors de la recherche de clés étrangères.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15400 : Chargement impossible des commentaires associés à la table ou colonne
BRW-15400 : Chargement impossible des commentaires associés à la table ou à la colonne

Cause :	Erreur interne de schéma lors de l'extraction de commentaires.

Action :	Contactez le Support technique Oracle. si cette erreur est fortuite.


BRW-15401 : Erreur de chargement du lien de base de données <nom>

Cause :	Erreur interne de schéma lors du chargement du lien de base de données.

Action :	Pour plus d'informations, reportez-vous aux messages d'erreur qui accompagnent ce message.


BRW-15402 : Erreur de chargement du propriétaire <nom>

Cause :	Erreur interne de schéma lors du chargement du lien de base de données.

Action :	Pour plus d'informations, reportez-vous aux messages d'erreur qui accompagnent ce message.


BRW-15403 : Erreur de chargement de la table <nom>

Cause :	Erreur interne de schéma lors du chargement de la table de données.

Action :	Pour plus d'informations, reportez-vous aux messages d'erreur qui accompagnent ce message.


BRW-15404 : Erreur de chargement de la contrainte de clé primaire pour <nom> (<valeur>)

Cause :	Erreur interne de schéma lors du chargement d'une contrainte primaire.

Action :	Pour plus d'informations, reportez-vous aux messages d'erreur qui accompagnent ce message.


BRW-15405 : Erreur de chargement de la contrainte de clé étrangère pour <nom>

Cause :	Erreur interne de schéma lors du chargement d'une contrainte étrangère.

Action :	Pour plus d'informations, reportez-vous aux messages d'erreur qui accompagnent ce message.


BRW-15406 : Erreur de chargement du synonyme <nom>

Cause :	Erreur interne de schéma lors du chargement d'une contrainte primaire.

Action :	Pour plus d'informations, reportez-vous aux messages d'erreur qui accompagnent ce message.


BRW-15407 : La table à laquelle le synonyme <nom> fait référence n'existe plus

Cause :	L'utilisateur a tenté de créer un synonyme pour une table de données qui n'existe pas.

Action :	Re-créez le synonyme.


BRW-15408 : Erreur de chargement des informations sur colonne <nom>

Cause :	Erreur Oracle ou suppression de la table de données.

Action :	Re-créez la table de données.


BRW-15409 : Erreur de chargement des informations de contrainte pour <nom> (<valeur>)

Cause :	Erreur Oracle.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15410 : La table à laquelle la clé étrangère <nom> (<valeur>) fait référence est inaccessible

Cause :	La table à laquelle fait référence la clé étrangère n'est pas accessible.

Action :	Autorisez l'utilisateur en cours à accéder à la table.


BRW-15411 : Echec de déconnexion

Cause :	Erreur interne lors de la déconnexion.

Action :	Sortez ou fermez le document.


BRW-15412 : Modification de la table associée à l'interrogation <nom>. Interrogation chargée comme vue.

Cause :	La vue dont dépend l'interrogation a été modifiée après le dernier enregistrement.

Action :	Ouvrez l'interrogation et enregistrez-la à nouveau pour l'utiliser comme une table de données.


BRW-15413 : Suppression de la table associée à l'interrogation <nom>. Interrogation non chargée

Cause :	La vue dont dépend l'interrogation a été supprimée.

Action :	Ouvrez l'interrogation et enregistrez-la à nouveau pour l'utiliser comme une table de données.


BRW-15414 : La table <nom> n'existe plus

Cause :	Cette table de données n'existe plus dans la base de données.

Action :	Si vous avez besoin de cette table, contactez l'administrateur système.


BRW-15415 : Dépassement du nombre maximum de colonnes autorisées par table (254)

Cause :	L'utilisateur a tenté de charger une table de données comportant plus de 254 colonnes.

Action :	Contactez l'administrateur système.


BRW-15416 : Dépassement du nombre maximum de tables autorisées par utilisateur (8192)

Cause :	L'utilisateur est propriétaire d'un trop grand nombre de tables de données.

Action :	Contactez l'administrateur système.


BRW-15417 : Dépassement du nombre maximum de propriétaires et de bases de données autorisés (1024)

Cause :	L'utilisateur a tenté de charger trop de liens d'utilisateur, de propriétaire et de base de données.

Action :	Contactez l'administrateur système.


BRW-15418 : Informations de lien de base de données introuvables

Cause :	Cette base de données ne prend pas en charge le lien avec la base de données ou il s'est produit une erreur au niveau de la base de données.

Action :	Essayez à nouveau d'exécuter l'opération si ce message est inattendu.


BRW-15419 : Informations sur synonymes introuvables

Cause :	Cette base de données ne prend pas en charge les synonymes ou il s'est produit une erreur au niveau de la base de données.

Action :	Essayez à nouveau d'exécuter l'opération si ce message est inattendu.


BRW-15420 : Informations sur contraintes introuvables

Cause :	Cette base de données ne prend pas en charge les contraintes ou il s'est produit une erreur au niveau de la base de données.

Action :	Essayez à nouveau d'exécuter l'opération si ce message est inattendu.


BRW-15421 : Table de commentaires introuvable

Cause :	Cette base de données ne prend pas en charge les commentaires sur la table ou il s'est produit une erreur au niveau de la base de données.

Action :	Essayez à nouveau d'exécuter l'opération si ce message est inattendu.


BRW-15422 : Table de commentaires sur colonne introuvable

Cause :	Cette base de données ne prend pas en charge les commentaires sur la colonne ou il s'est produit une erreur au niveau de la base de données.

Action :	Essayez à nouveau d'exécuter l'opération si ce message est inattendu.


BRW-15423 : Ce synonyme fait référence à une séquence et n'est pas supporté

Cause :	L'utilisateur a tenté de charger un synonyme qui fait référence à une séquence.

Action :	Cette action n'est pas prise en charge.


BRW-15424 : Vous avez dépassé le nombre maximum permis de tentatives de connexion (3)
BRW-15424 : Vous avez dépassé le nombre maximum autorisé de tentatives de connexion (3)

Cause :	L'utilisateur a effectué trop de tentatives de connexion.

Action :	Demandez à l'administrateur système le nom d'utilisateur, le mot de passe et/ou la chaîne de connexion corrects.


BRW-15430 : Informations d'index non chargées

Cause :	La table d'index est introuvable.

Action :	La base de données n'est pas de type Oracle ; essayez un pilote ODBC.


BRW-15434 : Le nombre maximum de colonnes dans la table est <##>

Cause :	L'utilisateur a tenté de créer un nombre de colonnes supérieur au maximum autorisé dans une table.

Action :	Créez moins de colonnes.


BRW-15435 : Privilège DBA requis pour effectuer cette opération

Cause :	Cette opération implique des privilèges DBA.

Action :	Demandez à l'administrateur système de vous accorder le privilège DBA.


BRW-15447 : Suppression d'interrogation impossible. Faites Fichier/Supprimer... à partir de la fenêtre Interrogation

Cause :	L'utilisateur a tenté de supprimer une interrogation.

Action :	Cette opération n'est pas valide à partir de l'Editeur de schéma. Utilisez à la place la fenêtre Interrogation.


BRW-15448 : Copie d'interrogation impossible.  Faites Fichier/Enregistrer sous... à partir de la fenêtre Interrogation

Cause :	L'utilisateur a tenté de copier une interrogation.

Action :	Cette opération n'est pas valide à partir de l'Editeur de schéma. Utilisez à la place la fenêtre Interrogation.


BRW-15449 : Copie de données impossible à partir d'une table ne contenant que des colonnes de type LONG

Cause :	L'utilisateur a tenté de copier une table contenant une colonne de type LONG.

Action :	Cette action n'est pas autorisée pour la base de données.


BRW-15450 : Opération non autorisée sur une table supprimée

Cause :	L'utilisateur a tenté d'effectuer une opération sur une table de données supprimée.

Action :	Commencez par annuler la suppression.


BRW-15451 : Opération non autorisée sur une colonne supprimée

Cause :	L'utilisateur a tenté d'effectuer une opération sur une colonne supprimée.

Action :	Commencez par annuler la suppression.


BRW-15452 : Modification de nom impossible d'une table appartenant à un autre utilisateur

Cause :	L'utilisateur a tenté de définir le nom d'une table de données qui appartenait à un autre utilisateur.

Action :	Cette opération n'est pas autorisée. Demandez au propriétaire de l'exécuter à votre place.


BRW-15466 : Nom de table trop long (Max <##> octets)

Cause :	Le nom de la table de données est trop long.

Action :	Raccourcissez le nom et relancez l'opération.


BRW-15467 : Nom déjà utilisé. Veuillez choisir un autre nom.

Cause :	Le nom est déjà utilisé.

Action :	Choisissez un autre nom.


BRW-15468 : Nom de colonne trop long (Max <##> octets)

Cause :	Le nom de la colonne est trop long.

Action :	Raccourcissez le nom et relancez l'opération.


BRW-15493 : Opération non prise en charge actuellement

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle..


BRW-15494 : Erreur de chargement de texte SQL des vues

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle..


BRW-15495 : Erreur de chargement de texte SQL associé à la vue <nom>

Cause :	Erreur interne.

Action :	Contactez le Support technique Oracle..


BRW-15496 : L'échelle doit être comprise entre <##> et <##>

Cause :	Valeur non valide pour l'échelle.

Action :	Entrez une valeur valide pour l'échelle.


BRW-15498 : Modification d'interrogation impossible

Cause :	La modification d'une interrogation n'est pas autorisée.

Action :	Ouvrez l'interrogation et modifiez-la comme un document Query Builder.


BRW-15499 : Définition impossible d'attributs de colonne dans une table comportant des données dupliquées

Cause :	L'utilisateur a tenté de définir le type de colonne d'une table dupliquée comportant des données.

Action :	Commencez par valider la table, puis tentez de nouveau d'exécuter l'opération.


BRW-15501 : Mémoire virtuelle d'application insuffisante

Cause :	L'espace disque disponible est insuffisant, ou la mémoire système pour le gestionnaire de mémoire virtuelle est saturée.

Action :	Fermez un document ou libérez de la place sur votre disque.


BRW-15502 : <##> lignes autorisées par document

Cause :	Vous avez dépassé le nombre maximum de lignes imposées au moment de la compilation.

Action :	Envisagez d'ajouter des conditions à l'interrogation.


BRW-15504 : Impossible de déterminer le jeu de caractères de la base de données

Cause :	L'instruction SELECT USERENV('LANGUAGE') FROM DUAL a généré l'apparition d'un problème.

Action :	La base de données n'est pas de type Oracle et n'est donc pas prise en charge.


BRW-15505 : Ouverture impossible du fichier de mémoire virtuelle

Cause :	Vous n'avez pas d'autorisation d'écriture ou le système de fichiers est saturé.

Action :	Modifiez l'autorisation d'accès au répertoire ou supprimez des fichiers.


BRW-15506 : Fermeture de fichier de mémoire virtuelle impossible
BRW-15506 : Fermeture du fichier de mémoire virtuelle impossible

Cause :	Erreur du système d'exploitation.

Action :	Demandez l'intervention de l'administrateur système.


BRW-15507 : Lecture de fichier de mémoire virtuelle impossible
BRW-15507 : Lecture du fichier de mémoire virtuelle impossible

Cause :	Le fichier de mémoire virtuelle n'existe pas.

Action :	Assurez-vous que le fichier de mémoire virtuelle est ouvert.


BRW-15508 : Ecriture dans fichier de mémoire virtuelle impossible

Cause :	Le système de fichiers est saturé, ou le fichier de mémoire virtuelle n'a pas été ouvert.

Action :	Supprimez des fichiers. Assurez-vous que le fichier de mémoire virtuelle est ouvert.


BRW-15509 : Création de gestionnaire de mémoire virtuelle impossible
BRW-15509 : Création du gestionnaire de mémoire virtuelle impossible

Cause :	Erreur interne, ou manque de mémoire.

Action :	Demandez l'intervention de l'administrateur système.


BRW-15511 : Taille de la mémoire virtuelle dépassée

Cause :	L'entrée de l'utilisateur est trop importante pour la taille de la mémoire virtuelle

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15513 : Valeur non renseignée dans la commande '<nom>'

Cause :	L'utilisateur a entré <commande>= dans la ligne de commande sans qu'aucune option n'ait été sélectionnée.

Action :	Ajoutez une valeur pour <commande>.


BRW-15514 : Commande non renseignée sur la ligne de commande

Cause :	L'utilisateur a entré =<valeur> dans ligne de commande, mais n'a pas indiqué de commande.

Action :	Ajoutez la commande.


BRW-15515 : Commande <nom> non reconnue sur la ligne de commande

Cause :	L'utilisateur a entré une commande non valide dans la ligne de commande.

Action :	Modifiez la commande.


BRW-15516 : Commande <nom> indiquée deux fois sur la ligne de commande

Cause :	L'utilisateur a entré deux fois la même commande dans la ligne de commande.

Action :	Supprimez une des deux instructions.


BRW-15517 : Commandes incompatibles '<nom1>' et '<nom2>' sur la ligne de commande

Cause :	L'utilisateur a entré deux commandes incompatibles dans la ligne de commande.

Action :	Supprimez une des deux instructions.


BRW-15518 : Option '<nom1>' non valide dans la commande '<nom2>'

Cause :	L'utilisateur a entré une option non valide pour une commande dans la ligne de commande.

Action :	Modifiez l'option.


BRW-15519 : Instructions de connexion multiples entrées sur la ligne de commande

Cause :	L'utilisateur a entré deux instructions de connexion dans la ligne de commande.

Action :	Supprimez une des deux instructions.


BRW-15520 : Nom de document <nom> non valide sur la ligne de commande

Cause :	L'utilisateur a entré un nom de document non valide dans la ligne de commande.

Action :	Modifiez le nom du document.


BRW-15521 : Document non précisé dans la commande '<nom>'

Cause :	L'utilisateur a entré une commande sans indiquer de document dans la ligne de commande.

Action :	Ajoutez un nom de document.


BRW-15522 : Commande '<nom2>' non précisée dans la commande '<nom1>'

Cause :	L'utilisateur a entré une commande sans la compléter par une autre commande obligatoire.

Action :	Ajoutez la commande manquante.


BRW-15523 : Parenthèses incorrectes dans la commande '<nom>'

Cause :	L'utilisateur n'a pas entré de parenthèses par paire dans la ligne de commande.

Action :	Corrigez.


BRW-15530 : Edition de ligne supprimée impossible

Cause :	L'utilisateur a tenté d'éditer une ligne marquée pour être supprimée.

Action :	Commencez par annuler la suppression de la ligne.


BRW-15531 : La ligne a été supprimée de la base de données

Cause :	Un autre utilisateur a supprimé cette ligne depuis votre dernière exécution de l'interrogation.

Action :	Contactez le Support technique Oracle.. Cette erreur ne devrait jamais se produire.


BRW-15532 : La ligne a été modifiée par un autre utilisateur. Répétez l'interrogation.

Cause :	Un autre utilisateur a mis cette ligne à jour depuis votre dernière exécution de l'interrogation.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15533 : La ligne est actuellement verrouillée par un autre utilisateur

Cause :	Cette ligne est en cours d'édition par un autre utilisateur.

Action :	Tentez à nouveau d'exécuter l'opération à un stade ultérieur.


BRW-15539 : Erreur lors de l'insertion de <##> ligne(s)

Cause :	Une ou plusieurs lignes du fichier d'entrée n'ont pas pu être insérées.

Action :	Modifiez le fichier d'entrée ou ne tenez pas compte du fichier.


BRW-15540 : Opération non autorisée sur des données de ce type

Cause :	L'utilisateur a tenté d'éditer une cellule comportant des données d'un type non éditable.

Action :	Inconnue.


BRW-15541 : Trop de lignes éditées. Veuillez sélectionner l'option Valider

Cause :	Un document comporte trop d'opération INSERT, UPDATE ou DELETE.

Action :	Sélectionnez Valider ou Rétablir.


BRW-15545 : Erreur de lecture du fichier QXF.  Analyse interrompue

Cause :	Erreur de syntaxe dans la lecture du fichier QXF.

Action :	Réglez le problème de syntaxe du fichier QXF.


BRW-15546 : Erreur d'analyse : Ligne <##>

Cause :	Erreur de syntaxe dans la ligne indiquée.

Action :	Déboguez cette ligne.


BRW-15547 : Opérateur non précisé dans bloc relationnel

Cause :	Le bloc de relation du fichier QXF comporte un opérateur non précisé.

Action :	Précisez un champ d'opérateur dans le bloc.


BRW-15548 : Erreur : absence d'argument dans <nom>, bloc relationnel

Cause :	Un champ de colonne d'un bloc relationnel ne comporte pas d'argument.

Action :	Indiquez le nom de colonne dans ce champ.


BRW-15549 : CONDITION_TEXT manquant dans bloc relationnel

Cause :	Le champ CONDITION_TEXT du bloc relationnel ne comporte pas d'argument.

Action :	Indiquez le champ CONDITION_TEXT.


BRW-15550 : Valeur INCLUSION_ORDER (<nom1>) non autorisée dans l'expression '<nom2>'

Cause :	Valeur INCLUSION_ORDER non valide dans l'expression.

Action :	Corrigez la valeur INCLUSION_ORDER.


BRW-15551 : Expression '<nom>' incluse mais absence de INCLUSION_ORDER

Cause :	Le champ INCLUSION_ORDER n'a pas été indiqué pour un bloc d'expression inclus.

Action :	Indiquez le champ INCLUSION_ORDER.


BRW-15552 : Expression '<nom>' non incluse mais présence de INCLUSION_ORDER

Cause :	L'expression n'est pas incluse (INCLUDED = FALSE), mais INCLUSION_ORDER est indiqué.

Action :	Corrigez les valeurs de ces champs.


BRW-15553 : Erreur : chaîne TEXT vide dans l'expression '<nom>'

Cause :	La chaîne TEXT n'est pas indiquée dans un bloc d'expression QXF.

Action :	Indiquez la chaîne TEXT.


BRW-15554 : Erreur : SORT_PRIORITY non indiqué dans l'expression triée '<nom>'

Cause :	SORT_PRIORITY n'est pas indiqué pour une expression triée.

Action :	Indiquez SORT_PRIORITY.


BRW-15555 : Champ '<nom1>' dans table '<nom2>' inclus, mais INCLUSION_ORDER non renseigné

Cause :	Valeur INCLUSION_ORDER non valide pour le champ.

Action :	Corrigez la valeur de INCLUSION_ORDER.


BRW-15556 : Champ '<nom1>' dans table '<nom2>' inclus, mais INCLUSION_ORDER non renseigné

Cause :	Le champ est inclus (INCLUDED = FALSE), mais INCLUSION_ORDER n'est pas indiqué.

Action :	Corrigez les valeurs de ces champs.


BRW-15557 : Champ '<nom1>' (table '<nom2>') exclus mais présence d'un INCLUSION_ORDER
BRW-15557 : Champ '<nom1>' (table '<nom2>') exclu mais présence d'un INCLUSION_ORDER

Cause :	Le champ de la base de données indiquée n'est pas inclus, mais INCLUSION_ORDER est indiqué.

Action :	Corrigez les valeurs de ces champs.


BRW-15558 : Champ trié '<nom1>' dans table '<nom2>' : SORT_PRIORITY non indiqué

Cause :	SORT_PRIORITY n'a pas été indiqué pour un champ trié.

Action :	Indiquez SORT_PRIORITY pour ce champ.


BRW-15559 : Erreur : valeur de INCLUSION_ORDER '<nom1>' non autorisée dans la table '<nom2>'

Cause :	Valeur négative dans l'ordre d'inclusion.

Action :	Corrigez la valeur.


BRW-15560 : Table '<nom>' incluse, mais INCLUSION_ORDER non renseigné

Cause :	La table de données est incluse (INCLUDED = TRUE), mais INCLUSION_ORDER n'est pas renseigné.

Action :	Corrigez les valeurs de ces champs.


BRW-15561 : Table '<nom>' exclue, mais présence de INCLUSION_ORDER

Cause :	La table des données n'est pas incluse (INCLUDED = FALSE), mais INCLUSION_ORDER est indiqué.

Action :	Corrigez les valeurs de ces champs.


BRW-15562 : Erreur : il ne peut pas y avoir plus d'un bloc conditionnel principal

Cause :	Il y a plus d'un bloc conditionnel principal (racine).

Action :	Supprimez certains blocs conditionnels, ou utilisez une conjonction.


BRW-15563 : Erreur : version 1.0 du fichier QXF attendue

Cause :	Le champ VERSION comporte un numéro de version non valide.

Action :	Modifiez la version.


BRW-15564 : Erreur d'analyse : ligne <##> : style de police  '<nom>' non valide

Cause :	Le style de police n'est pas valide.

Action :	Vérifiez et corrigez.


BRW-15565 : Erreur d'analyse : ligne <##> : argument de style de police non valide

Cause :	L'argument de style de police n'est pas valide.

Action :	Vérifiez les chaînes de styles de police et corrigez.


BRW-15566 : Erreur d'analyse : ligne <##> : fonction d'agrégat  '<nom>' non valide

Cause :	Le nom de la fonction d'agrégat n'est pas valide.

Action :	Corrigez le nom de la fonction.


BRW-15567 : Erreur d'analyse : ligne <##> : argument de résumé non valide

Cause :	L'argument du champ résumé n'est pas valide.

Action :	Corrigez l'argument du champ.


BRW-15568 : Erreur d'analyse : ligne <##> : argument de champ non valide

Cause :	L'argument du champ n'est pas valide.

Action :	Corrigez l'argument du champ.


BRW-15569 : Attention : le fichier QXF n'est que partiellement chargé en raison d'une erreur

Cause :	Erreur pendant le chargement du fichier QXF.

Action :	Corrigez l'erreur.


BRW-15570 : Erreur d'analyse : Ligne <##> : opérateur '<nom>' non valide dans bloc relationnel

Cause :	Le bloc relationnel comporte un opérateur non valide.

Action :	Vérifiez l'opérateur et corrigez.


BRW-15571 : Erreur d'analyse : Ligne <##> : Argument de champ opérateur non valide

Cause :	L'expression Elément Dérivé comporte un ID d'objet non valide.

Action :	Corrigez l'ID d'objet dans le dictionnaire.


BRW-15572 : ID d'objet non homogènes dans expression d'élément dérivée

Cause :	Le bloc relationnel comporte un argument de champ d'opérateur non valide.

Action :	Vérifiez les chaînes et corrigez.


BRW-15580 : Chargement impossible de la liste d'entités accessibles

Cause :	Il n'y a pas de table d'entité dans la couche Utilisateur Final.

Action :	Réinstallez la couche. Demandez l'intervention de l'administrateur système.


BRW-15581 : Ajout de colonnes impossible dans une table créée avec des données dupliquées

Cause :	L'utilisateur a tenté d'ajouter des colonnes dans une table créée avec des données de table dupliquées.

Action :	Validez la table, puis Essayez à nouveau d'exécuter l'opération.


BRW-15582 : Création d'une table nouvelle ou dupliquée autorisée uniquement sur une table qui existe déjà

Cause :	Création d'une nouvelle table sur une autre table, nouvelle, dupliquée ou modifiée.

Action :	Commencez par valider la table nouvelle, dupliquée ou modifiée.


BRW-15583 : Un index doit nécessairement compter une colonne minimum

Cause :	L'utilisateur a tenté de supprimer la dernière colonne de l'index.

Action :	Ajoutez d'autres colonnes, puis supprimez.


BRW-15584 : La colonne <nom> est de type LONG et ne peut être copiée

Cause :	Il n'est pas possible de copier une colonne de type LONG lors de la création d'un cliché.

Action :	La colonne ne peut pas être copiée.


BRW-15600 : Syntaxe non prise en charge

Cause :	Tentative d'analyse d'une syntaxe non prise en charge.

Action :	Utilisez une autre syntaxe Oracle 8.


 BRW-15601 : Syntaxe Oracle 8 SQL non valide

Cause :	Impossible d'utiliser une syntaxe Oracle 8.

Action :	Utilisez Oracle 7 SQL.


BRW-15602 : Constructeur de type n'est pas pris en charge dans Oracle 8 SQL

Cause :	Les constructeurs de type ne sont pas pris en charge dans Oracle 8 SQL.

Action :	Rétablissez Oracle 7.


BRW-15603 : REF n'est pas pris en charge dans Oracle 8 SQL

Cause :	REF n'est pas pris en charge dans Oracle 8 SQL.

Action :	Utilisez Oracle 7 à la place.


BRW-15604 : CAST n'est pas pris en charge dans Oracle 8 SQL

Cause :	CAST n'est pas pris en charge dans Oracle 8 SQL.

Action :	Utilisez Oracle 7 à la place.


BRW-15605 : MULTISET n'est pas pris en charge dans Oracle 8 SQL

Cause :	MULTISET n'est pas pris en charge dans Oracle 8 SQL.

Action :	Utilisez Oracle 7 à la place.


BRW-15606 : METHODS n'est pas pris en charge dans Oracle 8 SQL

Cause :	METHODS n'est pas pris en charge dans Oracle 8 SQL.

Action :	Utilisez Oracle 7 à la place.


BRW-15607 : La sous-interrogation THE n'est pas prise en charge dans Oracle 8 SQL

Cause :	La sous-interrogation THE n'est pas prise en charge dans Oracle 8 SQL.

Action :	Utilisez Oracle 7 à la place.


BRW-15608 : PARTITION (de tables) n'est pas prise en charge dans Oracle 8 SQL

Cause :	PARTITION (de tables) n'est pas prise en charge dans Oracle 8 SQL.

Action :	Utilisez Oracle 7 à la place.


BRW-15609 : Le mot-clé TABLE dans une sous-interrogation n'est pas pris en charge dans Oracle 8 SQL

Cause :	Le mot-clé TABLE dans une sous-interrogation n'est pas pris en charge.

Action :	Utilisez Oracle 7 à la place.


BRW-15610 : Renommez la table à l'aide d'un alias de table

Cause :	Vous avez tenté d'utiliser un nom de table au lieu d'un alias de table.

Action :	Renommez la table à l'aide d'un alias de table.


BRW-15641 : Echec de l'initialisation du système d'aide. Fonction d'aide non disponible.

Cause :	Impossible de localiser le document d'aide ou le fichier de ressource d'aide.

Action :	L'utilisateur peut continuer, mais le menu d'aide n'est pas disponible. Utilisez la documentation en ligne ou la documentation papier.


BRW-15643 : Fichier de ressource introuvable (<nom>), tentative d'ouverture du fichier de ressource par défaut

Cause :	NLS_LANG est défini, mais le fichier est introuvable.

Action :	Essayez d'ouvrir le fichier de ressource en utilisant la langue par défaut.


BRW-15644 : Document d'aide (<nom>) introuvable, tentative d'ouverture du document par défaut

Cause :	NLS_LANG est défini, mais le fichier est introuvable.

Action :	Essayez d'ouvrir le document d'aide en utilisant la langue par défaut.


BRW-15647 : Document d'aide introuvable

Cause :	Le fichier d'aide est introuvable dans le répertoire correct avec la langue correcte.

Action :	Vérifiez la structure des répertoires de Query Builder. Assurez-vous que NLS_LANG est défini correctement.


BRW-15648 : Erreur de création du système d'aide

Cause :	Le système d'aide n'a pas pu être lancé.

Action :	Query Builder n'a pas pu trouver le fichier de ressource d'aide, ou NLS_LANG n'est pas défini, ou la mémoire est insuffisante.


BRW-15649 : Valeur saisie pour <nom> trop faible. Nombre minimum valide : <##>

Cause :	La valeur entrée est trop faible.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant une valeur plus élevée.


BRW-15650 : Valeur saisie pour <nom> trop élevée. Nombre maximum valide <##>

Cause :	La valeur entrée est trop élevée.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant une valeur plus faible.


BRW-15651 : Valeur saisie pour <nom> hors plage. Doit être comprise entre <##> et <##>.
BRW-15651 : Valeur saisie pour <nom> hors plage. Doit être comprise entre <##> et <##>

Cause :	La valeur entrée n'était pas comprise dans la plage des valeurs valides.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant une valeur valide.


BRW-15652 : Valeur remise à <valeur>

Cause :	La valeur entrée a été modifiée, car elle ne figurait pas dans la plage des valeurs valides.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant une valeur valide, sinon Query Builder utilisera la valeur indiquée.


BRW-15653 : Erreur dans fichier Préf : Valeur <valeur> trop faible. Nombre minimum valide : <##>.

Cause :	La valeur entrée est trop faible.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant une valeur plus élevée.


BRW-15654 : Erreur dans fichier Préf : Valeur <valeur> trop élevée. Nombre maximum valide : <##>.

Cause :	La valeur entrée est trop élevée.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant une valeur plus faible.


BRW-15655 : Erreur dans fichier Préf : Valeur <valeur> hors plage. Doit être comprise entre <##> et <##>

Cause :	La valeur entrée n'était pas comprise dans la plage des valeurs valides.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant une valeur valide.


BRW-15656 : Erreur dans fichier Préf : Valeur de <valeur> non reconnue

Cause :	La valeur définie dans le fichier des préférences n'est pas valide.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant une valeur valide.


BRW-15657 : OWNERLIST=NAME : La valeur doit contenir au moins un nom

Cause :	La valeur de OWNERLIST=NAME est NULLE.

Action :	Essayez à nouveau d'exécuter l'opération en indiquant un nom valide.


BRW-15900 : Informations sur la période introuvables

Cause :	Cette base de données ne prend pas en charge les périodes, ou il s'est produit une erreur dans la base de données.

Action :	Essayez à nouveau d'exécuter l'opération si ce message est inattendu.


BRW-15901 : La source de données <nom1> à laquelle l'objet <nom2> fait référence n'existe plus

Cause :	La source de l'objet dans la base de données a été supprimée.

Action :	Rafraîchir/supprimer l'objet.


BRW-15902 : La table à laquelle l'objet <nom> fait référence n'existe plus

Cause :	La source de l'objet dans la base de données a été supprimée.

Action :	Rafraîchir/supprimer l'objet.


BRW-15903 : La table opposée à <nom> n'appartient à aucune entité. Information sur jointure non accessible

Cause :	Relation : La table/l'objet de données opposé ne figure dans aucun groupe.

Action :	Affecter cet objet à un groupe.


BRW-15904 : Le nom d'une relation ne peut comprendre plus de <##> octets

Cause :	Le nom de relation dépasse la limite autorisée.

Action :	Utilisez un nom plus court.


BRW-15905 : Un en-tête de colonne ne peut comprendre plus de <##> octets

Cause :	L'en-tête d'élément dépasse la longueur autorisée.

Action :	Utilisez un en-tête plus court.


BRW-15906 : Un format de colonne ne peut comprendre plus de <##> octets

Cause :	Le format d'élément dépasse la limite autorisée.

Action :	Utilisez un format plus court.


BRW-15907 : La largeur d'affichage d'une colonne ne peut compter plus de <##> chiffres

Cause :	La précision de largeur d'affichage de l'élément dépasse la limite autorisée.

Action :	Choisissez une largeur d'affichage inférieure.


BRW-15908 : Le nom de la période ne peut compter plus de <##> octets

Cause :	Nom de période trop long.

Action :	Utilisez un nom plus court.


BRW-15909 : Les colonnes période et séquence de la période sont identiques

Cause :	Les colonnes de période et de séquence de la période ont été définies à la même colonne.

Action :	Indiquez des colonnes de période et de séquence différentes.


BRW-15910 : Chargement impossible de la période <nom>

Cause :	Erreur interne de schéma lors du chargement de la période.

Action :	Pour plus d'informations, reportez-vous aux messages d'erreur qui accompagnent ce message.


BRW-15911 : La période <nom> existe déjà

Cause :	Le nom de la période doit être unique.

Action :	Créez une période sous un nom différent.


BRW-15912 : Valeur largeur d'affichage non autorisée

Cause :	La valeur de largeur de l'affichage n'est pas autorisée.

Action :	Entrez une valeur valide.


BRW-15913 : Le texte d'une clé <nom> doit être renseigné

Cause :	Le texte d'une clé étrangère ou primaire est vide.

Action :	Entrez le texte de la clé primaire ou étrangère.


BRW-15914 : Le nom d'une relation doit être renseigné

Cause :	Le nom de la relation n'est pas renseigné.

Action :	Entrez un nom de relation.


BRW-15924 : Le nom de l'entité doit être renseigné

Cause :	Le nom de l'entité est vide ou ne contient que des espaces.

Action :	Entrez un nouveau nom.


BRW-15925 : Table <nom1> déjà importée comme <nom2>

Cause :	La table ne peut être importée qu'une fois sous un nom donné.

Action :	Importez la table sous un nom différent.


BRW-15926 : Le nom de l'entité <nom> existe déjà

Cause :	Le nom de l'entité doit être unique.

Action :	Créez  une entité sous un nom différent.


BRW-15927 : L'entité <nom1> contient déjà une table intitulée <nom2>

Cause :	Le nom de table doit être unique dans une entité.

Action :	Renommez/importez à nouveau la table et ajoutez-la à l'entité.


BRW-15928 : Nom d'entité trop long (<##> octets max)

Cause :	Le nom de l'entité est trop long.

Action :	Raccourcissez le nom et relancez l'opération.


BRW-15929 : Description d'entité trop longue (<##> octets max)

Cause :	La description de l'entité est trop longue.

Action :	Raccourcissez la description et relancez l'opération.


BRW-15930 : Erreur lors de la validation de la table <nom>

Cause :	Il s'est produit une erreur pendant la validation de la table.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15931 : Erreur lors de la validation de l'entité <nom>

Cause :	Il s'est produit une erreur pendant la validation de l'entité.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15932 : Erreur lors de la validation de période <nom>

Cause :	Il s'est produit une erreur pendant la validation de la période.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15933 : Erreur lors de la validation de la relation <nom>

Cause :	Il s'est produit une erreur pendant la validation de la relation

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15937 : Erreur de génération de procédure SQL pour la table <nom>

Cause :	Il s'est produit une erreur pendant la génération de la procédure SQL pour une table.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15938 : Erreur de génération de procédure SQL pour l'entité <nom>

Cause :	Il s'est produit une erreur pendant la génération de la procédure SQL pour une entité.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15939 : Erreur de génération de procédure SQL pour la période <nom>

Cause :	Il s'est produit une erreur pendant la génération de la procédure SQL pour une période.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15940 : Erreur de génération de procédure SQL pour la relation <nom>

Cause :	Il s'est produit une erreur pendant la génération de la procédure SQL pour une relation.

Action :	Tentez à nouveau d'exécuter l'opération.


BRW-15950 : Aucune table Oracle Query Builder - Fonctions Ouverture/Enregistrement désactivées

Cause :	La base de données ne comporte pas de table d'interrogation système Query Builder.

Action :	Créez une table interrogation système (exécutez le script d'installation Query Builder).


BRW-15951 : Informations sur profils utilisateur non chargées

Cause :	La table des profils d'utilisateur n'a pas pu être chargée.

Action :	Demandez à l'administrateur système d'en créer une.


BRW-15952 : Table de privilèges utilisateur non chargée

Cause :	La table USER_USERS est manquante (base de données non Oracle ou Oracle V7).

Action :	Aucune.


BRW-15953 : Table de privilèges non chargée

Cause :	La table de privilèges est introuvable.

Action :	Base de données non Oracle ou Oracle V7.


BRW-15954 : Tables Oracle Query Builder 2.5 absentes ou installées incorrectement

Cause :	Il n'existe pas de table QUERY BUILDER_DOCS_SQL.

Action :	Installez à nouveau les tables Query Builder 2.5.


BRW-15955 : L'interrogation n'a ramené aucune ligne

Cause :	L'interrogation n'a pas ramené de ligne.

Action :	Modifiez l'interrogation afin qu'elle demande des données qui existent dans la base de données.


BRW-16000 : Document enregistré à l'aide de End User Layer et non du dictionnaire Natif. Voulez-vous continuer ?

Cause :	L'utilisateur a tenté d'ouvrir en mode Natif un document enregistré au moyen de End User Layer.

Action :	Exécutez Query Builder avec DICTIONARY=ENDUSER ou continuez (les objets de End User Layer seront inaccessibles).


BRW-16001 : Document enregistré à l'aide du dictionnaire Natif et non de End User Layer. Voulez-vous continuer ?

Cause :	L'utilisateur a tenté d'ouvrir en ENDUSER un document enregistré au moyen du dictionnaire Natif.

Action :	Exécutez Query Builder avec DICTIONARY=NATIVE ou continuez (certains objets de la base de données seront peut-être inaccessibles).


BRW-16250 : Ce document existe déjà. Voulez-vous le remplacer ?

Cause :	L'utilisateur a tenté d'exécuter une opération d'Enregistrement sur un document existant.

Action :	Ecrasez le document existant ou annulez l'opération.


BRW-16251 : Table modifiée. Voulez-vous continuer ?

Cause :	La vue a été supprimée et recréée. La nouvelle vue peut ne pas être compatible avec le document.

Action :	Continuez ou interrompez l'enregistrement.


BRW-16500 : Mémoire non disponible pour tri local. Voulez-vous relancer l'exécution ?

Cause :	Les lignes du tri local n'ont pas toutes été extraites.

Action :	Exécutez à nouveau l'interrogation, maintenant ou plus tard.


BRW-16503 : Données non disponibles pour tri local. Voulez-vous relancer l'exécution ?

Cause :	Les lignes du tri local n'ont pas toutes été extraites.

Action :	Exécutez à nouveau l'interrogation, maintenant ou plus tard.


BRW-16504 : Données non disponibles pour ventilation. Voulez-vous relancer l'exécution ?

Cause :	Les lignes de la ventilation locale n'ont pas toutes été extraites.

Action :	Exécutez à nouveau l'interrogation, maintenant ou plus tard.


BRW-16525 : L'interrogation peut exiger un produit cartésien. Voulez-vous continuer ?

Cause :	L'interrogation combine les résultats de tables non liées.

Action :	Ne tenez pas compte du message ou liez les tables avant l'exécution. Pour plus de détails, reportez-vous à l'aide ou à la documentation.


BRW-16531 : Voulez-vous redéfinir le paramètre <nom> ?

Cause :	L'utilisateur a entré un paramètre supprimé précédemment dans une expression ou une condition.

Action :	Appuyez sur OK si cette opération vous convient.


BRW-16532 : Le paramètre <nom> n'existe pas. Voulez-vous le définir ?

Cause :	L'utilisateur a entré un nouveau paramètre dans une expression ou une condition.

Action :	Appuyez sur OK si cette opération vous convient.


BRW-16549 : Rétablir annule toutes les modification apportées dans ces tables. Voulez-vous toujours rétablir ?
BRW-16549 : Rétablir annule toutes les modifications apportées dans ces tables. Voulez-vous toujours rétablir ?

Cause :	Ce message vous demande de confirmer le rétablissement des tables de données.

Action :	Cliquez sur OK pour rétablir toutes les tables de données sélectionnées, ou sur Annuler pour annuler l'opération.


BRW-16550 : La table <nom> comporte des clés primaires/uniques référencées. Voulez-vous les supprimer ?

Cause :	La table contient des contraintes.

Action :	Cliquez sur OK pour supprimer la table de données, ou sur Annuler pour annuler l'opération.


BRW-16551 : La colonne comprend des clés primaires/uniques ou des index. Voulez-vous les supprimer ?

Cause :	La colonne est utilisée par des contraintes ou des index.

Action :	Cliquez sur OK pour supprimer la colonne ou sur Annuler pour annuler l'opération.


BRW-16552 : Voulez-vous désactiver toutes les contraintes ?

Cause :	Ce message vous demande de confirmer la désactivation de toutes les contraintes.

Action :	Confirmez ou annulez.


BRW-16553 : Voulez-vous activer toutes les contraintes ?

Cause :	Ce message vous demande de confirmer l'activation de toutes les contraintes.

Action :	Confirmez ou annulez.


BRW-16575 : Certaines modifications non validées seront perdues. Voulez-vous valider ?

Cause :	L'utilisateur a tenté de sortir de l'Editeur de données sans valider les modifications.

Action :	Cliquez sur Valider ou renoncez à vos modifications.


BRW-16576 : Les valeurs Colonne définie, Résumé et Ventilation ne sont peut-être pas à jour. Voulez-vous relancer l'exécution ?

Cause :	Des valeurs ont été éditées pendant l'affichage des ventilations, des résumés ou des colonnes définies.

Action :	Exécutez l'interrogation pour mettre les valeurs à jour.


BRW-16623 : Aucune donnée disponible pour cette opération.

Cause :	Message d'alerte qui apparaît si le nombre de lignes ou de colonnes pouvant être imprimées est nul.

Action :	Tentez d'exécuter à nouveau l'interrogation, ou ajoutez des colonnes.


BRW-16624 : Définition d'interrogation modifiée. Les données ne sont peut-être plus à jour. Voulez-vous continuer ?

Cause :	Le document d'interrogation a été modifié depuis sa dernière exécution.

Action :	Exécutez à nouveau l'interrogation et continuez l'export, ou annulez.


BRW-16625 : L'imprimante ne prend pas toutes les polices nécessaires en charge. Voulez-vous changer de police ?

Cause :	La police, un style ou une graisse n'existe pas pour l'imprimante sélectionnée.

Action :	Poursuivez en changeant de police ou annulez.


BRW-16626 : Mémoire insuffisante pour obtenir un aperçu avant impression.

Cause :	Le système n'a pas pu créer une image bitmap permettant un aperçu avant impression.

Action :	Aucune.


BRW-16627 : Aucune donnée disponible pour cette opération. Voulez-vous lancer l'interrogation ?

Cause :	Ce message d'alerte apparaît si une feuille de travail vide a été utilisée pour appeler les les données d'export.

Action :	Tentez à nouveau d'exécuter l'interrogation ou annulez-la.


BRW-16628 : Accès à l'imprimante impossible. Il n'y aura pas d'impression. Voulez-vous continuer ?

Cause :	Erreur de création d'une surface d'imprimante de toolkit avec uiprc().

Action :	Poursuivez sans impression ou annulez l'opération.


BRW-16629 : Voulez-vous mettre à jour le document OLE avant de quitter ?

Cause :	Ce message demande à l'utilisateur d'enregistrer les modifications lorsqu'il ferme/quitte un document OLE.

Action :	Enregistrez ou interrompez les modifications, ou annulez l'opération.


BRW-16650 : L'imprimante ne prend pas toutes les polices nécessaires en charge. Voulez-vous changer de police ?

Cause :	La police, un style ou une graisse n'existe pas pour l'imprimante sélectionnée.

Action :	Poursuivez en changeant de police ou annulez.


BRW-16651 : Aucune imprimante sélectionnée. Voulez-vous utiliser l'imprimante par défaut ?

Cause :	L'utilisateur n'a pas explicitement nommé d'imprimante à utiliser.

Action :	Poursuivez en utilisant l'imprimante par défaut du système ou annulez l'opération.


BRW-16652 : Les marges du document sont trop larges et doivent être modifiées.

Cause :	L'utilisateur a défini des marges trop larges pour le document.

Action :	Modifiez les marges.


BRW-16653 : Aucune imprimante sélectionnée. Voulez-vous utiliser l'imprimante par défaut ?

Cause :	L'utilisateur n'a pas explicitement nommé d'imprimante à utiliser.

Action :	Poursuivez en utilisant l'imprimante par défaut du système ou annulez l'opération.


BRW-16654 : Aucune page imprimée.

Cause :	L'utilisateur a défini le nombre de copies à 0 ou la page de début/de fin n'est pas dans la plage autorisée.

Action :	Modifiez la plage des numéros de page.


BRW-16660 : Définition d'interrogation modifiée. Les données ne sont peut-être pas à jour. Voulez-vous relancer l'exécution ?

Cause :	Le document d'interrogation a été modifié depuis la dernière mise à jour DDE.

Action :	Exécutez à nouveau l'interrogation avant la mise à jour DDE ou mettez à jour sans exécution.


Voici les nouvelles fonctions de la version 6.0, autres que les éléments Oracle8 (situés dans un dossier spécifique de la zone commune).


Fonctions d'édition PL/SQL améliorées

Les éditeurs Unité de programme et Unité de programme stockée prennent désormais en charge un ensemble de fonctionnalités d'édition dans Microsoft Windows, telles que :

•	Retrait automatique : au fur et à mesure que vous entrez du code dans les éditeurs, les lignes sont automatiquement décalées.

•	Mise en évidence d'éléments de syntaxe à l'aide de couleurs : les mots-clés, les commentaires et les chaînes sont repérés par des couleurs différentes.

•	Sélection de lignes et de colonnes : vous pouvez sélectionner des colonnes de texte, ainsi que des lignes de code source.

•	Manipulation du texte par glisser-déplacer : le texte mis en surbrillance peut être copié ou déplacé par la technique du glisser-déplacer.

•	Vues multiples : vous pouvez créer jusqu'à quatre vues distinctes de l'unité de programme active dans l'éditeur.

•	Impression : vous pouvez imprimer l'unité de programme active.

•	Annuler/rétablir illimité. Vous pouvez annuler/rétablir toutes les actions de modification jusqu'au dernier enregistrement.


Assistant LOV

  Rubriques connexes

L'Assistant LOV vous permet de créer et de modifier une liste de valeurs (LOV), à savoir une fenêtre instantanée contenant une liste de sélection mono ou multicolonne que vous pouvez faire défiler. L'Assistant vous guide tout au long du processus de sélection d'un groupe d'enregistrements existant ou de création d'un nouveau groupe d'enregistrements d'interrogation, de sélection de colonnes à afficher à partir d'un groupe d'enregistrements et de formatage de la LOV. Vous pouvez aussi utiliser l'Assistant LOV en mode invariant pour modifier des LOV existantes.


Arborescence

  Rubriques connexes

L'arborescence permet d'afficher les données comme dans un navigateur standard, semblable à ceux utilisés dans Forms Developer.

Vous pouvez compléter une arborescence avec les valeurs d'un groupe d'enregistrements ou du texte d'une interrogation. Lors de l'exécution, vous pouvez, via un programme, ajouter, supprimer, modifier ou évaluer les éléments de cette arborescence.

La quantité de données affichées dépend du développement de chaque noeud et de la méthode utilisée pour procéder à ce développement (procédure interne ou clic de l'utilisateur). En général, l'ensemble de données est d'abord indiqué dans Form Builder ; il peut être modifié ou remplacé intégralement au cours de l'exécution.


FRD (Forms Runtime Diagnostics)

  Rubriques connexes

FRD (Forms Runtime Diagnostics) est un système permettant de consigner les événements au moment de l'exécution. Il est utilisé dans le cadre du débogage de votre application.

Lorsqu'une application Forms est exécutée alors que FRD est activé, les interactions application-utilisateur externes et les événements de traitement Forms internes sont écrits dans l'ordre chronologique dans un fichier journal du système de fichiers. Ces événements peuvent ensuite être analysés pour vérifier qu'ils sont corrects.


Extension et personnalisation de votre application à l'aide de Java
Extension de votre application à l'aide des composants adaptables Java

  Rubriques connexes

Lorsque vous créez une application WebForms, vous pouvez étendre et personnaliser sa fonctionnalité.

Vous disposez pour cela de deux méthodes :

•	ajouter des composants JavaBean à votre application ;

•	remplacer les composants d'interface utilisateur standard de l'application Forms par vos propres versions personnalisées, ou même ajouter vos propres composants d'interface utilisateur spécialisés.

Les composants JavaBeans et personnalisés pris en charge par WebForms sont appelés composants adaptables Java.

Caractéristiques des composants JavaBeans

Les composants JavaBean sont des unités d'application écrites en Java. Ils sont portables, réutilisables et indépendantes de la plate-forme. Sur le plan fonctionnel, un composant JavaBean peut faire tout ce qui est possible en langage Java.

Les composants JavaBeans peuvent s'utiliser individuellement ou en combinaison avec d'autres programmes Java ou autres pour créer rapidement des applications à grande échelle dotées de vastes possibilités.

Les composants JavaBean sont similaires aux mini-applications Java, mais tous les composants JavaBean sont conformes à la norme officielle JavaBean et présentent certaines caractéristiques améliorant leur utilisation en tant que composants d'application. Ils ont de la persistance, permettent l'introspection et utilisent des propriétés, méthodes et événements pour communiquer avec d'autres composants de l'application.

L'utilité des composants JavaBean

Le fait d'ajouter un composant JavaBean à votre application Forms vous permet d'étendre aisément ses capacités. Bien que vous puissiez écrire vos propres composants JavaBean, la plupart des développeurs préfèrent les obtenir tout faits afin d'accélérer le processus de développement. Les composants JavaBean vendus dans le commerce s'intègrent aisément dans votre application.

Des composants JavaBean prêts à l'emploi sont proposés par un grand nombre d'éditeurs de logiciels dont la liste grandit chaque jour. Les composants disponibles offrent une grande variété de fonctions instantanées.

Fonctionnement des composants adaptables Java

Le produit WebForms met à votre disposition des mécanismes d'interface vous permettant d'ajouter sans problème des composants JavaBean ainsi que des composants d'interface personnalisés à votre application.

Ces composants se servent d'une interface spéciale définie par l'application Forms, appelée IView. Cette interface Java est mise à votre disposition.

Les composants JavaBean utilisent également une classe spéciale Java fournie par l'application Forms et appelée classe VBean. En mettant votre composant JavaBean dans un conteneur étendant cette classe, il peut facilement communiquer avec l'application Forms lors de l'exécution. Le composant JavaBean peut être lancé à partir de l'application Forms, et les valeurs peuvent être transmises dans les deux sens.

En plus de l'interface IView et de la classe VBean, WebForms met également à votre disposition certaines propriétés d'application Forms, procédures internes, déclencheurs et variables système pour la communication avec vos composants adaptables.

Présentation

Pour l'utilisateur final, lors de l'exécution, le composant JavaBean est représenté par un élément d'interface affiché à l'écran. Le fait de cliquer sur l'élément lance l'exécution du composant JavaBean. D'autres contrôles et éléments de données peuvent être associés au composant JavaBean, pour permettre l'interaction lors de l'exécution ou l'affichage des valeurs ou résultats modifiés.

Communication lors de l'exécution

Pendant le processus de lancement au début de l'exécution, WebForms définit des mécanismes de communication avec le composant JavaBean. WebForms accède à votre classe de conteneur et instancie le conteneur et son composant. Ce processus de lancement inscrit une relation de module d'écoute permettant de partager les propriétés et de communiquer des événements au cours de l'exécution.

Conséquences sur les éléments de l'application Forms

Les éléments de WebForms pouvant être influencés par cette nouvelle fonction des composants adaptables Java sont :

•	la propriété Type de l'élément, à laquelle est ajouté un nouveau type d'élément, appelé zone JavaBean ;

•	une nouvelle propriété, appelée Classe de mise en œuvre, qui permet de connecter l'élément à votre composant JavaBean par l'intermédiaire de son nom de classe complet ;

•	de nouvelles procédures internes, appelées Get_Custom_Property et Set_Custom_Property, utilisées pour la communication avec le composant JavaBean ;

•	le déclencheur When-Custom-Item-Event, utilisé pour recevoir des informations d'événement provenant du composant JavaBean (applicable uniquement à la zone JavaBean) ;

•	les zones de stockage System.Custom_Item_Event et System.Custom_Item_Event_Parameters, utilisées pour recevoir des identificateurs et valeurs d'événements provenant du composant JavaBean.

Pour plus d'informations concernant les composants adaptables Java, appuyez sur le bouton de rubriques connexes ci-dessus.


Lancement de WebForms à partir de Designer

  Rubriques connexes

Il est désormais plus facile d'avoir un aperçu des applications Forms destinées à être exécutées à partir du Web. Cliquez sur l'icône Lancer l'application Forms en mode Web [image] dans le Navigateur d'objet ou dans l'Editeur de présentation pour lancer Web Previewer. Votre application Forms est alors exécutée localement dans une fenêtre shell d'interface utilisateur Java.


Shell d'interface utilisateur Java

Dans le cadre du programme Network Computing, Oracle développe actuellement un nouvel environnement de bureau pour les composants Java. La première étape de ce programme consiste à développer un système de fenêtres et de menus simplifié qui fera partie de l'environnement de bureau Oracle. Ce shell permet de configurer la présentation des composants d'interface utilisateur Java.

Pour plus d'informations sur le shell d'interface utilisateur client, reportez-vous à la rubrique Configuration du serveur Forms Developer.


Extension de la propriété Différer la mise en vigueur obligatoire

Une troisième option a été ajoutée à la propriété Différer la mise en vigueur obligatoire. Cette nouvelle option vous permet de fonctionner en mode de compatibilité avec la version 5.0, mais conserve toujours un peu du comportement de la version 4.5.

Si vous choisissez cette option, une valeur Null est acceptée dans un élément Obligatoire pendant la validation au niveau élément (bien que l'instance d'élément ne soit pas marquée comme valide) et le déclencheur When-Validate est activé.

Pour plus de détails, voir la propriété Différer la mise en vigueur obligatoire et Comportement à l'exécution de Form Builder 4.5


Nouvelle propriété de contrôle de troncation et de validation

Une nouvelle propriété d'application, appelée Flag User Value Too Long, a été ajoutée.

Elle vous permet de choisir le comportement de Form Builder pendant la validation lorsque l'utilisateur final a entré une valeur qui dépasse la propriété Longueur maximum de l'élément.

Cette propriété ne s'applique qu'à un environnement à trois niveaux dans lequel le niveau du milieu (le serveur d'application Forms) indique un jeu de caractères multi-octets autre que UTF8.

Pour plus de détails, voir la propriété Flag User Value Too Long.


Nouvelle fonctionnalité : création de la liste de toutes les pages onglet

Une nouvelle touche permettant de répertorier les pages onglet (correspondant à la touche F2) a été ajoutée à la fonctionnalité de canevas onglet.

Lorsque l'utilisateur final appuie sur cette touche, la liste déroulante de tous les noms de pages onglet de ce canevas apparaît. L'utilisateur peut choisir dans cette liste la page onglet à activer.

Cette fonctionnalité se révèle particulièrement utile lorsque tous les onglets du canevas ne peuvent pas apparaître simultanément du fait de leur nombre.


A propos des messages d'erreur

Chaque composant a son propre préfixe de messages d'erreur :

Préfixe	Composant
FRM	Form Builder
OG	Graphics Builder
PDE	Procedure Builder
REP	Report Builder
BRW	Query Builder
BRS	Schema Builder
NX, XBD	Translation Builder
Remarque : Sous Unix, Report Builder attribue la valeur 0 (opération réussie) ou 1 (échec de l'opération) à la variable $status qui apparaît dans certains messages.

Aux messages d'erreur d'Oracle Developer peuvent éventuellement s'ajouter des messages d'erreur provenant d'autres sources  :

Préfixe	Source	Aide
ORA	Oracle Server	Manuel Oracle7 Server Messages ou Oracle8 Error Messages
PLS	PL/SQL	Manuel Oracle7 Server Messages ou Oracle8 Error Messages
NET	SQL*Net	Manuel Oracle Network Products Messages
Les manuels Oracle7 Server Messages et Oracle8 Error Messages contiennent les codes et les descriptions des messages d'erreur de tous les utilitaires de base de données comme SQL*DBA, SQL*Loader, SQL*Module, Export, Import et les pré-compilateurs Oracle.

Les messages d'erreur propres au système sont expliqués dans la documentation de votre système d'exploitation.


Recours au Support technique Oracle

Dans certains cas (erreurs internes, par exemple), vous devrez faire appel au Support technique Oracle, mais auparavant, nous vous conseillons de réunir les informations suivantes :

1	Votre nom, celui de votre société, votre ID de Support technique Oracle.

2	Le matériel, le système d'exploitation et le numéro de version du système d'exploitation utilisé.

3	Le numéro complet de version du composant que vous utilisiez lorsque l'erreur s'est produite et, notamment, le numéro de révision et le numéro du port, le cas échéant. (Pour connaître le numéro de version des composants, choisissez Aide [image] A propos de.)

4	Tous les autres produits (et leur numéro de version) utilisés lorsque l'erreur s'est produite (par exemple, Oracle 7.1.4).

5	Si vous avez reçu un ou plusieurs messages d'erreur, le numéro et le texte exacts des messages et l'ordre dans lequel ils sont apparus.

6	Une description du problème et, notamment, des conditions inhabituelles.

7	La gravité du problème, selon les codes suivants :

•	1 : Programme inutilisable. Impact critique sur les opérations.

•	2 : Programme utilisable. Opérations très limitées.

•	3 : Programme utilisable, mais avec des fonctions limitées. Non critique pour les opérations globales.

•	4 : Problème réglé par le client. Effet minime, voire nul, sur les opérations.


Conditions anormales

Certaines erreurs qui peuvent se produire sont connues sous le nom de conditions anormales. Celles-ci peuvent avoir l'une des causes suivantes :

•	Un utilisateur a effectué une opération qui a empêché votre application d'achever la tâche demandée : il a, par exemple, sauté l'interface utilisateur et, lors de la modification des données dans une table de base de données, a entré une valeur non valide.

•	Une bogue logicielle a empêché la réalisation de la tâche requise.

Action  Contactez tout d'abord votre administrateur système pour savoir si le message a une autre cause qu'Oracle Developer. Si vous pouvez déterminer que le message ne provient pas d'une erreur de l'utilisateur ou d'un problème système, contactez le Support technique Oracle.


Boîte de dialogue Options de conversion PL/SQL V1

Cette boîte de dialogue permet de définir le comportement de l'utilitaire pour tous les types de syntaxe V1 ou V2 pris en charge par PL/SQL. Vos préférences sont enregistrées dans la base de registres Microsoft Windows ou dans un profil UNIX.

Type de problème	Répertorie les types de syntaxe PL/SQL V1 ou V2 pris en charge par l'utilitaire de conversion : CHAR remplacé par VARCHAR2 Longueur de chaîne requise par VARCHAR2 Expressions OUT et IN OUT par défaut supprimées Valeur NULL ajoutée à RETURN dans les fonctions Procédure interne obsolète La fonction LENGTH renvoie la valeur NULL pour une chaîne de longueur zéro. Le transfert de la valeur NULL au sous-programme surchargé est incorrect. Absence d'une instruction RETURN dans la fonction
Convertir	Toutes les instances du type de problème sélectionné sont converties automatiquement sans demande de confirmation.
Convertir tout	Raccourci pour définir tous les types de problème à Convertir. L'utilitaire convertit automatiquement tous les problèmes PL/SQL V1 ou V2 sans demande de confirmation.
Ignorer	Aucune instance du type de problème sélectionné n'est prise en compte. Pour éviter des erreurs du compilateur, vous devez modifier manuellement le code V1 ou V2.
Ignorer tout	Raccourci pour définir tous les types de problème à Ignorer. L'utilitaire ne prend en compte aucun de ces types de problème et n'effectue aucune conversion. Pour éviter des erreurs du compilateur, vous devez modifier manuellement le code V1 ou V2.
Me consulter	Chaque instance du type de problème sélectionné est affichée individuellement dans la boîte de dialogue Conversion. Vous pouvez alors choisir Convertir ou Ignorer.
Me consulter pour tout	Raccourci pour définir tous les types de problème pour lesquels le système doit vous consulter. L'utilitaire vous demande de confirmer (dans la boîte de dialogue Conversion) avant de procéder à la conversion d'une chaîne PL/SQL V1 ou V2.
OK	Permet de confirmer vos sélections et de fermer la boîte de dialogue.
Annuler	Permet d'annuler toute modification apportée au module et de fermer la boîte de dialogue.


Boîte de dialogue Conversion

Cette boîte de dialogue vous permet de contrôler de façon interactive le processus de conversion de PL/SQL V1 ou V2. Pour définir des options pour des  conversions ultérieures, cliquez sur Options.

Fenêtre source	Affiche le source de l'unité de programme où la condition de conversion est détectée. La syntaxe à convertir est mise en évidence. Vous pouvez faire défiler cette fenêtre vers le haut ou vers le bas pour analyser les conversions réalisées.
Condition:	Instruction PL/SQL V1 ou V2 nécessitant une conversion.
Action :	Opération effectuée par l'utilitaire si vous cliquez sur Convertir
Expliquer. . .	Permet d'afficher plus de détails sur le problème et le s conséquences si vous décidez de passer outreà la conversion.
Convertir	Permet d'accepter l'action recommandée par défaut et de passer à l'instruction suivante.
Convertir tout	Permet de convertir tous les problèmes de syntaxe PL/SQL V1 ou V2 dans tout le module, pouvant contenir plusieurs unités de programme. Toutes les actions par défaut sont acceptées.
Ignorer	Permet de ne pas convertir l'instruction PL/SQL V1 ou V2 décrite dans le champ Problème et de passer à l'instruction suivante.
Ignorer tout	Permet de passer outre le processus de conversion pour tout le module, pouvant contenir plusieurs unités de programme.
Options. . .	Permet d'afficher la boîte de dialogue Options de conversion PL/SQL V1 dans laquelle vous pouvez indiquer les options de contrôle du processus de conversion.


Boîte de dialogue Sommaire de conversion PL/SQL V1

Cette boîte de dialogue fournit les informations suivantes :

•	lignes source converties

•	lignes source non prises en compte

•	lignes source ayant généré des erreurs du compilateur PL/SQL

Boutons de la barre d'outils :

Icône X	Permet de fermer la boîte de dialogue.
Icône ?	Permet d'afficher l'aide de la boîte de dialogue.
Fenêtre Sommaire :

Rechercher	Permet d'afficher les fonctions de recherche standard pour les noeuds développés et réduits.
Noeud	Un noeud par unité de programme dans le module. Si le noeud contient un signe plus, cliquez sur celui-ci pour afficher un sommaire de la conversion (et la façon dont la conversion a été réalisée) et sur ce qui n'a pas été pris en compte. Si un noeud est vide (sans signe plus ni signe moins), l'unité de programme ne nécessite aucune conversion. Pour adresser les erreurs du compilateur - ou analyser le source converti - ou encore les éléments non pris en compte, cliquez deux fois sur une ligne dans le noeud développé. (Ou choisissez la ligne et sélectionnez Programme [image] Editeur d'unité de programme.) L'Editeur s'ouvre, le curseur étant positionné sur la ligne sélectionnée. Remarque : Après avoir modifié le source à l'aide de l'Editeur d'unité de programme, il se peut que la prochaine fois que vous cliquiez deux fois sur une ligne ou que vous utilisiez le bouton Editer le curseur ne soit pas correctement positionné.
Options de menu :

Le menu Programme offre deux options :

Editeur d'unité de programme	Permet d'ouvrir le source dans l'Editeur d'unité de programme. Le curseur se positionne sur la ligne sélectionnée.
Options de conversion	Permet d'afficher la boîte de dialogue Options de conversion afin de visualiser ou de modifier les options indiquées.
Menu instantané :

Cliquez sur le bouton droit de la souris pour afficher un menu instantané.

Editer	Permet d'ouvrir le source dans l'Editeur d'unité de programme. Le curseur se positionne sur la ligne sélectionnée.
Expliquer	Permet d'afficher l'aide en ligne sur le type de conversion pour la ligne sélectionnée.


Conversion PL/SQL V1 - exemples

  Rubriques connexes 	   Tous les exemples

Suppression des expressions par défaut

Ajout de NULL à RETURN

Remplacement de procédures internes obsolètes

Fonction de longueur

Transfert de NULL vers un sous-programme surchargé

Instruction RETURN manquante

Modification du nom des procédures uniquement dans un package

Suppression du préfixe de package

Mot réservé

Suppression de contraintes de longueur

Déclarations de variables


Navigateur d'objet

Visualisation d'objets dans le Navigateur d'objet

A propos du Navigateur d'objet

Changement de vues du Navigateur d'objet

Navigation et sélection d'objets dans le Navigateur d'objet

Développement et réduction d'objets dans le Navigateur d'objet

Recherche d'entrées dans le Navigateur d'objet à l'aide de la recherche rapide

Définition d'un signet dans le Navigateur d'objet

Utilisation de fenêtres multiples

Création et déplacement d'objets dans le Navigateur d'objet

Création et suppression d'objet dans le Navigateur d'objet

Changement de noms d'objet dans le Navigateur d'objet

Déplacement et copie d'objets dans le Navigateur d'objet

Copie d'objets d'un module à l'autre


Editeur de présentation

Informations générales

A propos de l'Editeur de présentation

Palette d'outils de l'Editeur de présentation

Changement de canevas dans l'Editeur de présentation

Sélection d'objets dans l'Editeur de présentation

Déplacement d'objets dans l'Editeur de présentation

Redimensionnement d'objets dans l'Editeur de présentation

Alignement d'objets dans l'Editeur de présentation

Groupement d'objets dans l'Editeur de présentation

Classement d'objets dans l'Editeur de présentation

Blocs et éléments

Création d'éléments

Définition de contexte de bloc de l'Editeur de présentation

Utilisation de blocs multi-enregistrements

Mise en forme d'objets

Définition des attributs de couleur et de motif dans l'Editeur de présentation

Mise en forme d'éléments dans l'Editeur de présentation


L'éditeur PL/SQL

Ecriture de code dans l'Editeur PL/SQL

Création d'un déclencheur

Ecriture de code de déclencheur

Appel d'un sous-programme intégré

A propos de l'Editeur PL/SQL

Contexte de l'éditeur PL/SQL

Commandes de l'éditeur PL/SQL

Utilisation de PL/SQL dans Forms Builder


Editeur de menu

Création d'un menu personnalisé

Création d'un module de menu

Création de menus et d'options de menu

Affectation de commandes à des éléments de menu

Attachement d'un module de menu à une application Forms

Utilisation de l'Editeur de menu

Affichage de menus dans l'Editeur de menu

A propos des noms et des libellés d'objet de menu

Changement de nom et de libellé de nom de menu

Ajout d'options spéciales de menu

A propos des types d'options spéciales de menu

Création d'options spéciales de menu

Commandes des options de menu de bouton d'option et de case à cocher

Définition de l'état des options de menu de bouton d'option et de case à cocher

Fonctionnalité par défaut des éléments de menu magique


Définition d'un élément d'interface

  Etape suivante

Pour définir le comportement de mes ...

•  Contrôles ActiveX

•  Boutons

•  Eléments graphiquesITEMSCAT04>cat2

•  Cases à cocherITEMSCAT05>cat2

•  Eléments imageITEMSCAT06>cat2

•  Eléments listeITEMSCAT07>cat2

•  Eléments conteneur OLEITEMSCAT08>cat2

•  Groupes de boutons d'optionITEMSCAT09>cat2

•  Eléments sonITEMSCAT10>cat2

•  Eléments texteITEMSCAT11>cat2


Définition d'un contrôle ActiveX

  Rubriques connexes

Que voulez-vous faire ?

Incorporer un contrôle ActiveX dans une application Forms

Définir et lire les propriétés d'un contrôle ActiveX

Appeler des méthodes de contrôle ActiveX

Réaction aux événements de contrôle ActiveX

Enregistrer des contrôles ActiveX

Exécuter des contrôles ActiveX avec l'application


Définition d'un bouton

  Rubriques connexes

Que voulez-vous faire ?

Ajouter un libellé de bouton

Créer un bouton icône

Créer un bouton par défaut

Manipuler un bouton lors de l'exécution


Définition d'un élément graphique

Que voulez-vous faire ?

 Créer un élément graphique


Définition d'une case à cocher

  Rubriques connexes

Que voulez-vous faire ?

Indiquer la valeur par défaut d'une case à cocher

Manipuler une case à cocher lors de l'exécution


Définition d'un élément image

  Rubriques connexes

Que voulez-vous faire ?

Remplir un élément image

Manipuler des images lors de l'exécution


Définition d'un élément liste

  Rubriques connexes

Que voulez-vous faire ?

Indiquer la valeur par défaut d'un élément liste

Manipuler un élément liste lors de l'exécution

Ajouter un élément liste

Rechercher et stocker des éléments liste dans un groupe d'enregistrements

Supprimer un élément liste


Définition d'un élément de conteneur OLE

  Rubriques connexes

Que voulez-vous faire ?

Intégrer un objet OLE

Lier un objet OLE

Afficher un objet OLE

Modifier un objet OLE

Convertir un objet OLE


Définition d'un groupe de boutons d'option

  Rubriques connexes

Que voulez-vous faire ?

Indiquer la valeur par défaut d'un groupe de boutons d'option

Manipuler un groupe de boutons d'option lors de l'exécution


Définition d'un élément son

  Rubriques connexes

Que voulez-vous faire ?

Définir les propriétés d'un contrôle d'élément son

Manipuler des éléments son par programme


Définition d'un élément texte

  Rubriques connexes

Que voulez-vous faire ?

Créer des éléments texte monolignes et multilignes

Créer une valeur d'élément texte obligatoire

Indiquer la longueur maximum d'un élément texte

Indiquer la valeur obligatoire d'un élément texte

Indiquer une valeur de longueur fixe pour un élément texte

Indiquer une série de valeurs valides

Masquer des valeurs d'élément texte

Mettre en forme des valeurs à l'aide de masques de format

Attribuer une liste de valeurs (LOV) à un élément texte

Manipuler un élément texte lors de l'exécution


Packages de procédures internes

 Liste alphabétique	  Rubriques connexes

Procédures internes (OCX) concernant Active X

Procédures internes concernant les alertes

Procédures internes concernant les applications

Procédures internes concernant les blocs

Procédures internes concernant les canevas

Procédures internes concernant les graphiques

Procédures internes concernant l'application Forms

Procédures internes concernant les éléments

Procédures internes concernant les menus

Procédures internes concernant les messages

Procédures internes concernant plusieurs applications Forms

Procédures internes concernant OLE

Procédures internes concernant les listes de paramètres

Procédures internes concernant PECS

Procédures internes concernant les interrogations

Procédures internes concernant les enregistrements

Procédures internes concernant les relations

Procédures internes concernant les états

Procédures internes concernant les pages onglet

Procédures internes concernant les transactions

Procédures internes concernant le Web

Procédures internes concernant les fenêtres


Procédures internes de Form Builder

 Toutes les procédures internes

A

ABORT_QUERY

ADD_GROUP_COLUMN

ADD_GROUP_ROW

ADD_LIST_ELEMENT

ADD_OLEARGS

ADD_PARAMETER

APPLICATION_PARAMETER

B

BELL

BLOCK_MENU

BREAK

C

CALL_FORM

CALL_INPUT

CALL_OLE

CALL_OLE_<return type>

CANCEL_REPORT_OBJECT

CHECK_RECORD_UNIQUENESS

CHECKBOX_CHECKED

CHECKED

CLEAR_BLOCK

CLEAR_EOL

CLEAR_FORM

CLEAR_ITEM

CLEAR_LIST

CLEAR_MESSAGE

CLEAR_RECORD

CLOSE_FORM

COMMIT_FORM

CONVERT_OTHER_VALUE

COPY

COPY_REGION

COPY_REPORT_OUTPUT

COUNT_QUERY

CREATE_GROUP

CREATE_GROUP_FROM_QUERY

CREATE_OLEOBJ

CREATE_PARAMETER_LIST

CREATE_QUERIED_RECORD

CREATE_RECORD

CREATE_TIMER

CREATE_VAR

CUT_REGION

D

DBMS_ERROR_CODE

DBMS_ERROR_TEXT

DEBUG_MODE

DEFAULT_VALUE

DELETE_GROUP

DELETE_GROUP_ROW

DELETE_LIST_ELEMENT

DELETE_PARAMETER

DELETE_RECORD

DELETE_TIMER

DESTROY_PARAMETER_LIST

DESTROY_VARIANT

DISPATCH_EVENT

DISPLAY_ERROR

DISPLAY_ITEM

DOWN

DO_KEY

DUMMY_REFERENCE

DUPLICATE_ITEM

DUPLICATE_RECORD

E

EDIT_TEXTITEM

ENFORCE_COLUMN_SECURITY

ENTER

ENTER_QUERY

ERASE

ERROR_CODE

ERROR_TEXT

ERROR_TYPE

EXECUTE_QUERY

EXECUTE_TRIGGER

EXIT_FORM

F

FETCH_RECORDS

FIND_ALERT

FIND_BLOCK

FIND_CANVAS

FIND_COLUMN

FIND_EDITOR

FIND_FORM

FIND_GROUP

FIND_ITEM

FIND_LOV

FIND_MENU_ITEM

FIND_RELATION

FIND_REPORT_OBJECT

FIND_TAB_PAGE

FIND_TIMER

FIND_VIEW

FIND_WINDOW

FIRST_RECORD

FORM_FAILURE

FORM_FATAL

FORM_SUCCESS

FORMS_DDL

FORMS_OLE.ACTIVATE_SERVER

FORMS_OLE.CLOSE_SERVER

FORMS_OLE.EXEC_VERB

FORMS_OLE.FIND_OLE_VERB

FORMS_OLE.GET_INTERFACE_POINTER

FORMS_OLE.GET_VERB_COUNT

FORMS_OLE.GET_VERB_NAME

FORMS_OLE.INITIALIZE_CONTAINER

FORMS_OLE.SERVER_ACTIVE

G

GENERATE_SEQUENCE_NUMBER

GET_APPLICATION_PROPERTY

GET_BLOCK_PROPERTY

GET_CANVAS_PROPERTY

GET_FILE_NAME

GET_FORM_PROPERTY

GET_GROUP_CHAR_CELL

GET_GROUP_DATE_CELL

GET_GROUP_NUMBER_CELL

GET_GROUP_RECORD_NUMBER

GET_GROUP_ROW_COUNT

GET_GROUP_SELECTION

GET_GROUP_SELECTION_COUNT

GET_INTERFACE_POINTER

GET_ITEM_INSTANCE_PROPERTY

GET_ITEM_PROPERTY

GET_LIST_ELEMENT_COUNT

GET_LIST_ELEMENT_LABEL

GET_LIST_ELEMENT_VALUE

GET_LOV_PROPERTY

GET_MENU_ITEM_PROPERTY

GET_MESSAGE

GET_OLEARG_<type>

GET_OLE_MEMBERID

GET_OLE_<proptype>

GET_PARAMETER_ATTR

GET_PARAMETER_LIST

GET_RADIO_BUTTON_PROPERTY

GET_RECORD_PROPERTY

GET_RELATION_PROPERTY

GET_REPORT_OBJECT_PROPERTY

GET_TAB_PAGE_PROPERTY

GET_VAR_BOUNDS

GET_VAR_DIMS

GET_VAR_TYPE

GET_VIEW_PROPERTY

GET_WINDOW_PROPERTY

GO_BLOCK

GO_FORM

GO_ITEM

GO_RECORD

H

HELP

HIDE_MENU

HIDE_VIEW

HIDE_WINDOW

HOST

I

ID_NULL

IMAGE_SCROLL

IMAGE_ZOOM

INIT_OLEARGS

INITIALIZE_CONTAINER

INSERT_RECORD

ISSUE_ROLLBACK

ISSUE_SAVEPOINT

ITEM_ENABLED

J

K

L

LAST_OLE_ERROR

LAST_OLE_EXCEPTION

LAST_RECORD

LIST_VALUES

LOCK_RECORD

LOGON

LOGON_SCREEN

LOGOUT

M

MENU_CLEAR_FIELD

MENU_NEXT_FIELD

MENU_PARAMETER

MENU_PREVIOUS_FIELD

MENU_REDISPLAY

MENU_SHOW_KEYS

MESSAGE

MESSAGE_CODE

MESSAGE_TEXT

MESSAGE_TYPE

MOVE_WINDOW

N

NAME_IN

NEW_FORM

NEXT_BLOCK

NEXT_ITEM

NEXT_FORM

NEXT_KEY

NEXT_MENU_ITEM

NEXT_RECORD

NEXT_SET

O

OLEVAR_EMPTY

OPEN_FORM

P

PASTE_REGION

PAUSE

PECS.ADD_CLASS

PECS.ADD_EVENT

PECS.COLLECTOR

PECS.DISABLE_CLASS

PECS.ENABLE_CLASS

PECS.END_EVENT

PECS.POINT_EVENT

PECS.START_EVENT

PLAY_SOUND

POPULATE_GROUP

POPULATE_GROUP_WITH_QUERY

POPULATE_LIST

POST

PREVIOUS_BLOCK

PREVIOUS_FORM

PREVIOUS_ITEM

PREVIOUS_MENU

PREVIOUS_MENU_ITEM

PREVIOUS_RECORD

PRINT

PTR_TO_VAR

Q

QUERY_PARAMETER

R

READ_IMAGE_FILE

READ_SOUND_FILE

RECALCULATE

REDISPLAY

RELEASE_OBJ

REPLACE_CONTENT_VIEW

REPLACE_MENU

REPORT_OBJECT_STATUS

RESET_GROUP_SELECTION

RESIZE_WINDOW

RETRIEVE_LIST

RUN_PRODUCT

RUN_REPORT_OBJECT

S

SCROLL_DOWN

SCROLL_UP

SCROLL_VIEW

SELECT_ALL

SELECT_RECORDS

SET_ALERT_BUTTON_PROPERTY

SET_ALERT_PROPERTY

SET_APPLICATION_PROPERTY

SET_BLOCK_PROPERTY

SET_CANVAS_PROPERTY

SET_FORM_PROPERTY

SET_GROUP_CHAR_CELL

SET_GROUP_DATE_CELL

SET_GROUP_NUMBER_CELL

SET_GROUP_SELECTION

SET_INPUT_FOCUS

SET_ITEM_INSTANCE_PROPERTY

SET_ITEM_PROPERTY

SET_LOV_COLUMN_PROPERTY

SET_LOV_PROPERTY

SET_MENU_ITEM_PROPERTY

SET_OLE

SET_PARAMETER_ATTR

SET_RADIO_BUTTON_PROPERTY

SET_RECORD_PROPERTY

SET_RELATION_PROPERTY

SET_REPORT_OBJECT_PROPERTY

SET_TAB_PAGE_PROPERTY

SET_TIMER

SET_VAR

SET_VIEW_PROPERTY

SET_WINDOW_PROPERTY

SHOW_ALERT

SHOW_EDITOR

SHOW_KEYS

SHOW_LOV

SHOW_MENU

SHOW_VIEW

SHOW_WINDOW

SYNCHRONIZE

T

TERMINATE

TO_VARIANT

U

UNSET_GROUP_SELECTION

UP

UPDATE_CHART

UPDATE_RECORD

USER_EXIT

V

VALIDATE

VARPTR_TO_VAR

VAR_TO_TABLE

VAR_TO_<type>

VAR_TO_VARPTR

VBX.FIRE_EVENT

VBX.GET_PROPERTY

VBX.GET_VALUE_PROPERTY

VBX.INVOKE_METHOD

VBX.SET_PROPERTY

VBX.SET_VALUE_PROPERTY

W

WEB.SHOW_DOCUMENT

WHERE_DISPLAY

WRITE_IMAGE_FILE

WRITE_SOUND_FILE

X

Y

Z


Procédures internes concernant ActiveX

 Toutes les procédures internes

ADD_OLEARGS

CALL_OLE

CALL_OLE_<return type>

CREATE_OLEOBJ

CREATE_VAR

DESTROY_VARIANT

DISPATCH_EVENT

GET_OLEARG_<type>

GET_OLE_MEMBERID

GET_OLE_<proptype>

GET_VAR_BOUNDS

GET_VAR_DIMS

GET_VAR_TYPE

INIT_OLEARGS

LAST_OLE_ERROR

LAST_OLE_EXCEPTION

OLEVAR_EMPTY

PTR_TO_VAR

RELEASE_OBJ

SET_OLE

SET_VAR

TO_VARIANT

VARPTR_TO_VAR

VAR_TO_TABLE

VAR_TO_<type>

VAR_TO_VARPTR


Procédures internes concernant les alertes

 Toutes les procédures internes

FIND_ALERT

ID_NULL

SET_ALERT_BUTTON_PROPERTY

SET_ALERT_PROPERTY

SHOW_ALERT


Procédures internes concernant les applications

 Toutes les procédures internes

DO_KEY

GET_APPLICATION_PROPERTY

HOST

PAUSE

SET_APPLICATION_PROPERTY

USER_EXIT


Procédures internes concernant les blocs

 Toutes les procédures internes

BLOCK_MENU

CLEAR_BLOCK

FIND_BLOCK

GET_BLOCK_PROPERTY

GO_BLOCK

ID_NULL

NEXT_BLOCK

PREVIOUS_BLOCK

SET_BLOCK_PROPERTY


Procédures internes concernant les canevas

 Toutes les procédures internes

FIND_CANVAS

FIND_VIEW

GET_CANVAS_PROPERTY

GET_VIEW_PROPERTY

HIDE_VIEW

ID_NULL

PRINT

SCROLL_VIEW

SET_CANVAS_PROPERTY

SET_VIEW_PROPERTY

SHOW_VIEW


Procédures internes concernant les graphiques

 Toutes les procédures internes

UPDATE_CHART


Procédures internes concernant l'application Forms

 Toutes les procédures internes

BELL

BREAK

CALL_FORM

CALL_INPUT

CLEAR_FORM

COMMIT_FORM

DEBUG_MODE

ENTER

ERASE

EXECUTE_TRIGGER

EXIT_FORM

FIND_FORM

FORM_FAILURE

FORM_FATAL

FORM_SUCCESS

GET_FORM_PROPERTY

HELP

ID_NULL

NEW_FORM

OPEN_FORM

POST

REDISPLAY

REPLACE_MENU

SET_FORM_PROPERTY

SHOW_KEYS

SHOW_MENU

SYNCHRONIZE


Procédures internes concernant les éléments

 Toutes les procédures internes

CHECKBOX_CHECKED

CLEAR_EOL

CLEAR_ITEM

CONVERT_OTHER_VALUE

COPY

COPY_REGION

CUT_REGION

DEFAULT_VALUE

DISPLAY_ITEM

DUMMY_REFERENCE

DUPLICATE_ITEM

EDIT_TEXTITEM

FIND_ITEM

GET_FILE_NAME

GET_ITEM_INSTANCE_PROPERTY

GET_ITEM_PROPERTY

GET_RADIO_BUTTON_PROPERTY

GO_ITEM

ID_NULL

IMAGE_SCROLL

IMAGE_ZOOM

NAME_IN

NEXT_ITEM

NEXT_KEY

PASTE_REGION

PLAY_SOUND

PREVIOUS_ITEM

READ_IMAGE_FILE

READ_SOUND_FILE

RECALCULATE

SELECT_ALL

SET_ITEM_INSTANCE_PROPERTY

SET_ITEM_PROPERTY

SET_RADIO_BUTTON_PROPERTY

WRITE_IMAGE_FILE

WRITE_SOUND_FILE


Procédures internes concernant les menus

 Toutes les procédures internes

APPLICATION_PARAMETER

FIND_MENU_ITEM

GET_MENU_ITEM_PROPERTY

HIDE_MENU

ITEM_ENABLED

MENU_CLEAR_FIELD

MENU_PARAMETER

MENU_PREVIOUS_FIELD

MENU_REDISPLAY

MENU_SHOW_KEYS

NEXT_MENU_ITEM

PREVIOUS_MENU

PREVIOUS_MENU_ITEM

QUERY_PARAMETER

REPLACE_MENU

SET_INPUT_FOCUS

SET_MENU_ITEM_PROPERTY

SHOW_MENU

TERMINATE

WHERE_DISPLAY


Procédures internes concernant les messages

 Toutes les procédures internes

CLEAR_MESSAGE

DBMS_ERROR_CODE

DBMS_ERROR_TEXT

DISPLAY_ERROR

ERROR_CODE

ERROR_TEXT

ERROR_TYPE

GET_MESSAGE

MESSAGE

MESSAGE_CODE

MESSAGE_TEXT

MESSAGE_TYPE


Procédures internes concernant plusieurs applications Forms

 Toutes les procédures internes

CLOSE_FORM

GO_FORM

NEW_FORM

NEXT_FORM

OPEN_FORM

PREVIOUS_FORM


Procédures internes concernant OLE

 Toutes les procédures internes

FORMS_OLE.ACTIVATE_SERVER

FORMS_OLE.CLOSE_SERVER

FORMS_OLE.EXEC_VERB

FORMS_OLE.FIND_OLE_VERB

FORMS_OLE.GET_INTERFACE_POINTER

FORMS_OLE.GET_VERB_COUNT

FORMS_OLE.GET_VERB_NAME

FORMS_OLE.INITIALIZE_CONTAINER

FORMS_OLE.SERVER_ACTIVE


Procédures internes concernant les listes de paramètres

 Toutes les procédures internes

ADD_PARAMETER

CREATE_PARAMETER_LIST

DELETE_PARAMETER

DESTROY_PARAMETER_LIST

GET_PARAMETER_ATTR

ID_NULL

RUN_PRODUCT

SET_PARAMETER_ATTR


Procédures internes concernant PECS

 Toutes les procédures internes

PECS.ADD_CLASS

PECS.ADD_EVENT

PECS.COLLECTOR

PECS.DISABLE_CLASS

PECS.ENABLE_CLASS

PECS.END_EVENT

PECS.POINT_EVENT

PECS.START_EVENT


Procédures internes concernant les interrogations

 Toutes les procédures internes

ABORT_QUERY

COUNT_QUERY

ENTER_QUERY

EXECUTE_QUERY


Procédures internes concernant les enregistrements

 Toutes les procédures internes

CHECK_RECORD_UNIQUENESS

CLEAR_RECORD

CREATE_QUERIED_RECORD

CREATE_RECORD

DELETE_RECORD

DOWN

DUPLICATE_RECORD

FIRST_RECORD

GENERATE_SEQUENCE_NUMBER

GET_RECORD_PROPERTY

GO_RECORD

INSERT_RECORD

LAST_RECORD

LOCK_RECORD

NEXT_RECORD

NEXT_SET

PREVIOUS_RECORD

SCROLL_DOWN

SCROLL_UP

SELECT_RECORDS

SET_RECORD_PROPERTY

UP

UPDATE_RECORD


Procédures internes concernant les relations

 Toutes les procédures internes

FIND_RELATION

GET_RELATION_PROPERTY

ID_NULL

SET_RELATION_PROPERTY


Procédures internes concernant les états

 Toutes les procédures internes

CANCEL_REPORT_OBJECT

COPY_REPORT_OUTPUT

FIND_REPORT_OBJECT

GET_REPORT_OBJECT_PROPERTY

RUN_REPORT_OBJECT

SET_REPORT_OBJECT_PROPERTY


Procédures internes concernant les pages onglet

 Toutes les procédures internes

FIND_TAB_PAGE

GET_TAB_PAGE_PROPERTY

SET_TAB_PAGE_PROPERTY


Procédures internes concernant les transactions

 Toutes les procédures internes

CHECK_RECORD_UNIQUENESS

DELETE_RECORD

ENFORCE_COLUMN_SECURITY

FETCH_RECORDS

FORMS_DDL

GENERATE_SEQUENCE_NUMBER

INSERT_RECORD

ISSUE_ROLLBACK

ISSUE_SAVEPOINT

LOGON

LOGON_SCREEN

LOGOUT

SELECT_RECORDS

UPDATE_RECORD


Procédures internes concernant le Web

 Toutes les procédures internes

WEB.SHOW_DOCUMENT


Procédures internes concernant les fenêtres

 Toutes les procédures internes

FIND_WINDOW

GET_WINDOW_PROPERTY

HIDE_WINDOW

ID_NULL

MOVE_WINDOW

REPLACE_CONTENT_VIEW

RESIZE_WINDOW

SET_WINDOW_PROPERTY

SHOW_WINDOW


Propriétés

 Liste alphabétique	  Rubriques connexes

Propriétés des alertes

Propriétés des applications

Propriétés des blocs

Propriétés des canevas

Propriétés des graphiques

Propriétés des éditeurs

Propriétés des paramètres d'applications

Propriétés des modules d'applications

Propriétés des cadres

Propriétés des objets graphiques

Propriétés des éléments

Propriétés des listes de valeurs (LOV)

Propriétés des menus

Propriétés des attributs visuels nommés

Propriétés des invites

Propriétés des enregistrements

Propriétés des groupes d'enregistrements

Propriétés des relations

Propriétés des états

Propriétés des pages onglet

Propriétés des déclencheurs

Propriétés des fenêtres


Propriétés de Form Builder

 Toutes les propriétés

A

A propos de Control

Touche d'accès

Type d'alerte

Alias

Autoriser développement

Autoriser invites multilignes

Autoriser invites de début attachées

Autoriser invites supérieures attachées

Instance d'application

Type de flèche

Menus associés

Canaux audio

Largeur de colonne automatique

Affichage automatique

Emplacement automatique

Interrogation automatique

Régénération automatique

Sélection automatique

Saut automatique (élément)

Saut automatique (liste de valeurs)

B

Background_Color

Relief

Description du bloc

Titre de bas de page (éditeur)

Format de date intégré

Libellé du bouton 1, Libellé du bouton 2, Libellé du bouton 3

C

Mode de calcul

Calling_Form

Canevas

Type de canevas

Style des extrémités

Interrogation sans distinction maj/min

Respecter maj/min

Largeur/hauteur Cellule de caractère

Case à cocher Correspondance d'autres valeurs

Cochée

Hauteur de découpage

Largeur de découpage

Position X de découpage

Position Y de découpage

Fermeture autorisée

Fermé

Propriétés de correspondance de colonnes

Nom de colonne

Spécifications de colonne

Titre de colonne

Valeur de colonne

Texte de commande

Type de commande

Commentaires

Mode de communication (graphique)

Mode de communication (état)

Comprimer

Compression_Quality

Masquer données

Connect_String

Fenêtre de commande

Aide sur contrôle

Propriétés de contrôle

Système de coordonnées

Coordination

Coordination_Status

Copier valeur de l'élément

Current_Form

Current_Form_Name

Current_Record

Attributs visuels de l'enregistrement courant

Current_Row_Background_Color

Current_Row_Fill_Pattern

Current_Row_Font_Name

Current_Row_Font_Size

Current_Row_Font_Spacing

Current_Row_Font_Style

Current_Row_Font_Weight

Current_Row_Foreground_Color

Current_Row_White_On_Black

Mode curseur

Cursor_Style

Espacement personnalisé

D

Type de tiret

Description du bloc de données

Bloc de données de source de données (graphique)

Bloc de données de source de données (état)

Axe X de la source de données

Axe Y de la source de données

Type de données

Type de données (groupe d'enregistrements)

Bloc de base de données

Database_Value

Source de données

Bouton d'alerte par défaut

Bouton par défaut

Echelle de police par défaut

Différé

Defer_Required_Enforcement

Suppression autorisée

Arguments de procédure de suppression

Nom de procédure de suppression

Colonnes de résultat de procédure de suppression

Comportement d'enregistrement supprimé

Bloc détail

Elément Référence détail

Orientation

Afficher sans droit d'accès

Display_Height

Affichage dans l'aide du clavier

Aide automatique

Qualité de l'affichage

Display_Width

Largeur d'affichage (liste de valeurs)

Distance entre enregistrements

Trame

Taille de tableau DML

Nom de cible de données DML

Type de cible de données DML

E

Couleur d'arrière-plan du bord

Couleur premier plan du bord

Motif du bord

Editeur

Position X de l'éditeur, Position Y de l'éditeur

Eléments dans la liste

Activé (élément)

Activé (élément de menu)

Activé (page onglet)

Angle de fin

Imposer sécurité sur colonne

Imposer clé primaire

Modifiable

Mode d'exécution (graphique)

Mode d'exécution (état)

Type d'exécution

F

File_Name

Remplissage

Fill_Pattern

Filtrer avant afficher

Activer en mode Saisie interrogation

First_Block

First_Detail_Relation

First_Item

First_Master_Relation

Premier bloc de navigation

Boîte englobante prédéfinie

Longueur fixe (élément)

Longueur fixe (paramètre de substitution de menu)

Espacement de police

Font_Name

Font_Size

Font_Spacing

Font_Style

Font_Weight

Foreground_Color

Canevas à barre d'outils horizontale d'application Forms

Canevas à barre d'outils verticale d'application Forms

Form_Name

Masque de format

Formule

Alignement de cadre

Titre de cadre

Alignement de titre de cadre

Nom de police de titre de cadre

Taille de police de titre de cadre

Espacement de police de titre de cadre

Style de police de titre de cadre

Epaisseur de police de titre de cadre

Couleur de premier plan de titre de cadre

Décalage de titre de cadre

Séquence de lecture de titre de cadre

Espacement de titre de cadre

Groupe d'attributs visuels de titre de cadre

G

Type de graphique

Group_Name

H

Help

Masquer sur sortie

Valeur maximum autorisée

Message d'aide (élément)

Message d'aide (élément de menu)

Message d'aide (paramètre de substitution de menu)

Justification horizontale

Marge horizontale

Décalage d'objet horizontal

Origine horizontale

Canevas à barre d'outils horizontale

I

Nom de fichier d'icône

Icône dans menu

Icône

Image_Depth

Image_Format

Classe de mise en œuvre

Inclure l'élément REF

Menu hérité

Etat initial clavier

Menu initial

Valeur initiale

Insertion autorisée (bloc)

Insertion autorisée (élément)

Arguments de procédure d'insertion

Nom de procédure d'insertion

Colonnes de résultats de procédure d'insertion

Mode d'interaction

Mode d'isolation

Item_Is_Valid

Rôles élément

Item_Tab_Page (élément)

Type d'élément

J

Condition de jointure

Type de jointure

Justification

K

Conserver position du curseur

Raccourci-clavier

Description de l'aide du clavier

Navigation autorisée au clavier

Etat clavier

Mode clé

L

Libellé (élément)

Libellé (élément de menu)

Libellé (paramètre de menu)

Libellé (page onglet)

Last_Block

Last_Item

Dernière interrogation

Bloc de données de présentation

Style de présentation

Longueur

Espacement de trait

Largeur de trait

Répertorié dans le menu Bloc/Description du bloc

Valeur d'élément Liste

Liste de valeurs

Type de liste

Type de liste

Position X de la liste

Position Y de la liste

Verrouiller les arguments de procédure

Nom de procédure de verrouillage

Colonnes de résultats de procédure de verrouillage

Verrouillage d'enregistrement

Mode de verrouillage

Valeur minimum autorisée

M

Elément de menu magique

Menu principal

Correspondance d'autres valeurs

Agrandissement autorisé

Longueur maximum (paramètre d'application Forms)

Longueur maximum (élément)

Longueur maximum (paramètre de substitution de menu)

Nombre maximum d'objets par ligne

Durée maximum d'interrogation

Nombre maximum d'enregistrements extraits

Description de menu

Répertoire de menu

Nom de fichier de menu

Code d'élément Menu

Groupe de boutons associé à l'option de menu

Type d'option de menu

Module Menu

Rôle associé au menu

Source du menu

Type de menu

Message

Réduction autorisée

Titre réduit

Modal

Module_NLS_Lang

Rôles module

Navigation à la souris

Limite de navigation à la souris

Déplacement autorisé

Multiligne

N

Nom

Type de navigation

Bloc suivant

NextItem

Next_Detail_Relation

Next_Master_Relation

Bloc de navigation suivant

Elément de navigation suivant

Nombre d'éléments affiché

Nombre d'enregistrements en tampon

Nombre d'enregistrements affiché

O

Type d'activation OLE

Classe OLE

Activation sur objets incorporés OLE

Support OLE intérieur-extérieur

Options de menu OLE instantané

Type de redimensionnement OLE

Aspect du contenu OLE

Types de contenu OLE

Operating_System

Optimizer_Hint

Order By

Paramètres d'autres états

P

Type de données de paramètre

Valeur initiale de paramètre

Valeur initiale du menu de paramètre

Mot de passe

Format de date PL/SQL

Menu instantané(élément, canevas)

Position (X, Y)

Précalculer récapitulatifs

Empêcher opérations sans maître

Bloc de navigation précédent

Bloc précédent

PreviousItem

Elément de navigation précédent

Canevas principal

Clé primaire (élément)

Texte d'unité de programme

Invite

Alignement de l'invite

Décalage d'alignement de l'invite

Bord d'attachement de l'invite

Décalage d'attachement de l'invite

Couleur d'arrière-plan de l'invite

Type d'affichage de l'invite

Nom de police de l'invite

Taille de police d'invite

Espacement de police de l'invite

Style de police d'invite

Epaisseur de police de l'invite

Couleur de premier plan de l'invite

Motif de remplissage de l'invite

Justification de l'invite

Séquence de lecture de l'invite

Groupe d'attributs visuels de l'invite

Prompt_Fill_Pattern

Prompt_Font_Name

Prompt_Font_Size

Prompt_Font_Spacing

Prompt_Font_Style

Prompt_Font_Weight

Prompt_Foreground_Color

Prompt_White_On_Black

Classe de propriété

Q

Interroger tous les enregistrements

Interrogation autorisée (bloc)

Interrogation autorisée (élément)

Taille de tableau d'interrogation

Arguments de source de données d'interrogation

Colonnes de données de source d'interrogation

Nom de source de données d'interrogation

Type de source de données d'interrogation

Longueur d'interrogation

Nom de l'interrogation

Interrogation seulement

Query_Hits

Query_Options

R

Valeur de bouton d'option

Afficher au premier plan sur saisie

Séquence de lecture

Unité réelle

Groupe d'enregistrements

Taille d'extraction du groupe d'enregistrements

Interrogation associée au groupe d'enregistrements

Type de groupe d'enregistrements

Sens des enregistrements

Records_To_Fetch

Type de la relation

Rendu

Format de la destination de l'état

Nom de la destination de l'état

Type de destination de l'état

Serveur d'états

Obligatoire (élément)

Obligatoire (paramètre de substitution de menu)

Redimensionnement autorisé

Elément récepteur (liste de valeurs)

Angle de rotation

Mode de compatibilité Runtime

S

Mode savepoint

Savepoint_Name

Alignement de barre de défilement

Hauteur de barre de défilement

Largeur de barre de défilement

Sécuriser (paramètre de substitution de menu)

Partager bibliothèque avec application Forms

Afficher bouton Avance rapide

Afficher barre de défilement horizontale

Afficher menu OLE instantané

Afficher type de contenu OLE

Afficher palette

Afficher bouton Lecture

Afficher bouton Enregistrement

Afficher bouton Retour rapide

Afficher barre de défilement

Afficher règle

Afficher horloge

Afficher barre de défilement verticale

Afficher réglage du volume

Prêt à l'emploi

Alignement d'un objet

Enregistrement unique

Taille

Type d'ajustement

Format son

Qualité du son

Angle de début

Alignement de l'invite de début

Décalage de l'invite de début

Code de démarrage

Etat (bloc)

Etat (enregistrement)

Subclass_Information

Nom de sous-menu

Bloc récapitulatif

Elément récapitulatif

Fonction de récapitulation

Option Synchroniser avec

T

Bord d'attachement d'onglet

Page onglet

Décalage X de page onglet

Décalage Y de page onglet

Type d'onglet

Menu détachable

Timer_Name

Titre

Bulle d'information

Tooltip_Background_Color

Tooltip_Fill_Pattern

Tooltip_Font_Name

Tooltip_Font_Size

Tooltip_Font_Spacing

Tooltip_Font_Style

Tooltip_Font_Weight

Tooltip_Foreground_Color

Groupe d'attributs visuels de bulle d'information

Tooltip_White_On_Black

Topmost_Tab_Page (Canvas)

Alignement de l'invite supérieure

Décalage de l'invite supérieure

Top Title

Top_Record

Déclencheur transactionnel

Style de déclencheur

Texte du déclencheur

Type de déclencheur

U

Mise à jour autorisée (bloc)

Mise à jour autorisée (élément)

Mettre à jour colonnes modifiées seulement

Update_Column

Update_Commit

Mettre à jour présentation

Mettre à jour seulement si NULL

Update_Permission

Arguments de procédure de mise à jour

Nom de procédure de mise à jour

Colonnes de résultats de procédure de mise à jour

Update_Query

Utiliser contrôles 3D

Sécurité

User_Interface

User_NLS_Date_Format

User_NLS_Lang

Nom utilisateur

V

Valider à partir de la liste

Validation

Unité de validation

Valeur lorsque coché

Valeur lorsque non coché

Fichier de contrôle VBX

Nom de contrôle VBX

Valeur de contrôle VBX

Remplissage vertical

Justification verticale

Marge verticale

Décalage d'objet vertical

Origine verticale

Canevas à barre d'outils verticale

Hauteur de lucarne, Largeur de lucarne

Position X de la lucarne, Position Y de la lucarne

Position X de la lucarne sur le canevas, Position Y de la lucarne sur le canevas

Visible

Visible (canevas)

Visible (élément)

Visible dans menu

Visible (page onglet)

Visible dans la barre d'outils de menu Horizontal/Vertical

Visual_Attribute

Groupe d'attributs visuels

Type d'attribut visuel

W

Clause Where/Order By

White_On_Black

Largeur/Hauteur

Fenêtre

Window_Handle

Window_State

Type de fenêtre

Type de césure

Renvoi à la ligne

X

Rayon d'angle X

Position X, Position Y

Y

Position Y, Position X

Z


Propriétés des alertes

 Toutes les propriétés

Type d'alerte

Libellé du bouton 1, Libellé du bouton 2, Libellé du bouton 3

Commentaires

Bouton d'alerte par défaut

Bouton par défaut

Source du menu

Message

Nom

Classe de propriété

Titre


Propriétés des applications

 Toutes les propriétés

Calling_Form

Commentaires

Connect_String

Current_Form

Current_Form_Name

Cursor_Style

Source de données

Display_Height

Display_Width

Interaction_Mode

Isolation_Mode

Maximum_Query_Time

Maximum_Records_Fetched

Nom

Operating_System

Mot de passe

Savepoint_Name

Timer_Name

User_Interface

Nom utilisateur

User_NLS_Lang


 Propriétés des blocs

 Toutes les propriétés

Instance d'application

Description du bloc

Commentaires

Current_Record

Groupe d'attributs visuels de l'enregistrement courant

Description du bloc de données

Bloc de base de données

Suppression autorisée

Arguments de procédure de suppression

Nom de procédure de suppression

Colonnes de résultat de procédure de suppression

Taille de tableau DML

Nom de cible de données DML

Type de cible de données DML

Imposer sécurité sur colonne

Imposer clé primaire

Modifiable

First_Block

First_Detail_Relation

First_Item

First_Master_Relation

Insertion autorisée (bloc)

Arguments de procédure d'insertion

Nom de procédure d'insertion

Colonnes de résultats de procédure d'insertion

Condition de jointure

Mode clé

Last_Item

Répertorié dans le menu Bloc/Description du bloc

Mode de verrouillage

Nom de procédure de verrouillage

Colonnes de résultats de procédure de verrouillage

Nom

Type de navigation

Bloc suivant

Bloc de navigation suivant

Nombre d'enregistrements en tampon

Nombre d'enregistrements affiché

Optimizer_Hint

Order By

Précalculer récapitulatifs

Bloc de navigation précédent

Bloc précédent

Classe de propriété

Interroger tous les enregistrements

Interrogation autorisée (bloc)

Taille de tableau d'interrogation

Arguments de source de données d'interrogation

Colonnes de données de source d'interrogation

Nom de source de données d'interrogation

Type de source de données d'interrogation

Query_Hits

Query_Options

Sens des enregistrements

Records_To_Fetch

Afficher barre de défilement

Enregistrement unique

Etat (bloc)

Top_Record

Déclencheur transactionnel

Mise à jour autorisée (bloc)

Mettre à jour colonnes modifiées seulement

Arguments de procédure de mise à jour

Nom de procédure de mise à jour

Colonnes de résultats de procédure de mise à jour

Clause Where/Clause Order By

Window_Handle


Propriétés des canevas

 Toutes les propriétés

Relief

Type de canevas

Commentaires

Canevas à barre d'outils horizontale d'application Forms

Canevas à barre d'outils verticale d'application Forms

Nom

Menu instantané

Classe de propriété

Afficher au premier plan sur saisie

Taille

Bord d'attachement d'onglet

Type d'onglet

Topmost_Tab_Page

Hauteur de lucarne, Largeur de lucarne

Position X de la lucarne, Position Y de la lucarne

Position X de la lucarne sur le canevas, Position Y de la lucarne sur le canevas

Visible (canevas)

Groupe d'attributs visuels

Largeur/Hauteur

Fenêtre

Position X, Position Y


 Propriétés des graphiques

 Toutes les propriétés

Mode de communication (graphique)

Bloc de données de source de données (graphique)

Mode d'exécution (graphique)


Propriétés des éditeurs

 Toutes les propriétés

Titre de bas de page (éditeur)

Commentaires

Position X de l'éditeur, Position Y de l'éditeur

Nom

Classe de propriété

Afficher barre de défilement horizontale

Taille

Top Title

Largeur/Hauteur

Type de césure

Position X, Position Y


Propriétés des cadres

 Toutes les propriétés

Autoriser développement

Autoriser invites multilignes

Autoriser invites de début attachées

Autoriser invites supérieures attachées

Distance entre enregistrements

Alignement de cadre

Titre de cadre

Alignement de titre de cadre

Nom de police de titre de cadre

Taille de police de titre de cadre

Espacement de police de titre de cadre

Style de police de titre de cadre

Epaisseur de police de titre de cadre

Couleur de premier plan de titre de cadre

Décalage de titre de cadre

Séquence de lecture de titre de cadre

Espacement de titre de cadre

Groupe d'attributs visuels de titre de cadre

Décalage d'objet horizontal

Style de présentation

Nombre maximum d'objets par ligne

Nombre d'enregistrements affiché

Alignement de barre de défilement

Largeur de barre de défilement

Afficher barre de défilement

Prêt à l'emploi

Alignement d'un objet

Alignement de l'invite de début

Décalage de l'invite de début

Alignement de l'invite supérieure

Décalage de l'invite supérieure

Mettre à jour présentation

Remplissage vertical

Marge verticale

Décalage d'objet vertical


Propriétés des objets graphiques

 Toutes les propriétés

Style des extrémités

Type de tiret

Couleur d'arrière-plan du bord

Couleur d'arrière-plan du bord

Motif du bord

Type de graphique

Type de jointure

Largeur de trait

Angle de rotation


Propriétés des éléments

 Toutes les propriétés

A propos de Control

Touche d'accès

Instance d'application

Canaux audio

Saut automatique (élément)

Relief

Mode de calcul

Canevas

Interrogation sans distinction maj/min

Respecter maj/min

Case à cocher Correspondance d'autres valeurs

Nom de colonne

Commentaires

Comprimer

Compression_Quality

Masquer données

Aide sur contrôle

Propriétés de contrôle

Copier valeur de l'élément

Attributs visuels de l'enregistrement courant

Axe X de la source de données

Axe Y de la source de données

Database_Value

Bouton par défaut

Aide automatique

Qualité de l'affichage

Distance entre enregistrements

Editeur

Position X de l'éditeur, Position Y de l'éditeur

Eléments dans la liste

Activé (élément)

Longueur fixe (élément)

Masque de format

Formule

Valeur maximum autorisée

Message d'aide (élément)

Nom de fichier d'icône

Icône

Image_Depth

Image_Format

Classe de mise en œuvre

Valeur initiale

Etat initial clavier

Insertion autorisée (élément)

Item_Is_Valid

Item_Tab_Page (élément)

Type d'élément

Justification

Conserver position du curseur

Navigation autorisée au clavier

Etat clavier

Libellé (élément)

Valeur d'élément Liste

Liste de valeurs

Type de liste

Position X de la liste

Position Y de la liste

Verrouillage d'enregistrement

Valeur minimum autorisée

Correspondance d'autres valeurs

Longueur maximum (élément)

Navigation à la souris

Multiligne

Nom

NextItem

Elément de navigation suivant

Nombre d'éléments affiché

Type d'activation OLE

Classe OLE

Activation sur objets incorporés OLE

Support OLE intérieur-extérieur

Options de menu OLE instantané

Type de redimensionnement OLE

Aspect du contenu OLE

Types de contenu OLE

Type de données de paramètre

Menu instantané

PreviousItem

Elément de navigation précédent

Clé primaire (élément)

Classe de propriété

Interrogation autorisée (élément)

Longueur d'interrogation

Interrogation seulement

Valeur de bouton d'option

Rendu

Obligatoire (élément)

Taille

Type d'ajustement

Afficher bouton Avance rapide

Afficher barre de défilement horizontale

Afficher menu OLE instantané

Afficher type de contenu OLE

Afficher palette

Afficher bouton Lecture

Afficher bouton Enregistrement

Afficher bouton Retour rapide

Afficher règle

Afficher horloge

Afficher réglage du volume

Format son

Qualité du son

Bloc récapitulatif

Elément récapitulatif

Fonction de récapitulation

Option Synchroniser avec

Page onglet

Bulle d'information

Groupe d'attributs visuels de bulle d'information

Mise à jour autorisée (élément)

Update_Column

Update_Commit

Mettre à jour seulement si NULL

Update_Permission

Valider à partir de la liste

Valeur lorsque coché

Valeur lorsque non coché

Fichier de contrôle VBX

Nom de contrôle VBX

Valeur de contrôle VBX

Visible (élément)

Groupe d'attributs visuels

Largeur/Hauteur

Window_Handle

Type de césure

Renvoi à la ligne

Position X, Position Y


Propriétés des listes de valeurs (LOV)

 Toutes les propriétés

Affichage automatique

Régénération automatique

Sélection automatique

Saut automatique (liste de valeurs)

Propriétés de correspondance de colonnes

Nom de colonne

Spécifications de colonne

Titre de colonne

Commentaires

Largeur d'affichage (liste de valeurs)

Filtrer avant afficher

Group_Name

Type de liste

Nom

Classe de propriété

Groupe d'enregistrements

Elément récepteur (liste de valeurs)

Taille

Titre

Position X, Position Y


Propriétés des menus

 Toutes les propriétés

Menus associés

Titre de bas de page

Respecter maj/min

Cochée

Texte de commande

Type de commande

Commentaires

Afficher sans droit d'accès

Activé (élément de menu)

Longueur fixe (paramètre de substitution de menu)

Aide

Message d'aide (élément de menu)

Message d'aide (paramètre de substitution de menu)

Nom de fichier d'icône

Icône dans menu

Rôles élément

Raccourci-clavier

Libellé (élément de menu)

Libellé (paramètre de menu)

Elément de menu magique

Longueur maximum (paramètre de substitution de menu)

Description de menu

Répertoire de menu

Nom de fichier de menu

Groupe de boutons associé à l'option de menu

Type d'option de menu

Module Menu

Source du menu

Rôles module

Type de données de paramètre

Valeur initiale du menu de paramètre

Classe de propriété

Obligatoire (paramètre de substitution de menu)

Sécuriser (paramètre de substitution de menu)

Partager bibliothèque avec application Forms

Code de démarrage

Menu détachable

Titre

Sécurité

Visible dans la barre d'outils de menu Horizontal/Vertical

Visible dans menu

Groupe d'attributs visuels


Propriétés des modules

 Toutes les propriétés

Instance d'application

Character Cell WD/HT

Commentaires

Fenêtre de commande

Système de coordonnées

Attributs visuels de l'enregistrement courant

Mode curseur

Defer_Required_Enforcement

File_Name

First_Block

Premier bloc de navigation

Espacement de police

Canevas à barre d'outils horizontale d'application Forms

Canevas à barre d'outils verticale d'application Forms

Form_Name

Menu initial

Last_Block

Module Menu

Rôle associé au menu

Source du menu

Type de menu

Module_NLS_Lang

Limite de navigation à la souris

Nom

Classe de propriété

Unité réelle

Mode de compatibilité Runtime

Mode savepoint

Titre

Utiliser contrôles 3D

Validation

Unité de validation

Window_Handle


Propriétés des paramètres

 Toutes les propriétés

Commentaires

Longueur maximum (paramètre d'application Forms)

Nom

Type de données de paramètre

Valeur initiale de paramètre

Classe de propriété


Propriétés des invites

 Toutes les propriétés

Invite

Alignement de l'invite

Décalage d'alignement de l'invite

Bord d'attachement de l'invite

Décalage d'attachement de l'invite

Couleur d'arrière-plan de l'invite

Type d'affichage de l'invite

Motif de remplissage de l'invite

Nom de police de l'invite

Taille de police d'invite

Espacement de police de l'invite

Style de police d'invite

Epaisseur de police de l'invite

Couleur de premier plan de l'invite

Justification de l'invite

Séquence de lecture de l'invite

Groupe d'attributs visuels de l'invite


Propriétés des enregistrements

 Toutes les propriétés

Etat (enregistrement)


Propriétés des groupes d'enregistrements

 Toutes les propriétés

Nom de colonne

Spécifications de colonne

Valeur de colonne

Commentaires

Type de données

Comportement d'enregistrement supprimé

Longueur

Nom

Classe de propriété

Taille d'extraction du groupe d'enregistrements

Interrogation associée au groupe d'enregistrements

Type de groupe d'enregistrements


Propriétés des relations

 Toutes les propriétés

Commentaires

Coordination

Coordination_Status

Différé

Bloc détail

Condition de jointure

Nom

Next_Detail_Relation

Next_Master_Relation

Empêcher opérations sans maître

Classe de propriété


Propriétés des états

 Toutes les propriétés

Mode de communication (état)

Bloc de données de source de données (état)

Mode d'exécution (état)

Paramètres d'autres états

Nom de l'interrogation

Format de la destination de l'état

Nom de la destination de l'état

Type de destination de l'état


Propriétés des pages onglet

 Toutes les propriétés

Canevas

Activé (page onglet)

Libellé (page onglet)

Décalage X de page onglet

Décalage Y de page onglet

Visible (page onglet)

Groupe d'attributs visuels


Propriétés des déclencheurs

 Toutes les propriétés

Commentaires

Affichage dans l'aide du clavier

Type d'exécution

Activer en mode Saisie interrogation

Description de l'aide du clavier

Nom

Classe de propriété

Style de déclencheur

Texte du déclencheur

Type de déclencheur


Propriétés des attributs visuels nommés

 Toutes les propriétés

Background_Color

Foreground_Color

Nom

Classe de propriété

Taille

Visible

Visual_Attribute

Type d'attribut visuel

White_On_Black

Largeur/Hauteur


Propriétés des fenêtres

 Toutes les propriétés

Fermeture autorisée

Commentaires

Masquer sur sortie

Canevas à barre d'outils horizontale

Nom de fichier d'icône

Menu hérité

Agrandissement autorisé

Réduction autorisée

Titre réduit

Modal

Déplacement autorisé

Nom

Canevas principal

Classe de propriété

Redimensionnement autorisé

Afficher barre de défilement horizontale

Afficher barre de défilement verticale

Taille

Titre

Canevas à barre d'outils verticale

Visible

Visual_Attribute

Groupe d'attributs visuels

Window_State

Type de fenêtre

Position X, Position Y


Options

 Liste alphabétique

Options de Forms Runtime

Options de Forms Compiler

Options de Form Builder


Préférences de Form Builder
Options de Form Builder

 Toutes les options

A

Accès (Form Builder)

Add_Triggers (Form Compiler)

Traitement par tableau

B

Traitement par lots (Form Compiler)

Block_Menu (Forms Runtime)

Mettre enregistrement tampon dans fichier

Générer (Forms Compiler)

Générer avant d'exécuter

C

Assistant Présentation - Page de bienvenue  B

Mode couleur

Palette de couleurs

Compile_All

CRT_File (Form Compiler)

D

Assistant Bloc de données - Page de bienvenue

Déboguer (Forms Runtime)

Debug_Messages (Forms Runtime)

Supprimer (Form Compiler)

E

Extraire (Form Compiler)

F

G

H

Aide (Form Builder)

Aide (Form Compiler)

Aide (Forms Runtime)

Nom du fichier HTML

I

Insérer (Form Compiler)

Interactif (Forms Runtime)

J

K

Keyin (Forms Runtime)

Keyout (Forms Runtime)

L

Assistant Présentation - Page de bienvenue

Connexion (Form Compiler)

Logon_Screen (Forms Runtime)

LOV - Page de bienvenue

M

Module_Access (Form Builder)

Module_Access (Form Compiler)

Module_Type (Form Builder)

Module_Type (Form Compiler)

N

Nofail (Form Compiler)

O

Optimisation du traitement SQL (Forms Runtime)

Optimisation du traitement des transactions (Forms Runtime)

Output_File (Form Compiler)

Output_File (Forms Runtime)

P

Analyser (Form Compiler)

Imprimante

Q

Query_Only (Forms Runtime)

Mode silencieux (Forms Runtime)

R

Exécuter les modules en asynchrone

S

Enregistrer avant de générer

Script (Form Compiler)

Session (Forms Runtime)

Statistiques (Form Compiler)

Statistiques (Forms Runtime)

Strip_Source (Forms Runtime)

Chemin de sous-classement

Supprimer les messages d'aide

T

Term (Forms Runtime)

U

Upgrade (Form Compiler)

Upgrade_Roles (Form Compiler)

Utiliser l'éditeur système

V

Version (Form Compiler)

W

Boîte de dialogue de bienvenue

Assistants - pages de bienvenue

X

Y

Z


options Runform;
Options Forms Runtime

 Toutes les options

Array

Block_Menu

Buffer_Records

Debug

Debug_Messages

Help

Interactive

Keyin

Keyout

Logon_Screen

OptimizeSQL

OptimizeTP

Options_Screen

Output_File

PECS

Query_Only

Quiet

Session

Statistics

Term

Window_State


génération d'options;
Options de Form Compiler

 Toutes les options

Add_Triggers

Traitement par lots

Générer

Compile_All

CRT_File

Déboguer

Supprimer

Extraire

Help

Insertion

Ouverture de session

Module_Access

Module_Type

Nofail

Options_Screen

Output_File

Analyser

Script

Statistiques

Strip_Source

Faire évoluer

Upgrade_Roles

Version

Widen_Fields


Forms Builder, options;
Options de Form Builder

 Toutes les options

Mode couleur

Palette de couleurs

Générer avant d'exécuter

Help

Module_Access

Module_Type

Imprimante

Exécuter les modules en asynchrone

Enregistrer avant de générer

Supprimer les messages d'aide

Utiliser l'éditeur système

Préférences utilisateur


Déclencheurs

 Liste alphabétique	  Rubriques connexes

Déclencheurs Active X

Déclencheurs de traitement des blocs

Déclencheurs d'événements d'interface

Déclencheurs de touche

Déclencheurs maître-détail

Déclencheurs de gestion de messages

Déclencheurs d'événements relatifs à la souris

Déclencheurs de navigation

Déclencheurs On

Déclencheurs Post

Déclencheurs Pre

Déclencheurs de durée d'interrogation

Déclencheurs de procédures stockées

Déclencheurs transactionnels

Déclencheurs de validation

Déclencheurs When


Déclencheurs Form Builder

 Tous les déclencheurs

A

B

C

D

Delete-Procedure

E

F

Déclencheurs de touches de fonction

G

H

I

Insert-Procedure

J

K

Key-Fn

Key-Others

L

Lock-Procedure

M

N

O

On-Check-Delete-Master

On-Check-Unique

On-Clear-Details

On-Close

On-Column-Security

On-Commit

On-Count

On-Delete

On-Dispatch-Event

On-Error

On-Fetch

On-Insert

On-Lock

On-Logon

On-Logout

On-Message

On-Populate-Details

On-Rollback

On-Savepoint

On-Select

On-Sequence-Number

On-Update

P

Post-Block

Post-Change

Post-Database-Commit

Post-Delete

Post-Form

Post-Forms-Commit

Post-Insert

Post-Logon

Post-Logout

Post-Query

Post-Record

Post-Select

Post-Text-Item

Post-Update

Pre-Block

Pre-Commit

Pre-Delete

Pre-Form

Pre-Insert

Pre-Logon

Pre-Logout

Pre-Popup-Menu

Pre-Query

Pre-Record

Pre-Select

Pre-Text-Item

Pre-Update

Q

Query-Procedure

R

S

T

U

Update-Procedure

User-Named

V

W

When-Button-Pressed

When-Checkbox-Changed

When-Clear-Block

When-Create-Record

When-Custom-Item-Event

When-Database-Record

When-Form-Navigate

When-Image-Activated

When-Image-Pressed

When-List-Activated

When-List-Changed

When-Mouse-Click

When-Mouse-DoubleClick

When-Mouse-Down

When-Mouse-Enter

When-Mouse-Leave

When-Mouse-Move

When-Mouse-Up

When-New-Block-Instance

When-New-Form-Instance

When-New-Item-Instance

When-New-Record-Instance

When-Radio-Changed

When-Remove-Record

When-Tab-Page-Changed

When-Timer-Expired

When-Validate-Item

When-Validate-Record

When-Window-Activated

When-Window-Closed

When-Window-Deactivated

When-Window-Resized

X

Y

Z


Déclencheurs ActiveX

 Tous les déclencheurs

On-Dispatch-Event


Déclencheurs de traitement de blocs

 Tous les déclencheurs

When-Clear-Block

When-Create-Record

When-Database-Record

When-Remove-Record


Déclencheurs d'événement d'interface

 Tous les déclencheurs

When-Button-Pressed

When-Checkbox-Changed

When-Custom-Item-Event

When-Image-Activated

When-List-Activated

When-List-Changed

When-Mouse-Click

When-Mouse-DoubleClick

When-Mouse-Down

When-Mouse-Enter

When-Mouse-Leave

When-Mouse-Move

When-Mouse-Up

When-Radio-Changed

When-Timer-Expired

When-Window-Activated

When-Window-Closed

When-Window-Deactivated

When-Window-Resized


Déclencheurs de touche

 Tous les déclencheurs

Key-Fn

Key-Others


Déclencheurs maître-détail

 Tous les déclencheurs

On-Check-Delete-Master

On-Clear-Details

On-Populate-Details


Déclencheurs de gestion de messages

 Tous les déclencheurs

On-Error

On-Message


Déclencheurs d'événements relatifs à la souris

 Tous les déclencheurs

When-Custom-Item-Event

When-Mouse-Click

When-Mouse-DoubleClick

When-Mouse-Down

When-Mouse-Enter

When-Mouse-Leave

When-Mouse-Move

When-Mouse-Up


Déclencheurs de navigation

 Tous les déclencheurs

Post-Block

Post-Form

Post-Record

Post-Text-Item

Pre-Block

Pre-Form

Pre-Record

Pre-Text-Item

User-Named

When-New-Block-Instance

When-New-Form-Instance

When-New-Item-Instance

When-New-Record-Instance


Déclencheurs On

 Tous les déclencheurs

On-Check-Delete-Master

On-Check-Unique

On-Clear-Details

On-Close

On-Column-Security

On-Commit

On-Count

On-Delete

On-Dispatch-Event

On-Error

On-Fetch

On-Insert

On-Lock

On-Logon

On-Logout

On-Message

On-Populate-Details

On-Rollback

On-Savepoint

On-Select

On-Sequence-Number

On-Update


Déclencheurs Post

 Tous les déclencheurs

Post-Block

Post-Change

Post-Database-Commit

Post-Delete

Post-Form

Post-Forms-Commit

Post-Insert

Post-Logon

Post-Logout

Post-Query

Post-Record

Post-Select

Post-Text-Item

Post-Update


Déclencheurs Pre

 Tous les déclencheurs

Pre-Block

Pre-Commit

Pre-Delete

Pre-Form

Pre-Insert

Pre-Logon

Pre-Logout

Pre-Popup-Menu

Pre-Query

Pre-Record

Pre-Select

Pre-Text-Item

Pre-Update


Déclencheurs de durée d'interrogation

 Tous les déclencheurs

Post-Query

Pre-Query


Déclencheurs de procédures stockées

 Tous les déclencheurs

Delete-Procedure

Insert-Procedure

Lock-Procedure

Query-Procedure

Update-Procedure


Déclencheurs transactionnels

 Tous les déclencheurs

On-Check-Delete-Master

On-Check-Unique

On-Clear-Details

On-Close

On-Column-Security

On-Commit

On-Count

On-Delete

On-Dispatch-Event

On-Error

On-Fetch

On-Insert

On-Lock

On-Logon

On-Logout

On-Message

On-Populate-Details

On-Rollback

On-Savepoint

On-Select

On-Sequence-Number

On-Update

Post-Block

Post-Change

Post-Database-Commit

Post-Delete

Post-Form

Post-Forms-Commit

Post-Insert

Post-Logon

Post-Logout

Post-Query

Post-Record

Post-Select

Post-Text-Item

Post-Update

Pre-Block

Pre-Commit

Pre-Delete

Pre-Form

Pre-Insert

Pre-Logon

Pre-Query

Pre-Select

Pre-Text-Item

Pre-Update


Déclencheurs de validation

 Tous les déclencheurs

When-Validate-Item

When-Validate-Record


Déclencheurs When

 Tous les déclencheurs

When-Button-Pressed

When-Checkbox-Changed

When-Clear-Block

When-Create-Record

When-Custom-Item-Event

When-Database-Record

When-Form-Navigate

When-Image-Activated

When-Image-Pressed

When-List-Activated

When-List-Changed

When-Mouse-Click

When-Mouse-DoubleClick

When-Mouse-Down

When-Mouse-Enter

When-Mouse-Leave

When-Mouse-Move

When-Mouse-Up

When-New-Block-Instance

When-New-Form-Instance

When-New-Item-Instance

When-New-Record-Instance

When-Radio-Changed

When-Remove-Record

When-Tab-Page-Changed

When-Timer-Expired

When-Validate-Item

When-Validate-Record

When-Window-Activated

When-Window-Closed

When-Window-Deactivated

When-Window-Resized


A propos de l'assistant Type

L'assistant Type vous conduit à travers les étapes nécessaires pour créer un nouveau type de données Oracle8 défini par l'utilisateur ; il peut s'agit d'un type d'objet ou d'un type d'ensemble.

Un type d'objet est un modèle indiquant les éléments ou attributs d'une unité de données structurée. Les attributs peuvent être des types de données internes ou d'autres unités de données structurées. Un type d'objet indique également les opérations ou méthodes que vous pouvez réaliser sur l'unité de données. Les méthodes sont des fonctions ou procédures écrites en PL/SQL et stockées dans la base de données, elles peuvent éventuellement être écrites en C et stockées de manière externe.

Un ensemble peut être de type table ou tableau variant (VARRAY). Chaque type d'ensemble décrit une unité de données comprenant un nombre indéfini d'éléments, tous de même type de données.

Un type table ou table imbriquée est un ensemble non ordonné d'éléments de données. Il possède une seule colonne, qui peut être de type de données interne ou objet. Si elle est de type objet, la table peut être également visualisée comme table multicolonne, avec une colonne pour chaque attribut du type d'objet.

Un type tableau variant (ou VARRAY) est un ensemble ordonné d'éléments de données. Le nombre d'élément est variable et fait référence à la taille du tableau. Vous devez indiquer une taille maximale lorsque vous déclarez un type VARRAY.

Vous pouvez utiliser l'assistant Type pour créer un type d'objet (avec des attributs et des méthodes), un type table ou VARRAY. Utilisez l'assistant Type, de manière plus spécifique, pour effectuer les tâches suivantes :

•	Indiquer un nom, des attributs et des méthodes pour un type d'objet

•	Indiquer un nom et les informations sur le type de données pour un type table ou VARRAY

•	Ajouter, modifier ou supprimer les attributs d'un type d'objet

•	Ajouter, modifier ou supprimer les méthodes d'un type d'objet

•	Définir des restrictions pour les méthodes d'un type d'objet

Navigation dans l'assistant Type

Les boutons ci-après sont vous aident à parcourir les pages de l'assistant :

•	Annuler : permet d'annuler toute modification apportée et de quitter l'Assistant

•	Aide : permet d'afficher le texte d'aide en ligne de la page en cours de l'assistant

•	Précédent : permet de revenir à la page précédente de l'assistant

•	Suivant : permet de passer à la page suivante de l'assistant

•	Fin : permet d'enregistrer les modifications que vous avez apportées à l'aide de l'assistant et de quitter ce dernier.

Remarque : Si vous cliquez sur Suivant ou Précédent avant d'avoir entré toutes les informations nécessaires pour une page particulière, l'assistant vous empêche de passer à la page suivante (ou de revenir à la page précédente). De même, si vous n'avez pas entré toutes les informations nécessaires dans l'assistant lorsque vous cliquez sur Fin, l'assistant vous fait automatiquement passer à la page dans laquelle vous pouvez finir d'entrer les données nécessaires.


Assistant Type : page Sélectionner un type

  Etape suivante	  Rubriques connexes

Pour sélectionner le type Oracle8 à créer :

1	Sur la page Sélectionner un type, cliquez sur un bouton d'option pour indiquer le type que vous souhaitez créer : objet ou ensemble.

Si vous sélectionnez :

•	Objet, l'assistant Type vous permet d'ajouter des attributs et des méthodes.

•	Ensemble, l'assistant Type vous permet d'indiquer le genre de type d'ensemble ainsi que son type de données.

2	Entrez un nom dans la zone de texte Nom de type.

3	Cliquez sur Suivant pour afficher la page Type d'objet ou Type d'ensemble suivante, en fonction de votre sélection.


Assistant Type : page Définir les attributs du type d'objet

  Etape suivante	  Rubrique connexes

Pour ajouter un attribut :

 Sur la page Définir les attributs du type d'objet, cliquez sur Ajouter.

La boîte de dialogue Attribut s'affiche.

Pour modifier un attribut :

 Sur la page Définir les attributs du type d'objet, cliquez sur Modifier.

Ou,

 Dans la zone de liste, cliquez deux fois sur un attribut.

La boîte de dialogue Attribut s'affiche.

Pour supprimer un attribut :

1	Sur la page Définir les attributs du type d'objet, sélectionnez un attribut et cliquez sur Supprimer.

Un message vous invite à confirmer la suppression.

2	Cliquez sur Oui pour supprimer l'attribut en surbrillance.

Pour modifier l'ordre de définition des attributs :

 Dans la zone de liste, cliquez sur l'attribut que vous souhaitez déplacer, puis faites-le glisser vers la nouvelle position.

Utilisez cette procédure pour modifier l'ordre des paramètres de la méthode de construction implicite pour le type d'objet. (La méthode de construction crée une instance du type.)

Les paramètres d'une méthode de construction sont les attributs du type d'objet ; ils apparaissent dans le même ordre que la définition d'attribut du type.


La boîte de dialogue Attribut

La boîte de dialogue Attribut vous permet d'ajouter un nouvel attribut à un type d'objet ou d'en modifier un existant.

Nom d'attribut	Entrez le nom de l'attribut.
Type de données	Entrez un type de données interne dans la zone de liste déroulante ou choisissez-en un dans la liste. Pour parcourir les types d'objet disponibles, cliquez sur le bouton ... afin d'afficher la boîte de dialogue Sélection de type.
Longueur	Entrez un nombre ou sélectionnez-en un à l'aide des flèches haut et bas.
Précision	(pour les types de données numériques seulement)  Indiquez le nombre total de chiffres.
Echelle	(pour les types de données numériques seulement) Indiquez le nombre de chiffres après la virgule.


La boîte de dialogue Sélection de type

Cette boîte de dialogue vous permet de parcourir et de sélectionner les types de données Oracle8 existants, définis par l'utilisateur et auxquels vous avez accès dans la base de données actuellement connectée.

Type	Choisissez Objet, Ensemble ou Tous pour afficher les types de données appropriés appartenant au nom utilisateur affiché dans la liste déroulante Propriétaire. Lorsque vous définissez un type d'objet, vous pouvez sélectionner un autre type d'objet ou d'ensemble comme type de données pour l'objet. Lorsque vous définissez un type d'ensemble, vous ne pouvez pas sélectionner un autre type d'ensemble comme type de données pour l'objet. L'option TOUS est désactivée pendant cette action.
Propriétaire	Affiche la liste déroulante des propriétaires des types de données définis par l'utilisateur et auxquels vous avez accès.  Choisissez un nom de propriétaire ou TOUS pour affiches les types de données de tous les propriétaires.
Zone de liste	Affiche les types et noms des types de données sélectionnés dans les champs Type et Propriétaire. Seuls les types de données accessibles sont affichés. Si TOUS est sélectionné dans le champ Propriétaire, chaque nom de la liste est précédé du nom de schéma en notation à points. Si TOUS est sélectionné dans le champ Type, chaque nom est suivi de son type entre parenthèses.   Cliquez sur un nom de type de données dans la liste pour le sélectionner.
Référence à objet	Cochez cette case pour choisir une référence d'objet (REF) du type d'objet sélectionné (en surbrillance) dans la zone de liste. Désactivez cette case pour choisi une instance d'objet du type d'objet sélectionné (en surbrillance) dans la zone de liste. Disponible pour les types d'objet seulement.
OK	Sélectionne le type de données surbrillance dans la liste et ferme la boîte de dialogue.


Assistant Type : page Définir les méthodes du type d'objet

  Etape suivante	  Rubriques connexes

Les méthodes sont des fonctions ou procédures écrites en PL/SQL et stockées dans la base de données, elles peuvent éventuellement être écrites en C et stockées de manière externe. Les méthodes caractérisent le comportement du type d'objet.

Pour ajouter une méthode :

 Sur la page Définir les méthodes du type d'objet, cliquez sur Ajouter.

La boîte de dialogue Méthode s'affiche.

Pour modifier une méthode :

 Sur la page Définir les méthodes du type d'objet, sélectionnez une méthode et cliquez sur Modifier.

Ou,

 Dans la zone de liste, cliquez deux fois sur une méthode.

La boîte de dialogue Méthode s'affiche.

Pour supprimer une méthode :

1	Sur la page Définir les méthodes du type d'objet, sélectionnez une méthode et cliquez sur Supprimer.

Un message vous invite à confirmer la suppression.

2	Cliquez sur Oui pour supprimer la méthode en surbrillance.

Pour modifier les restrictions des méthodes d'un type d'objet :

 Sur la page Définir les méthodes du type d'objet, cliquez sur Modifier.

La boîte de dialogue Restrictions par défaut s'affiche.


La boîte de dialogue Restrictions par défaut

La boîte de dialogue Restrictions par défaut vous permet d'indiquer les restrictions de pragma par défaut pour les méthodes d'un type d'objet. Ces restrictions s'appliquent aux fonctions membres appelées à partir d'instructions SQL. Elles permettent d'interdire à ces fonctions l'accès en lecture/écrite aux tables de base de données, aux variables en package ou aux deux à fois.

Pour indiquer les contraintes de pragma par défaut des méthodes d'un type d'objet :

  Activez ou désactivez l'une des cases à cocher.

Remarque : Vous pouvez déclarer des restrictions de pragma pour des fonctions membres individuelles. Ces pragmas remplacent les restrictions par défaut.


La boîte de dialogue Méthode

La boîte de dialogue Méthode vous propose deux pages : Définition et Restrictions. Elles vous permettent de définir une méthode de type d'objet et ses paramètres ainsi que des restrictions pour le type.

La page Définition vous permet d'indiquer un nom et un type de méthode ainsi que des paramètres facultatifs. Pour les fonctions, vous pouvez indiquer un type de retour. La page comprend les éléments suivants :

Nom de méthode	Entrez un nom de méthode. Ce nom ne peut pas être identique à celui du type d'objet ou de l'un de ses attributs.
Type de méthode	Choisissez un type de méthode dans la liste déroulante. Les types de méthode sont procédure, fonction, fonction de correspondance et fonction d'ordre. Les fonctions de correspondance et d'ordre sont des méthodes de comparaison. Vous pouvez indiquez l'une ou l'autre pour un type d'objet, mais pas les deux à la fois.
Type de retour	Pour les fonctions, choisissez un type de retour dans la liste déroulante.
Nom de paramètre	Entrez un nom de paramètre.
Type de données	Choisissez un type de données interne dans la liste déroulante. Pour parcourir les types d'objet existants, cliquez sur le bouton ... afin d'afficher la boîte de dialogue Sélection de type.
Direction	Choisissez IN, OUT ou IN/OUT dans la liste déroulante.
Valeur par défaut	Entrez une valeur par défaut pour le paramètre.
	Cliquez sur ce bouton pour ajouter le paramètre à la liste. Le champ Nom de paramètre est effacé.
	Cliquez sur ce bouton pour supprimer le paramètre en surbrillance dans la liste. Une message vous demande confirmation.
Zone de liste	Affiche la liste des paramètres définis pour la méthode. Pour modifier l'ordre de définition des paramètres dans la zone de liste, cliquez sur le paramètre voulu et faites-le glisser vers le nouvel emplacement.

La page Restrictions vous permet de remplacer les restrictions de pragma par défaut déjà définies pour le type d'objet. Ces restrictions s'appliquent aux fonctions membres appelées à partir d'instructions SQL. Elles permettent d'interdire à ces fonctions l'accès en lecture/écrite aux tables de base de données, aux variables en package ou aux deux à fois. La page Restrictions comprend les éléments suivants :

Remplacer les restrictions par défaut	Cochez cette case pour utiliser les restrictions de la méthode à la place des restrictions par défaut, puis indiquez les contraintes en activant ou en désactivant les options ci-dessous.  Désactivez cette case pour utiliser les restrictions de pragma par défaut. Les options ci-dessous sont désactivées lorsque cette case n'est pas cochée.
RNDS, WNDS, RNPS, WNPS	Cochez la case appropriée pour mettre la règle en vigueur. Désactivez la case appropriée pour supprimer la règle.


Assistant Type : page Définir le type d'ensemble

 Etape suivante	  Rubriques connexes

Pour définir un type d'ensemble :

1	Sur la page Définir le type d'ensemble, cliquez sur un bouton d'option pour indiquer le type que vous souhaitez créer : Table ou VARRAY.

2	Si vous créez un type VARRAY, entrez la taille maximale du tableau dans la zone de texte Limite.

3	Dans la liste déroulante Type de données, cliquez sur la flèche à droite pour choisir un type de données interne. Pour sélectionner un type d'objet existant, cliquez sur le bouton ... afin d'afficher la boîte de dialogue Sélection de type.

4	(si activé) Dans la zone Longueur, entrez un nombre.

5	(pour les types de données numériques seulement) Dans la zone Précision, indiquez le nombre total de chiffres.

6	(pour les types de données numériques seulement) Dans la zone Echelle, indiquez le nombre de chiffres après la virgule.


Assistant Type : page Fin

  Rubriques connexes

La dernière page de l'assistant Type affiche l'instruction SQL qui génère le type Oracle8 que vous venez de définir. Cette page est en lecture seule ; vous ne pouvez pas modifier l'instruction SQL.

Lorsque vous cliquez sur Fin, l'assistant Type effectue les opérations suivantes :

•	Pour les types d'ensemble : il envoie l'instruction SQL CREATE TYPE AS TABLE or CREATE TYPE AS VARYING ARRAY à la base de données.

•	Pour les types d'objet : il envoie l'instruction SQL CREATE TYPE AS OBJECT à la base de données. Si la spécification du type n'est pas valide ou incomplète, un astérisque (*) apparaît après le libellé Type d'objet dans le Navigateur d'objet.

•	Pour les types d'objet contenant des méthodes : il crée un corps d'objet initial et l'affiche dans l'Editeur d'unités de programme stockées. Remplissez les méthodes et cliquez sur Enregistrer. L'instruction SQL CREATE TYPE BODY est envoyée à la base de données. Si le corps de l'objet est non valide, des messages d'erreur apparaissent dans la fenêtre Messages de compilation. Un astérisque (*) apparaît après le libellé Corps d'objet dans le Navigateur d'objet.

Remarque : L'assistant Type stocke le type d'objet ou le type d'ensemble dans le serveur de base de données Oracle8 actuellement connecté.


A propos de l'assistant Type

 Rubriques connexes

L'assistant Type offre la manière la plus rapide et la plus simple pour créer un type de données Oracle8 défini par l'utilisateur. Il vous conduit à travers les étapes nécessaires pour créer un nouveau type d'objet ou d'ensemble, qui peut être de type table ou VARRAY. Vous ne pouvez pas utiliser l'assistant Type pour modifier un type existant.

Utilisez l'assistant Type plus particulièrement pour effectuer les tâches suivantes :

•	Indiquer un nom, des attributs et des méthodes pour un type d'objet

•	Indiquer un nom et les informations sur le type de données pour un type table ou VARRAY

•	Ajouter, modifier ou supprimer les attributs d'un type objet

•	Ajouter, modifier ou supprimer les méthodes d'un type objet

•	Définir des limites pour les méthodes d'un type objet


Création d'un type de données Oracle8 défini par l'utilisateur à l'aide de l'assistant Type

  Rubriques connexes

Pour créer un type de données défini par l'utilisateur :

1	Dans le Navigateur d'objet, cliquez sur le noeud Types.

2	Cliquez sur [image] dans la barre d'outils du Navigateur ou choisissez Navigateur [image] Créer dans le menu pour afficher l'assistant Type.

3	Suivez les étapes nécessaires pour créer un type d'objet ou d'ensemble. Reportez-vous à l'aide de l'assistant Type pour plus d'informations.

L'assistant Type crée et stocke le type d'objet ou le type d'ensemble dans le serveur de base de données Oracle8 actuellement connecté.


Modification d'un type de données Oracle8 défini par l'utilisateur

  Rubriques connexes

Utilisez l'Editeur d'unités de programme stockées pour modifier les types d'objet et d'ensemble existants. Vous pouvez modifier la spécification des types d'objet et d'ensemble. Celle-ci déclare les attributs de la structure de données. Dans le cas d'un type d'objet, elle indique également les méthodes facultatives qui permettent de manipuler les données. Vous pouvez également modifier le corps d'un type d'objet, qui définit complètement les méthodes et met en oeuvre la spécification. Vous pouvez déboguer ou remplacer le corps sans modifier la spécification de type.

Pour modifier la spécification d'un type d'objet ou d'ensemble :

 Dans le Navigateur d'objet, cliquez deux fois sur une icône de type pour afficher la spécification de type dans l'Editeur d'unités de programme stockées.

Ou,

 Dans le menu contextuel d'un type (bouton droit de la souris dans Windows) dans le Navigateur d'objet, cliquez sur Modifier type pour afficher la spécification de type dans l'Editeur d'unités de programme stockées.

Ou,

 Dans la liste déroulante Nom de l'Editeur d'unités de programme stockées, cliquez sur un nom de type pour afficher la source.

Remarque : Les attributs et restrictions par défaut d'un type d'objet font partie de la spécification de type.

Pour modifier les méthodes d'un type d'objet :

 Dans le menu contextuel d'un type d'objet (bouton droit de la souris dans Windows) dans le Navigateur d'objet, cliquez sur Modifier corps pour afficher le corps de l'objet (méthodes) dans l'Editeur d'unités de programme stockées.

Ou,

 Dans la liste déroulante Nom de l'Editeur d'unités de programme stockées, cliquez sur un nom de type d'objet pour afficher la source.


Suppression d'un type de données Oracle8 défini par l'utilisateur

  Rubriques connexes

Un message vous demande confirmation lorsque vous supprimez un type de données défini par l'utilisateur.

Pour supprimer un type de données défini par l'utilisateur :

 Dans le Navigateur d'objet, cliquez sur un type d'objet, type de table ou VARRAY, puis choisissez Navigateur [image] Supprimer dans le menu ou cliquez sur [image] dans la barre d'outils.

Ou,

 Choisissez un nom de type dans la liste déroulante Nom de l'Editeur d'unités de programme stockées, puis cliquez sur Supprimer pour supprimer le type.

Remarque : Vous ne pouvez pas supprimer un type référencé dans un autre type de données, objet imbriqué ou objet REF. Vous devez éliminer les références avant de supprimer la définition de type.