Using application logic and Web PL/SQL Generator

About application logic and Web PL/SQL Generator

About user-defined application logic and Web PL/SQL Generator

Entering user-defined event code for Web PL/SQL Generator

Entering user-defined named routines for Web PL/SQL Generator

Using user-defined named routines to populate unbound items with Web PL/SQL Generator

Event types in generated Web PL/SQL applications

JavaScript events used by Web PL/SQL Generator

Pseudo PL/SQL event types recognized by Web PL/SQL Generator

Web PL/SQL Generator code groups


About application logic and Web PL/SQL Generator

Related Topics

Application logic is the name given to both code created by the Oracle Designer Generators and code you enter by hand.

Web PL/SQL Generator supports the following types of application logic:

Type of application logic	Description
generated	Event code and named routines in the generated application that have been created by Web PL/SQL Generator from generatable application logic and user-defined application logic.
generatable	Code that Web PL/SQL Generator may or may not generate. You can view generatable event code (but not named routines) in the Design Editor, but the code is not saved in the repository.
user-defined	Event code and named routines you define using the Design Editor. The code is saved in the repository.


About generated application logic and Web PL/SQL Generator

Related Topics

Generated application logic is the code generated by Web PL/SQL Generator that is not held in the repository. Each time the Web PL/SQL application generated, any existing generated application logic is overwritten.

Generated application logic comprises:

•	generated event code

•	generated named routines


About user-defined application logic and Web PL/SQL Generator

Related Topics

User-defined application logic is code you enter into the repository using the Design Editor and the Logic Editor.

When you enter user-defined application logic in the Design Editor, you specify it as being one of the following:

•	event code, which is generated as PL/SQL event code to run on the server, or JavaScript event code to run in the client browser

•	a named routine, which is generated as a PL/SQL or JavaScript routine and called from event code or other routines

Note that Web PL/SQL Generator does not support the capture of application logic.

About user-defined event code

You can enter user-defined PL/SQL event code to run on the server, or user-defined JavaScript event code to run in the client browser. When defining event code, you select the event you want to add code to, and the language (PL/SQL or JavaScript) is inferred from the event type. About

For example:

•	If you select the PostInsert event for a module component you would be prompted to enter PL/SQL code. During generation this code is added to the PostInsert function within the module component package.

•	If you select the OnChange event for an item you would be prompted to enter JavaScript code. During generation this code is added to the OnChange event for the item to ensure that the code was called (in JavaScript) each time the value of the item changed in the browser.

Within user-defined event code you can access any native function and procedure of the language, call user-defined named routines defined within the repository (see below), or call functions and procedure created by Web PL/SQL Generator.

About user-defined named routines

When entering a user-defined named routine, you must enter the name of the routine and select the language (PL/SQL or JavaScript). Once selected, other language specific options become available.

About user-defined PL/SQL named routines

For PL/SQL, either procedures or functions may be added as named routines. These named routines can be defined as public or private:

•	Public routine definitions are added to the package specification

•	Private routine definitions are added to the start of the package body

There is no need to add declarations, as these are derived from the procedure or function itself and then automatically added to the relevant package section. Therefore, if any default values are required in the procedure or function, they should be included in its parameter list.

For example, if a named routine was required to return the last working day of a month, specified by an input parameter which defaulted to today's date, you might enter something like:

/* This function will return a date representing the last

** working day (that is, Monday through Friday) of the

** month containing the input parameter, the Day. If no

** input parameter is specified, the function will return

** the last working day of the current month

*/

function LastWorkingDay(theDay in date default sysdate)

return date is

 lastDayOfMonth date;

 dayOfWeek number;

begin

 lastDayOfMonth := last_day(theDay);

 dayOfWeek := to_number(to_char(lastDayOfMonth, 'D'));

 if dayOfWeek = 1 then

 return lastDayOfMonth - 2;

 elsif dayOfWeek = 7 then

 return lastDayOfMonth - 1;

 else

 return lastDayOfMonth;

 end if;

end;

The following declaration is generated from this function definition:

function LastWorkingDay(theDay in date default sysdate)

return date;

About user-defined JavaScript named routines

For JavaScript, a target location must be defined for the named routine, that is, one of the documents Record List, View/Insert Form or Query Form. The target location defines which document(s) the JavaScript function is added to during generation.

Within each document, a JavaScript variable (FormType) declares the document type. The values of the variable are as follows:

Record List	- List
View Form	- Update
Insert Form	- Insert
Query Form	- Query

This may be useful if a different action is required in the View Form and Insert Form, as it is not possible to limit the generation of a JavaScript function to only one of these documents, but not the other.


Entering user-defined event code for Web PL/SQL Generator

Related Topics

You can enter user-defined event code against modules, module components and items in a Web PL/SQL module. You can also define where the new code is sequenced in relation to other code (generatable event code and other user-defined event code) generated for the same event. About

To enter user-defined event code for Web PL/SQL Generator:

1.	In the Design Editor, create user-defined event code.  How

2.	For JavaScript event code, use the Target Location property to define which HTML document the event code should be added to during generation.

The Target Location property is only applicable when defining client-side application logic against module components and items. It enables you to define a different action on each type of document that can be generated for a single module component, that is, a single item may be displayed on a Query Form, Record List, View Form and Insert Form.


Entering user-defined named routines for Web PL/SQL Generator

Related Topics

You can enter user-defined named routines against modules and module components and items in a Web PL/SQL module. You can reference these routines within user-defined event code and in the Derivation Text property of unbound items.

To enter user-defined named routines for Web PL/SQL Generator:

1.	In the Design Editor, create a user-defined named routine.  How

2.	Set the named routine's Language property.

3.	Use the Target Location property to define which HTML form the routine should be added to during generation.

The Target Location property is only applicable when defining application logic against module components and items. It enables you to define a different action on each type of form that can be generated for a single module component, that is, a single item may be displayed on a Query Form, Record List, View Form and Insert Form.

4.	(For PL/SQL named routines only). Choose whether the named routine is Public or Private.


Using user-defined named routines to populate unbound items with Web PL/SQL Generator

Related Topics

You can use a user-defined named routine to populate values for unbound items of types Client Side Function and Server Side Function. About

Populating unbound items of type Client Side Function using user-defined named routines

For an unbound item of type Client Side Function, you can enter the name of a user-defined named routine (optionally with parameters identified by a number of item names) within the unbound item's Derivation Text property. For this type of unbound item, the language of the user-defined named routine must be JavaScript and its target location must be View/Insert Form.

For example, you might create a user-defined named routine called SalaryBand that is a JavaScript function returning a textual salary band description based on the numeric inputs of salary and commission. To use this user-defined named routine to populate an unbound item SAL_BAND, you might include the following in the unbound item's Derivation Text property:

 SalaryBand(sal,comm)

During generation, JavaScript code is added to the 'onChange' event of the Salary (sal) and Commission (comm) fields to call the Client Side Function that populates the Salary Band item.

Populating unbound items of type Server Side Function using user-defined named routines

Similarly, an item can be defined as a 'Server Side Function', in which case it is populated at the time the data is queried from the database and presented to the user as read-only text.


Event types in generated Web PL/SQL applications

Related Topics

There are three categories of events that code can be added to during Web PL/SQL generation:

Pseudo PL/SQL events	A routine (procedure or function) is created by Web PL/SQL Generator, rather than being native to the target language. Such events are always called from a particular point during processing. An example is the PL/SQL function called PreInsert which is always called prior to inserting a new record. Pseudo PL/SQL events are called before or after database operations such as insert or delete, and the HTML to draw the page is
JavaScript events	Actual events supported by JavaScript, such as OnSelect, OnBlur, and so on.
Pseudo JavaScript events	For example, Validate, which is a pseudo event called prior to submitting a View or insert Form. From here, generated and/or user validation code can be executed.


JavaScript events used by Web PL/SQL Generator

Related Topics

This table lists the actual events supported by JavaScript.

Event type	Repository elements	Description
OnBlur	Item	Occurs when a select, text, or textarea field on an HTML form loses focus.  Event handler of select, text, textarea.
OnChange	Item	A change event happens when a select, text, or textarea element on an HTML form is modified before losing focus.  Event handler of select, text, textarea.
OnClick	Item	Occurs when an object such as a button or checkbox is clicked. Event handler of button, checkbox, radio, link, reset, submit.
OnFocus	Item	A form element receives focus by tabbing to, or clicking the input area with the mouse. Selecting within a filed results in a select event. Event handler of select, text, textarea.
OnLoad	Module component	Logic is executed whenever an insert or update form has completed loading.
OnMouseOut	Action item	The hint text is cleared when the mouse is moved out of the hotspot.
OnMouseOver	Action item	Hint text is displayed when the mouse is moved over the area hotspot.
OnSelect	Item	A select event is triggered by selecting some or all of the text in a text, or textarea field. Event handler of text, textarea.
OnUnload	Module component	Logic is executed whenever an insert or update form is unloading before displaying another form.
Validate	Module component	Pseudo event called prior to submitting an insert or update form.


Pseudo PL/SQL event types recognized by Web PL/SQL Generator

Related Topics

This table lists the set of pseudo events recognized by Web PL/SQL Generator. Code associated with these events can be stored against modules and module components in the repository.

Pseudo events	Repository element	Description
PostDelete (private)	Module component	This pseudo-event is called after a record has been deleted. Processing that should occur after a record is deleted can be added here.
PostInsert (private)	Module component	This event is called after inserting a record into the database.  Processing that should occur after a record is inserted can be added here.
PostQuery (private)	Module component	This pseudo-event is called after SELECT-ing the current row.
PostUpdate (private)	Module component	This pseudo-event is called after updating a record on the database.  Processing that should occur after a record is updated can be added here.
PreDelete (private)	Module component	This pseudo-event is called before a record has been deleted. Processing that should occur before a record is deleted can be added here.
PreInsert (private)	Module component	This pseudo-event is called before inserting a record into the database.  Processing that should occur when a record is inserted can be added here.
PreQuery (private)	Module component	This pseudo-event is called before a SELECT.
PreUpdate (private)	Module component	This pseudo-event is called before updating a record on the database. Processing that should occur before a record is updated can be added here.
ServerValidate (private)	Module component	This pseudo-event is called before an insert or update.
Private Declarations	Module, module component	When you are entering user-defined event code at module component level, position your event code between the Start of Module Component Private Declarations and the End of Module Component Private Declarations.
Public Declarations	Module, module component
Pragma Declarations	Module, Module Component	You can enter pragma restrict_references at module or module component level.


Web PL/SQL Generator code groups

Related Topics

This table lists generatable code groups, by functionality. It also shows the prefix used to identify code within a particular group and this information may be useful if you intend to add new event code. How

Web PL/SQL Generator code groups to implement:	Code group prefix
Check Constraints	CK	Builds code which creates JavaScript to enforce Check constraints in the client, where possible.
Derivation Expression	DE	Builds code which creates JavaScript to maintain derived fields in the client, where possible.
Domain Validation	DV	Builds validation code for domains.
Foreign Key	FK	Handles population of foreign key columns from lookup data.
Server Validation	SV	Enforces data integrity in the server
Validation	VL	Builds code which creates JavaScript to validate data entry in the client.
Zone Usage	ZN	Creates the vast majority of the PL/SQL code. It is responsible for creating all procedures concerned with Selects and DML operations, and any forms created as the User Interface.
Zone Styles	ZS	Builds Startup procedure for each module component which controls how the module component appears to the end user.
Declarations	-


About generated files and packages (Web)
About generated files and packages (Web PL/SQL Generator)

Related Topics

Packages created for all Web PL/SQL Generator applications

During generation the following packages are created:

•	two PL/SQL packages are created for each module component: one for the JavaScript functions, and the other for the remaining module component functions

•	one PL/SQL package is created for the module itself

These packages contain a set of standard generated procedures and make use of the Web PL/SQL Generator Library packages (WSGL, WSGJSL, WSGFL and WSGOCOL).

The set of packages for each module are placed in a pair of PL/SQL files:

•	package specification file	.PKS

•	package body file	.PKB

The generation process also results in the creation of a single wrapper .SQL file which simply calls all the generated files (.PKS and .PKB) for the module, or module network, and it is used to install the generated packages onto an Oracle database (application schema).

During installation a log file is also created called 'CVWSGIN.LOG' . This log file is saved to the current working directory.

Additional package created for Oracle Portal applications

When the MODPTL preference is set to Yes, an additional package named <Module_Implementation_Name>_PORTLET is generated.  This package is the portlet interface to the generated module, and is automatically registered with the provider at the time of installation.

Names of generated files and packages

The names of generated files and packages are derived from the module design specification as follows:

Generated filenames

Application (.SQL)	<Top_Level_Module_Implementation_Name>.SQL
Module (.PKS)	<Module_Implementation_Name>.PKS
Module (.PKB)	<Module_Implementation_Name>.PKB
Generated package names

Module package:	<Module_Implementation_Name>$
Module component packages:	<Module_Implementation_Name>$<Module_Component_Name>
JavaScript packages:	<Module_Implementation_Name>$js$<Module_Component_Name>
Portlet package:	<Module_Implementation_Name>_PORTLET
The $ symbol is used in the package name to minimize name clashes with other objects in the same namespace, for example tables.

Note: 	If no Implementation Name is defined for a module, the Module Short Name is used instead. If you have set a length restriction for generated files, ensure the value does not exceed the maximum length allowed, otherwise generation will be unsuccessful.


About generated PL/SQL procedures  (Web)
About generated PL/SQL procedures (Web PL/SQL Generator)

Related Topics

Web PL/SQL Generator generates packages containing all or some of a standard set of procedures.

Module procedures

Startup

Controls the style of the module Startup Page. This will typically involve calling either FirstPage, or the Startup procedure of the first module component, if the first module component is included in the Startup Page. In this case, FirstPage will be called from somewhere within the package of the first module component.

FirstPage

Provides the First Page of the module, consisting of module text and navigation links.

ShowAbout

Builds an About Page displaying information about the generated application.

TemplateHeader

Creates the contents of the <HEAD> section (as defined in template document files) for various documents within the generated Web PL/SQL application.

Module component procedures

ActionDelete

This procedure is called from one of two places. Either from the PL/SQL Agent when the Delete (Confirmation) Form is submitted, or directly from ActionView if the Delete button was pressed and client-side verification of the delete has been performed (that is a JavaScript alert box). It then calls the PreDelete pseudo-event, the Table API Del procedure to perform the DELETE and the PostDelete pseudo-event.

ActionInsert

This procedure is called by the PL/SQL Agent when the Insert Form is submitted. ActionInsert calls Validate and PreInsert pseudo-events, the Table API Ins procedure to perform the INSERT and the PostInsert pseudo-event.

ActionQuery

This procedure is called by the PL/SQL Agent when the Query Form is submitted. ActionQuery either calls the QueryList procedure directly or, if the layout style of the module component is List/Form with the Query Form on a separate page, ActionQuery builds the frames for displaying the Record List and first View Form.

ActionUpdate (private)

This procedure is called from ActionView when the Update button is pressed. It attempts to lock the row and checks if the row has been modified by another user. It then calls Validate and PreUpdate pseudo-events, the Table API Upd procedure to perform the UPDATE and the PostUpdate pseudo-event.

ActionView

This procedure is called by the PL/SQL Agent when the View Form is submitted. The action taken by ActionView will be determined by the button that was pressed.

FormDelete (private)

Provides an HTML form to confirm a Delete request

FormInsert

Provides an HTML form to insert data. Submission of this form calls the ActionInsert procedure.

FormQuery (private)

Provides an HTML form to enter query search criteria. Submission of this form calls the ActionQuery procedure.

FormView (private)

Provides an HTML form to view/update data. Submission of this form calls the ActionView procedure.

InitialiseDomain

Initializes PL/SQL records holding domain validation information.

QueryFirst

Provides the initial display for a List/Form module component. It calls QueryView for the first record which is returned in the Record List. Alternatively, if there are no records and the module component allows insert, the FormInsert procedure is called.

QueryList

Provides the Record List for the module component which displays the context items which match the current query criteria and buttons for moving forward and back through these records.

QueryView

Queries the current record (either all columns, or just non-base) and then calls the FormView procedure to display the record details.

Startup

Controls the item layout style of the module component and provides a common interface for entry to the module component.

TextFrame

For List/Form style module components, this procedure controls what appears in a frame made up entirely of text (that is, no Record List or View, Insert or Query forms).

Module component functions

BuildSQL (private)

Creates the SQL statement based on the table usages in the module component, foreign key and other query criteria columns.

PostDelete (private)

Pseudo event called after a delete.

PostInsert (private)

Pseudo event called after an insert.

PostQuery (private)

Pseudo event called after SELECT-ing the current row.

PostUpdate (private)

Pseudo event called after an update.

PreDelete (private)

Pseudo event called prior to a delete.

PreInsert (private)

Pseudo event called prior to an insert.

PreQuery (private)

Pseudo event called prior to a select.

PreUpdate (private)

Pseudo event called prior to an update.

QueryHits

Returns the number of records which match the given query criteria.

Validate (private)

Pseudo event called prior to an insert or update.


About Web PL/SQL Generator library code

Related Topics

The Web PL/SQL Generator library consists of a set of PL/SQL files containing standard functions, procedures and constants used by generated Web PL/SQL applications.

General library code (WSGL)

Web PL/SQL Generator format library (WSGFL)

JavaScript library code (WSGJSL)

Web PL/SQL Generator message library (WSGLM)

Oracle interMedia or ConText Cartridge library (WSGOCOL)

These files appear in the CGENW61\CVWETC directory of your Oracle Designer installation and they must be installed on the PL/SQL Toolkit schema. How


Web PL/SQL Generator library (WSGL)

Related Topics

During generation Web PL/SQL Generator makes use of this PL/SQL library package of procedures, functions and constants. The package specification file is wsgl.pks and the package body is wsgl.pkb.

Both files appear in the CGENW61\CVWETC directory of your Oracle Designer installation and they must be installed on the PL/SQL Toolkit schema How

HTML document syntax

OpenPageHead	OpenPageBody	EmptyPage
ClosePageHead	ClosePageBody	EmptyPageURL
DefinePageHead
Layout

LayoutOpen	LayoutHeader	Layout constants
LayoutClose	LayoutData
LayoutRowStart	LayoutPadTextToLength
LayoutRowEnd
Text/message handling

DefaultPageCaption	DisplayMessage	Message constants
Preformat	MsgGetText
SQL building

SearchComponents	BuildWherePredicate	Datatype constants
BuildWhere	CaseInsensitivePredicate	Maximum Rows constant
Navigation links

NavLinks	StoreURLLink	Menu constants
ReturnLinks
Environment information

Info	TablesSupported
GetUser	InBottomFrame
Button/control creation

SubmitButton	BuildQueryControl	Control creation constants
RecordListButton	BuildDerivationControl
BuildDVControl	HiddenField
BuildTextControl
Domain validation

LoadDomainValues	DomainMeaning
ValidDomainValue	DomainValue
URL manipulation

EscapeURLParam	RefreshURL
RegisterURL	AddURLParam
Security

Checksum	NotLowerCase
ValidateChecksum
Backward compatibility with 1.3/1.3.2

PageHeader	MaxRowsMessage
PageFooter	CountHits
RowContext
HTML document syntax

OpenPageHead procedure

Opens the page header.

Generated Web PL/SQL applications maintain the number of 'open pages'. For example, if a View Form contains an embedded detail Record List, the Record List would be the second open page.

Using this count, OpenPageHead ensures that only the first page has the <HEAD> section opened.

p_bottomframe is used to set a WSGL variable indicating if the current document is a text frame with only one object in it.

Parameters:	Default:

p_title	in	varchar2	Page title	Null

p_bottomframe	in	boolean	Is this the bottom frame ?	False

ClosePageHead procedure

Closes the page header. This procedure ensures that only the first page has the <HEAD> section closed, in the same way as OpenPageHead.

Parameters:	None

DefinePageHead procedure

Defines the page header, by simply calling the procedures OpenPageHead and ClosePageHead. If the <HEAD> section is known to be empty, this provides a short cut call to OpenPageHead and ClosePageHead via one procedure call.

Parameters: 	Default:

p_title	in	varchar2	Page title	Null

p_bottomframe	in	boolean	Is this the bottom frame ?	False

OpenPageBody procedure

Creates the opening <BODY> tag containing the body attributes for the first open page and manages the center alignment of all open pages.

Parameters:

p_center	in	boolean	Is content center aligned ?

p_attributes	in	varchar2	Body attributes

ClosePageBody procedure

Manages the changes in center alignment from one page to the next, and adds the closing </BODY> and </HTML> tags for the last page to close.

Parameters:	None

EmptyPage procedure

Creates an empty page with the given body attributes.

Parameters:	Default:

p_attributes	in	varchar2	Attributes of the page	Null
e.g. background color/image

EmptyPageURL Function

Returns a URL which returns an empty page with the given body attributes.

Parameters:	Default:

p_attributes	in	varchar2	Attributes of the page 	Null
e.g. background color/image

Return Type:	varchar2

Layout

Items in generated Web PL/SQL are laid out in a logical grid in the View Form, Insert Form, Query Form and Record List. For the three form types, the grid consists of a column of prompts and a column of data (or data entry fields). For the Record List, the grid consists of columns of data and rows representing records in the database.

There are six item layout styles:

TABLE	Data is laid out in an HTML table
PREFORMAT	Data is laid out in a fixed font, space padded to align fields
BULLET	Data is laid out in a bulleted list, with no vertical alignment.
NUMBER	Data is laid out in a numbered list, with no vertical alignment.
CUSTOM	Data is laid out in a custom bulleted list, that is, the user defines an image or text to use as the bullet, with no vertical alignment.
WRAP	Data is not laid out in a grid, but is just free text.
LayoutOpen procedure

Opens a layout area of the specified style. If TABLE or PREFORMAT, then the grid can have a border. If CUSTOM, then the HTML syntax for the custom bullet is defined.

Parameters:	Default:

p_layout_style	in	number	The layout style

p_border 	in	boolean	If the layout style is TABLE, 	False
should it have a border

p_custom_bullet	in	varchar2	If the layout style is CUSTOM,	Null
the custom bullet expression

Constants used to specify p_layout_style:

LAYOUT_TABLE 	constant number(1) := 1;

LAYOUT_PREFORMAT	constant number(1) := 2;

LAYOUT_BULLET 	constant number(1) := 3;

LAYOUT_NUMBER 	constant number(1) := 4;

LAYOUT_CUSTOM 	constant number(1) := 5;

LAYOUT_WRAP 	constant number(1) := 6;

LayoutClose procedure

Closes the layout area.

Parameters:	None

LayoutRowStart procedure

Starts a new row in the grid, unless the grid has been expanded in width, in which case this call will be ignored unless the current row in the grid is complete.

Parameters: 	Default:

p_valign	in	varchar2	If the layout style is TABLE,	Null
the vertical alignment of the row

LayoutRowEnd procedure

Ends a row in the grid, unless the grid has been expanded in width, in which case, this call will be ignored unless the current row in the grid is complete.

Parameters:	None

LayoutHeader procedure

Used to define a column in the grid when the layout style is TABLE or PREFORMAT and it defines the prompt for each column of data in the table. Each has a width (not used for TABLE), an alignment and a title.

Parameters:

p_width	in	number	Column width

p_align	in	varchar2	Horizontal alignment or data
in this column

p_title 	in	varchar2	Title, if any

LayoutData procedure

Used to define a cell in the grid, containing some textual, date or numeric data.

Parameters:

p_text	in	varchar2	Text to be displayed

p_date	in	date	Date to be displayed

p_number	in	number	Time to be displayed

LayoutPadTextToLength Function

Used when layout style is PREFORMAT to space pad the given string to the correct width and specified alignment. Anything that appears between < and > will not be counted when determining the width because it is assumed this is HTML tags which are not displayed.

Parameters:

p_text	in out	varchar2	Text to be padded

p_length	in	number	Width to pad to

p_align	in	varchar2	Alignment, left, right or center

Text/message handling

Constants

The following constants are used to identify the status of a form and indicate whether error or success messages should be displayed.

FORM_STATUS_OK	constant number(1) := 0;
FORM_STATUS_ERROR	constant number(1) := 1;
FORM_STATUS_INS	constant number(1) := 2;
FORM_STATUS_UPD	constant number(1) := 3;

The following constants define the type of message being displayed in calls to DisplayMessage.

MESS_INFORMATION	constant number(1) := 1;
MESS_SUCCESS	constant number(1) := 2;
MESS_WARNING	constant number(1) := 3;
MESS_ERROR	constant number(1) := 4;
MESS_ERROR_QRY	constant number(1) := 5;
MESS_EXCEPTION 	constant number(1) := 6;

DefaultPageCaption procedure

Displays a caption at a given HTML header level, for example <H1>, <H2>. If the header level value is null, the number of open pages is used to determine the header level.

Parameters:	Default:

p_caption	in	varchar2	Page caption	Null

p_headlevel	in	number	Header level	Null

Preformat function

Builds a preformatted HTML string, that is, a string surrounded by <pre> and </pre> tags.

Parameters:

p_text	in	varchar2	Text to be preformatted

Return Type:	varchar2

DisplayMessage procedure

Provides a mechanism to display information and error messages to the user.

Parameters: 	Default:

p_type	in	number	Message number

p_mess	in	varchar2	Message text

p_title	in	varchar2	Page title to display if page is empty	Null

p_attributes	in	varchar2	Page attributes to display if page is empty 	Null

p_location	in	varchar2	Where the error occurred if exception 	Null

p_context	in	varchar2	The Field, if ERROR_QRY 	Null

p_action	in	varchar2	What to do if ERROR_QRY 	Null

MsgGetText function

Provides a mechanism for retrieving message text from an external source and substituting up to 3 parameters in the string.

MsgNo and LangId are not currently used in generated code but have been provided for user extensibility. If required, these parameters could be used to retrieve text from a message table and provide a mechanism to translate text. Substitution parameter 1 will replace every occurrence of <p> or <p1> found in the string. Substitution parameter 2 will replace <p2>, and parameter 3 will replace <p3>. Note that the p must be lowercase.

Parameters: 	Default:

p_MsgNo	in	number	Message ID

p_DfltText	in	varchar2	Default text 	Null

p_Subst1 (to 3)	in	varchar2	Substitution strings 	Null

p_LangId	in	number	Language ID 	Null

Return Type:	varchar2

SQL building

Constants

The following constants are used to define the datatype of query criteria defined in the Query Form, when building WHERE clause predicates using BuildWhere.

TYPE_CHAR	constant number(1) := 1;
TYPE_CHAR_UPPER	constant number(1) := 2;
TYPE_DATE	constant number(1) := 3;
TYPE_NUMBE	constant number(1) := 4;

The following constant is used to define the maximum number of rows fetched at a time.

MAX_ROWS	constant number(4) := 1000;

BuildWherePredicate function (private)

The purpose of this procedure is to build WHERE clause predicates based on the value of two parameters p_field1 and p_field2. The values of these two parameters will be determined by values entered into a Query Form. If a range query is supported (for numeric and date fields which are not in a Primary, Unique or Foreign key constraint) then the two parameters are populated independently from two fields on the form, otherwise both parameters are populated with the same value, from the same field.

Using the value(s) of two input parameters, the Select List Item (SLI) they are constraining and the datatype, a predicate is built.

Values entered for columns of datatype DATE are tested to be valid entry by applying the to_date function (using the format mask if supplied). If this validation fails, an EXCEPTION will be raised which should be handled by calling procedure.

If a case insensitive query is requested, then a call is made to CaseInsensitivePredicate in order to build an efficient search predicate.

Parameters:

p_field1	in	varchar2	Query criteria field 1

p_field2	in	varchar2	Query criteria field 2

p_sli	in	varchar2	Select list item

p_datatype	in	number	Datatype

p_where	in out	varchar2	The WHERE Clause

p_date_format	in	varchar2	Date format mask (Optional)

p_caseinsensitive	in	boolean	Is the search case insensitive?

Return Type:	varchar2

CaseInsensitivePredicate function (private)

This function returns a WHERE clause predicate to perform a case insensitive query, minimizing the effect of lost indexes.

In the examples below, 'like/=' represents the value of p_operator and it is determined by whether the original string contained a wild card.

First, a call is made to SearchComponents to find the number of case sensitive characters in the given field and return the strings <UU>, <UL>, <LU> and <LL>. (Refer to the description of SearchComponents (below) for an explanation of the terms <UU>, <UL>, <LU> and <LL>).

From this, a WHERE clause predicate is built according to the following rules:

•	If SearchComponents returns -1, then the search string started with a wild card and therefore the index will be lost, so return:
upper(<p_sli>) like upper(<p_field>)

•	If SearchComponents returns 0, then the search string contained no case sensitive characters, so return:
<p_sli> like/= <p_field>

•	If SearchComponents returns 1, then the search string contained one case sensitive character, so return:
(<p_sli> like/= <UU>) or (<p_sli> like/= <LL>)

•	If SearchComponents returns 2, then the search string contained two case sensitive characters, so return:
(<p_sli> like/= <UU>) or (<p_sli> like/= <UL>) or
(<p_sli> like/= <LU>) or (<p_sli> like/= <LL>)

•	If SearchComponents returns 3, then the search string contained more than 2 case sensitive characters, so return:
((<p_sli> like <UU>) or (<p_sli> like <UL>) or
(<p_sli> like <LU>) or (<p_sli> like <LL>)) and
upper(<p_sli>) like/= upper(<p_field>)

Parameters:

p_sli	in	varchar2	Select list item

p_field	in	varchar2	Query criteria

p_operator	in	varchar2

Return Type:	varchar2

SearchComponents function

This function performs two tasks. It builds the strings <UU>, <UL>, <LU> and <LL> described below, and returns a number representing how many case sensitive characters where found in the search string. The return value is between -1 and 3:

-1	Indicates the first character was a wild card, so there is no need to build an efficient predicate.
0, 1,2	Represent the number of case sensitive characters found.
3	Indicates more than 2 case sensitive characters were found.
The strings <UU>, <UL>, <LU> and <LL> represent a sub-string of the given field value, consisting of up to (but not including) the first three case sensitive characters. These strings are modified such that the first two case sensitive characters are both in upper case, upper then lower, lower then upper, and both lower respectively.

For example, if the search string was 'FRED', then <UU> = 'FR', <UL> = 'Fr', <LU> = 'fR' and <LL> = 'fr'. If the search string was '1A2B3C', then <UU> = '1A2B3', <UL> = '1A2b3', <LU> = '1a2B3' and <LL> = '1a2b3'.

Parameters:

p_ search	in	varchar2

p_uu	in out	varchar2

p_ul	in out	varchar2

p_lu	in out	varchar2

p_ll	in out	varchar2

Return Type:	number

BuildWhere procedure

Called to build up a WHERE clause predicate when the Select list item (Sli) is subject to two range fields in the Query Form. The procedure calls BuildWherePredicate to build the predicate and then adds 'WHERE' or 'AND' as appropriate.

Parameters:	Default:

p_field1	in	varchar2	Query criteria field 1

p_field2	in	varchar2	Query criteria field 2

p_sli	in	varchar2	Select list item

p_datatype	in	number	Datatype

p_where	in out	varchar2	The WHERE Clause

p_date_format	in	varchar2	Date format mask (Optional)	Null

BuildWhere procedure

Called to build up a WHERE clause predicate when the Select list item (Sli) is not subject to range fields in the Query Form. The procedure calls BuildWherePredicate to build the predicate and then adds 'WHERE' or 'AND' as appropriate.

Parameters: 	Default:

p_field	in	varchar2	Query criteria field

p_sli	in	varchar2	Select list item

p_datatype	in	number	Datatype

p_where	in out	varchar2	The WHERE Clause

p_date_format	in	varchar2	Date format mask (Optional)	Null

p_caseinsensitive in	boolean	Is the search case insensitive?	True

BuildWhere procedure

Called to build up a WHERE clause predicate when the Select list item (Sli) is subject to a multi-selectable list control in the Query Form. In this case, if more than one value is selected in the list control, BuildWherePredicate is called for each value and the results 'OR'-ed together.

Parameters: 	Default:

p_field	in	typString240Table	Query criteria field

p_sli	in	varchar2	Select list item

p_datatype	in	number	Datatype

p_where	in out	varchar2	The WHERE Clause

p_date_format	in	varchar2	Date format mask (Optional)	Null

Navigation links

Constants

The following constants are used to define the Menu Style:

MENU_LONG	constant number(1) := 1;
MENU_SHORT	constant number(1) := 2;

NavLinks procedure

Creates a hyperlink using the text displayed (p_caption) to call the specified procedure (p_proc). Menu style indentation is controlled by p_style and p_menu_level parameters. If p_proc is null, the caption is displayed but no link is created. If all the parameters are null, the menu area is closed.

Parameters:	Default:

p_style	in	number	Menu style (LONG/SHORT) or 	Null
NULL to indicate end of menu

p_caption	in	varchar2	Menu/link caption	Null

p_menu_level	in	number	Menu level	0

p_proc	in	varchar2	Procedure to call, or 	Null
null if menu caption

p_target	in	varchar2	Default is '_top'	_top

ReturnLinks procedure

Builds a set of return links (using calls to NavLinks) to URLs stored in cookies by StoreURLLink.

Parameters:

p_levels	in	varchar2	Menu level

p_style	in	number	Menu style (LONG/SHORT) or
NULL to indicate end of menu

StoreURLLink procedure

Creates cookies for the URL defined in CurrentURL (which is created by RegisterURL and AddURLParam) and the caption defined in p_caption, where the name of the cookies are based on the module name and the level defined in p_level. P_open and p_close control the opening/closing of the http_header, in which cookie definitions need to be defined.

Parameters:	Default:

p_level	in	number	The link level

p_caption	in	varchar2	The link caption

p_open	in	boolean

p_close	in	boolean

Environment information

Info procedure

Creates a page of system and generated application details, that is, WSGL version number, current database user and Web Agent environment variables. This information may be useful for debugging purposes.

Parameters:	Default:

p_full	in	boolean	True

p_app	in	varchar2	Null

p_mod	in	varchar2	Null

TablesSupported function

Determines whether or not the browser running the application supports HTML tables. This is derived from a hardcoded list of strings which are compared with the http_user_agent environment variable. Returns true if the current browser supports HTML tables, otherwise false.

Parameters:	None

Return type:	Boolean

InBottomFrame function

Tests whether the document being created is a text frame with only one object in it (for 2.1).

Parameters:	None

Return type:	Varchar2

GetUser function

Returns the value of the CGI environment variable REMOTE_USER if it is defined, otherwise returns the current Oracle user. Note that GetUser is subject to the following pragma to enable it to be used in a SQL select statement:

pragma restrict_references(GetUser, WNDS, WNPS);

Parameters:	None

Return type:	Varchar2

Button/form element creation

Constants

The following constants are used to define the style of HTML form element to be created.

CTL_READONLY	constant number(1) := 1;

CTL_UPDATABLE	constant number(1) := 2;

CTL_INSERTABLE	constant number(1) := 3;

CTL_QUERY	constant number(1) := 4;

The following constants are used to define the kind of HTML form element used to display a column in a Domain.

DV_TEXT	constant number(1) := 1;

DV_CHECK	constant number(1) := 2;

DV_RADIO	constant number(1) := 3;

DV_LIST	constant number(1) := 4;

SubmitButton procedure

Creates HTML/JavaScript code which is interpreted as follows:

•	If the browser does not support JavaScript a Submit button of the given name and title is created

•	If the browser supports JavaScript a button is created with a call to an event handler on the onClick event. If this is the first call, JavaScript code is also created to build a hidden field called p_name.

Parameters:

p_name	in	varchar2	Name of the submit button, or hidden field

p_title	in	varchar2	Button caption

p_type	in	varchar2	Type of button used to create event handler name

RecordListButton procedure

If the functionality of the button is required (p_reqd), an HTML Submit button is created. If it is not required (for example, the 'Next' button at the end of the Record List), JavaScript code is written out to create a button which issues an Alert with the given message. If JavaScript is not supported, no button is created.

Parameters:	Default:

p_reqd	in	boolean	Button functionality required ?

p_name	in	varchar2	Submit button name

p_title	in	varchar2	Button caption

p_mess	in	varchar2	Message if functionality 	Null
not required

BuildDVControl function

Builds the HTML syntax for a form element used to display a column in the Domain defined by p_dvrec. The typDVRecord record parameter will define all the properties of the form element in terms of, for example, type, size. and all the allowable values of the domain. The display style (query, insert and so on) is defined by the parameter p_ctl_style and the current value (if any) is defined in p_curr_val. The boolean parameters indicate if any event handlers are required.

For further details see Domain Validation below.

Parameters:	Default:

p_dvrec	in	typDVRecord	Record defining domain details
to be loaded

p_ctl_style	in	number	CTL_READONLY - read only
CTL_UPDATABLE - updateable
CTL_QUERY -query

p_curr_val	in	varchar2	The meaning	Null

p_onclick	in	boolean 	Is an OnClick event required? 	False

p_onchange	in	boolean 	Is an OnChange event required? 	False

p_onblur 	in	boolean 	Is an OnBlur event required? 	False

p_onfocus	in	boolean 	Is an OnFocus event required? 	False

p_onselect	in	boolean 	Is an OnSelect event required? 	False

Return type:	varchar2

BuildTextControl function

Builds the HTML syntax for a text box or text area if p_height > 1, with given width, maxlength and current value. The boolean parameters indicate if any event handlers are required.

Parameters:	Default:

p_alias	in	varchar2	Alias of the form element	Null

p_size 	in	varchar2	Display width	Null

p_height 	in	varchar2	Height (if > 1, then text area) 	Null

p_maxlength	in	varchar2	Maximum length of data	Null

p_value	in	varchar2	Current value	Null

p_onclick	in	boolean 	Is an OnClick event required? 	False

p_onchange	in	boolean 	Is an OnChange event required? 	False

p_onblur 	in	boolean 	Is an OnBlur event required? 	False

p_onfocus	in	boolean 	Is an OnFocus event required? 	False

p_onselect	in	boolean 	Is an OnSelect event required? 	False

Return type:	varchar2

BuildQueryControl function

Builds the HTML syntax for a text box (or pair of boxes if a range is required) used in a Query Form with given width. The boolean parameters indicate if any event handlers are required.

Parameters:	Default:

p_alias	in	varchar2	Alias of the form element	Null

p_size 	in	varchar2	Display width	Null

p_range	in	boolean 	Is a pair of text boxes required? 	False

p_onclick	in	boolean 	Is an OnClick event required? 	False

p_onchange	in	boolean 	Is an OnChange event required? 	False

p_onblur 	in	boolean 	Is an OnBlur event required? 	False

p_onfocus	in	boolean 	Is an OnFocus event required? 	False

p_onselect	in	boolean 	Is an OnSelect event required? 	False

Return type:	varchar2

BuildDerivationControl

If JavaScript is supported, this creates a form element (of given size) that displays a derivation expression. If JavaScript is not supported just the value is displayed. The boolean parameters indicate if any event handlers are required.

Parameters: 	Default:

p_name	in	varchar2	Name of the element

p_size 	in	varchar2	Display width

p_value	in	varchar2	Current value

p_onclick	in	boolean 	Is an OnClick event required? 	False

p_onblur 	in	boolean 	Is an OnBlur event required? 	False

p_onfocus	in	boolean 	Is an OnFocus event required? 	False

p_onselect	in	boolean 	Is an OnSelect event required? 	False

HiddenField procedure

Creates a hidden field with the given paramname and value.

Parameters:

p_paramnam	in	varchar2	Name

p_ paramval 	in	varchar2	Value

HiddenField procedure

Creates a number of hidden fields with the given paramname, one for each value defined in the p_paramval PL/SQL table.

Parameters:

p_paramnam	in	varchar2

p_ paramval 	in	typString240Table

Domain validation

Type definitions

The following are used to hold information about an HTML form element in a domain, and the values, meanings and abbreviations in the domain.

type typString240Table is table of varchar2(240)

index by binary_integer;

type typDVRecord is record

(ColAlias varchar2(30) := null,

Initialised boolean := false,

ControlType number(1) := DV_TEXT,

DispWidth number(4) := 30,

DispHeight number(4) := 1,

MaxWidth number(4) := 30,

UseMeanings boolean := false,

ColOptional boolean := false,

NumOfVV integer := 0,

Vals typString240Table,

Meanings typString240Table,

Abbreviations typString240Table);

LoadDomainValues procedure

Populates the value, meaning and abbreviations of the domain record p_dvrec from the reference code table defined by P_REF_CODE_TABLE.

Note that the owner of the WSGL packages (PL/SQL Toolkit schema) must have access to the table (CG_REF_CODES), that is, the table owner schema must 'GRANT SELECT ON CG_REF_CODES TO <WSGL OWNER>' and the PL/SQL Toolkit schema must 'CREATE SYNONYM CG_REF_CODES FOR <REF CODE TABLE OWNER>.CG_REF_CODES

Parameters:

p_ref_code_table	in	varchar2	Name of the Reference Code Table

p_domain	in	varchar2	Name of the domain

p_dvrec	in out 	typDVRecord	Record defining domain details to be loaded

ValidDomainValue function

Tests whether the given value is valid for the specified domain. Return true if valid value, otherwise False.

Parameters:

p_dvrec	in	typDVRecord	Record defining domain details to be loaded

p_value	in out	varchar2	The value to test.
If an abbreviation or meaning was entered,
this is replaced by the value

Return type:	boolean

DomainMeaning function

Returns the meaning of a value in a domain. If the value is not found in the domain, the value as specified is returned.

Parameters:

p_dvrec	in	typDVRecord	Record defining domain details to be loaded

p_value	in	varchar2	The value

Return type:	varchar2

DomainValue function

Returns the value of a domain whose meaning is given. If the meaning is not found in the domain, the meaning as specified is returned.

Parameters:

p_dvrec	in	typDVRecord	Record defining domain details to be loaded

p_meaning	in	typString240Table	The meaning

Return type:	typString240Table

URL manipulation

EscapeURLParam function

Returns the parameter value defined in p_param escaped, so that it can be used in a URL. If any of the special characters should not be escaped for some reason, they can be overridden by the boolean arguments.

Parameters:	Default:

p_param	in	varchar2	Null

p_space	in	boolean	True

p_plus	in	boolean	True

p_percent	in	boolean	True

p_ampersand	in	boolean	True

Return type:	varchar2

RegisterURL procedure

Initializes the WSGL variable CurrentURL based on the current host, port number, script name and so on, plus the URL as defined in the parameter p_url.

Parameters:

p_url	in	varchar2

AddURLParam procedure

Adds a parameter name and value to the URL stored in the WSGL variable CurrentURL.

Parameters:

p_paramname	in	varchar2

p_paramval	in	varchar2

AddURLParam procedure

Adds a number of parameter name and value pairs to the URL stored in the WSGL variable CurrentURL, one for each row in the PL/SQL table p_paramval.

Parameters:

p_paramname	in	varchar2

p_paramval	in	typString240Table

RefreshURL procedure

Creates an HTML page consisting solely of an HTTP request to load the URL defined in the WSGL variable CurrentURL.

Parameters:	None

Security

NotLowerCase function

Returns true if the URL as defined by the CGI environment variable PATH_INFO. Otherwise it returns false after calling RefreshURL to invoke the URL defined in CurrentURL. This will be in the correct case.

Parameters:	None

Return Type:	Boolean

Checksum function

Returns a checksum value for the string defined in p_buff.

Parameters:

p_buff	in	varchar2

Return Type:	Number

ValidateChecksum function

Tests if the given checksum is correct for the string defined in p_buff.

Parameters:

p_buff	in	varchar2

p_checksum	in 	varchar2

Return Type:	Boolean

Modules created in versions 1.3 and 1.3.2 of Designer

All modules created in previous versions of Designer should be upgraded and regenerated in Oracle Designer 6i or later.


Web PL/SQL Generator format library (WSGFL)

Related Topics

During generation Web PL/SQL Generator can make use of PL/SQL library functions that format text. The package specification file is wsgfl.pks and the package body is wsgfl.pkb.

Both files appear in the CGENW61\CVWETC directory of your Oracle Designer installation and they must be installed on the PL/SQL Toolkit schema How

Color functions

Black	Green	Red
Blue	Gray	White
Cyan	Magenta	Yellow
Each color function builds the appropriate color string in HTML, such as for cyan text, the string is surrounded by the <font color="#00FFFF"> and </font>tags.

Parameters:

param	in	varchar2	Text to be formatted

Return Type:	varchar2


Web PL/SQL Generator JavaScript library (WSGJSL)

Related Topics

During generation Web PL/SQL Generator makes use of PL/SQL library functions to create JavaScript functions, or segments of JavaScript code. These functions are stored in a package specification file called wsgjsl.pks and the package body is wsgjsl.pkb.

Both files appear in the CGENW61\CVWETC directory of your Oracle Designer installation and they must be installed on the PL/SQL Toolkit schema. How

PL/SQL functions	JavaScript functions
OpenScriptCloseScriptOpenEventCloseEventRtn<function>CallEventCallValidateCallCheckRangeCallChkMaxLengthCallChkNumPrecisionCallChkNumScaleCallChkConstraintCallMakeUpperCallNotNullStandardSubmitVerifyDeleteLOVButtonDerivationField	JSLNotNullJSLCheckRangeJSLChkMaxLengthJSLChkNumPrecisionJSLChkNumScaleJSLStripMaskJSLToNumberJSLMakeUpperJSLChkConstraintJSLRadioValueJSLGetValue	JSLConcatJSLInitCapJSLInstrJSLLengthJSLLowerJSLLPadJSLTrimJSLNVLStrJSLnNVNumJSLReplaceJSLRoundJSLRPadJSLRTrimJSLSignJSLSubstrJSLTruncJSLUpper
WSGJSL PL/SQL functions

OpenScript function

Returns opening <SCRIPT> tag and comment.

Parameters:	None

Return Type:	varchar2

CloseScript function

Returns end of comment and closing </SCRIPT> tag.

Parameters:	None

Return Type:	varchar2

OpenEvent function

Returns the start of a function definition for the given event associated with an HTML form element with the given alias.

Parameters:

p_alias	in	varchar2

p_event	in 	varchar2

Return Type:	varchar2

CloseEvent function

Returns the end of a function opened with OpenEvent.

Parameters:	None

Return Type:	varchar2

Rtn<function> function

There are a number of WSGJSL functions whose name begin with Rtn which simply return the JavaScript code of the associated JSL function called JSL<function>.. For example, WSGJSL.RtnCheckRange returns the JavaScript library code for the function JSLCheckRange.

Exceptions to this rule are:

WSGJSL.RtnNVL1 which returns the code for JSLNVLStr and WSGJSL.RtnNVL2 which returns the code for JSLNVLNum

Parameters:	None

Return Type:	varchar2

CallEvent function

Returns the JavaScript code used to invoke the given event handler associated with an HTML form element of the given alias.

Parameters:

p_alias	in	varchar2

p_event	in 	varchar2

Return Type:	varchar2

CallValidate function

Returns the JavaScript code used to invoke the Validate pseudo-event associated with the module component of the given alias.

Parameters:

p_alias	in	varchar2

Return Type:	varchar2

CallCheckRange function

Returns the JavaScript code used to invoke the JSLCheckRange function and determines from the values of p_lowval and p_hival if a range or just a upper/lower limit is required. This is reflected in the value of the parameter pstyle passed to JSLCheckRange. If the check fails, a message is issued.

Parameters:

p_ctl	in	varchar2

p_val	in 	varchar2

p_lowval 	in 	number

p_hival 	in 	number

p_msg 	in 	varchar2

Return Type:	varchar2

CallChkMaxLength function

Returns the JavaScript code used to invoke the JSLChkMaxLength function to test the HTML form element against the given length. If the check is violated a message is issued.

Parameters:

p_ctl	in	varchar2

p_length	in 	number

p_msg 	in 	varchar2

Return Type:	varchar2

CallChkNumPrecision function

Returns the JavaScript code used to invoke the JSLChkNumPrecision function to test the value of an HTML form element against the given precision. If the check is violated a message is issued.

Parameters:

p_ctl	in	varchar2

p_val	in 	varchar2

p_precision	in 	number

p_msg 	in 	varchar2

Return Type:	varchar2

CallChkNumScale function

Returns the JavaScript code used to invoke the JSLChkNumScale function to test the given value of an HTML form element against the given scale. If the check is violated a message is issued.

Parameters:

p_ctl	in	varchar2

p_val	in 	varchar2

p_scale	in 	number

p_msg 	in 	varchar2

Return Type:	varchar2

CallChkConstraint function

Returns the JavaScript code used to invoke the JSLChkConstraint function to validate the given constraint. If the check is violated a message is issued. p_indent controls the indentation of the generated code.

Parameters:

p_constraint	in	varchar2

p_msg 	in 	varchar2

p_ident	in 	boolean

Return Type:	varchar2

CallMakeUpper function

Returns the JavaScript code used to invoke the JSLMakeUpper on the specified HTML form element.

Parameters:

p_ctl	in	varchar2

Return Type:	varchar2

CallNotNull function

Returns the JavaScript code used to invoke the JSLNotNull function to check the given HTML form element is not null. If the check is violated a message is issued.

Parameters:

p_ctl	in	varchar2

p_msg 	in 	varchar2

Return Type:	varchar2

StandardSubmit function

Returns the JavaScript code which simulates the action of pressing an HTML submit button called Z_ACTION that is, it copies the caption of the button pressed into a hidden field called Z_ACTION and submits the form.

Parameters:	None

Return Type:	varchar2

VerifyDelete function

Returns the JavaScript code to produce a JavaScript confirm alert issuing the given message. If the user presses Cancel, nothing more happens. If the user presses OK, it simulates the action of pressing an HTML submit button called Z_ACTION with a caption of 'VerifiedDelete' . That is, it copies 'VerifiedDelete' into a hidden field called Z_ACTION and submits the form.

Parameters:

p_msg 	in 	varchar2

Return Type:	varchar2

LOVButton function

Returns the JavaScript code used to provide a hyperlink (using text/image defined by p_lovbut) to a List of Values associated with the HTML form element whose alias is given.

Parameters:

p_alias	in 	varchar2

p_lovbut 	in 	varchar2

Return Type:	varchar2

DerivationField function

Returns HTML/JavaScript code, which if the browser does not support JavaScript will be interpreted as static text displaying p_value. If JavaScript is supported a text field displays the given value.

This function is not used in R2.1. It is only provided for backward compatibility with R1.3.2.

Parameters:

p_name	in 	varchar2

p_size	in 	varchar2
p_value 	n 	varchar2

Return Type:	varchar2

WSGJSL JavaScript functions (JSL)

JSLNotNull function

If the given HTML form element is null, issues the message in pmsg, sets focus to the form element and returns false. Otherwise, returns true.

Parameters:	pctl, pmsg

Return Type:	boolean

JSLCheckRange function

Tests that the value specified is within the range given. If not, sets focus to the HTML form element, issues the message and returns false. Otherwise returns true.

If pstyle=1 a full range check is performed. If pstyle=2, only the lower bound is checked. If pstyle=3, only the upper bound is checked.

Parameters:	pctl, pval, pstyle, plowval, phival, pmsg

Return Type:	boolean

JSLChkMaxLength function

Tests that the value in the given HTML form element does not exceed the given length. If it does, sets focus to the form element, issues the message and returns false. Otherwise returns true.

Parameters:	pctl, plen, pmsg

Return Type:	boolean

JSLChkNumPrecision function

Tests that the value in the given HTML form element does not exceed the given precision. If it does, sets focus to the form element, issues the message and returns false. Otherwise returns true.

Parameters:	pctl, pval, pprecision, pmsg

Return Type:	boolean

JSLChkNumScale function

Tests that the value in the given HTML form element does not exceed the given scale. If it does, sets focus to the form element, issues the message and returns false. Otherwise returns true.

Parameters:	pctl, pval, pscale, pmsg

Return Type:	boolean

JSLStripMask function

Parameters:	p_val

Return Type:	string

Removes any formatting (as allowed by Oracle number format masks) to return the given value (which is a string containing number which may be formatted) as a string containing a number with no formatting. It does this by the following algorithm:

•	removes any blanks

•	replaces the 'decimal point character' with '.' (decimal point character must be interrogated from the database at the point when the JSLStripMask is being created).

•	removes any occurrence of the 'group separator character' (group separator character must be interrogated from the database).

•	removes any occurrence of the 'local currency character' (local currency character must be interrogated from the database).

•	removes any occurrence of the 'ISO currency string (ISO currency string must be interrogated from the database).

•	removes any occurrence of ',' and '$' if not already done so

•	if the value is surrounded by angle brackets, removes the brackets and precedes the string with a minus sign.

•	if there is a minus sign at the end of the string, moves it to the front.

•	if there is a plus sign at the end of the string, removes it.

JSLStripMask returns the string containing a possibly formatted number as a string with the mask removed. It does not convert it to a number. A second JSL function, JSLToNumber, does convert a string to a number by calling JSLStripMask and JavaScript's parseFloat method.

JSLToNumber function

Calls JSLStripMask on the given value, if the result is null, returns null, otherwise converts to a number using parseFloat and returns that number. This simulates SQL to_number function.

Parameters:	p_val

Return Type:	number

JSLMakeUpper function

Sets the value of the given HTML form element to uppercase using toUpper().

Parameters:	pctl

Return Type:	none

JSLChkConstraint function

If the constraint evaluates to false, the message is used and returns false. Otherwise, returns true.

Parameters:	pconstraint, pmsg

Return Type:	boolean

JSLRadioValue function

Returns the value of the currently selected button of a radio group, or null if none selected.

Parameters:	pctl

Return Type:	string

JSLGetValue function

Returns the current value of an HTML form element type (specified by ptype). ptype should be one of:

Null	representing text field

CHECK	representing checkbox, in which case pfalse should also be defined,
as this is returned if the checkbox is unchecked.

RADIO	representing a radio group

LIST	representing a text or pop list

Parameters:	pctl, ptype, pfalse

Return Type:	string

JSLConcat function

Simulates the SQL concat function.

Parameters:	pstr1, pstr2

Return Type:	string

JSLInitCap function

Simulates the SQL initcap function.

Parameters:	pstr

Return Type:	string

JSLInstr function

Simulates the SQL instr function.

Parameters:	pstr, pfind, pstart, pnth

Return Type:	number

JSLLength function

Simulates the SQL length function.

Parameters:	pstr

Return Type:	number

JSLLower function

Simulates the SQL lower function.

Parameters:	pstr

Return Type:	string

JSLLPad function

Simulates the SQL LPad function.

Parameters:	pstr1, pLen, pstr2

Return Type:	string

JSLLTrim function

Simulates the SQL LTrim function.

Parameters:	pstr1, pstr2

Return Type:	string

JSLNVLStr function

Simulates the SQL NVL function.

Parameters:	pval1, pval2

Return Type:	string

JSLNVLNum function

Simulates the SQL NVL function.

Parameters:	pval1, pval2

Return Type:	number

JSLReplace function

Simulates the SQL replace function.

Parameters:	pstr1, pstr2, pstr3

Return Type:	string

JSLRound function

Simulates the SQL round function. However, the second parameter is ignored, therefore always assumes base 10.

Parameters:	pval1, pval2

Return Type:	number

JSLRPad function

Simulates the SQL RPad function.

Parameters:	pstr1, plen, pstr2

Return Type:	string

JSLRTrim function

Simulates the SQL RTrim function.

Parameters:	pstr1, pstr2

Return Type:	string

JSLSign function

Simulates the SQL sign function.

Parameters:	pval

Return Type:	number

JSLSubstr function

Simulates the SQL substr function.

Parameters:	pstr, pstart, plen

Return Type:	string

JSLTrunc function

Simulates the SQL trunc function (for numbers only, not dates).

Parameters:	pstr, pdigits

Return Type:	number

JSLUpper function

Simulates the SQL upper function.

Parameters:	pstr

Return Type:	string


Web PL/SQL Generator message library (WSGLM)

Related Topics

Any end user text, or messages that can appear in a generated Web PL/SQL application is defined within a PL/SQL package named 'wsglm.pks'.

This package specification appears in the CGENW61\CVWETC directory of your Oracle Designer installation and it must be installed on the PL/SQL Toolkit schema. How

Message categories

This file contains a set of string constants that are categorized into one of four types:

Caption	This text provides prompts/captions for items.
Display	This text is displayed as information on a page.
Message	This text forms all or part of a message that is issued to a user.
OCO Text	This text is used to define Oracle Context Option functionality on a Query Form
Each message category has an associated prefix and numeric range:

	Prefix	Range
Caption	CAPxxx_	1 - 100
Display	DSPxxx_	101 - 200
Message	MSGxxx_	201 - 500
OCO Text	OCOxxx_	501 - 600
Message format

Strings within the package may have substitution characters in them so that text application data can be substituted into the message. For example, the message text for defining the number of records displayed in the record list is defined as:

-- Text displayed when more than one row is in record list. <p1> is
-- replaced with the number of the first record and <p2> with the last.

DSP110_RECORDS_N_M constant varchar2(100) := 'Records <p1> to <p2>';

Translated versions

Translated versions of this library file are named wsglm<lang>.pks and they also appear in the CGENW61\CVWETC\ directory of your Oracle Designer installation. The languages supported (and corresponding values for <lang>) are:

<lang>	Language	<lang>	Language
cs	Czech	pl	Polish
d	German	pt	Portuguese
dk	Danish	ptb	Brazilian Portuguese
e	Spanish	ru	Russian
el	Greek	s	Swedish
f	French	sf	Finnish
hu	Hungarian	sk	Slovak
i	Italian	tr	Turkish
n	Norwegian	us	American
nl	Dutch
If you want to use a translated version of this file, it must be installed on the PL/SQL Toolkit schema. About


Web PL/SQL Generator Oracle ConText Cartridge library (WSGOCOL)
Web PL/SQL Generator Oracle interMedia/ConText cartridge library (WSGOCOL)

Related Topics

To incorporate Oracle interMedia (with Oracle 8i) or ConText (with Oracle7 or 8.0) cartridge functionality into your Web PL/SQL application, Web PL/SQL Generator makes use of a library package of PL/SQL procedures called WSGOCOL:

QueryFields

RedefineFields

BuildHitList

The package specification and body files are as follows:

interMedia on the Oracle8i database	wsgimtl.pks  wsgimtl.pkb
ConText on the Oracle 7 and 8.0 databases	wsgocol.pks  wsgocol.pkb
The files appear in the CGENW61\CVWETC directory of your Oracle Designer installation and they must be manually installed on the PL/SQL Toolkit schema. How

QueryFields procedure

Builds the interface for a Context Option query. This consists of the prompt of the column being queried (defined by Z_CAPTION), followed by a number of fields for specifying the query.

It uses the table and text key (defined in Z_TABLE and Z_TEXTKEY) to select the policy name from CTX_USER_POLICIES and store this in a hidden field Z_POLICY.

The number of rows (that is the allowable terms in the query) is defined by Z_ROWS and this controls the number of rows of enterable fields in the query interface.

Z_ADVANCED indicates the current style of the query interface, which can be toggled between advanced and simple. mZ_ACTION indicates which button was pressed, either to toggle between advanced and simple interface, or add more rows.

Parameters:	Default:

Z_CAPTION 	in 	varchar2

Z_TABLE 	in 	varchar2

Z_TEXTKEY 	in 	varchar2

Z_ROWS 	in out 	varchar2

Z_ADVANCED 	in out 	varchar2

Z_ACTION 	in 	varchar2	Null

Z_POLICY	in	varchar2	Null

RedefineFields procedure

Builds an HTML form with two buttons. The first button allows the user to toggle between the advanced and simple query interface, the second allows the user to request more rows. The URL which is actioned on submit of this form is defined in Z_URL. Z_ROWS and Z_ADVANCED simply indicate the current status of the query interface.

Parameters:

Z_URL   	in 	varchar2

Z_ROWS 	in out 	varchar2

Z_ADVANCED 	in out 	varchar2

BuildHitList procedure

Builds up a contains clause for the query (out variable Z_CONTAINS) and also uses this to create a hit list in the table CG$RESTAB. The ID used for the query is the IP address of the client machine, with all dots removed and this should be unique.

The contains clause is built from the details of each row of query criteria, defined in the PL/SQL tables Z_OPS, Z_STYLE, Z_TEXT and Z_WEIGHT.

•	Z_OPS contains operators such as and, or, near, which show how the operands combine.

•	Z_STYLE contains how a particular entry is to participate in the query, such as equality match, starts with, fuzzy, sounds like.

•	Z_TEXT contains the free text entered by the user.

•	Z_WEIGHT contains weightings (low, medium, high) by which to modify the score of each term.

•	The number or rows returned is controlled by the value of Z_THRESHOLD, such as All rows, First 10, Those with score > 70).

Parameters:

Z_POLICY 	in 	varchar2,

Z_OPS  	in 	VCArray,

Z_STYLE 	in 	VCArray,

Z_TEXT 	in 	VCArray,

Z_WEIGHT 	in 	VCArray,

Z_THRESHOLD 	in 	varchar2,

Z_CONTAINS 	in out 	varchar2

Z_RESTAB	in	varchar2	'CG$RESTAB'

Note: VCArray is defined as table of varchar2(100) index by binary_integer


About Web PL/SQL Generator

Related Topics

Web PL/SQL Generator creates fully functional Web PL/SQL applications that enable users to query, update, enter and delete information in an Oracle database over the World Wide Web. These generated applications are based on module and database design specifications recorded in the Oracle Repository. About

You can extend this functionality to integrate your generated Web PL/SQL applications with Oracle Portal. The integration is achieved by generating the first page of the application so that it can be registered and rendered as a portlet using a generic Provider package. You can design the generated applications have the same look and feel as the Portal page using cascading style sheets. About

The main input to the generation process is a module design specification recorded using the Oracle Designer Design Editor. This records the tables and columns used by the module, the links between them, and detailed information on how the module uses the data.

Other inputs to the generation process include module links and preferences. Module links define how to navigate between modules (in a multiple module application) and they are also created using Design Editor. Preferences determine the general look and feel of the generated application and it can be customized to suit your particular requirements. About

During generation Web PL/SQL Generator creates a set of PL/SQL packages, which are then installed to enable the application to be run via the Oracle HTTP Server powered by Apache which is part of the Oracle Application Server.

Any HTML browser may be used to run generated applications, although applications may run in a different manner on browsers without javascript. About

For data manipulation, generated Web PL/SQL applications make use of PL/SQL API packages that provide insert, update, delete and lock procedures for each application table. These packages may be generated and installed once the table design is complete, prior to generating the Web PL/SQL application.


Features added for Web PL/SQL Generator in 6i
Features added for Web PL/SQL Generator in 6i/9i

Related Topics

Major new features in Web PL/SQL Generator 6i/9i

HTML elements (buttons, tables, etc.) now all have unique ID attributes generated for them. You can use these IDs in Javascript to identify the element in event code, and for other HTML-related purposes, such as selecting style sheets or setting target anchors for hypertext links.

You can now generate your application as a custom Portlet for Oracle Portal without needing to write code that implements the Provider and Portlet APIs.

You can generate multi-row forms that allow the user to insert a number of records on the same Insert Form, or update and delete a number of records on the same View Form.

There is a security API that allows you to customize access to your applications.

LOVs are now created as separate repository elements. This makes them easier to define, and allows you to reuse them.

Action items are supported which allow you to change the order and text of generated links, and to generate your own buttons either for navigation, or to trigger your own application logic event.

You can now use break groups, SQL aggregate and computed unbound items to generate Record Lists containing complex summaries.

Web PL/SQL Generator now keeps a record of master detail relationships which you can use to provide access to master module component item values from LOVs, application logic and SQL expressions, or to customize dynamic return links.

There is support for generation from versioned repositories.

New repository features enable you to use the repository as well as the filesystem to store files required during generation, and also to store generated files after generation. Storing files in the repository gives you access to features such as the Dependency Analyzer and version control.

Key based links are now supported

Other new and improved Web PL/SQL Generator features in 6i/9i

New colors for the messages displayed in the Message Window that indicate whether Web PL/SQL Generator has successfully or unsuccessfully updated repository properties during generation.

Check boxes on Query Forms are now supported. Previous releases of Oracle Designer did not generate check box items on Query Forms. Instead they were generated as radio groups with a third option of <unknown> meaning that the query was performed when the column was null. In this release the Query? property has new functionality so that check boxes can be generated on Query Forms.

You can now have a module component with a layout style of Form containing items that can be inserted, updated or deleted.

In earlier releases of Oracle Designer Web PL/SQL Generator it was possible for the PL/SQL packages produced by Web PL/SQL Generator to be larger than some versions of the Oracle database could handle. The number of situations when this can occur have been reduced for Oracle7 and 8.0 releases of the database and eliminated for Oracle8i releases.  This has been achieved by creating, during generation, a separate package for each module component which contains the JavaScript functions. See About generated files and packages

Support for domain key constraints and user-defined domain tables.

In a generated Web PL/SQL module of display type of List/Form, whenever a successful update, insert or delete is performed in the View Form or Insert Form, the Record List is automatically updated provided it is displayed in a different frame to the View Form or Insert Form. If you want to add additional functionality to this action, use the new JavaScript OnLoad event.

As part of the support for generation from versioned Repositories, Web PL/SQL Generator no longer maintains a module's Status property.

When there are fields in which the user can enter text on a generated Web PL/SQL Query Form, View Form or Insert Form, the focus is automatically set to the first enterable field when that page is displayed.

Web PL/SQL Generator now automatically escapes any HTML control characters from the database. This is equivalent to setting escape formatting on all items. If you want to individually escape items, you can turn off this functionality using ZONESC.

Additional information is provided on using style sheets and templates to control the appearance of generated web pages.

New Web PL/SQL Generator terminology in 6i/9i

Release 2.x	Release 6i/9i
WebServer Generator	Web PL/SQL Generator
Filter before Display property of table usage	Filter before Display property of repository LOV definition
Via Foreign Key property of table usage	Via Join Constraint property of table usage
Custom style template	Document template
New Web PL/SQL Generator preferences in 6i/9i

Name of new preference	Preference description
AILFRM	Forms to display action item on
AILLDS	Display style of link action item
AILNLN	Display action item on new line
AILTFN	Target frame name
AINMCF	Module component form to navigate to
CALBUT	Popup calendars: Hyperlink preference
CALCBC	Popup calendars: Caption for Close button
CALWIN	Popup calendars: Window properties
LFTLFN	Top level frame name
MCNAAC	Master Context: Always add code
MCNCVL	Master Context: Custom value
MCNDDP	Master Context: Display depth
MCNDPK	Master Context: Display package
MODFOU	Module Form Links URL
MCNFRM	Master Context: Forms requiring context
MCNMDP	Master Context: Maintain context to this depth
MODBML	Build Links to module Components without Master
MODCSS	Cascading style sheet (CSS) URL
MODPTL	Generate Module as an Oracle Portlet
MSGSFT	Message soft format
SECPKG	Security package name
SECRES	Default responsibilities
SECVAL	Perform session validation
SYSIMG	System image location
ZONAIP	Action Item: Position on page
ZONESC	Escape all database values
ZONIBR	Insert Form: Number of blank rows displayed
ZONIDC	Insert Form: Display default caption text
ZONITC	Insert Form: Number of items per line
ZONLMV	Record List: Generate with multi-row View Form
ZONLPP	Record List: Computed Item prompt positioning
ZONLRN	Record List: Display record and set numbers )
ZONLRV	Record List: Row Vertical Alignment
ZONLSR	Record List: Skip record list when query retrieves one record
ZONLSS	Record List: Show computed item separator
ZONQDC	Query Form: Display default caption button
ZONQRV	Query Form: Row Vertical Alignment
ZONVBD	View Form: Button display order
ZONVCA	View Form: Always display count information
ZONVCC	View Form: Caption for Count button
ZONVFC	View Form: Caption for First button
ZONVLC	View Form: Caption for Last button
ZONVNC	View Form: Caption for Next Record Set button
ZONVNM	View Form: Caption for N to M button
ZONVPC	View Form: Caption for Previous Record Set button
ZONVPN	View Form: Always display Previous/Next buttons
ZONVQC	View Form: Caption for ReQuery button
ZONVRN	View Form: Display record and set numbers
ZONVSD	View Form: Show context items for deleted rows
ZONVXC	View Form: Caption for Query button
Web PL/SQL Generator preferences with changed defaults in 6i/9i

Preference name	Default value in earlier releases	Default value in Oracle Designer 6i/9i
ZONLPN	<Null>	No
ZONLSR	Yes	No
Web PL/SQL Generator preferences removed in 6i/9i

SECEUC (Force URL to lowercase) was used to provide a security solution for Oracle 7 and 8.0 databases. It is now obsolete. For information about providing security in generated Web PL/SQL applications refer to About security in Web PL/SQL applications

OCOPOL and OCORES were used with the Oracle ConText cartridge provided with Oracle 7 and 8.0 databases to provide searching on query forms. This functionality is now provided by interMedia therefore these preferences are obsolete. For information about using interMedia to provide search facilities refer to About the Oracle interMedia Cartridge

New Web PL/SQL Generator application logic in 6i/9i

The following JavaScript events are new. About

Event type	Repository elements	Description
OnLoad	Module component	Logic is executed whenever an insert or update form has completed loading.
OnMouseOut	Action item	Logic is executed when the mouse is moved out of the area
OnMouseOver	Action item	Logic is executed when the mouse is moved over the area
OnUnload	Module component	Logic is executed whenever an insert or update form is unloading before displaying another form.
Pragma Declarations	Module, Module Component	You can enter pragma restrict_references at module or module component level.


How Web PL/SQL Generator works

Related Topics

Web PL/SQL generation process

When you generate a Web PL/SQL application you choose which module you wish to generate and also whether or not to generate all the other modules called (directly or indirectly) by the chosen module. How

During generation, Web PL/SQL Generator examines the design specification of each module, detects any links between modules, determines the values of preferences and then creates two PL/SQL files for each module:

•	package specification file	.PKS

•	package body file	.PKB

A PL/SQL package is created for each module component defined within a module, plus one for the module itself. The routines within these packages provide the functionality required for the pages. The generation process also results in the creation of a single .SQL file which simply calls all the other generated files (.PKS and .PKB). About

After generation you are given the option to run the .SQL file to install the generated Web PL/SQL application onto an Oracle database. Once installed, you may run the application using your chosen HTML browser.

In addition to generated packages, Web PL/SQL Generator makes use of its own PL/SQL package libraries (WSGL, WSGLM, WSGJSL, WSGFL and WSGOCOL) to provide generic functionality within the application. About

Table API generation process

Web PL/SQL applications insert, update and delete rows in database tables via an Application Programming Interface (API). The API consists of a set of PL/SQL packages and procedures which are called by the application when insert, update and delete operations are required. About

The Table API is generated from table definitions in the repository. When your table design is complete, you should generate an API package for each table that will be used by the Web PL/SQL application. How

For each table you select, the following files are created:

•	package specification	<table_alias or table_name>.PKS

•	package body	<table_alias or table_name>.PKB

This generation process also results in the creation of a single .SQL file which simply calls all the other generated files (.PKS and .PKB). After generation you run this file to install the generated Table API packages on the database.


About Web PL/SQL module definitions and data usages

Related Topics

A generated Web PL/SQL application comprises one or more dynamic Web pages containing a combination of static HTML text and interactive HTML forms. Module components define the content of these HTML forms and they can be defined visually using the Design Editor. How

A single module may contain one or more module components, linked together via foreign keys. Each module component is based on a specific table (the base table) but may also make use of other tables to provide lookup information (lookup tables).

The module illustrated below has two module components, one based on a Department table and the other on an Employees table. For each module component you must define which columns are to be incorporated within the application, the allowed operations (query only, query and updates) and their display characteristics (prompt, special HTML formatting).

One of the Web pages generated from the module is illustrated above. About


About generated HTML documents

Related Topics

From the module design specification, Web PL/SQL Generator generates a set of PL/SQL packages which at runtime display a series of linked Web pages made up of one or more standard HTML documents. This diagram illustrates the relationship between the different types of documents generated by Web PL/SQL Generator:

Generated documents		Generated per...
Module Content	Provides introductory text and hyperlinks to module components and other modules.	module
Query Form	Allows you to enter search criteria and execute a query (optional).	module component
Record List	Displays a set of queried records in an HTML table, or in an ordered or bulleted list.	module component
View Form	Displays the full details for a chosen record and allows the record to be modified.	module component
Insert Form	Allows you to add new records (optional - dependent upon browser).	module component
Delete Form	Prompts for confirmation before deleting a record (optional).	module component
Generated pages
Startup Page	First page for a Web PL/SQL module.	module
About Page	Displays version information for a module.	module
The complete set of documents shown in this example is not always generated. The appearance, content and sequence of pages is determined by the module design specification and preference values. For example,

•	a Record List for a detail module component may be placed on the same page as its master's View Form, or on separate pages

•	a Query Form or Insert Form may not be required

•	a Query Form, Record List and View Form may all appear on the same page if the Layout Style for the module component is defined as 'List/Form'.

•	a Delete Form will not be created if the browser supports JavaScript


About Startup Pages in Web PL/SQL applications

Related Topics

A Startup Page is generated for every module within the Web PL/SQL application. If the module is the top-level module for your Web PL/SQL application, this page will typically serve to introduce the entire application and provide a set of hyperlinks to the rest of the modules within the application. For other modules, the Startup Page serves to introduce the module and may if appropriate display the first module component. The content of this page is defined using module properties and preferences. How

Page headers and footers

The Startup Page may include headers and footers and these are defined using a set of Header and Footer preferences. About

Module content - Page Title

The default title for the Startup Page is derived from the Top Title property of the module. The content and format of this title may be customized using MODFTF if required. About

Module content - User Text

User text may be added to describe the purpose of the module or give instructions and this text is derived from the user text recorded against the module definition. About

Module content - Navigation hyperlinks

A hyperlink to the About Page for the module can appear on the Startup Page. If it is not required it can be hidden using MODALR.

Within the generated Web PL/SQL application calls to other modules appear as a series of hyperlinks and they may be organized into a hierarchical structure by adding Menu modules to the overall module hierarchy. About

First module component

The MODIFZ preference determines whether or not the initial document of the first module component appears on the Startup Page. The type of HTML document displayed here is determined from the module component design specification. If you decide not to display the first module component on the Startup Page, a hyperlink is displayed instead.

Layout and appearance

Many aspects of the Startup Page can be customized using preferences. How


About Query Forms in Web PL/SQL applications

Related Topics

The Query Form allows the user to define search criteria to be incorporated when executing a query against a module component. To generate a Query Form, the Query? property for one or more items in the module component must be set to Yes. How

Query criteria fields

In this example, four items are marked 'Query' in the module design: Name, ID, Job, and Salary.

If a query criterion is defined for more than one item the records returned will match all the criteria, for example criterion1 AND criterion2. If the item is represented on the Query Form as a list box, multiple entries can be selected. In this case the records returned will match any of the values, for example value1 OR value2.

If the datatype of the item is DATE or NUMBER, a pair of From/To fields can be created to allow for range searching, for example Salary. This default behavior can be overridden using the Range Search property.

Note:	As Web applications do not support three-state check boxes, check box items cannot be implemented on Query Forms. Instead, check box items are generated as radio groups and the third value becomes 'unknown' , that is it is not used in the query.

The Oracle interMedia/ConText Cartridge can be used to provide additional text searching capabilities for items on the Query form. About

User text

Descriptive text or instructions may be added to the Query Form and such information is derived from user text recorded against the module component. About

Buttons

Alternative button captions may be defined using Query Form button caption preferences. About

Layout and appearance

Many aspects of the Query Form can be customized using preferences. How

Note: 	A Query Form is generated only if one or more items are marked 'Query' in the module design. If no such items are defined, no Query Form is created and an unrestricted query is performed instead. This may be appropriate for a detail query that is automatically restricted by the chosen master record.


About Record Lists in Web PL/SQL applications

Related Topics

The Record List displays a set of records for a particular module component. The list normally displays a subset of the table's columns, sufficient for the user to identify the records. A separate View Form is generated to display the full details of any record selected from the list. To display an item in a Record List column, the Context? property of the item must be set to Yes. How

If no items are marked as 'Context', Web PL/SQL Generator chooses the primary key columns and columns marked as 'descriptors' within the column definition (Descriptor Sequence) by default. It is advisable to ensure that the first item marked 'Context' is mandatory, as the item value is used as the hyperlink to the View Form. If an item is null for a particular record, no hyperlink is displayed.

Record List columns

In this example, two items are marked 'Context' in the module design: Name and Number.

Record Lists can also display hyperlinks to detail module components, using ZONLDL.

Record set size

The number of records displayed in a particular Record List at any one time, can be defined using ZONLRS. The default is 10 records.

If required, the module component Rows Displayed property can be used to override the value of this preference for individual Record Lists.

User text

Descriptive text or instructions may be added to the Record List document and such information is derived from user text recorded against the module component. About

Buttons

The inclusion, display order and captions of the push-buttons which allow users to navigate through the database records may be modified using a set of Record List button preferences. About

Layout and appearance

Many aspects of the Record List can be customized using preferences. How


About View Forms in Web PL/SQL applications

Related Topics

The View Form displays the details of any one record and it is displayed when the user chooses a hypertext entry in the Record List. To display an item on a View Form, the Display? property of the item must be set to Yes. How

HTML form elements

This Form contains the full set of items defined against a particular module component and can also be used to modify or delete record details. Non-updateable items are created as read only text.

User text

Descriptive text or instructions may be added to the View Form document and such information is derived from user text recorded against the module component. About

Buttons

Push-buttons allow users to modify, delete and add records. Alternative button captions may be defined using View Form button caption preferences. About

Layout and appearance

Many aspects of the View Form can be customized using preferences. How

Master-detail module components

If the module design contains module components acting as details, the Record List for the detail may be displayed on the same page as the master's View Form, as shown in the example below.

The placement of master-detail components on the same, or separate Web pages is defined visually, using a Module Diagram. How

For example,

This module design will display the master's View Form and detail's Record List on the same page:
This is the module design required to display the detail's Record List on a new page:
Note: 	No View Form is generated for query-only module components, where the Layout Style is List and all displayed items are marked 'Context' in the module design. In this particular case all the record details are displayed in the Record List and therefore a View Form on a separate page is not necessary. If the module component has any details, hyperlinks to the detail module component may be incorporated within the Record List using ZONLDL.


About Insert Forms in Web PL/SQL applications

Related Topics

The Insert Form allows the user to add new records for a particular module component. The Insert Form is displayed when a 'New' button is selected on the Record List, Query Form or View Form. To generate an Insert Form, the Insert? property for one or more items in the module component must be set to Yes. How

HTML form elements

In this example, four items are marked 'Insert' in the module design: Name, ID, Job, and Salary.

User text

Descriptive text or instructions may be added to the Insert Form document and such information is derived from user text recorded against the module component. About

Buttons

Push-buttons allow users to save new records and clear fields on the Insert Form and alternative captions for these buttons may be defined using a set of Insert Form button preferences. About

Layout and appearance

Many aspects of the Insert Form can be customized using preferences. How

Note: 	An Insert Form is generated only if one or more items are marked 'Insert' in the module design. If no such items are defined, no Insert Form is created and therefore 'New' buttons do not appear on the Record List, View Form or Query Form.


About Delete Confirmation Forms in Web PL/SQL applications

Related Topics

The Delete Confirmation Form allows the user to confirm whether or not a record should be deleted. This form is displayed on a new page when the 'Delete' button is selected on the View Form and the browser being used does not support JavaScript. There is no need for a Cancel button on the form, as the Back button in the browser can be used to cancel the delete operation.

Note:	If the browser supports JavaScript, a popup message displays the Delete confirmation button. No Delete Confirmation Form is created.

The record values associated with the items marked 'Context' are displayed to identify the record to be deleted.

User text

Descriptive text or instructions may be added to the Delete Form document and such information is derived from user text, recorded against the module component. About


About the About Pages in Web PL/SQL applications

Related Topics

An About Page is generated for every module within the Web PL/SQL application. The purpose of this page is to display information about the versions of software used to generate, install and display the generated module. The content of this page and access to this information is defined using module properties and preferences. How

Title

The title for the About Page is derived from the Startup Page title and by default, this is the module's Top Title property. If the Startup Page title has been customized using MODFTF, the custom title is also displayed on the About Page. About

User text

Text may be added to describe the About Page or give instructions and such text is derived from user text recorded against the module definition. About

Layout and appearance

The layout and appearance of the About Page can be determined by a template file or style sheet using DOCTAP.

The module content can be aligned to the centre of the About Page using MODFAC.

Hyperlinks to About Page

By default, a hyperlink to the About Page is displayed on the module Startup Page. If it is not required, use MODALR to hide the hyperlink.

URL for About Pages

An About Page procedure is always generated even if you have chosen not to display the About hyperlink on the Startup Page. This means that the version information may be displayed where required, using <Module_Implementation_Name>$.ShowAbout as part of the URL.


About Lists of Values (LOVs) in Web PL/SQL applications

Related Topics

You can use lists of values (LOV) in your generated applications to assist users and to ensure that valid values are entered. LOVs can be displayed in new (or secondary) windows within the browser (using JavaScript), or the LOVs can be placed in a separate frame on the page.

The LOV can be invoked in either query or data entry mode, or both query and data entry mode. When it is in data entry mode, validation is performed on any values the user enters by hand, and an error message is displayed if the value is invalid.

An HTML form element which displays an LOV also has an LOV hyperlink. This hyperlink is placed adjacent to the HTML form element and when it is selected opens the corresponding LOV window.

LOVs can be created from a repository LOV definition. For more information, refer to Designing List of Values windows

You create the LOV as a repository element, by defining the displayed items, table usages including any restrictive clauses, and return items in the Navigator, and associate it with a bound or unbound item.

Note that the WHERE clause of a text list or pop list item that uses a repository LOV definition cannot refer to items in the current module component.The Filter before Display? property allows the contents of an LOV to be filtered before it is displayed. This means that, prior to displaying the LOV window, the user can specify a search value that is then applied to the corresponding column in the SQL sent to the server. A case insensitive search will be performed on the first item in the LOV to reduce the number of rows displayed in the List and the time taken to bring up the LOV.

In some circumstances you may want the LOV to display all the rows automatically and in this case the additional query dialog is not required. For further information, refer to Querying LOVs automatically. The user can reduce the number of values returned even further by entering search criteria into the text field.


About layout styles in Web PL/SQL applications

Related Topics

The overall appearance, content and sequence of pages generated for a particular module component is mainly driven from the Layout Style property defined against the module component:

List	The Query Form, Record List, View Form and Insert Form all appear on separate pages. About Choose this style to present module components which have a large amount of information to display. Also use this style if you anticipate that users will be running the application with browsers that do not have support for HTML frames. A detail component of style List can be embedded in its master's View Form.
List/Form	The Query Form, Record List, View Form and Insert Form can all appear within HTML frames on the same page. About Only choose this style if the browsers used to run the application support HTML frames and the content of each frame can be displayed effectively within a smaller area.
Form	No Record List is created. A View Form is displayed with a set of navigation buttons for navigating through record details one at a time. About
The default layout generated for each of these styles may be modified (or refined) using preferences.


About the List layout style in Web PL/SQL applications

Related Topics

The diagram below illustrates the default content and sequence of pages generated from a module component where the Layout Style is set to 'List'. How

Note that each HTML document appears on a separate page, for example, when you select a record from the Record List, its details are displayed within a View Form on a new page.

Note:	Query/Insert Forms are generated only if there are items marked 'Query' or 'Insert' respectively.

'List' style module components on the Startup Page

MODIFZ determines whether or not the first module component appears on the module Startup Page. If the Layout Style of the first module component is 'List', the Startup Page will contain a Record List (or a Query Form if one is generated).

'List' style detail module components

If the Layout Style of the detail module component is 'List' you may choose whether master-detail module components appear on the same (or separate) Web page, using 'windows' on the Module Diagram. How

Note:	If the Layout Style of the detail module component is 'List/Form' or 'Form' the module component always appears on a new page.


About the List/Form layout style in Web PL/SQL applications

Related Topics

The diagram below illustrates the default content and sequence of pages generated from a module component where the Layout Style is set to 'List/Form'. How

The main feature of this style is that the Record List and View Form appear in HTML frames on the same page. So when you select a record from the Record List, its details are displayed alongside within a View Form.

Note:	Query/Insert Forms are generated only if there are items marked 'Query' or 'Insert' respectively.

'List/Form' style module components on the Startup Page

MODIFZ determines whether or not the first module component appears on the module Startup Page. If the Layout Style of the first module component is 'List/Form', the content of Startup Page depends on value of the LFQOSP and whether the module component has a Query Form, see illustration below:

'List/Form' style detail module components

If the Layout Style of a detail module component is 'List/Form' it cannot be placed on the same page as its master module component, using 'windows' on the Module Diagram. List/Form-style detail components always appear on a new page.

Placement of Query Forms

The LFQOSP preference allows you to place the Query Form (if there is one) in the top frame, rather than on a separate page.

Frame layout

This topic defines the behavior of the default frameset. You can use preferences to control the relative sizes of frames generated using the default frameset, or alternatively you can override the default frameset and use a custom frameset of your own. About


About the Form layout style in Web PL/SQL applications

Related Topics

The diagram below illustrates the default content and sequence of pages generated from a module component where the Layout Style is set to 'Form'. How

Note that Record Lists are not used. Instead, a View Form is created with a set of navigation buttons which allow you to browse or update the details of:

•	a single record, one at a time. About

•	for multi-row View Forms, multiple records, as shown above. About

Note:	A Query Form is generated only if there are items marked 'Query'.

'Form' style module components on the Startup Page

The MODIFZ preference determines whether or not the first module component appears on the module Startup Page.

'Form' style detail module components

If the Layout Style of a detail module component is 'Form' it cannot be placed on the same page as its master module component, using 'windows' on the Module Diagram. Form-style detail components always appear on a new page.


About HTML form elements in Web PL/SQL applications

Related Topics

A generated Web PL/SQL application comprises one or more dynamic Web pages containing a combination of static HTML text and interactive HTML forms. This section outlines the content of both these areas.

HTML forms

Like conventional user interfaces, generated HTML forms display several different types of form elements to assist data entry and push-buttons for initiating database operations. The different types of form elements which may be used are illustrated below:

Within the module design, use the Display Type property to define which form element is generated for a particular item. How

Radio groups, check boxes, pop lists, text lists

A set of allowable values (and meanings) must be defined for these form elements. Pop lists and text lists can also be used for foreign key lookup items.

Text fields

Text fields are generated when the Display Type is set to 'Text'. The default width of text fields is determined from the underlying datatype and a set of Display Length preferences. About

However, you can define custom 'Width' and 'Height' properties for an individual text field if required. How

Static text areas

The term 'static' is used to define those aspects of a generated Web PL/SQL application which are not created dynamically when the application is run:.

•	user text About

•	page headers and page footers About

•	page titles and HTML form titles About

Static text areas are not limited to plain text. They can contain calls to custom PL/SQL functions that return valid HTML syntax, or text that is formatted directly with HTML syntax. In this way, any content that is displayable using HTML may appear within a generated Web PL/SQL application.


About JavaScript support in Web PL/SQL applications

Related Topics

JavaScript is an interpreted, object-based scripting language that adds interactivity and functionality to Web pages. Web PL/SQL Generator makes use of JavaScript to extend the functionality and enhance the runtime operation of your generated Web PL/SQL application. You can also add your own JavaScript code to the module design.

Use of JavaScript within the browser improves the usability of the application and reduces network traffic, as more errors are trapped before data is submitted to the server. However, it should be noted that if the browser running the generated Web PL/SQL application does not support JavaScript, none of these features are available. If the browser does support JavaScript it must not be disabled, otherwise the application will not perform correctly.

Generated JavaScript code

Generated JavaScript code can provide:

•	client-side validation during data entry

•	client-side handling of check constraints

•	client-side handling of derivation expressions

•	client-side conversion to uppercase

•	extra windows for selecting lookup column values, that is List of Values window

•	additional warning and confirmation messages

Client-side validation during data entry

JavaScript allows data to be validated before it is submitted to the server. During client-side validation, checks are made to ensure that all mandatory columns are defined, numeric column values are within a defined range, numeric column values are defined with the correct precision or scale and that the maximum column length has not been exceeded. About

Client-side handling of check constraints and derivation expressions

If check constraints are defined against tables or columns on the server, JavaScript is used to validate that data meets the check constraint before it is submitted to the server. For client-side validation to take place, Web PL/SQL Generator converts the SQL expression to JavaScript. About

Similarly, JavaScript is used to calculate and display derived (unbound) item values during data entry. About

Client-side conversion to uppercase

If lowercase characters are entered into an HTML form element for a column defined on the database as UPPERCASE using the Uppercase? property, JavaScript is used to convert the column value to uppercase.

Extra windows for selecting lookup column values

JavaScript is used to display the List of Values window. LOVs displayed in these windows are provided to help a user to select lookup column values. About

Additional warning and confirmation messages

JavaScript message boxes are used to report errors during validation and confirm transactions. Alert boxes are also displayed to inform users when a particular button action is unavailable.

User defined JavaScript code

You can add your own JavaScript code against modules, module components and items in the repository using the application logic feature. About


About security in Web PL/SQL applications
About security in generated Web PL/SQL applications

Related Topics

When you are planning security for Web PL/SQL applications, there are a number different situations to consider:

•	Where no security is needed, and anyone can access and query the data without security risk. By default, the preference SECECS, which enforces URL checksums, is set to Yes. When you want users to be able to directly access a web page you should set it to No.

•	Server level security, where security is provided by the configuration of the server. For more information,you should refer to the Oracle Application Server documentation.

Depending on which version of Oracle Application Server you are running, security can be provided at different levels and in different ways, for example, preventing the user from invoking the application out of context. About

•	Security implemented by the Web PL/SQL security API. Two examples of different security implementations are provided. You should note that these examples were not designed for maximum security, but rather to demonstrate basic functionality of the product, and you should write your own security implementations.

For applications generated as portlets, you can use the supplied security package, wsgsso, to implement single sign-on. About


Preventing application invocation out of context

Related Topics

Some security issues are addressed automatically by the structure of the generated code. Procedures and functions are generated in PL/SQL packages and only those which need to be called from outside the package are declared in the package specification. If a procedure or function needs to be called from outside a package, the following mechanisms are put in place to ensure they are only called in the correct context:

Prevent access via URL

Some procedures need to be public so they are accessible from other procedures, but should never be directly accessed via a URL. These have a non-defaulted Boolean parameter (Z_DIRECT_CALL) which cannot be defined in the parameter list of a URL and hence they can only be called from within another generated PL/SQL procedure, never from a URL.

Prevent out of context access via URL

Those procedures which can be called from a URL have two extra parameters. The first is a Boolean parameter (Z_DIRECT_CALL) which is defaulted to FALSE and the second is a Varchar2 parameter (Z_CHK) which passes a checksum value.

When a procedure of this type is accessed via a URL, it is not possible to set the value of Z_DIRECT_CALL and so its value will always be FALSE. Consequently, the procedure will check that the checksum value specified in Z_CHK is correct and if not, access is denied to that page.

This prevents a user from modifying a URL which gives them access to a record they are authorized to view and/or modify, in order to access some other data to which they are not authorized. To avoid the unnecessary calculation of checksums when the procedure is called directly from another generated procedure or function, all generated calls will have the Boolean parameter set to TRUE in the call.

If security of this nature is required for a particular module, then the enforcement of the checksum values has to be switched on using SECECS.


About the Security API (Web)
About the Security API

Related Topics

You can generate Web PL/SQL applications that use the Security Application Programming Interface (API) to call a security implementation that, for example, displays a logon form in a separate window to control user access. Two example security implementations are provided, wsgsec and wsgsr (described below), which you can use as examples to provide security for your application.

For more information, refer to Writing your own security package

A further security package, wsgsso, is available for use with applications generated as portlets that require single sign-on (SSO) facilities.

Note:	To use a security package, SECVAL has to be set to yes, so that a call is made to the API security check procedure in the security package, and SECPKG has to contain the name of the security package.

Security package wsgsec

This provides a logon screen for the user to enter a username and password. You have to define a number of responsibilities (for example administrator, guest, developer) and assign each user who should have access to the application to one or more responsibility.

When the user attempts to open the application, a logon form is displayed which they fill in, and one of the following happens:

-	if their username is allocated to a responsibility that is allowed access to the application, the first page is displayed.

-	if the username belongs to a responsibility that has not been given access to this application, then access is denied, and the logon form is displayed again.

-	if the username does not belong to any responsibility, then an error message is displayed.

For more information, refer to Using the example security package wsgsec

Security package wsgsr

When a new user attempts to start the application, a page is displayed for them to enter a number of details about themselves. Once they have logged on for the first time, they subsequently only have to enter their username and password to logon.

The default wsgsr package asks the user for the following details: username, password, title, name, sex, email address, address, telephone. You can customize this to suit your own requirements.

For more information, refer to Using the example security package wsgsr

Security package wsgsso

User authentication is defered to the login server. Using the wsgsso security packages, the generated applications function as login server partner applications. The Oracle Login Server makes possible single sign-on across all of the applications registered with the login server. If a user logs into one application, they will automatically be logged into all of the applications registered with that login server. Users will not have to authenticate themselves when accessing any of the other applications until they log off.

For more information, refer to Using the security package wsgsso


Using the example security package wsgsec

Related Topics

Two security packages, wsgsec and wsgsr, are provided as examples to help you develop your own security implementation. About

To use wsgsec:

1.	In SQL*Plus, run wsgsec.sql. This can be found in <ORACLE_HOME>\CGENW61\CVWETC directory. This installs the following tables:

Table name	columns
wsgsec_user	user_name, password
wsgsec_resp	responsibility_name
wsgsec_userresp	reponsibility_name, user_name
wsgsec_perm	responsibility_name, package_name
wsgsec_sessions	client_id,  user_name, ip_address, expires
2.	Populate wsgsec_user, wsgsec_resp and wsgsec_userresp with appropriate values. wsgsec_perm is automatically populated by the generator according to the values set for SECRES, and wsg_sessions is populated when the user logs on.

3.	Set SECVAL to yes.

4.	Set SECPKG to the name of the security package, wsgsec in this case.

5.	Enter the responsibilities for each module in SECRES.

6.	Generate the application.


Using the example security package wsgsr

Related Topics

Two security packages, wsgsec and wsgsr, are provided as examples to help you develop your own security implementation. About

To use wsgsr:

1.	Customize wsgsr to request the information you require.

2.	In SQL*Plus, run wsgsr.sql. This can be found in <ORACLE_HOME>\CGENW61\CVWETC directory. This installs the following tables:

Table name	columns
wsgsr_sessions	client_id, user_name, ip_address, expires
wsgsr_userdata	user_name, password, title, name1, name2, sex, email, address1, address2, address3, address4, postcode, telephone
wsg_sessions is automatically populated when the user logs on, and wsgsr_userdata is populated with information the user enters the first time they log on.

3.	Set SECVAL to yes.

4.	Set SECPKG to the name of the security package, wsgsr in this case.

5.	Generate the application.


Using the security package wsgsso

Related Topics

The security package wsgsso is used to provide single sign-on (SSO) for Web PL/SQL applications generated as portlets. About

To use wsgsso:

1.	Install the PL/SQL SSO enabler packages.

The PL/SQL SSO enabler packages come as part of the Single Sign-On Software Development Kit (SSOSDK), which in term is part of the Portal Development Kit (PDK). The PDK is available from Technet. (Do not use the PL/SQL SSO enabler packages that are resident in the portal30 schema.)

You would normally install the SSO enabler packages into the same schema that you are generating your applications into.

2.	Install the wsgsso packages:  in SQL*Plus, run wsgsso.sql, which can be found in the <ORACLE_HOME>\CGENW61\CVWETC directory.

You would normally install the wsgsso packages once per schema that you wish to generate into.

This step installs the packages and creates the schema. As part of this step you are asked for a cancel URL. This is the URL that the user is taken to if they click "Cancel" on the login server login screen. It is also the URL that they are taken to when they log off. The URL should be to a public page that has no security. Typically it would be some sort of public home page for the application.

3.	Register your application with the login server.

This is a task for the login server administrator. Once done, the login server administrator will be able to provide you with three essential pieces of information:

-	a site id
-	a site token
-	an encryption key.

A single application, as registered with the login server, can consist of a number of generated modules. What will make them collectively an application for single sign-on is that they will all share the same security package, i.e. they will all be generated with the SECPKG preference set to wsgsso.

When registering the application with the login server, the success URL will typically be:

http://<wsgapp_host:port>/pls/<wsgapp_dad>/wsgsso.sign_on

i.e. upon successful authentication it is the wsgsso.sign_on procedure that is invoked.

4.	Use the site id, site token and encryption key (as provided by the login server administrator) to register your application with the SSO enabler utility that you previously installed in the generated application schema.

To do this, follow the instructions in the SSOSDK, with the following exception: do not include the application name in the Listener token.  The p_listener_token parameter in the registration script regapp.sql must use the following syntax :

p_listener_token:  Listener token for your application

Syntax:  <SSO/Portal webserver host name>:<port>

Example:  www.ssosvr.com:80

This allows all generated web server applications coexisting in the same schema to use the same Partner Application registration and the same SSO server.

Important:  When you are asked to set a value for ip_check, you must set it to Y in upper case.  Setting a different value or using lower case will cause the portlet implementation to fail.

5.	Set SECVAL to yes.

6.	Set SECPKG to the name of the security package, wsgsso in this case.

7.	Generate the Web PL\SQL application.

Before the application can be run you will need to populate the wsgsso_user table with some users and populate wsgsso_userresp with some default responsibilities for those users.  Populate the tables with single sign-on server users and passwords that can be used to log in to the portal.  Insert user names in upper case.  Set up the responsibilities using the preference SECRES (the default responsibility is "administrator").

DAD (database access descriptor) configuration

Even though the WSGSSO package provides SSO authentication to your WSG applications, the DAD used to access your generated applications should use "Basic Authentication" as its authentication mode.

Note:  For information on how to set up DADs, refer to the Oracle Application Server administration documentation.

User logoff

Calling the wsgsso.logoff procedure will log off a user from his or her local Web PL/SQL Generator session. It will not log them off the login server, so when they access the Web PL/SQL Generator application again they will find that they are logged back on automatically without being challenged. Users will be properly logged off only when they are logged off the login server. The easiest way for users to achieve this is to close their browser.


Writing your own Security API (Web)
Writing your own security package

Related Topics

If you want to write your own security packages you have to implement the following PL/SQL subprograms.

function get_user return varchar2

This function is called by the generated package to return the username of the current user.

procedure add_package_resp( p_package_name in varchar2, p_responsibility in varchar2 )

This procedure is called by the module installation script for each package that it installs and each responsibility defined in SECRES for that package. For example, in wsgsec, it is used to assign responsibilities to packages.

If you do not need this procedure for your security API, use the following implementation:

procedure add_package_resp(p_package_name in varchar2

                           p_responsibility in varchar2)

is

begin

    null;

end;

function security_check( p_package_name in varchar2 ) return boolean

This function determines whether or not the current user can use the package.


About embedded HTML in Web PL/SQL applications

Related Topics

Additional HTML can be incorporated within the module design to enhance the appearance and add functionality to a generated Web PL/SQL application. You can:

•	enter HTML syntax directly to format static text

•	embed calls to PL/SQL functions that return HTML syntax

•	apply special formatting to column values

HTML syntax

Static text defines those aspects of a generated application which are not created dynamically when the application is run, such as page headers, page footers, page titles, HTML form titles, user text above and below HTML forms.

If you have experience with HTML you may use the HTML reserved characters (< > " &) to directly format static text within the module design. In this case MODSUB must be set to No.

PL/SQL functions returning HTML

Within the module design you may reference any of the HTML functions provided by the HyperText Functions (htf) package within the Oracle PL/SQL Web Toolkit, or the Web PL/SQL Generator Library packages. About

You can also define and reference your own custom PL/SQL functions, providing they return valid HTML syntax and are part of a PL/SQL package defined within the PL/SQL package list preference (PKGLST). How

Note:	For descriptions of PL/SQL Toolkit functions, refer to the online documentation for the Oracle Application Server.

Here are some instances where embedded calls to PL/SQL functions may be useful:

Images	By embedding the image function (htf.img) within the module design, image files stored on the Oracle Application Server file system may be used in various ways to enhance the appearance, or clarify the purpose of a generated application. Such images can be embedded within static text or referenced dynamically based on a column value. The most commonly supported image formats are GIF and JPEG.
Character text styles	A range of standard HTML functions may be embedded within static text to highlight aspects of the text you define, for example htf.bold or htf.italic. These functions may also be applied to column values.
Email addresses	Hypertext email addresses which link directly to an email application may be incorporated within a generated Web PL/SQL application by referencing the htf.mailto function.
URL references	Hypertext URLs which link directly to existing HTML pages may be incorporated within a generated Web PL/SQL application by referencing the htf.anchor function.
This example shows how htf functions embedded with user text would appear in the generated application:

Sample user text:	Welcome to the htf.bold('ACME Corporation') home page. Send any comments on this page to htf.MailTo('JBLOGGS.ACME.COM','Joe Bloggs').
Generated output:	Welcome to the ACME Corporation home page. Send any comments on this page to Joe Bloggs.
HTML functions recorded against items

Web PL/SQL Generator supports a set of standard built-in formatting options and colors that may be set against each item. You can specify a single option such as BOLD or BLUE or a multiple comma-separated list of options such as BOLD, BLUE, ITALIC. For more flexible formatting, calls to other Oracle Web PL/SQL Developer's Toolkit functions may also be used. About

Formatting options	BOLD, ITALIC, PREFORMAT, IMAGE, URL, MAILTO and ESCAPE
Color options	RED, GREEN, BLUE, BLACK, WHITE, GRAY, YELLOW, CYAN, MAGENTA


About the Oracle interMedia Cartridge

Related Topics

The Oracle interMedia Cartridge is a text management and retrieval tool for the Oracle database and it can be used to add text-search capabilities to Query Forms in generated Web PL/SQL applications. How

When the PL/SQL Toolkit schema is set up, the package WSGOCOL is installed which allows you to use interMedia in an Oracle 8i or 9i database. For information about installed the WSGOCOL package, refer to Setting up the PL/SQL Toolkit schema.

interMedia search options

All the search options are available from dropdown lists on the Query Form. Initially a set of basic search options are available. You can access more advanced options using the 'Extend Search Capability' button. The interMedia search options are outlined below:

	Search style	Operation	Return Threshold
Simple	Match Starts With Fuzzy	and or	All hits First 10 hits First 100 hits
	Search style	Operation	Return Threshold	Weighting
Extended	Match Starts With Fuzzy  Stem Soundex	and or not near minus	All hits First 10 hits First 100 hits  Hits with score >30 Hits with score >70	Medium HighLow
Note	interMedia does not display the Return Threshold poplist on the Query Form. To restrict queries based on the score of a query, add a clause to the Query WHERE clause of the table usage that references the column SCORE(1). For example,

SCORE(1) > 70

The initial Query Form provides the facility to enter two search terms. The More Terms button allows additional search terms to be defined.

Web PL/SQL Generator library package (WSGOCOL)

If you want to generate interMedia search options on a Query Form, you need to install an additional Web PL/SQL Generator library package called WSGOCOL. How

This package contains the PL/SQL procedures required to incorporate the Oracle interMedia cartridge functionality within the Web PL/SQL application. It is installed separately from the other Web PL/SQL Generator library packages as it is dependent on Oracle interMedia being present in the database.


Generated applications and the Oracle9i Application Server
Generated applications and the Oracle Application Server

Related Topics

Business data stored on the Oracle database is formatted into Web (HTML) documents within the Oracle Application Server and then transmitted to Web Clients, on request.

The user requests HTML information by entering an appropriate Uniform Resource Locator (URL). This URL specifies the target server machine or site, the DAD (database access descriptor), and the PL/SQL routine to run on that database schema.

Example:

In the Oracle Application Server the username, password and connection details are stored in a Database Access Descriptor (DAD). In the server, you define a PL/SQL Agent which references a DAD and holds additional information about authorized ports, NLS parameters and other properties. It is the name of the PL/SQL agent, rather than the DAD, which is used as part of the URL. In addition, by default, the virtual mapping for URLs using a particular PL/SQL Agent is set to use the string plsql rather than owa. In the example above, if the user was defined by a DAD my_dad, and this DAD was referenced from the plsql Agent my_agent, listening on port 8000, the URL would be:

http://hostname:8000/my_agent/plsql/startup

The PL/SQL routine specified within the URL fetches the data from the Oracle database and then makes use of mod_PL/SQL in the Oracle HTTP Server powered by Apache to format the data within the required HTML syntax. The formatted data is then routed to the user originating the request.

Note:	For a detailed description of all the packages contained in the PL/SQL Web Toolkit, refer to the PL/SQL Web Toolkit Reference in the online documentation for the Oracle Application Server.


About Record Lists with complex summaries

Related Topics

You can produce Record Lists which report the results of complex queries using break groups and different unbound item types. About

Break groups

When an item in a column occurs on several rows they are only displayed on the first row. For example:

In this case there is one break group containing JOB.

Also, summaries (computed items) can be displayed over the values in a break group, for example:

Note:	The hyperlink is:

•	the first column that is not part of a break group, so in the example above, the hyperlink is in ENAME.

•	the first item in the last break group, when all the columns are set as break groups.

Computed items can also be produced for columns that are not displayed in the Record List. In the example above, the SAL column could be hidden, with just the salary total displayed. In a similar manner, break groups can exist with no displayed columns, so in the example above, the column JOB could be hidden without affecting the computed items.

In the example above the computed item is reset after every break group, giving a total salary for each job. Using the reset level of the computed item, you can also specify that the computed item is reset after different groups, or not set at all. If the reset level of the group is not valid, for example the reset level is a group in another module component, then the group will reset at report level.

You could display a grand total by creating a module level module component with a computed unbound item which refers to the module component. For example:

sum(module_component.sal)


About portlet generation

Related Topics

You can integrate generated Web PL/SQL applications with Oracle Portal. This is achieved by generating the application in such a way that the first page of the application is a portlet through which the user enters the rest of the application. You can choose to use Oracle Portal's single sign-on security.

To generate a Web PL/SQL module as a portlet to run in Oracle Portal you run a script to install packages and other database objects, and use preferences to specify various aspects of generation. How

You can design the generated applications to have the same look and feel as the Portal page using cascading style sheets.

Once the module that is to run as a portlet is generated you have to register it and render it as a portlet using Oracle Portal. For more information about Oracle Portal, refer to the Oracle Portal documentation.


About ID attributes for HTML elements

Related Topics

From releases 4.8 and 9.0.2.6, HTML elements generated by the Web PL/SQL Generator have an ID attribute assigned to them.  ID attributes are generated for the following HTML elements:

buttons

form elements other than buttons

tables.

Use of ID attributes in HTML generally

HTML ID attributes can be used for many purposes, including the following:

to reference a particular element from a script

as a style sheet selector

as a target anchor for hypertext links

as the name of a declared OBJECT element

to identify fields when extracting data from HTML pages into a database

for translating HTML documents into other formats

for other general processing by user agents.

The ID attribute in generated code

The following is an example of HTML code, generated by the Web PL/SQL Generator, that includes ID attributes:

<script><!--
document.write('<input type=button value="Find" onClick="this.form.Z_ACTION.value=\'QUERY\';
               return btnQFQ_OnClick(this)">')
//-->
</SCRIPT>
<noscript>
<input TYPE="submit" ID="Find" NAME="Z_ACTION" VALUE="Find">
</noscript>
<input TYPE="reset" ID="Clear" VALUE="Clear">
<script><!--
document.write ('<INPUT TYPE="submit" VALUE="New" onClick="this.form.Z_ACTION.value=\'INSERT\'">')
//-->
</SCRIPT>
<noscript>
<input TYPE="submit" ID="New" NAME="Z_ACTION" VALUE="New">
</noscript>
<input TYPE="hidden" NAME="Z_CHK" VALUE="0">

Co-existence of ID and NAME attributes

In Javascript, you can use either the ID attribute or the NAME attribute to reference an HTML element.  The following example code shows how these two attributes can co-exist:

<html>
<head><title> Example: Use of ID with NAME </title>
<script LANGUAGE="JavaScript">

function valid(form)
{
var input=0;
input=document.myform.data.value;
if (input<0)
{
alert("Please enter a value that is greater than 0");
}
}

</SCRIPT>
</head>

<body BGCOLOR="FFFFFF" TEXT="000000">

<h4>Example: This HTML file shows that ID can co-exist with NAME and users can use
ID to reference the form element even when NAME is present.</h4>

Try entering a value less than zero:<br><br>

<form name="myform">

<input type="text" id="data" name="data_0" value="" size="10" onBlur='valid(this.form)'>

</form>

Please see the source HTML.
</body>
</html>

ID attributes for buttons

The value of the NAME attribute generated by the Web PL/SQL Generator is Z_ACTION for all buttons of TYPE = "submit".  Because this is not unique, you cannot use the NAME attribute to reference a button in Javascript.  By contrast, the value of the ID attribute generated for a button is unique within an HTML page.

ID attributes are generated for the following buttons:

Find

Clear

New

Update

Query

ReQuery

Count

Insert

Revert

Delete

Action item (see note)

The ID attribute of a button is given the same value as the "Label" of the button.  This is because the "Label" of any button automatically generated on a particular HTML page is unique.

Note	You can choose to display an action item either as a button or as a link.  When an action item is displayed as a button, the "Item name" of the action item will be used as the value for the ID attribute.

ID attributes for form elements other than buttons

ID attributes are generated for the following form elements:

Read-only text field

Enterable text field

Radio group

Check box

Text list

Pop list

Multi-line text field

ID attributes are generated for the above for consistency:  it is already possible to reference these form elements in Javascript using the NAME attribute, which is unique for a particular HTML page.

The value given to the ID attribute during generation is the same as that given to the NAME attribute.  Both values are derived from the item name.  For example, if MYDEPTNO is a text item based on the DEPTNO column of  the DEPT table, then the value of the ID attribute and of the NAME attribute is "P_MYDEPTNO".  (The "P_" prefix is part of a previously adopted naming convention, and is otherwise meaningless is this context.)

ID attributes for HTML tables

Cells in HTML tables are given unique ID attribute values in accordance with the following pattern:

ID="A"	ID="B"	ID="C"	ID="D"
ID="A1"	ID="B1"	ID="C1"	ID="D1"
ID="A2"	ID="B2"	ID="C2"	ID="D2"
ID="A3"	ID="B3"	ID="C3"	ID="D3"

where A, B, C and D are column names.

Using the ID attribute feature in Web PL/SQL Generator

Whenever you generate from a Web PL/SQL Generator module, the ID attribute will always be generated for all appropriate HTML elements on an HTML page.

The following script shows how you can use the ID attribute in your Javascript.  This example checks for the value entered in the "Department name" text box on an update record page.  An alert will be raised if the user of the page leaves the "Department name" text box empty.

<html>
<head><title> Example: Use of ID with NAME </title>
<script LANGUAGE="JavaScript">

function valid(form)
{
  var input=0;
  input=document.myform.P_DNAME.value;
  if (input.length < 1)
  {
    alert("Please enter a valid Department name.");
  }
}

</SCRIPT>
</head>

<body BGCOLOR="FFFFFF" TEXT="000000">

<form ACTION="dept$dept.actionview" METHOD="POST" NAME="dept$dept$VForm">
<p>
<table >
<input TYPE="hidden" NAME="P_DEPTNO" VALUE="30">
<input TYPE="hidden" NAME="H_DEPTNO" VALUE="30">
<tr VALIGN="TOP"><td ALIGN="LEFT"><b>Deptno:</b></td><td ALIGN="LEFT">30</td></tr>
<tr VALIGN="TOP"><td ALIGN="LEFT"><b>Dname:</b></td><td ALIGN="LEFT"><input TYPE="text"
    ID="P_DNAME" NAME="P_DNAME" SIZE="14" MAXLENGTH="14" VALUE="desg" onBlur='valid(this.form)'></td></tr>
<tr VALIGN="TOP"><td ALIGN="LEFT"><b>Loc:</b></td><td ALIGN="LEFT"><input TYPE="text"
    ID="P_LOC_MY" NAME="P_LOC_MY" SIZE="13" MAXLENGTH="13" VALUE="uk"></td></tr>
</tr>
<script>
<!-- Hide from old browsers
document.write('<INPUT TYPE="hidden" NAME="z_modified" VALUE="N">');
//-->
</SCRIPT>
<input TYPE="hidden" NAME="O_DNAME" VALUE="desg">
<input TYPE="hidden" NAME="O_LOC_MY" VALUE="uk">
</table>
</form>
</body>
</html>


Generate Web PL/SQL dialog
Generate Web PL/SQL dialog box

Related Topics

You can use Web PL/SQL Generator to generate a Web PL/SQL application from module design specifications held in the repository. About

Use this dialog box to generate a new Web PL/SQL application from the selected module (or module network), or update an existing application.

Module

Displays the Short Name of the module selected for generation.

Include the module network?

To generate a Web PL/SQL application for the whole module network starting from the chosen module, select the Include the module network checkbox. All the modules will be included, except for Web PL/SQL modules where the Command Line property is defined.

Do not select this checkbox if you want to create a standalone (temporary) application for a single module, for testing and debugging purposes.

Installation user password

To install the application after generation, enter the password for the application schema. This field is active if the Name and Connect String of the application schema is defined on the Web PL/SQL Generator Options dialog. The field will be grayed if you chose to define the password within the Name field of the Options dialog.

Post Generation

Use the Post Generation options to specify what happens when generation is complete.

Post Generation - Commit

Select this option to update repository objects when generation is complete.

Note that there are some circumstances when the Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

Post Generation - Revert

Select this option if you do not want to update repository objects with the property settings used during generation.

Post Generation - Browse/Edit mode

Select this option to activate Post Processing Mode, which enables you to choose how to process proposed repository changes.

For more information about Post Processing Mode, refer to About the Design Editor Post Processing Mode.


Web PL/SQL Generator Options dialog
Web PL/SQL Generator Options dialog box

Related Topics

Before running Web PL/SQL Generator you can set options that affect the generation and installation process. About

Use this dialog box to specify

•	the location of files required during generation

•	where Web PL/SQL Generator saves generated files

•	where to install the application after generation

•	the browser you want to use to view the application

Source

These options enable you to specify the location of files required during generation.

File System

Select this option if you want those files that are required during generation to be retrieved from the filesystem and not from the repository.

Repository

Select this option if you want those files that are required during generation to be retrieved from the repository and synchronized with files in the filesystem before being used.

For more information about storing source files in the repository, refer to About storing files in the repository for use during generation.

Repository Folders

Specify the repository folder containing the files required during generation. To specify multiple folders, separate the folder names with commas. Multiple folders are searched in the order in which you specify them.

Note that if a required file is not in the repository folders specified in this field, Web PL/SQL Generator attempts to locate the file on the filesystem using any path included in the preference that identified the file as being required.

For more information about storing source files in the repository, refer to About storing files in the repository for use during generation.

Target

These options enable you to specify where generated files are stored.

Destination of generated files

To save generated files in a specific directory on the filesystem, enter the drive and directory you require. Alternatively, click Browse to select the location.

If no location is specified, generated files are saved to the working directory of the program item or shortcut used to start Oracle Designer. The default location is <ORACLE_HOME>\BIN\

Upload generated files to repository

To save generated files in the repository folder mapped to the directory specified in the Destination of generated files field, check this checkbox. If a repository folder is not mapped to the specified directory, the file is not saved in the repository.

For more information about saving generated files in the repository, refer to About storing generated files in the repository after generation.

Install Generated PL/SQL

These properties define how to log on to the Oracle database where the generated Web PL/SQL application is to be installed, that is the Application schema.  The values you enter are concatenated to provide the full connect string required, for example scott/tiger@sales

Name

To define where a generated Web PL/SQL application is to be installed after generation, enter the name of the application schema. The password can either be entered here (for example scott/tiger) or, if security is an issue, it can be omitted and entered prior to generation from the Generate Web PL/SQL dialog box instead.

Note: 	The connection information entered here must match the Oracle Application Server DAD (database access descriptor) specified within the Web Agent URL option below.

Connect String

To define where a generated Web PL/SQL application is to be installed after generation, enter the connect string for the target database, that is the SQL*Net v2 alias name.

Auto-install after Generation

To install the generated Web PL/SQL application on the specified database immediately after successful generation, select the Auto-install after Generation checkbox.

Run Generated Application

These properties define how to run the Web PL/SQL application, after successful generation and installation. Together, the values you enter here provide the run command, for example

Oracle Application Server:	netscape.exe http://myhost:8888/demoapp/plsql/myapp$.startup
Browser

To run a generated Web PL/SQL application using a particular Web browser immediately after successful installation, enter the name and location of the browser executable you want to use. Alternatively, click Browse to select the name of the executable file.

Web Agent URL

To run a generated Web PL/SQL application immediately after successful installation, enter the URL containing the database connection information. The URL will contain the DAD (database access descriptor) for the generated application, that is http://<machine:port>/<DAD>/plsql/

Note: 	For information on how to set up DADs, refer to the Oracle Application Server administration documentation.


Mandatory, 30 characters
The name of the table. The name must be unique and must not contain any embedded spaces. Words can be separated by underscores.


Optional, 10 characters
A short, unique alias name for the table. Typically, you use the initial letters of words in the table name to define the alias. For example, CUSTOMER_ADDRESSES would take the alias CA.

This property provides a default table usage alias when defining a module. In turn, the table usage alias is used within the FROM clause in generated SQL statements. It is also used to identify columns in PL/SQL procedures and function calls.


Optional, 132 characters
Used to default the module component Title property when a base table usage is created on a module. In turn, this defines the default title text for generated HTML documents (Query Form, Insert Form, Record List and View Form) and the text for generated hyperlinks.


Optional

Default user text to be displayed by the generated application. The information that is displayed can be modified when defining modules.


Mandatory, 30 characters
A unique name for the column. The name must not contain any embedded spaces. Words can be separated by underscores.


Optional

The name of an existing domain to which this column belongs. Domains allow you to define a common set of allowable values which can be reused across multiple columns, for example Y/N for flag columns.

When you associate a column with a domain, the column datatype and length fields are inherited from the domain definition. [Note: If you change the column datatype, maximum length or valid values when it is associated with a domain, the column properties will override those defined at the domain-level.]


Optional, 5 digits
The maximum length of data that the column can contain. This field must be completed for datatypes other than DATE.

Validation code is generated (Table API and JavaScript) onto form elements based on this column to check (during data entry) that the length defined here is not exceeded. About


Optional, 2 digits
The number of decimal places allowed for the column. This applies only to the datatypes NUMBER and DECIMAL.

If defined, validation code is generated (Table API and JavaScript) onto form elements based on this column to check (during data entry) that the number of decimal places defined here is not exceeded. About


If set to Yes, code is generated (Table API and JavaScript) to convert the value entered by the user to uppercase. About

If set to No, mixed case values can be entered for the column.


Optional

The name of a sequence used to create unique values for this column when a row is inserted in the database table. If specified, code is generated (Table API) to derive a unique value for the column when new rows are created. About

Sequence values may be sourced from a code controls table or an Oracle sequence and they are typically, used to provide unique values for Primary Key columns.

If the column derives values from sequence, ensure that the Server Derived property is set to Yes.


Specifies whether the column can contain null values, that is the column is optional. If a list of allowable values is defined for an optional column and items based on this column are also defined as optional, an extra 'null' or 'unknown' value will be displayed in the generated application.

If set to No, the column is mandatory.


Indicates whether any items based on the column will normally be displayed in the generated application.


Specifies the default display type for items based on this column.


Optional, 5 digits
For text boxes, this specifies the default number of characters to be displayed.

If you use a format mask, you should increase the display length by 1 character greater than the length of the format, to enable the whole field to be displayed.


Optional, 6 digits
Specifies the default number of lines in a multi-line text boxes or text lists.


Optional, 6 digits
Specifies the default order in which the columns should appear in the generated application.

Tip: 	You can revise this order after items have been specified for a module, by dragging and dropping the columns into a different order on a module diagram.


Optional, 132 characters
Specifies the default prompt that accompanies generated HTML form elements.


Optional, 3 digits
Specifies the default sort order, when querying rows. If set, the column appears within the generated ORDER BY clause within SQL statements that query from this table.


Specifies that the column is to be used in the generated application as a descriptor column for the table (instead of the primary key). Descriptor columns appear in the Record List when no items are marked 'Context' in the module design.


Optional, dropdown list
Determines how the column's value is to be automatically populated by generated Table API code. For example, the date a record was created (Date Created) or the name of the user who created the record (Created By). About

When specified, the generated element is non-enterable.

If the column derives values automatically in this way, ensure that the Server Derived property is set to Yes.


Optional, 70 characters to be issued instead of the default error message when data is entered that violates this constraint. In the absence of a user-defined error message, a default error message will be issued incorporating the column prompt. About


Should be set to 'Server' or 'Both' so that Server Generator will create the required constraint on the server.

Note:	If set to 'Client', check constraint validation will only take place on the client browser, using generated JavaScript code. About

In the current release, it is not possible to record in the repository the name of a column-level check constraint. Hence no code will be generated to trap column-level check constraint violations.


This property is applicable when a list of allowable values are defined for the column. If set to Yes, it specifies that the list of allowable values is to be loaded into a reference codes table and that generated Table API code will be used to validate the value against a soft-coded database table, rather than checking against a hardcoded list of values within the generated code. About


Mandatory, 40 characters
Defines the allowable values permitted in the column. When defining values, you can specify either of the following:

•	a single range, where you record the low value via Value, and the high value via High Value e.g: a percent column might have a range from 0 to 100

The low and high values are used within generated validation code (JavaScript and Table API). About

•	a set of valid values, where you define the Value and (optionally) the Meaning and Abbreviation for each valid value.

Note:	Validation against multiple ranges is NOT supported in the current release.


Optional, 40 characters
Specifies a high value for the column, if a high/low range is being defined.


Optional, 60 characters
The full meaning of the value specified. The use of Meaning depends on the Display Style being used:

If the Display Type is Pop List, Radio Group (Across), Radio Group (Down) or Text List and the Show Meaning property is set to Yes, the meaning is displayed to the user instead of the value.

If the Display Type is Text, the Show Meaning property is set to Yes and all the allowable values have a corresponding meaning, the meaning is displayed and the value is hidden at runtime.


Defines an abbreviation or short code for an allowable value of a text-based HTML form element.


Indicates whether the column's value is derived on the server, for example via a sequence or an AutoGen Type, and therefore should not be set or provided client side. If set to Yes, generated applications that use this column should requery the row after insert/update to display server derived value.

Default: No


About Web PL/SQL Generator preferences

Related Topics

Following installation, Web PL/SQL Generator can be used 'as is' to generate applications with a consistent look and feel. However, you can customize the appearance and behavior of a generated application to suit your particular requirements using preferences. Every preference has a default setting that is used by the Generator when the preference has not been set explicitly.

Note:	Repository properties provide additional methods of customizing your generated applications. About

Web PL/SQL preferences are grouped into these categories:

Action Items	For determining the position of action items on the page.
DBA	For referencing database objects.
Document Attributes	For adding color and background images to Web PL/SQL applications.
Document Templates	Define style templates for generated HTML documents.
Frames	Options that affect the appearance and behavior of pages containing HTML frames.
Frames-Custom	Define custom frameset templates.
Frames-Default	Define the relative sizes of frames in the default frameset.
General Layout	Options that govern various aspects of the user interface.
Headers and Footers	Define page headers and footers.
Insert Form	Options that determine the appearance of the Insert Form.
Links	Options that determine the appearance of hyperlinks.
List of Values	Options that determine the appearance of lookup LOVs.
Master Context	Options that control the use of master context information to format pages or reference information between module components.
Popup Calendar	Options that determine the appearance of popup calendars.
Query Form	Options that determine the appearance of the Query Form.
Record List	Options that determine the content and appearance of the Record List.
Security	For adding security features.
Startup Page	Options that determine the content and appearance of the Startup Page.
Text Handling	Options that determine how to process user text.
View Form	Options that determine the appearance of the View Form.

Web PL/SQL Generator preferences can be set at container (i.e. folder or application system) level to be inherited by all modules in that container, or on a module-by-module basis. Certain preferences can also be set on individual table definitions or module components.

Preference settings can be grouped into preference sets and these sets can then be applied to different modules or module components. For general information about setting preferences, refer to The Generator Preferences Palette in the Design Editor help.


Alphabetical list of preferences (Web)
Web PL/SQL Generator preferences - organized alphabetically

A

AILFRM	Forms to display Action Item on
AILLDS	Display style of Link Action Item
AILNLN	Display Action Item on new line
AILTFN	Target frame name
AINMCF	Module Component Form to navigate to
B

C

CALBUT	Popup calendar: Hyperlink
CALCBC	Popup calendar: Caption for Close button
CALWIN	Popup calendar: Window properties
D

DOCTAP	About Page template filename
DOCTIF	Insert Form template filename
DOCTLV	List of Values template filename
DOCTMC	Module content template filename
DOCTQF	Query Form template filename
DOCTRL	Record List template filename
DOCTTF	Text frame template filename
DOCTVF	View Form template filename
E

F

G

H

I

IMGIFP	Default image location
ITMDPS	Default prompt separator
ITMPPM	Split prompt separator
J

K

L

LFCOLS	Default Frames: Column widths
LFCUST	Use custom frameset
LFDTFM	Custom Frames: Default text frame
LFFSTP	Custom Frames: Template Filename
LFFTFM	Custom Frames: Footer frame
LFHDFM	Custom Frames: Header frame
LFLVFM	Custom Frames: List of Values frame
LFMCFM	Custom Frames: Module content frame
LFQFFM	Custom Frames: Query Form frame
LFQOSP	Place Query Form on separate page
LFRLFM	Custom Frame: Record List frame
LFROWS	Default Frames: Row heights
LFVFAQ	Auto-query View Form
LFVFFM	Custom Frame: View/Insert Form frame
LOVBUT	List of Values: Hyperlink
LOVCBC	List of Values: Caption for Close button
LOVFBC	List of Values: Caption for Find button
LOVFWD	List of Values: Frame width
LOVSTL	List of Values: Style
LOVWIN	List of Values: Window properties
M

MCNAAC	Always add code
MCNCVL	Custom value
MCNDDP	Custom value
MCNDPK	Display package
MCNFRM	Forms requiring context
MCNMDP	Maintain context to this depth
MSGSFT	Message soft format
MODALC	Active hyperlink color
MODALR	Startup Page: About Page hyperlink required
MODAPL	Startup Page: About Page hyperlink
MODBGC	Background color
MODBGR	Background image file
MODBML	Build Links to module Components without Master
MODBRL	Build return hyperlinks
MODCLH	HTML for custom list item
MODCSS	Cascading style sheet (CSS) URL
MODFAC	Startup Page: Align center module content
MODFGC	Text color
MODFOU	Module Form Links URL
MODFTF	Startup Page: Title format
MODIFZ	Startup Page: Display first module component
MODMNS	Menu style
MODPTL	Generate Module as an Oracle Portlet
MODSFA	Standard footer on all pages
MODSFH	DefaultFrames: Standard footer frame height
MODSFT	Standard footer
MODSHA	Standard header on all pages
MODSHD	Standard header
MODSLC	Standard hyperlink color
MODSUB	Substitute HTML reserved characters
MODVLC	Visited hyperlink color
N

O

P

PKGLST	PL/SQL package list
Q

R

S

SECECS	Enforce URL checksums
SECPKG	Security package name
SECRES	Default responsibilities
SECVAL	Perform session validation
SYSIMG	System image location
T

TABOWN	Table owner for use in SQL
TXTDCL	Default display length for character fields
TXTDDF	Default date format for date fields
TXTDDL	Default display length for date fields
TXTDNL	Default display length for numeric fields
U

V

W

X Y Z

ZONAIP	Action Item: Position on page
ZONESC	Escape all database values
ZONIAC	Insert Form: Align center
ZONIBR	Insert Form: Number of blank rows displayed
ZONIBT	Insert Form: Add table border
ZONIDC	Insert Form: Display default caption text
ZONIEC	Insert Form: Derive expressions in client
ZONIFH	Insert Form: Horizontal alignment for input fields
ZONIIC	Insert Form: Caption for Insert button
ZONILS	Insert Form: Item layout style
ZONIPH	Insert Form: Horizontal alignment for prompts
ZONIRC	Insert Form: Caption for Clear button
ZONIRV	Insert Form: Row vertical alignment
ZONITC	Insert Form: Number of items per line
ZONLAC	Record List: Align center
ZONLBD	Record List: Button display order
ZONLBT	Record List: Add table border
ZONLCC	Record List: Caption for Count button
ZONLCH	Record List: Horizontal alignment for character fields
ZONLDC	Record List: Always display count information
ZONLDH	Record List: Horizontal alignment for date fields
ZONLDL	Record List: Add detail hyperlinks to Record List
ZONLFC	Record List: Caption for First button
ZONLHD	Record List: Display column headings
ZONLHF	Record List: Apply HTML formatting
ZONLIC	Record List: Caption for New button
ZONLLC	Record List: Caption for Last button
ZONLLS	Record List: Layout style
ZONLMV	Record List: Generate with multi-row View Form
ZONLNC	Record List: Caption for Next Record Set button
ZONLNH	Record List: Horizontal alignment for numeric fields
ZONLPC	Record List: Caption for Previous Record Set button
ZONLPN	Record List: Always display Previous/Next buttons
ZONLPP	Record List: Computed Item prompt positioning
ZONLQC	Record List: Caption for ReQuery button
ZONLRL	Display number of rows in hyperlink
ZONLRN	Record List: Display record and set numbers
ZONLRS	Record List: Record set size
ZONLRV	Record List: Row Vertical Alignment
ZONLSR	Record List: Skip record list when query retrieves one record
ZONLSS	Record List: Show computed item separator
ZONLTC	Record List: Number of records per line
ZONLXC	Record List: Caption for Query button
ZONQAC	Query Form: Align center
ZONQBT	Query Form: Add table border
ZONQCC	Query Form: Caption for Clear button
ZONQDC	Query Form: Display Default Caption Button
ZONQFH	Query Form: Horizontal alignment for criteria items
ZONQIC	Query Form: Caption for New button
ZONQLS	Query Form: Item layout style
ZONQPH	Query Form: Horizontal alignment for prompts
ZONQQC	Query Form: Caption for Find button
ZONQRV	Query Form: Row Vertical Alignment
ZONQTC	Query Form: Number of items per line
ZONTAC	Align center text frame
ZONVAC	View Form: Align center
ZONVBD	View Form: Button Display Order
ZONVBT	View Form: Add table border
ZONVCA	View Form: Always display Count information
ZONVCC	View Form: Caption for Count button
ZONVCF	View Form: Context header format
ZONVCH	View Form: Display context header
ZONVDC	View Form: Caption for Delete button
ZONVDN	View Form: Display prompts for null values
ZONVEC	View Form: Derive expressions in client
ZONVFC	View Form: Caption for First button
ZONVFH	View Form: Horizontal alignment for values
ZONVIC	View Form: Caption for New Button
ZONVLC	View Form: Caption for Next button
ZONVLS	View Form: Item layout style
ZONVNC	View Form: Caption for Next Record Set button
ZONVNM	View Form: Caption for N to M button
ZONVPC	View Form: Caption for Previous button
ZONVPH	View Form: Horizontal alignment for prompts
ZONVPN	View Form: Always display Previous/Next buttons
ZONVQC	View Form: Caption for ReQuery button
ZONVRC	View Form: Caption for Revert button
ZONVRN	View Form: Display Record and Set Numbers
ZONVSD	View Form: Show context items for deleted rows
ZONVTC	View Form: Number of items per line
ZONVUC	View Form: Caption for Update button
ZONVXC	View Form: Caption for Query button
ZONZTF	Module component title format


Color preferences (Web)
Color preferences

Related Topics	Where am I?

Color preferences allow you to generate Web PL/SQL applications with colored pages, text and hyperlinks. About

Colors are defined using hexadecimal values in the form "RRGGBB", where RR is the value from 00-FF(hex) for the degree of the red color component, GG for the green component and BB for the blue. Refer to the Color Chart for example values.

Note:	If no color is defined, settings within the browser determine which colors are displayed. These preferences have no effect if the style of the document is driven from a custom template. About

Use	To change
MODFGC	Text color
MODBGC	Background color
MODSLC	Standard hyperlink
MODVLC	Visited hyperlink
MODALC	Active hyperlink
Quick reference color chart

	FF8080 FF0000 804040 800000 400000 000000		FFFF80 FFFF00 FF8040 FF8000 804000 808000		80FF80 80FF00 0FF000 008000 004000 808040		00FF80 00FF40 008080 008040 004040 808080		80FFFF 00FFFF 004080 0000FF 000080 408080		0080FF 0080C0 8080FF 0000A0 000040 C0C0C0		FF80C0 8080C0 800040 800080 400040 400040		FF80FF FF00FF FF0080 8000FF 400080 FFFFFF


Using action items (Web)
Using action items

Related Topics	Where am I?

Action item preferences allow you to generate PL/SQL applications with more freedom of hyperlinks or buttons to navigate through your application, or to provide hotspots which perform custom actions.

These preferences support the use of action items in generated web pages.

AILFRM (Forms to display Action Item on)

AILLDS (Display style of Link Action Item)

AILNLN (Display Action Item on new line)

AILTFN (Target frame name)

AINMCF (Module Component Form to navigate to)

LFTLFN (Top level frame name)

ZONAIP (Action Item: Position on page)


Default frameset preferences (Web)
Default frameset preferences

Related Topics	Where am I?

Use these preferences to pre-define the width and height of frames generated using the default frameset, that is to display List/Form module components. Three HTML frames are always generated and if required, a fourth frame is generated to display the footer information. About

If values for these preferences are not specified, frame sizes are estimated based on the content which must be displayed.

Note:	These preferences have no effect if you have chosen to use a custom frameset. About

LFCOLS (Default Frames: Column widths)

LFROWS (Default Frames: Row heights)

MODSFH (Default Frames: Standard footer frame height)


About multi-row preferences (Web)
Multi-row preferences

Related Topics	Where am I?

These preferences are used when you generate multi-row forms. About

Multi-row Insert Forms

•	ZONIBR allows you to specify the number of rows displayed.

•	ZONITC allows you to specify how many blank fields (items) should appear on each row.

Multi-row View Forms

•	In List/Form layout style, you can set ZONLMV to display a Record List as well as a multi-row View Form

•	You can control the number of rows on it using ZONLRS

•	When records are deleted, the number of deleted items is shown at the top of the multi-row View Form. To see a summary as well, use ZONVSD


Custom Frameset preferences (Web)
Custom Frameset preferences

Related Topics	Where am I?

Use these preferences to define a custom frameset for pages that contain HTML frames, that is, pages generated from List/Form module components. Individual documents can be placed in any frame defined within the frameset. About

If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If LFCUST is set to No, the default frameset is used instead. About

LFFSTP (Custom Frames: Template Filename)

LFMCFM (Custom Frames: Module content)

LFDTFM (Custom Frames: Default text frame)

LFRLFM (Custom Frames: Record List frame)

LFQFFM (Custom Frames: Query Form frame)

LFVFFM (Custom Frames: View/Insert Form frame)

LFLVFM (Custom Frames: List of Values frame)

LFHDFM (Custom Frames: Header frame)

LFFTFM (Custom Frames: Footer frame)


Header and footer preferences (Web)
Header and footer preferences

Related Topics	Where am I?

Use these preferences to generate Web PL/SQL applications with standard page headers and footers. The content and format of headers and footers can be defined using calls to PL/SQL functions or HTML syntax. About

MODSHD (Standard header)

MODSHA (Standard header on all pages)

MODSFT (Standard footer)

MODSFA (Standard footer on all pages)


List of Values window preferences (Web)
List of values window preferences

Related Topics	Where am I?

Use these preferences to determine the appearance and behavior of List of Values (LOV) windows and hyperlinks that are generated to assist the user select foreign key lookup values. About

LOVBUT (LOV hyperlink)

LOVSTL (LOV style)

LOVWIN (LOV window properties)

LOVFWD (LOV frame width)

LOVFBC (Caption for Find button)

LOVCBC (Caption for Close button)

Note:	When LOVFBC and LOVCBC are left <Null>, each preference value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is
WSGL.MsgGetText(17,WSGLM.CAP017_LOV_FIND), WSGL.MsgGetText(18,WSGLM.CAP018_LOV_CLOSE)


Title format preferences (Web)
Title format preferences

Related Topics	Where am I?

Use these preferences to override DEFAULT titles and headings. You can change the title text itself, the style in which it is displayed, or both. The content and format of titles can be defined using calls to PL/SQL functions or HTML syntax. About

MODFTF (Startup Page title format)

ZONZTF (Module component title format)

ZONVCF (View Form: Context header format)


Prompt separator preferences (Web)
Prompt separator preferences

Related Topics	Where am I?

Use these preferences to determine the appearance and placement of prompts. About

ITMDPS (Default prompt separator)

ITMPPM (Split prompt separator)


Default display length preferences (Web)
Default display length preferences

Related Topics	Where am I?

Use these preferences to define default display lengths for the different datatype values that can appear as input fields on a Query Form, View Form and Insert Form, that is characters, dates and numbers. These defaults are only used if the display length for a particular item is not defined within the module design, using the Width property. About

TXTDCL (Default display length for character fields)

TXTDDL (Default display length for date fields)

TXTDNL (Default display length for numeric fields)


About Page hyperlink preferences (Web)
About Page hyperlink preferences

Related Topics	Where am I?

Use these preference to define how hyperlinks to the About Page are displayed. About

You can override the default hyperlink text and customize the style in which the text is displayed. Alternatively, you can hide the hyperlink.

MODALR (Startup page: About Page hyperlink required)

MODAPL (Startup Page: About Page hyperlink)


Item layout style preferences (Web)
Item layout style preferences

Related Topics	Where am I?

Use these preferences to define how item details (prompts, values and fields) are laid out on HTML forms. The layout styles are:

TABLE	Item details are displayed in a table format providing both row and column alignment. A separate table border preference defines whether or not the table has a border.
PREFORMAT	Item details appear to be displayed in a table format. Extra spaces are used to align columns and a fixed font such as Courier is used.
BULLET	Each database record (Record List) or item value (Query, Insert or View Form) appears on a new line, prefixed with a standard bullet symbol •
CUSTOM	Each database record (Record List) or item value (Query, Insert or View Form) appears on a new line, prefixed with a custom bullet symbol of your choice. About
NUMBER	Each database record (Record List) or item value (Query, Insert or View Form) appears on a new line, prefixed with numbers, for example 1. 2. 3. 4. 5.
WRAP	No formatting takes place, information is displayed consecutively. For example, a Record List may display: CLARK KING MILLER
This preference may be set individually for each types of HTML form which may be generated, that is Query Form, Record List, View Form and Insert Form.

ZONILS (Insert Form: Item layout style)

ZONQLS (Query Form: Item layout style)

ZONLLS (Record List: Item layout style)

ZONVLS (View Form: Item layout style)

Note:	Some HTML browsers do not support tables and in such cases the layout style dynamically defaults to PREFORMAT when the application is run. Web PL/SQL Generator is able to maintain a list of known HTML browsers which support tables. If the browser you are using is not included it is possible to edit the 'TablesSupported' function in ORACLE_HOME\CGENW61\CVWETC\WSGL.PKB.


Table border preferences (Web)
Table border preferences

Related Topics	Where am I?

If the item layout style preference for a generated HTML form is defined as 'TABLE', use one of these preferences to specify whether or not the generated table displays a border.

Note:	Do not set any of these preferences to YES if the Layout style preference for the associated HTML form is 'PREFORMAT'. With the exception of Record Lists, this combination produces an unfavorable result.

ZONIBT (Insert Form: Add table border)

ZONQBT (Query Form: Add table border)

ZONLBT (Record List: Add table border)

ZONVBT (View Form: Add table border)


Page alignment preferences (Web)
Page alignment preferences

Related Topics	Where am I?

Use these preferences to align the content of generated documents to the center of the page or HTML frame. About

MODFAC (Startup Page: Align center module content)

ZONTAC (Align center text frame)

ZONIAC (Insert Form: Align center)

ZONQAC (Query Form: Align center)

ZONLAC (Record List: Align center)

ZONVAC (View Form: Align center)

Note: 	A separate set of horizontal alignment preferences determine how item prompts and values are aligned relative to each other. About


Horizontal alignment preferences (Web)
Horizontal alignment preferences

Related Topics	Where am I?

If the item layout style preference for a generated HTML form is defined as 'TABLE' or PREFORMAT', use these preferences to define the horizontal alignment of fields and prompts:

Generated form	Preference
Insert Form	ZONIFH	Horizontal alignment for input fields
	ZONIPH	Horizontal alignment for prompts
Query Form	ZONQFH	Horizontal alignment for criteria fields
	ZONQPH	Horizontal alignment for prompts
Record List	ZONLCH	Horizontal alignment for character fields
	ZONLDH	Horizontal alignment for date fields
	ZONLNH	Horizontal alignment for number fields
View Form	ZONVFH	Horizontal alignment for values
	ZONVPH	Horizontal alignment for prompts
Note:	A separate set of page alignment preference determine the overall alignment of generated pages. About


Horizontal alignment preferences - Insert Form
Horizontal alignment - Insert Form

Related Topics	Where am I?

If ZONILS of the Insert Form is 'TABLE' or PREFORMAT', use these preferences to define the horizontal alignment of item details. About

ZONIPH (Horizontal alignment for prompts)

ZONIFH (Horizontal alignment for input fields)


Horizontal alignment preferences - Query Form
Horizontal alignment - Query Form

Related Topics	Where am I?

If ZONQLS of the Query Form is 'TABLE' or PREFORMAT', use these preferences to define the horizontal alignment of item details. About

ZONQPH (Horizontal alignment for prompts)

ZONQFH (Horizontal alignment for criteria fields)


Horizontal alignment preferences - Record List
Horizontal alignment - Record List

Related Topics	Where am I?

If the ZONLLS of the Record List is 'TABLE' or PREFORMAT', use these preferences to define the horizontal alignment of record details. About

ZONLCH (Horizontal alignment for character fields)

ZONLDH (Horizontal alignment for date fields)

ZONLNH (Horizontal alignment for numeric fields)


Horizontal alignment preferences - View Form
Horizontal alignment - View Form

Related Topics	Where am I?

If the ZONVLS for the View Form is 'TABLE' or PREFORMAT', use these preferences to define the horizontal alignment of item details. About

ZONVPH Horizontal alignment for prompts

ZONVFH Horizontal alignment for values


Number of items per line preferences (Web)
Number of items per line preferences

Related Topics	Where am I?

Use these preferences to define how many items appear on each line of a generated Insert Form, Query Form or View Form. By default, items are placed vertically, that is each item appears on a new line. The amount of vertical space used may be reduced by placing more than one item per line. About

The effect of these preferences is influenced by the item layout style

TABLE	- fields and prompts align vertically
BULLET, CUSTOM, NUMBER	- no vertical alignment takes place
PREFORMAT	- the result is not favorable, do not try to display more than one item per line
WRAP	- these preferences are ignored
ZONITC (Insert Form: Number of items per line)

ZONQTC (Query Form: Number of Items per line)

ZONVTC (View Form: Number of items per line)

Note: 	The ZONLTC preference determines how many records appear on each line of a Record List.


Insert Form button caption preferences (Web)
Insert Form button caption preferences

Related Topics	Where am I?

Use these preferences to define alternative captions for buttons on an Insert Form. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.

ZONIIC Caption for Insert button

ZONIRC Caption for Clear button

Note:	If left null, each default value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is WSGL.MsgGetText(9,WSGLM.CAP009_IF_INSERT), WSGL.MsgGetText(10,WSGLM.CAP010_IF_CLEAR)


Query Form Button Caption Preferences (Web)
Query Form button caption preferences

Related Topics	Where am I?

Use these preferences to define alternative captions for buttons on a Query Form. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.

ZONQQC Caption for Find button

ZONQCC Caption for Clear button

ZONQIC Caption for New button

Note:	If left null, each default value is based on a function call to WSGL.MSsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is WSGL.MsgGetText(3,WSGLM.CAP003_QF_FIND), WSGL.MsgGetText(4,WSGLM.CAP004_QF_CLEAR)
WSGL.MsgGetText(23,WSGLM.CAP023_NEW)


Record List button caption preferences (Web)
Record List button caption preferences

Related Topics	Where am I?

Use these preferences to define alternative captions for buttons on a Record List. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing ZONLPN is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About

ZONLFC (Caption for First button)

ZONLPC (Caption for Previous Record Set button)

ZONLNC (Caption for Next Record Set button)

ZONLLC (Caption for Last button)

ZONLQC (Caption for ReQuery button)

ZONLCC (Caption for Count button)

ZONLIC (Caption for New button)

ZONLXC (Caption for Query button)

Note:	If left null, each default value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is WSGL.MsgGetText(13,WSGLM.CAP013_RL_FIRST), WSGL.MsgGetText(12,WSGLM.CAP012_RL_PREVIOUS), WSGL.MsgGetText(11,WSGLM.CAP011_RL_NEXT), WSGL.MsgGetText(14,WSGLM.CAP014_RL_LAST), WSGL.MsgGetText(16,WSGLM.CAP016_RL_REQUERY), WSGL.MsgGetText(15,WSGLM.CAP015_RL_COUNT)
WSGL.MsgGetText(23,WSGLM.CAP023_NEW)
WSGL.MsgGetText(24,WSGLM.CAP024_RL_QUERY)


View Form button caption preferences (Web)
View Form button caption preferences

Related Topics	Where am I?

Use these preferences to define alternative captions for buttons on a View Form. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.

ZONVCC (Caption for Count button)

ZONVDC (Caption for Delete Button)

ZONVFC(Caption for First button)

ZONVIC (Caption for New Button)

ZONVLC (Caption for Next button)

ZONVNC (Caption for Next Record Set button)

ZONVNM (Caption for N to M button)

ZONVPC(Caption for Previous button)

ZONVQC (Caption for ReQuery button)

ZONVRC (Caption for Revert button)

ZONVUC (Caption for Update button)

ZONVXC (Caption for Query button)

Note:	If left null, each default value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is WSGL.MsgGetText(6,WSGLM.CAP006_VF_UPDATE), WSGL.MsgGetText(8,WSGLM.CAP008_VF_REVERT), WSGL.MsgGetText(7,WSGLM.CAP007_VF_DELETE)
WSGL.MsgGetText(23,WSGLM.CAP023_NEW)


Hyperlinks to detail module components preferences (Web)
Hyperlinks to detail module components preferences

Related Topics	Where am I?

When master-detail module components appear on separate pages, hyperlinks are generated to navigate from the master module component to the detail module component. Use these preferences to control the placement and information displayed within hyperlinks to detail module components.

Note: 	When these preferences are set for a master module component, they apply to all the detail links which may exist.

ZONLDL (Record List: Add detail hyperlinks to Record List)

ZONLRL (Display number of rows in hyperlink to detail)

Note:	The 'rows' information is not displayed when the master-detail relationship is M:1.


Below are the graphics popups


Query Form: BULLET format


Record List: BULLET format


View Form: BULLET format


Insert Form: BULLET format


Query Form: CUSTOM format


Record List: CUSTOM format


View Form: CUSTOM format


Insert Form: CUSTOM format


Query Form: NUMBER format


Record List: NUMBER format


View Form: NUMBER format


Insert Form: NUMBER format


Query Form: TABLE format


Record List: TABLE format


View Form: TABLE format


Insert Form: TABLE format


Query Form: PREFORMAT format


Record List: PREFORMAT format


View Form: PREFORMAT format


Insert Form: PREFORMAT format


Query Form: WRAP format


Record List: WRAP format


View Form: WRAP format


Insert Form: WRAP format


Action Item preferences (Web)
Action Item preferences

Related Topics

This preference allows you to specify where on the page the action items are positioned.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
ZONAIP	Action Item: Position on page	X		X	X


Action Item: Position on page (ZONAIP)

Related Topics

Default:	Bottom
Values:	Bottom, Top, Both
Levels:	Container, table, module, module component
Category:	Action Item
Use this preference to specify the position of all the action items on the page.

Bottom	All the action items appear at the bottom of the page.
Top	All the action items appear at the top of the page.
Both	All the action items appear both at the top and the bottom of the page


DBA preferences (Web)
DBA preferences

Related Topics

This preference is used for referencing database objects.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
TABOWN	Table owner for use in SQL	X


Table owner for use in SQL (TABOWN)

Related Topics

Default:	None
Values:	Up to 30 characters
Levels:	Container
Category:	Dba
Use this preference to specify whether generated table references (within SQL statements) are prefixed with the name of the table owner schema who owns the tables.

Value	Tables are prefixed with the given owner name.
None	Tables are not prefixed with the name of the owner in generated SQL.


Document Attributes preferences (Web)
Document Attributes preferences

Related Topics

Use these preferences to generate Web PL/SQL applications with colored pages, text and hyperlinks. About

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
MODALC	Active hyperlink color	X		X
MODBGC	Background color	X		X
MODBGR	Background image file	X		X
MODCSS	Cascading style sheet (CSS) URL			X
MODFGC	Text color	X		X
MODSLC	Standard hyperlink color	X		X
MODVLC	Visited hyperlink color	X		X


Active hyperlink color preference(MODALC)
Active hyperlink color (MODALC)

Related Topics

Default:	None
Values:	Up to 6 hexadecimal characters (000000 - FFFFFF)
Levels:	Container, module
Category:	Document attributes
The color of hyperlinks when they are selected, or clicked.

Use this preference to specify color of hyperlinks when they are selected, or clicked. About

Colors are defined using hexadecimal values in the form "RRGGBB", where RR is the value from 00-FF(hex) for the degree of the red color component, GG for the green component and BB for the blue. Refer to the Color Chart for example values.

Note:	If no color is defined, settings within the browser determine which colors are displayed. These preferences have no effect if the style of the document is driven from a custom template. About


Background color (MODBGC)

Related Topics

Default:	None
Values:	Up to 6 hexadecimal characters (000000 - FFFFFF)
Levels:	Container, module
Category:	Document attributes
Use this preference to specify the color of the background on a generated Web PL/SQL page. About

Colors are defined using hexadecimal values in the form "RRGGBB", where RR is the value from 00-FF(hex) for the degree of the red color component, GG for the green component and BB for the blue. Refer to the Color Chart for example values.

Note:	If no color is defined, settings within the browser determine which colors are displayed. These preferences have no effect if the style of the document is driven from a custom template. About


Background image file (MODBGR)

Related Topics

Default:	None
Values:	Any valid path (mapped or physical) and image file name. Up to 240 characters.
Levels:	Container, module
Category:	Document attributes
Use this preference to define the name and location of the image file to be displayed as the background of your Web PL/SQL application. About

The image you define must reside on the Web PL/SQL file system and should be in a format supported by the Web browser you are using, such as GIF format. If the Web PL/SQL image directory is mapped to a "virtual" directory, the mapped path name should be specified. About

Examples:	/images/mypic.gif        /logos/company.jpg          /gifs/logo.gif
Note:	The PL/SQL image function from the Web PL/SQL Toolkit (htf.img) does not have to be defined here.

This preference has no effect if the style of the document is driven from a custom template. In this case a background can be defined within the document template instead. About


Cascading style sheet (CSS) URL (MODCSS)

Related Topics

Default:	None
Values:	Any valid URL for a CSS file name. Up to 240 characters.
Levels:	Module
Category:	Document attributes
Use this preference to specify a location for the Oracle Portal cascading style sheet (CSS) that will be used to define the appearance of HTML pages generated from this module.

You should use this preference only if your application is to be implemented as a portlet within Oracle Portal, i.e. the Generate Module as an Oracle Portlet (MODPTL) preference is set to 'Yes'.  Even if you do not set MODPTL to 'Yes', setting a value for MODCSS creates Portal style HTML class attributes and a stylesheet link tag.  If you do not want this, you should not use MODCSS to specify a stylesheet.  Instead you should include a <link> tag in the file used for the document templates.

The cascading style sheet specified will not be applied to the front page of the portlet application.  The appearance of this page is based on styles that Oracle Portal uses for all its portlet front pages.  This behavior ensures that the generated portlet looks the same as other portlets, when placed on an Oracle Portal  page.

Although this preference is optional, we strongly recommend that you enter a valid URL for this preference when Generate Module as an Oracle Portlet (MODPTL) is set to 'Yes'.


Text color (MODFGC)

Related Topics

Default:	None
Values:	Up to 6 hexadecimal characters (000000 - FFFFFF)
Levels:	Container, module
Category:	Document attributes
Use this preference to specify the color of normal text on the generated Web PL/SQL page. About

Colors are defined using hexadecimal values in the form "RRGGBB", where RR is the value from 00-FF(hex) for the degree of the red color component, GG for the green component and BB for the blue. Refer to the Color Chart for example values.

Note:	If no color is defined, settings within the browser determine which colors are displayed. These preferences have no effect if the style of the document is driven from a custom template. About


Standard hyperlink color (MODSLC)

Related Topics

Default:	None
Values:	Up to 6 hexadecimal characters (000000 - FFFFFF)
Levels:	Container, module
Category:	Document attributes
Use this preference to specify the color of hyperlinks to pages you haven't seen yet. About

Colors are defined using hexadecimal values in the form "RRGGBB", where RR is the value from 00-FF(hex) for the degree of the red color component, GG for the green component and BB for the blue. Refer to the Color Chart for example values.

Note:	If no color is defined, settings within the browser determine which colors are displayed. These preferences have no effect if the style of the document is driven from a custom template. About


Visited hyperlink color (MODVLC)

Related Topics

Default:	None
Values:	Up to 6 hexadecimal characters (000000 - FFFFFF)
Levels:	Container, module
Category:	Document attributes
Use this preference to specify color of hyperlinks to pages you have already seen, or visited. About

Colors are defined using hexadecimal values in the form "RRGGBB", where RR is the value from 00-FF(hex) for the degree of the red color component, GG for the green component and BB for the blue. Refer to the Color Chart for example values.

Note:	If no color is defined, settings within the browser determine which colors are displayed. These preferences have no effect if the style of the document is driven from a custom template. About


Document templates preferences (Web)
Document Templates preferences

Related Topics

These preferences allow you to define style templates for generated HTML documents. About

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
DOCTAP	About Page template filename	X		X
DOCTIF	Insert Form template filename	X	X	X	X
DOCTLV	List of Values template filename	X	X	X	X
DOCTMC	Module content template filename	X		X
DOCTQF	Query Form template filename	X	X	X	X
DOCTRL	Record List template filename	X	X	X	X
DOCTTF	Text frame template filename	X	X	X	X
DOCTVF	View Form template filename	X	X	X	X


About Page template filename (DOCTAP)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, module
Category:	Document templates
Use this preference to identify a document template for the About Page. For more information, refer to About templates and style sheets.

Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

Note:	If the value for this preference is not defined, the document attribute preference takes effect. About


Insert Form template filename (DOCTIF)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, table, module, module component
Category:	Document templates
Use this preference to identify a document template for the Insert Form. For more information, refer to About templates and style sheets.

Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

Note:	If the value for this preference is not defined, the document attribute preference takes effect. About


List of Values template filename (DOCTLV)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, table, module, module component
Category:	Document templates
Use this preference to identify a document template for the List of Values window (or frame). For more information, refer to About templates and style sheets.

Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

Note:	If the value for this preference is not defined, the document attribute preference takes effect. About


Module content template filename (DOCTMC)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, module
Category:	Document templates
Use this preference to identify a document template for the module content. For more information, refer to About templates and style sheets.

Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

Note:	If the value for this preference is not defined, the document attribute preference takes effect. About


Query Form template filename (DOCTQF)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, table, module, module component
Category:	Document templates
Use this preference to identify a document template for the Query Form. For more information, refer to About templates and style sheets.

Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

Note:	If the value for this preference is not defined, the document attribute preference takes effect. About


Record List template filename (DOCTRL)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, table, module, module component
Category:	Document templates
Use this preference to identify a document template for the Record List. For more information, refer to About templates and style sheets.

Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

Note:	If the value for this preference is not defined, the document attribute preference takes effect. About


Text frame template filename (DOCTTF)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, table, module, module component
Category:	Document templates
Use this preference to identify a document template for a frame that consists entirely of text, that is, a frame that does not contain a dynamic HTML form. For more information, refer to About templates and style sheets.

Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

Note:	If the value for this preference is not defined, the document attribute preference takes effect. About


View Form template filename (DOCTVF)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, table, module, module component
Category:	Document templates
Use this preference to identify a document template for the View Form. For more information, refer to About templates and style sheets.

Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

Note:	If the value for this preference is not defined, the document attribute preference takes effect. About


Frames preferences (Web)
Frames preferences

Related Topics

These are options that affect the appearance and behavior of pages containing HTML frames.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
LFCUST	Use custom frameset	X	X	X	X
LFTLFN	Top level frame name	X	X	X
LFQOSP	Place Query Form on separate page	X	X	X	X
LFVFAQ	Auto-query View Form	X	X	X	X
ZONTAC	Align center text frame	X	X	X	X


Use custom frameset (LFCUST)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Frames
Use this preference to define whether or not you want to use a custom frameset for pages that contain HTML frames. About

Yes	The custom frameset template is used, that is, defined using LFFSTP.
No	The default frameset is used. About


Top level frame name (LFTLFN)

Related Topics

Default:	_top
Values:	A string of up to 20 characters
Levels:	Container, table, module
Category:	Frames
When you are using actions items in framesets, use this preference to specify the name of the top level frame for the target of the hyperlink or button. About


Place Query Form on separate page (LFQOSP)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Frames
Use this preference to define whether or not the Query Form appears on the same page as the Record List and View Form, that is in a frame. This preference is only relevant if the layout style of the module component is 'List/Form'. About

Yes	A separate page is created for the Query Form.
No	The Query Form, Record List and View Form all appear within frames on the same page.  Note that the contents of the View Form will not change if the Record List is requeried. This is because HTML Frame functionality allows multiple frames to be populated only at the point when the page is originally created.


Auto-query View Form in frames (LFVFAQ)
Auto-query View Form (LFVFAQ)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Frames
Use this preference to choose whether or not the View Form frame displays the details of the first record when the page is initially opened (or created). About

Yes	When the page is first opened the View Form frame displays the details of the first entry in the Record List.
No	The first record is not automatically queried. The View Form frame is empty when the page is first opened.
Notes

This preference only determines the behavior of pages when they are first opened (or created). So if the page contains a Query Form (LFQOSP is set to No) and the Record List is requeried, the contents of the View Form will not change.

This preference only is relevant when:

•	the layout style of the module component is 'List/Form'.

•	the View Form is not a multi-row View Form, that is the module component Rows Displayed property = 1 or null. In this case the View Form is always displayed

When the View Form is multi-row it is always used to show the results of the query entered. Any Record List displayed is in addition to the View Form, but it is simply a text list without links to the View Form, and is not therefore used to drive the records displayed in the View Form. Therefore, this preference has no effect for a multi-row View Form.


Align center text frame (ZONTAC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Frames
Use this preference to determine whether or not the content of a frame containing just text is aligned to the center of the frame. About

9


Frames - Custom preferences (Web)
Frames - Custom preferences

Related Topics

Use these preferences to define a custom frameset for pages that contain HTML frames, that is pages generated from List/Form module components. Individual documents can be placed in any frame defined within the frameset. About

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
LFDTFM	Custom Frames: Default text frame	X	X	X	X
LFFSTP	Custom Frames: Template Filename	X	X	X	X
LFFTFM	Custom Frames: Footer frame	X	X	X	X
LFHDFM	Custom Frames: Header frame	X	X	X	X
LFLVFM	Custom Frames: List of Values frame	X	X	X	X
LFMCFM	Custom Frames: Module content frame	X	X	X	X
LFQFFM	Custom Frames: Query Form frame	X	X	X	X
LFRLFM	Custom Frame: Record List frame	X	X	X	X
LFVFFM	Custom Frame: View/Insert Form frame	X	X	X	X


Custom Frames: Default text frame (LFDTFM)

Related Topics

Default:	None
Values:	Up to 20 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to identify which frame is used for the default text area. If a custom frameset is used but this preference is left blank, or does not specify a frame in the frameset definition, the Record List frame is used as the default text area.

9

10	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Custom Frames: Template filename (LFFSTP)

Related Topics

Default:	None
Values:	Up to 100 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to specify the name and file extension of the ASCII file where the custom frameset is defined.

9	Note that the template file is only read during generation, it is not required when the application is run.

10	Use the Web PL/SQL Generator Options dialog to specify whether the template is stored in the filesystem or in the repository.

11	If the template file is stored in the filesystem, you must also specify the full pathname.

12

13	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Custom Frames: Footer frame (LFFTFM)

Related Topics

Default:	None
Values:	Up to 20 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to identify which frame displays the page footer (MODSFT). The frame name you specify must appear in the frameset definition. If a custom frameset is used but this preference is left blank, or does not specify a frame in the frameset definition, the page footer is placed in the last frame.

9

10	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Custom Frames: Header frame (LFHDFM)

Related Topics

Default:	None
Values:	Up to 20 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to identify which frame displays the page header (MODSHD). The frame name you specify must appear in the frameset definition. If a custom frameset is used but this preference is left blank, or does not specify a frame in the frameset definition, the page header is placed in the first (top) frame.

9

10	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Custom Frames: List of Values frame (LFLVFM)

Related Topics

Default:	None
Values:	Up to 20 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to identify which frame displays the list of values. This preference only takes effect if LOVs are being placed in frames rather than windows (LOVSTL = FRAME). If a custom frameset is used but this preference is left blank, or does not specify a frame in the frameset definition, the frame following the View/Insert Form frame is used.

9

10	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Custom Frames: Module content frame (LFMCFM)

Related Topics

Default:	None
Values:	Up to 20 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to identify which frame displays the module content. If a custom frameset is used but this preference is left blank, or does not specify a frame in the frameset definition, the module content is placed in the first (top) frame.

9

10	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Custom Frames: Query Form frame (LFQFFM)

Related Topics

Default:	None
Values:	Up to 20 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to identify which frame displays the Query Form. This preference only takes effect if the Query Form is not being displayed on a separate page (LFQOSP = No). If a custom frameset is used but this preference is left blank, or does not specify a frame in the frameset definition, the Query Form is placed in the Record List frame.

9

10	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Custom Frames: Record List frame (LFRLFM)
Custom Frame: Record List frame (LFRLFM)

Related Topics

Default:	None
Values:	Up to 20 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to identify which frame displays the Record List. If a custom frameset is used but this preference is left blank, or does not specify a frame in the frameset definition, the Record List is placed in the first (top) frame.

9

10	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Custom Frames: View/Insert Form frame (LFVFFM)
Custom Frame: View/Insert Form frame (LFVFFM)

Related Topics

Default:	None
Values:	Up to 20 characters
Levels:	Container, table, module, module component
Category:	Frames - custom
Use this preference to identify which frame displays the View Form, Insert Form and Delete Confirmation Form.

9	If a custom frameset is used but this preference is left blank, or does not specify a frame in the frameset definition, these Forms are placed in the frame after the Record List (if there is one). If the Record List appears in the last frame, all three forms will be displayed in the same frame (but not at the same time).

10

11	If you choose to place Query Forms, Record Lists, View Forms or Insert Forms in the same frame, additional buttons are generated so that the user can switch between the different forms.

Note:	You do not have to define your own framesets. If the LFCUST preference is set to No, the default frameset is used instead. About


Frames - default preferences (Web)
Frames - Default preferences

Related Topics

Use these preferences to pre-define the width and height of frames generated using the default frameset, that is to display List/Form module components. Three HTML frames are always generated and if required, a fourth frame is generated to display the footer information. About

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
LFCOLS	Default Frames: Column widths	X	X	X	X
LFROWS	Default Frames: Row heights	X	X	X	X
MODSFH	Default Frames: Standard footer frame height	X		X


Default Frames: Column widths (Web)
Default Frames: Column widths (LFCOLS)

Related Topics

Default:	None
Values:	Any valid 'COLS attribute' for the HTML <FRAMESET> tag, up to 20 characters in length i.e: <Width of Frame 2>,<Width of Frame 3>
Levels:	Container, table, module, module component
Category:	Frames - default
Use this preference to specify the width (or relative width) of Frame 2 and Frame 3 shown in the illustration above.

Examples:	*,2*           100,*       25%,75%
Note:	If the module component contains any enterable foreign key lookup columns and the style of the LOV window is set to 'FRAME', an additional frame will be created. If this is the case, you should consider the width required for the LOV frame when choosing a width for Frames 2 and 3.

0	If the value for this preference is not specified, frame sizes are estimated based on the content which must be displayed.

Note:	These preferences have no effect if you have chosen to use a custom frameset. About


Default Frames: Row heights (Web)
Default Frames: Row heights (LFROWS)

Related Topics

Default:	None
Values:	Any valid 'ROWS attribute' for the HTML <FRAMESET> tag, up to 20 characters in length i.e: <Height of Frame 1>,<Height of Frame 2 & 3>
Levels:	Container, table, module, module component
Category:	Frames - default
Use this preference to specify the height (or relative height) of Frame 1 and Frames 2 & 3 shown in the illustration below.

9

Examples:	*,2*           100,*       25%,75%
If the value for this preference is not specified, frame sizes are estimated based on the content which must be displayed.

Note:	These preferences have no effect if you have chosen to use a custom frameset. About


Default Frames: Standard footer frame height (Web)
Default Frames: Standard footer frame height (MODSFH)

Related Topics

Default:	50
Values:	1 to 1000
Levels:	Container, module
Category:	Frames - default
Use this preference to define the height of the footer frame, in pixels. This preference is only used if the standard footer must be placed on a page containing frames.

9

10	If the value for this preference is not specified, frame sizes are estimated based on the content which must be displayed.

Note:	These preferences have no effect if you have chosen to use a custom frameset. About


General layout preferences (Web)
General layout preferences

Related Topics

These preferences govern various aspects of the user interface.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
AILFRM	Forms to display Action Item on	X				X
AILLDS	Display style of Link Action Item	X				X
AILNLN	Display Action Item on new line	X				X
AILTFN	Target frame name	X				X
IMGIFP	Default image location	X	X	X	X
ITMDPS	Default prompt separator	X		X
ITMPPM	Split prompt separator	X		X
MODCLH	HTML for custom list item	X	X	X	X
MODPTL	Generate Module as an Oracle Portlet			X
MSGSFT	Message soft format	X		X
SYSIMG	System image location	X
TXTDCL	Default display length for character fields	X		X
TXTDDF	Default date format for date fields	X		X
TXTDDL	Default display length for date fields	X		X
TXTDNL	Default display length for numeric fields	X		X
ZONZTF	Module component title format	X	X	X	X


Forms to display Action Item on (AILFRM)

Related Topics

Default:	V
Values:	Any of S. Q. R. V. I. When there is more than one, they should be separated by dots.
Levels:	Container, action item
Category:	General layout
Use this preference to specify the form or forms on which this action item is to appear. If you define the action item at module component level, this preference determines the forms within the module component that the action item appears on. If you define it at window level, this preference determines the forms across all module components within the window that the action item appears on.

9	The values are:

S	The Action Item appears on the Startup Page.
Q	The Action Item appears on the Query Form.
R	The Action Item appears on the Record List.
V	The Action Item appears on the View Form.
I	The Action Item appears on the Insert Form.
Note

When the action item is defined at module component level, the action item will not be displayed on the Startup Page, even though you may have set this preference to S. The only way to display the action item on the Startup Page is to define the action item at window level.


Display style of Link Action Item (AILLDS)

Related Topics

Default:	Bullet
Values:	Bullet, Standard
Levels:	Container, action item
Category:	General layout
Use this preference to specify whether the Action Item Link should be displayed as a bulleted list or a non-bulleted list.

9	These values are:

Bullet	The Action Item Link is displayed as a bulleted list.
Standard	The Action Item Link is displayed as a non-bulleted list.


Display Action Item on new line (AILNLN)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, action item
Category:	General layout
Use this preference to specify whether this Action Item is to appear on a new line.


Target frame name (AILTFN)

Related Topics

Default:	None
Values:	A string of up to 20 characters
Levels:	Container, action item
Category:	General layout
Use this preference to specify the name of the frame that the target of the action item appears in.


Default image location (IMGIFP)

Related Topics

Default:	None
Values:	Any valid path (mapped or physical). Up to 100 characters.
Levels:	Container, table, module, module component
Category:	General layout
Within your application you may wish to utilize a set of image files and store their filenames in a column of one of the tables. For example, you may have a set of GIF files that contain pictures of the employees and a column called PHOTO_FILE within the Employees table containing the filename which corresponds to each employee.

Examples:	/images/
Although the column value could be set up to hold the path of the file in addition to the name itself, for example /personnel/images/dgsmith.gif, you may find it more convenient to store only the file name, and then record the location (path) via this preference value. The advantage of this method is that column values remain constant even if the file location changes.

12	This preference defines a location on the Web PL/SQL file system where you intend to store image files. If the Display Type or the Formatting property of an item is set to 'Image' this path is prefixed to the column values.

Note:	The image directory must begin and end with a '/'.

If the image directory is mapped to a "virtual" directory, the mapped path name should be specified here.


Default prompt separator (ITMPPS)
Default prompt separator (ITMDPS)

Related Topics

Default:	:
Values:	Up to 10 characters
Levels:	Container, module
Category:	General layout
Set this preference to specify the character (or string) that the Generator appends to item prompts. About

9


Split prompt separator (ITMPPM)

Related Topics

Default:	|
Values:	A single ASCII character
Levels:	Container, module
Category:	General layout
Use this preference to specify a split-prompt separator character. In certain circumstances you may want to split a prompt. When it splits a prompt, the Generator does so at the first occurrence of a split-prompt separator.

Example:	The examples above show how the prompt "Salary|With Commission" is split when ITMPPM is set to '|'.
These values are:

<Null>	The Generator never splits a prompt.
An ASCII character	The Generator splits the prompt at the first occurrence of this character. On Query Forms, Insert Forms and View Forms a split prompt is displayed either side of the column value. On a Record List, the latter part of the prompt is enclosed in brackets.  15 Any additional instances of this character are displayed normally. If no such character is found the prompt is not split.
About

18


HTML for custom list item (MODCLH)

Related Topics

Default:	None
Values:	A PL/SQL function call or valid HTML syntax. Up to 240 characters.
Levels:	Container, table, module, module component
Category:	General layout
Use this preference to define a custom bullet symbol. This symbol is used when the item layout style for a generated form is set to 'CUSTOM'. About

9	To incorporate an image file within the bullet, reference the PL/SQL image function (htf.img) from the Web PL/SQL Toolkit (see example below). If the Web PL/SQL image directory is mapped to a "virtual" directory, it is the mapped path name which should be specified here.

11	Calls to other PL/SQL functions can be used providing they are part of a PL/SQL package defined within PKGLST. If you have HTML experience, the bullet symbols may be defined using HTML syntax.

Note:	MODSUB must be set to No if you want to define the bullet symbol using HTML reserved characters (< > " &). This will prevent the reserved characters being replaced with escape characters (&lt; &gt; &quot; &amp;).


Generate Module as an Oracle Portlet (MODPTL)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Module
Category:	General layout
Use this preference to specify that this module is to be implemented as a portlet on an Oracle Portal page. When set to Yes, an extra portlet package is generated from the module and the generated portlet application is registered as a portlet to the provider.

9	If you do not want your module generated (and registered) as a portlet, set this preference to 'No'.

10	If your application is made up of more than one module, it is not necessary to set this preference to Yes for all modules in the module network.

11	Even if MODPTL is set to 'Yes', the generated module will still run as an ordinary application in non-portal environments.


Message soft format (MSGSFT)

Related Topics

Default:	None
Values:	A PL/SQL function call or valid HTML syntax. Up to 240 characters.
Levels:	Container, table, module, module component
Category:	General layout
Use this preference to define the format of the message.


System image location (SYSIMG)

Related Topics

Default:	/images
Values:	A virtual directory path. Up to 100 characters
Levels:	Container
Category:	General layout
Web PL/SQL Generator uses system images to display the tick boxes on multi-row Insert Forms. In order for these to be used at generation time :

•	the images have to be installed onto the application server. How

•	this preference has to be set to the virtual directory path that contains the system images.

This preference defines a location on the Web PL/SQL file system where you store image files.


Default display length for character fields (TXTDCL)

Related topic

Default:	30
Values:	1 to 255
Levels:	Container, module
Category:	General layout
Use this preference to specify a default length for fields that display characters. About

9


Default date format for date fields (TXTDDF)

Related Topics

Default:	DD-MON-RRRR
Values:	Up to 60 characters	See the "SQL*Plus Reference Guide" for details of valid date formats.
Levels:	Container, module
Category:	General layout
Use this preference to specify a default format mask for date fields in generated Web PL/SQL applications. The value of this preference is used if the Format Mask property of a date item is not defined. About

9	Examples: 	DD-MON-RRRR, DD-MON-YYYY.

10	For more information about the format codes you can use in format masks, refer to Date and time format codes

Note: 	If this preference is set to <Null> and the Format Mask property is not defined for a date item, the NLS Date Format of the Server (DAD) is used instead. If a new NLS Date Format is defined, you will have to re-start the Oracle HTTP Server powered by Apache for the change to take effect.

We strongly recommend you specify a Year 2000 compliant date format. For more information, refer to Generating Year 2000 compliant applications.


Default display length for date fields (TXTDDL)

Related topic

Default:	11
Values:	1 to 250
Levels:	Container, module
Category:	General layout
Use this preference to specify a default length for fields that display dates. About

9


Default display length for numeric fields (TXTDNL)

Related topic

Default:	8
Values:	1 to 100
Levels:	Container, module
Category:	General layout
Use this preference to specify a default length for fields that display numbers. About

9


Module component title format (ZONZTF)

Related Topics

Default:	DEFAULT
Values:	A PL/SQL function call or valid HTML syntax. Up to 240 characters.
Levels:	Container, table, module, module component
Category:	General layout
Use this preference to define the format (and/or text) of the title for a module component's Record List, Query Form, Insert Form and View Form. Typically you would only define new title text at the module component level, whereas a custom format could be set at any level.


Headers and footers preferences (Web)
Headers and footers preferences

Related Topics

Use these preferences to generate Web PL/SQL applications with standard page headers and footers. The content and format of headers and footers can be defined using calls to PL/SQL functions or HTML syntax. About
Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
MODSFA	Standard footer on all pages	X		X
MODSFT	Standard footer	X		X
MODSHA	Standard header on all pages	X		X
MODSHD	Standard header	X		X


Standard footer on all pages (MODSFA)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, module
Category:	Headers and footers
Use this preference to define whether the footer (defined using the Standard Footer preference) should be displayed on all the pages generated for a particular module (Yes) or just appear on the Startup Page (No).


Standard footer (MODSFT)

Related Topics

Default:	None
Values:	A PL/SQL function call or valid HTML syntax, up to 240 characters
Levels:	Container, module
Category:	Headers and footers
Use this preference to define a page footer for the module. If the page contains frames, a frame is generated to display the footer information.

Examples:	mypackage.myfooter 10 htf.img('/images/footer.gif') - displays the image footer.gif at the bottom of the page


Standard header on all pages (MODSHA)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, module
Category:	Headers and footers
Use this preference to define whether the header (defined using the Standard Header preference) should be displayed on all the pages generated for a particular module (Yes) or just appear on the Startup Page (No).


Standard header (MODSHD)

Related Topics

Default:	None
Values:	A PL/SQL function call or valid HTML syntax, up to 240 characters
Levels:	Container, module
Category:	Headers and footers
Use this preference to define a page header for the module. To display a line underneath the header one must be specifically defined within the preference using htf.line or <hr>.

Examples:	mypackage.myheader  10 htf.bold('ACME Corporation') - prints ACME Corporation in the header


Insert Form preferences (Web)
Insert Form preferences

Related Topics

These options determine the appearance of the Insert Form.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
ZONIAC	Insert Form: Align center	X	X	X	X
ZONIBR	Insert Form: Number of blank rows displayed	X	X	X	X
ZONIBT	Insert Form: Add table border	X	X	X	X
ZONIDC	Insert Form: Display default caption text	X	X	X	X
ZONIEC	Insert Form: Derive expressions in client	X	X	X	X
ZONIFH	Insert Form: Horizontal alignment for input fields	X	X	X	X
ZONIIC	Insert Form: Caption for Insert button	X	X	X	X
ZONILS	Insert Form: Item layout style	X	X	X	X
ZONIPH	Insert Form: Horizontal alignment for prompts	X	X	X	X
ZONIRC	Insert Form: Caption for Clear button	X	X	X	X
ZONIRV	Insert Form: Row vertical alignment	X	X	X	X
ZONITC	Insert Form: Number of items per line	X	X	X	X


Insert Form: Align center (ZONIAC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Insert Form
Use this preference to determine whether or not the content of the Insert Form is aligned to the center of the page, or HTML frame. About

9


Insert Form: Number of blank rows displayed (ZONIBR)

Related Topics

Default:	1
Values:	1 to 99
Levels:	Container, table, module, module component
Category:	Insert Form
Use this preference to specify how many blank rows appear on a generated Insert Form. By default, only one row is displayed.

9

10	The effect of these preferences is influenced by ZONILS.

TABLE, PREFORMAT	- record information is aligned vertically. We recommend that you use TABLE when ZONIBR > 1
BULLET, CUSTOM, NUMBER	- no vertical alignment takes place
WRAP	- no formatting is applied
Note: 	A different set of preferences determine how many items appear on each line of a Insert Form, Query Form and View Form. About


Insert Form: Add table border (ZONIBT)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Insert Form
If the Layout style preference of the Insert Form is set to TABLE, use this preference to determine whether or not the table displays a border.

9


Insert Form: Display default caption text (ZONIDC)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Insert Form
This preference allows you to suppress the caption "Enter values for new ..." on the Insert Form. When it is set to N, this caption is not displayed.


Insert Form: Derive expressions in client (ZONIEC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, module, module component
Category:	Insert Form
Set this preference to determine the appearance of SQL expression or client-side function unbound items appear on the Insert Form, when the items on which they are based are also included on the Insert Form.

Note:	This preference only affects unbound items where the Display property is set to yes.

Yes	The item is recalculated client-side when the item on which it is based is updated on the form. The text is updated whenever the base item value on the form is updated. The user can amend the value in the field, but these changes are overwritten by any subsequent changes to the master item on which this item is dependent.
No	The unbound item field is not displayed on the Insert Form, as it is only calculated server-side when the form is submitted. After the insert, the unbound item is displayed as read-only text on the item's new form.


Insert Form: Horizontal alignment for input fields (ZONIFH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table, module, module component
Category:	Insert Form
If the ZONILS of the Insert Form is 'TABLE' or PREFORMAT', use this preference to define how input fields are aligned on an Insert Form. About

9


Insert Form: Caption for Insert button (ZONIIC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Insert Form
Use this preference to define an alternative caption for the button which saves a new record to the database. The default caption is 'Insert'.

9	Use these preferences to define alternative captions for buttons on an Insert Form. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

10

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.


Insert Form: Item layout style (ZONILS)

Related Topics

Default:	TABLE
Values:	TABLE, PREFORMAT, BULLET, CUSTOM, NUMBER, WRAP
Levels:	Container, table, module, module component
Category:	Insert Form
The format of items on the Insert Form, click on an option for a popup example. The ZONITC preference determines how many items are placed on each line.

Note:	We recommend that you use TABLE for multi-row Insert Forms, that is forms where ZONIBR > 1


Insert Form: Horizontal alignment for prompts (ZONIPH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table, module, module component
Category:	Insert Form
If ZONILS of the Insert Form is 'TABLE' or PREFORMAT', use this preference to define how prompts are aligned on an Insert Form. About

9


Insert Form: Caption for Clear button (ZONIRC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Insert Form
Use this preference to define an alternative caption for the button which resets all the fields on an Insert Form. The default caption is 'Clear'.

9	The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

10

Notes:	Browsers that do not support JavaScript cannot handle multibyte character captions.
If left null, each default value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package that is

WSGL.MsgGetText(9,WSGLM.CAP009_IF_INSERT), WSGL.MsgGetText(10,WSGLM.CAP010_IF_CLEAR)


Insert Form: Row Vertical Alignment (ZONIRV)

Related Topics

Default:	Top
Values:	Top, center, bottom
Levels:	Container, table, module, module component
Category:	Insert Form
Use this preference to define

9	The effect of these preferences is influenced by the item layout style

TOP
CENTER
BOTTOM


Insert Form: Number of items per line (ZONITC)

Related Topics

Default:	1
Values:	A series of numbers from 1 to 99, separated by dots
Levels:	Container, table, module, module component
Category:	Insert Form
Use this preference to define how many items are displayed on each line of the Insert Form. By default, items are placed vertically, that is each item appears on a new line. The amount of vertical space used may be reduced by placing more than one item per line. About

9

10	On a single-row Insert Form, you should enter just one number.

11	On a multi-row Insert Form this preference determines the number of items on each row. For example, a value 3.1.2 indicates that first 3 items appear on the first row, 1 appears on the second, and 2 appears on the third and subsequent rows.

12	The effect of these preferences is also influenced by the item layout style

TABLE	- fields and prompts align vertically
BULLET, CUSTOM, NUMBER	- no vertical alignment takes place
PREFORMAT	- the result is not favorable, do not try to display more than one item per line
WRAP	- these preferences are ignored


Links preferences (Web)
Links preferences

Related Topics

These options determine the content and appearance of generated hyperlinks in Web PL/SQL applications.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
AINMCF	Module Component Form to navigate to	X				X
MODBML	Build Links to module Components without Master	X		X
MODBRL	Build return hyperlinks	X		X
MODFOU	Module Form Links URL			X
MODMNS	Menu style	X	X	X	X
ZONLRL	Display number of rows in hyperlink	X	X	X	X


Module Component Form to navigate to (AINMCF)

Related Topics

Default:	Query Form
Values:	Query Form, Record List, Insert Form
Levels:	Container, action item
Category:	Links
This preference is only applicable to navigation action items. About

9	Use this preference to specify the list or form that this Action Item navigates to. If the list or form selected does not exist, the Action Item navigates to the first form in the module component.

Note:	This preference is ignored when navigating between modules.


Build Links to module Components without Master (MODBML)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, module
Category:	Links
Use this preference to define whether to generate hyperlinks to module components which have no master in the module. The links will appear on the module's Startup Page.

9	If you have manually created Navigation Action Items to navigate to module components within the module, and you do not want additional links to be automatically generated, you should set MODBML to No. In this case, make sure that you have created all the navigation links you require to all module components within the module.

10	These values are:

Yes	Links are automatically built.
No	No automatic links are built. Make sure that you have manually created all the navigation links you require.


Build return hyperlinks (MODBRL)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, module
Category:	Links
Use this preference to define whether return hyperlinks are generated to assist navigation within a Web PL/SQL application. As a user navigates through a set of linked pages these return hyperlinks are created to link back to the:

•	Startup Page for a module

•	First document for a module component, that is a Query Form or Record List

These values are:

Yes	Return hyperlinks are displayed. By default, the Top Title property is used for return hyperlinks to the module Startup Page and Title property is used for return hyperlinks to module components. If the Title format preferences have been used to define custom title text it will be used for the return hyperlinks.
No	No return hyperlinks are created. The Back button can be used to navigate back to previous pages.


Module Form Links URL (MODFOU)

Related Topics

Default:	None
Values:	Any URL for a valid DAD
Levels:	Module
Category:	Links
This preference has no effect unless MODPTL is set to Yes.

Use this preference to specify the location (DAD) of forms generated from this module.  The URL specified here is used to set up correct links between the portlet first page and forms in this generated application.

Example:	Portal instance location  http://<server A>.com/<portal instance X>/ Generated module DAD reference  http://<server A>.com/<module Y>/ Startup form <form1>.startup Natural but incorrect link produced from the above http://<server A>.com/<portal instance X>/<form1>.startup/ Correct link that you would have to provide in MODFOU, based on the above http://<server A>.com/<module Y>/<form1>.startup/


Menu style (MODMNS)

Related Topics

Default:	LONG TITLE
Values:	LONG TITLE, SHORT TITLE
Levels:	Container, table, module, module component
Category:	Links
Use this preference to specify how hyperlinks to other modules and menu information is displayed in a generated Web PL/SQL application. About

These values are:

LONG TITLE	Display Long Titles in Menus Hyperlinks display the long title defined for the module (Top Title property and each link is displayed on a new line. Indentation is used to present the overall module hierarchy.
SHORT TITLE	Display Short Titles in Menus  Hyperlinks display the short title defined for the module (Short Title property) enclosed in square brackets, for example [Product Query]. Multiple hyperlinks are displayed on the same line. If the generated application contains MENU type modules, indentation is used to present the module hierarchy.
The Web pages shown above have been generated from the module hierarchy shown here (right):


Display number of rows in hyperlink (ZONLRL)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Links
When master-detail module components appear on separate pages, hyperlinks are generated to navigate from the master module component to the detail module component. Use this preference to specify whether the 'number of detail records' should be included within hyperlinks to detail module components.

Note:	The 'rows' information is not displayed when the master-detail relationship is M:1.

These values are:

No	The 'Title' of the detail module component is used within the hyperlink, for example Employee Details
Yes	The hyperlink displays the number of detail records alongside the module component 'Title', for example  Employee Details (7 rows)
Note: 	When these preferences are set for a master module component, they apply to all the detail links which may exist.


List of Values preferences (Web)
List of Values preferences

Related Topics

Use these preferences to determine the appearance and behavior of List of Values (LOV) windows and hyperlinks that are generated to assist the user select foreign key lookup values. About

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
LOVBUT	List of Values: Hyperlink	X	X	X	X
LOVCBC	List of Values: Caption for Close button	X	X	X	X
LOVFBC	List of Values: Caption for Find button	X	X	X	X
LOVFWD	List of Values: Frame width	X	X	X	X
LOVSTL	List of Values: Style	X	X	X	X
LOVWIN	List of Values: Window properties	X	X	X	X


List of Values: Hyperlink (LOVBUT)

Related Topics

Default:	htf.italic('LOV')
Values:	A PL/SQL function call or valid HTML syntax, up to 240 characters
Levels:	Container, table, module, module component
Category:	List of Values
Use this preference to define how LOV hyperlinks are displayed in the generated application. LOV hyperlinks are placed to the right of the HTML form element created for the lookup column. About

Examples:


List of Values: Caption for Close button (LOVCBC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters in length. The default caption is 'Close'.
Levels:	Container, table, module, module component
Category:	List of Values
Use this preference to define an alternative caption for the button which closes the LOV window. The default caption is sourced from a translatable file (WSGLM.PKS) to ensure suitable default button captions in any language. About

Note:	When LOVFBC and LOVCBC are left <Null>, each preference value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is

WSGL.MsgGetText(17,WSGLM.CAP017_LOV_FIND), WSGL.MsgGetText(18,WSGLM.CAP018_LOV_CLOSE)


List of Values: Caption for Find button (LOVFBC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters in length. The default caption is 'Find'.
Levels:	Container, table, module, module component
Category:	List of Values
Use this preference to define an alternative caption for the button that queries the lookup column based on the search criteria that has been defined. The default caption is sourced from a translatable file (WSGLM.PKS) to ensure suitable default button captions in any language. About


List of Values: Frame width (LOVFWD)

Related Topics

Default:	200
Values:	1 to 1000
Levels:	Container, table, module, module component
Category:	List of Values
If the style of the LOV is set to FRAME, set this preference to define the width (in pixels) of the HTML frame created for the LOV. The user may adjust the frame width within the generated application if required.

This preference has no effect if you have chosen to use a custom frameset. About


List of Values: Style (LOVSTL)

Related Topics

Default:	WINDOW
Values:	WINDOW, FRAME
Levels:	Container, table, module, module component
Category:	List of Values
Set this preference to define how LOV information is presented when an LOV hyperlink is selected.

Notes

This preference is ignored if the module component layout style is Form; it only applies to the List and List/Form layout styles.

This preference is ignored if a custom frameset is being used. In this case the LOV is displayed in the frame defined by LFLVFM. If no frame is defined the LOV information will be displayed in a new window. About

The options are:

WINDOW	Invoke LOV in Own Window  LOV information is displayed in a new (or secondary) window.
FRAME	Invoke LOV in Adjacent Frame LOV information is displayed within an HTML frame on the same page. The HTML frame is created when the page is first opened and permanently displayed.


List of Values: Window properties (LOVWIN)

Related Topics

Default:	width=400, height=600, scrollable=yes, resizable=yes
Values:	A string that provides a valid third parameter for the JavaScript window.open method.
Levels:	Container, table, module, module component
Category:	List of Values
If the style of the LOV is set to WINDOW, set this preference to define the size of the LOV window. You can also use this preference to define whether the window is scrollable or resizable. About


Master Context preferences (Web)
Master Context preferences

Related Topics

Use these preferences to determine how master context information is used in your application. About

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
MCNAAC	Master Context: Always add code	X		X
MCNCVL	Master Context: Custom value	X		X	X		X
MCNDDP	Master Context: Custom value	X		X	X
MCNDPK	Master Context: Display package	X		X	X
MCNFRM	Master Context: Forms requiring context	X		X	X
MCNMDP	Master Context: Maintain context to this depth	X		X	X


Master Context: Always add code (MCNAAC)

Related Topics

Default:	N
Values:	N, V, Y
Levels:	Container, module
Category:	Master Context
Use this preference to ensure that code for maintaining master context is always added to a module, even when the module makes no use of it. If you have a module calling another module, and you need the detail module to be able to access the master modules items or display its context information you should use this preference. About

By default the code is only added when MCNMDP is set to a value greater than zero for one of the module components in the module. The full context information is added if MCNDPK is set for one of the module components in the module.

Value	Meaning
N	Only add code when necessary
V	Add code to maintain item values
Y	Always add all code


Master Context: Custom value (MCNCVL)

Related Topics

Default:	<Null>
Values:	Varchar2, up to 2000 bytes (240 characters).
Levels:	Container, module, module component, item
Category:	Master Context
This preference allows you to define a PL/SQL expression, the result of which is saved to the custom property in the master context display data. About

The expression must equate to a varchar2 of maximum length 2000 bytes. To set a literal value, enclose the literal in single quotes.

The display package specified in  MCNDPK reads this value and uses it to control the format of the output.

This preference is unusual in that an item and a module component do not inherit a value from a higher level, even though the preferences palette will show it as inheriting. For example, if you set a value at module level, this value is not set against the components or items in the object cache, and you must use this preference explicitly.


Master Context: Display depth (MCNDDP)

Related Topics

Default:	<Null>
Values:	1 to 99
Levels:	Container, module, module component
Category:	Master Context
This preference allows you to reduce the number of levels of context that you display via the display package specified using the MCNDPK  preference. About

By default the display package passes a display depth that is the same as the value in MCNMDP, however you may want to maintain more context information than is displayed.

The value for MCNDDP should be equal to or less than the value of MCNMDP. When the value of this preference is larger, the value of MCNMDP is used.


Master Context: Display package (MCNDPK)

Related Topics

Default:	<Null>
Values:	A valid PL/SQL package name, optionally prefixed by the schema name
Levels:	Container, module, module component
Category:	Master Context
Use this preference to define the name of the PL/SQL package that displays the master context information. About

The package supplied with Web PL/SQL Generator, WSGMC_OUTPUT2, defined in wsgoc.pkb, is just an example. You should create your own PL/SQL display package and define the  name using this preference. About

If you are going to use standard user text areas to reference the master module component item values directly, do not use this preference.


Master Context: Forms requiring context (MCNFRM)

Related Topics

Default:	Q.R.V.I
Values:	Any of Q, V, R, I. When there is more than one, separate them using dots.
Levels:	Container, module, module component
Category:	Master Context
Use this preference to define which forms should display master context. Usually this only applies to detail components, but you can set it for master components because the same display package can format context data for the current component as well as its masters. About

Value	Meaning
Q	Master context is available from the Query Form
R	Master context is available from the Record List
V	Master context is available from the View Form
I	Master context is available from the Insert Form


Master Context: Maintain context to this depth (MCNMDP)

Related Topics

Default:	0
Values:	0, 99
Levels:	Container, module, module component
Category:	Master Context
This preference to make available master context for the module components. A positive value means this number of mast er module component contexts will be maintained.  About

For example, in a module with three linked components if MCNMDP is set to 1, then when a page for the second component is displayed, item values from the first component are available. However when a page from the third component is displayed, only values from the second component are available. In order to use item values from the first and second components in a page from the third component, MCNMDP must be set to 2.


Option - ConText: Policy to use (OCOPOL)

This preference is obsolete.


Option - ConText: Results table name (OCORES)

This preference is obsolete.


Popup calendar preferences (Web)
Popup calendar preferences

Related Topics

Use these preferences to determine the appearance and behavior of a calendar in a popup window that assists the user in selecting a date and ensures that a valid date is entered in the correct format.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
CALBUT	Popup calendar: Hyperlink	X	X	X	X
CALCBC	Popup calendar: Caption for Close button	X	X	X	X
CALWIN	Popup calendar: Window properties	X	X	X	X


Popup calendars: Hyperlink (CALBUT)
Popup calendar: Hyperlink (CALBUT)

Related Topics

Default:	htf.italic('CAL')
Values:	A PL/SQL function call or valid HTML syntax, up to 240 characters
Levels:	Container, table, module, module component
Category:	Popup calendar
Use this preference to define how the popup calendar hyperlinks are displayed in the generated application. Setting this to null turns off the popup calendar. About


Popup calendars: Caption for Close button (CALCBC)
Popup calendar: Caption for Close button (CALCBC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters in length. The default caption is 'Close'.
Levels:	Container, table, module, module component
Category:	Popup calendar
Use this preference to define an alternative caption for the button which closes the popup calendar without the user selecting a date. About

The default caption is sourced from a translatable file (WSGLM.PKS) to ensure suitable default button captions in any language.


Popup calendars: Window properties (CALWIN)
Popup calendar: Window properties (CALWIN)

Related Topics

Default:	scrollbars=no, resizable=no, width=320, height=350
Values:	A string that provides a valid third parameter for the JavaScript window.open method.
Levels:	Container, table, module, module component
Category:	Popup calendar
Set this preference to define the size of the popup calendar window. You can also use this preference to define whether the window is scrollable, is resizable, or has toolbars. About


Query Form preferences (Web)
Query Form preferences

Related Topics

These options determine the appearance of the Query Form.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
ZONQAC	Query Form: Align center	X	X	X	X
ZONQBT	Query Form: Add table border	X	X	X	X
ZONQCC	Query Form: Caption for Clear button	X	X	X	X
ZONQDC	Query Form: Display Default Caption Button	X	X	X	X
ZONQFH	Query Form: Horizontal alignment for criteria items	X	X	X	X
ZONQIC	Query Form: Caption for New button	X	X	X	X
ZONQLS	Query Form: Item layout style	X	X	X	X
ZONQPH	Query Form: Horizontal alignment for prompts	X	X	X	X
ZONQQC	Query Form: Caption for Find button	X	X	X	X
ZONQRV	Query Form: Row Vertical Alignment	X	X	X	X
ZONQTC	Query Form: Number of items per line	X	X	X	X


Query Form: Align center (ZONQAC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Query Form
Use this preference to determine whether or not the content of the Query Form are aligned to the center of the page, or HTML frame. About


Query Form: Add table border (ZONQBT)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Query Form
If the Layout style preference of the Query Form is set to TABLE, use this preference to determine whether or not the table displays a border.


Query Form: Caption for Clear button (ZONQCC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Query Form
Use this preference to define an alternative caption for the button which clears the search criteria fields on the Query Form, ready for the user to enter new query conditions. The default caption is 'Clear'.. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.


Query Form: Display default caption button (ZONQDC)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Query Form
This preference allows you to suppress the caption "Enter Query criteria for ...>" on the Query Form. When it is set to N, this caption is not displayed.


Query Form: Horizontal alignment for criteria items (ZONQFH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table, module, module component
Category:	Query Form
If the ZONQLS of the Query Form is 'TABLE' or PREFORMAT', use this preference to define how form elements for search criteria values are aligned on a Query Form. About


Query Form: Caption for New button (ZONQIC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Query Form
Use this preference to define an alternative caption for the button which displays an empty Insert Form so the user can add a new record. The default caption is 'New'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	If left null, each default value is based on a function call to WSGL.MSsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is

WSGL.MsgGetText(3,WSGLM.CAP003_QF_FIND), WSGL.MsgGetText(4,WSGLM.CAP004_QF_CLEAR)
WSGL.MsgGetText(23,WSGLM.CAP023_NEW)

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.


Query Form: Item layout style (ZONLS)
Query Form: Item layout style (ZONQLS)

Related Topics

Default:	TABLE
Values:	TABLE, PREFORMAT, BULLET, CUSTOM, NUMBER, WRAP
Levels:	Container, table, module, module component
Category:	Query Form
The format of items on the Query Form, click on an option for a popup example. ZONQTC preference determines how many items are placed on each line.


Query Form: Horizontal alignment for prompts preferences (ZONQPH)
Query Form: Horizontal alignment for prompts (ZONQPH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table, module, module component
Category:	Query Form
If ZONQLS of the Query Form is 'TABLE' or PREFORMAT', use this preference to define how prompts are aligned on a Query Form. About


Query Form: Caption for Find button (ZONQQC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Query Form
Use this preference to define an alternative caption for the button which performs a query based on search criteria defined on the Query Form and displays the results in the Record List. The default caption is 'Find'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.


Query Form: Row Vertical Alignment (ZONQRV)

Related Topics

Default:	Top
Values:	Top, center, bottom
Levels:	Container, table, module, module component
Category:	Query Form
Use this preference to define

The effect of these preferences is influenced by the item layout style


Query Form: Number of items per line (ZONQTC)

Related Topics

Default:	1
Values:	1 to 99
Levels:	Container, table, module, module component
Category:	Query Form
Use this preference to define how many items are displayed on each line of a Query Form. By default, items are placed vertically, that is each item appears on a new line. The amount of vertical space used may be reduced by placing more than one item per line. About

The effect of these preferences is influenced by the item layout style

TABLE	- fields and prompts align vertically
BULLET, CUSTOM, NUMBER	- no vertical alignment takes place
PREFORMAT	- the result is not favorable, do not try to display more than one item per line
WRAP	- these preferences are ignored


Record List preferences (Web)
Record List preferences

Related Topics

These options determine the content and appearance of the Record List.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
ZONLAC	Record List: Align center	X	X	X	X
ZONLBD	Record List: Button display order	X	X	X	X
ZONLBT	Record List: Add table border	X	X	X	X
ZONLCC	Record List: Caption for Count button	X	X	X	X
ZONLCH	Record List: Horizontal alignment for character fields	X	X	X	X
ZONLDC	Record List: Always display count information	X	X	X	X
ZONLDH	Record List: Horizontal alignment for date fields	X	X	X	X
ZONLDL	Record List: Add detail hyperlinks to Record List	X	X	X	X
ZONLFC	Record List: Caption for First button	X	X	X	X
ZONLHD	Record List: Display column headings	X	X	X	X
ZONLHF	Record List: Apply HTML formatting	X	X	X	X
ZONLIC	Record List: Caption for New button	X	X	X	X
ZONLLC	Record List: Caption for Last button	X	X	X	X
ZONLLS	Record List: Item layout style	X	X	X	X
ZONLMV	Record List: Generate with multi-row View Form	X	X	X	X
ZONLNC	Record List: Caption for Next Record Set button	X	X	X	X
ZONLNH	Record List: Horizontal alignment for numeric fields	X	X	X	X
ZONLPC	Record List: Caption for Previous Record Set button	X	X	X	X
ZONLPN	Record List: Always display Previous/Next buttons	X	X	X	X
ZONLPP	Record List: Computed Item prompt positioning	X	X	X	X
ZONLQC	Record List: Caption for ReQuery button	X	X	X	X
ZONLRN	Record List: Display Record and Set Numbers	X	X	X	X
ZONLRS	Record List: Record set size	X	X	X	X
ZONLRV	Record List: Row Vertical Alignment	X	X	X	X
ZONLSR	Record List: Skip record list when query retrieves one record	X		X	X
ZONLSS	Record List: Show computed item separator	X	X	X	X
ZONLTC	Record List: Number of records per line	X	X	X	X
ZONLXC	Record List: Caption for Query button	X	X	X	X


Record List: Align center (ZONLAC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to determine whether or not the content of the Record List is aligned to the center of the page, or HTML frame. About


Record List: Button display order (ZONLBD)

Related Topics

Default:	F.P.N.L.R.C
Values:	Valid combinations of F P N L R C I Q . /  up to 30 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to specify which buttons you want to display on the Record List and the order in which they appear. About

Each button can be identified using a single letter (F=First, P=Previous, N=Next, L=Last, R=ReQuery, C=Count, I=Insert, Q=Query) and the letters must be separated by full stops. If a letter is omitted, the corresponding button is not displayed. The '/' character may also be used to insert a new line between two buttons.

Example:	F.L./.P.N  Previous and Next buttons appear below the First and Last buttons.  Other buttons are not displayed.
If the browser supports JavaScript the buttons defined by this preference can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'. If a user clicks on an inappropriate button, a popup message is displayed.

Conversely, browsers not supporting JavaScript will only display the buttons you define if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

New and Query buttons

If the module component has an associated Query Form or Insert Form, Query and New buttons are displayed on the Record List. This preference can be used to control the position of New and Query buttons, using I=Insert, Q=Query, providing that when pressed, the associated Form is displayed in the same window (or frame) as the Record List. Note however that omitting either of these letters does not mean that the corresponding button is hidden.

This preference has no effect on the Query/New button position if the resultant Query Form or Insert Form is being displayed in a different window (or frame) from the Record List.

Note:	You can also use preferences to define alternative captions for any of these buttons, if required. About


Record List: Add table border (ZONLBT)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Record List
If the Layout style preference of the Record List is set to TABLE, use this preference to determine whether or not the table displays a border.


Record List: Caption for Count button (ZONLCC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define an alternative caption for the button which displays the total number of records stored for the module component, for example, 1 to 10 of 103. The count information is only displayed for the current record set, it is cleared when you move to a different record set (that is, select First, Last, Next or Previous). The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

To display Count information permanently, set the ZONLDC preference to Yes. In this case, the Count button is not displayed.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Record List: Horizontal alignment for character fields (ZONLCH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table, module, module component
Category:	Record List
If ZONLLS of the Record List is 'TABLE' or PREFORMAT', use this preference to define how the contents of character fields are aligned within a Record List. About


Record List: Always display count information (ZONLDC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to specify whether or not record count information is displayed below the Record List all the time. Count information is provided to assist the user to search through long lists of records, for example Records 1 to 10 of 103.

These values are:

No	Count information is only displayed when the user selects the Count button.
Yes	Record count information is displayed all the time.
If this preference is set to No, a Count button is displayed and the record count presented when the Count button is selected. The information is subsequently removed once Next or Previous buttons have been selected.

Note:	If you want to hide the Count button altogether, set this preference to No and ensure the ZONLBD preference is set correctly.


Record List: Horizontal alignment for date fields (ZONLDH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table, module, module component
Category:	Record List
If the ZONLLS of the Record List is 'TABLE' or PREFORMAT', use this preference to define how the contents of date fields are aligned within a Record List. About


Record List: Add detail hyperlinks to Record List (ZONLDL)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Record List
When master-detail module components appear on separate pages, hyperlinks are generated to navigate from the master module component to the detail module component. Use this preference to define whether or not hyperlinks to detail module components appear within the master's Record List.

By default, the hyperlink displays the 'Title' property of the detail module component in a new Record List column. However, if the link is to a separate module which has input parameters mapped to its base table's primary key, the value of the key column (if displayed in the Record List and not already used to link to the View Form) becomes the hyperlink to the detail.

These values are:

No	Hyperlinks to detail module components appear below the master's View Form (if one is created).
Yes	Hyperlinks to detail module components are added to the master's Record List and below the master's View Form (if one is created).
Note: 	When these preferences are set for a master module component, they apply to all the detail links which may exist.


Record List: Caption for First button (ZONLFC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define an alternative caption for the button which fetches the first record set and displays them in the Record List. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Record List: Display column headings (ZONLHD)

Related Topics

Default:	<Null>
Values:	Yes, No, <Null>
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define whether or not Record List columns should display headings. This preference is only applicable when the item layout style of the Record List is 'TABLE' or 'PREFORMAT'.

These values are:

Yes	Each column in the Record List has a heading.
No	None of the columns in the Record List have headings.
<Null>	If the Record List has one column (a single item marked 'Context'), no heading is displayed.  If the Record List has more than one column (several items marked 'Context) headings are displayed.


Record List: Apply HTML formatting (ZONLHF)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define whether or not HTML formatting that has been recorded directly against text items, is also applied when they are displayed in the Record List. About

For example, you may want a value to be displayed on the View Form as an image, or 'MailTo' hyperlink. However, if such items are also set up to appear in the Record List (Context?=Yes), the additional formatting may not be required.

Apply HTML formatting to Record List - Yes

Name	ID	Location
ACCOUNTS	10
OPERATIONS	20
RESEARCH	30
SALES	40
Apply HTML formatting to Record List - N0

Name	ID	Location
ACCOUNTS	10	chicago.gif
OPERATIONS	20	chicago.gif
RESEARCH	30	newyork.gif
SALES	40	miami.gif


Record List: Caption for New button (ZONLIC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define an alternative caption for the button which displays an empty Insert Form so the user can add a new record. The default caption is 'New'.The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Record List: Caption for Last button (ZONLLC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define an alternative caption for the button which fetches the last record set and displays them in the Record List. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Record List: Item layout style (ZONLLS)

Related Topics

Default:	TABLE
Values:	TABLE, PREFORMAT, BULLET, CUSTOM, NUMBER, WRAP
Levels:	Container, table, module, module component
Category:	Record List
The format of items on the Record List, click on an option for a popup example. The ZONLTC preference determines how many record are displayed on each line.


Record List: Generate with multi-row View Form (ZONLMV)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, module, module component
Category:	Record List
Use this preference to specify whether a Record List should be generated as well as a multi-row View Form in List/Form style when the module component Rows Displayed property is greater than 1. About

When this preference is set, you can also set ZONVSD to show a summary of deleted items on the multi-row View Form.


Record List: Caption for Next Record Set button (ZONLNC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define an alternative caption for the button which fetches the next set of records and displays them in the Record List. For example, 'Scroll Down', 'Up'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Record List: Horizontal alignment for numeric fields (ZONLNH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table, module, module component
Category:	Record List
If the ZONLLS of the Record List is 'TABLE' or PREFORMAT', use this preference to define how the contents of numeric fields are aligned within a Record List. About


Record List: Caption for Previous Record Set button (ZONLPC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define an alternative caption for the button which fetches the previous set of records and displays them in the Record List. For example, 'Scroll Up', 'Back'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Record List: Always display Previous/Next buttons (ZONLPN)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to determine whether Previous and Next buttons are displayed for a Record List when they are not required in the current record set. If the browser being used does not support JavaScript, this preference has no effect.

Note:	You can also use preferences to define alternative captions for these buttons and the order in which they are displayed. About


Record List: Computed Item prompt positioning (ZONLPP)

Related Topics

Default:	GROUP
Values:	ITEM, GROUP
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to specify whether the prompt for a computed item is displayed in the table cell immediately to the left of the item (ITEM), or underneath the last column of the break group (GROUP).


Record List: Caption for ReQuery button (ZONLQC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define an alternative caption for the button which requeries the record set and displays the results in the Record List. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Record List: Display record and set numbers (ZONLRN))
Record List: Display record and set numbers (ZONLRN)

Related Topics

Default:	Y
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Record List
This preference allows you to suppress the multi-record caption "records n to m" on the Record List. When it is set to N this caption is not displayed, and the Count button does not appear.


Record List: Record set size (ZONLRS)

Related Topics

Default:	10
Values:	1 to 1000
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to determine the maximum number of records displayed in a Record List at any one time. First, Next, Previous and Last buttons are generated so you may scroll through the full list of available records, one set at a time.

When selecting a suitable record set size, take ZONLTC into consideration. If the size you specify is not an exact multiple of ZONLTC, the record set size is adjusted automatically to minimize the number of empty cells in the Record List.

This preference has no effect when the Layout Style of the module component is defined as 'Form'. In this case the record set size is effectively one (1).

This preference is also ignored if the Record List appears on the same page as its master's View Form. In this case all the records are displayed, up to the maximum number of rows (MAX_ROWS) which can be returned. The value of MAX_ROWS (default =1000) is specified within the Web PL/SQL Generator Library (WSGL) package, oracle_home\cgenw61\cvwetc\WSGL.PKS.

For a master-detail form, if the master and detail are displayed on the same page, then the ZONLRS preference is ignored, and the record list will be displayed irrespective of the number of rows returned.

Note:	The module component Rows Displayed property overrides this preference for a particular Record List. About


Record List: Row Vertical Alignment (ZONLRV)

Related Topics

Default:	Top
Values:	Top, center, bottom
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define

The effect of these preferences is influenced by the item layout style


Record List: Skip record list when query retrieves one record (ZONLSR)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, module, module component
Category:	Record List
By default, when only one record is returned from a query in a List style module component, a Record List is not displayed, and the record is displayed on the View Form. However if the Record List displays SQL aggregates, computed items or other items that are not shown on the View Form you can use ZONLSR to display the Record List.

When the module component style is List/Form or Form this preference has no effect, and a Record List is displayed no matter how many records are returned by the query.

In a master detail form, if master and detail are displayed on the same page, then the ZONSRL preference will be ignored.  As a result of this, a record list will be displayed irrespective of the number of rows returned.

Values are:

Yes	When the module component style is List, a View Form is displayed when a query returns only one record.
No	A Record List is always displayed after a query.


Record List: Show computed item separator (ZONLSS)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to specify whether a horizontal line is required to separate data rows from computed item rows on the Record List.


Record List: Number of records per line (ZONLTC)

Related Topics

Default:	1
Values:	1 to 99
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to specify the number of records displayed on each line of the Record List. By default, each record is displayed on a new line. However, the amount of vertical space used can be reduced by placing multiple records on the same line. About

The overall number of records displayed is determined by the ZONLRS preference, or the module component Rows Displayed property if it is defined.

The effect of these preferences is influenced by the ZONLRS:

TABLE, PREFORMAT	- record information is aligned vertically
BULLET, CUSTOM, NUMBER	- no vertical alignment takes place
WRAP	- this preference is ignored
Note: 	When computed items, SQL aggregates or break groups are defined ZONLTC reverts to a value of 1, and a warning message is issued during generation.

A different set of preferences determine how many items appear on each line of a Insert Form, Query Form and View Form. About


Record List: Caption for Query button (ZONLXC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	Record List
Use this preference to define an alternative caption for the button which displays an empty Query Form so the user can enter a new query condition. The default caption is 'Query'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

Note:	If left null, each default value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is

WSGL.MsgGetText(13,WSGLM.CAP013_RL_FIRST), WSGL.MsgGetText(12,WSGLM.CAP012_RL_PREVIOUS), WSGL.MsgGetText(11,WSGLM.CAP011_RL_NEXT), WSGL.MsgGetText(14,WSGLM.CAP014_RL_LAST), WSGL.MsgGetText(16,WSGLM.CAP016_RL_REQUERY), WSGL.MsgGetText(15,WSGLM.CAP015_RL_COUNT)
WSGL.MsgGetText(23,WSGLM.CAP023_NEW)
WSGL.MsgGetText(24,WSGLM.CAP024_RL_QUERY)

If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular Record List configuration (providing the ZONLPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Security preferences (Web)
Security preferences

Related Topics

These options allow you to add security features.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
SECECS	Enforce URL checksums	X		X
SECPKG	Security package name	X		X	X
SECRES	Default responsibilities	X		X	X
SECVAL	Perform session validation	X		X	X


Enforce URL checksums (SECECS)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, module
Category:	Security
Use this preference to prevent a user from being able to modify a URL which gives them access to a record they are authorized to view and/or modify, in order to access some other data to which they are not authorized. About

The values are:

Yes	Additional code is generated to check that URLs relating to generated Web PL/SQL applications have not been manually modified by the user.
No	No code is generated to check URL modification.
For example,

Original URL - access allowed

http://host:9999/demo/owa/emp$.emp.queryview?P_EMPNO=7844&Z_CHK=7128

Modified URL - access denied

http://host:9999/demo/owa/emp$.emp.queryview?P_EMPNO=7845&Z_CHK=7128

If you do not need to protect against this type of unauthorized access, you can avoid the unnecessary calculation of checksums by setting this preference to No.

Note:	This preference must be set to 'No' if module arguments are defined for a particular module. About


Force URL to lowercase (SECEUC) (obsolete)

This preference is no longer used.


Security package name (SECPKG)

Related Topics

Default:	WSGSEC
Values:	A valid PL/SQL package name
Levels:	Container, module, module component
Category:	Security
This preference is used, along with SECVAL, to implement user-based access control using Web PL/SQL Generator's security API. About

Use this preference to define the name of a PL/SQL package that implements the security API used within the generated application.

The package supplied with Web PL/SQL Generator, WSGSEC, is just an example. You should write your own PL/SQL security package and define the name using this preference. About

The security package WSGSSO is provided specifically to provide single sign-on facilities when generating Web PL/SQL applications as portlets. About


Default responsibilities (SECRES)

Related Topics

Default:	administrator
Values:	A comma separated list of responsibilities
Levels:	Container, module, module component
Category:	Security
When the generated package is installed, a call is made to the procedure add_package_resp.

The example package wsgsec maps the responsibilities in this preference to the package so that users who have one of the responsibilities assigned to them are granted access to the application. About

For example, to ensure that a module can only be accessed by administrators set SECRES  =  administrator. For other modules that can be accessed by both users and administrators set SECRES = administrator,users

The way that SECRES is used depends on your implementation of the security API. See Writing your own security package


Perform session validation (SECVAL)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, module, module component
Category:	Security
This preference is used with Web PL/SQL Generator's security API. About

When this is set to Yes in generated applications, the first statement in every public procedure or function is a call to the security validation code.


Startup Page preferences (Web)
Startup Page preferences

Related Topics

These options determine the content and appearance of the Startup Page.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
MODALR	Startup Page: About Page hyperlink required	X		X
MODAPL	Startup Page: About Page hyperlink	X		X
MODFAC	Startup Page: Align center module content	X		X
MODFTF	Startup Page: Title format	X		X
MODIFZ	Startup Page: Display first module component	X		X


Startup Page: About Page hyperlink required (MODALR)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, module
Category:	Startup Page
Set this preference to determine whether or not the About Page hyperlink should be displayed on the Startup Page.

An About Page procedure is always generated even when you choose to hide the About hyperlink on the Startup Page (MODALR=No). This means that the version information may be displayed using the URL whenever required, that is <module_implementation_name>$.ShowAbout. About

You can override the default hyperlink text and customize the style in which the text is displayed. Alternatively, you can hide the hyperlink.


Startup Page: About Page hyperlink (MODAPL)

Related Topics

Default:	<Null>
Values:	Any expression returning valid HTML syntax. Up to 240 characters.
Levels:	Container, module
Category:	Startup Page
Use this preference to override the default content and format (or style) of the About Page hyperlink. Custom hyperlinks can be defined using plain text, or:

Calls to PL/SQL functions	PKGLST preference must specify the PL/SQL package in which the function is defined.
HTML syntax	MODSUB preference must be set to No.
The default hyperlink text is sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages. If left null, the default value is based on a function call to WSGL.MsgGetText which accesses a string constant defined in the WSGLM package, that is

WSGL.MsgGetText(107,WSGLM.DSP107_ABOUT)

About

Examples:	About This Module  htf.italic('About these pages') <b>About</b>
You can override the default hyperlink text and customize the style in which the text is displayed. Alternatively, you can hide the hyperlink.


Startup Page: Align center module content (MODFAC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, module
Category:	Startup Page
Use this preference to determine whether or not the module content is aligned to the center of the Startup Page. About

These values are:

Yes	The title, About page link and other links on the startup page are aligned centrally.
No	The startup page content is aligned to the left of the page.
Note that this preference affects content defined at module level only. If you have the first module component included in the Startup Page (using MODIFZ ), the content of the included form is not affected by this preference. Use the appropriate module level preference to change the alignment of the form. About

This preference also acts on the About Page content to align the content centrally.


Startup Page title format (MODFTF)
Startup Page: Title format (MODFTF)

Related Topics

Default:	DEFAULT
Values:	A PL/SQL function call or valid HTML syntax. Up to 240 characters.
Levels:	Container, module
Category:	Startup Page
Use this preference to define the format (and/or text) of the module Startup Page title. Typically you would only define new title text at the module level, whereas a custom format could be set at container (i.e. application system or folder) level or at module level.


Startup Page: Display first module component (MODIFZ)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, module
Category:	Startup Page
Use this preference to specify whether or not the first module component appears on the Startup Page for the module.

These values are:

Yes	The first module component is displayed on the module Startup Page. The type of HTML document displayed here depends on the layout style of the first module component. About  In this case, the document template for the Startup Page is used, and the document template for the first module component is ignored. For example, if a Query Form is displayed on the Startup Page, the document template used is that for the Startup Page, and the document template for the Query Form has no effect.
No	A new page is created for the first module component. A hyperlink to the first module component is displayed on the Startup Page.


Text handling preferences (Web)
Text Handling preferences

Related Topics

These options determine how to process user text.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
MODSUB	Substitute HTML reserved characters	X	X	X	X
PKGLST	PL/SQL package list	X		X
ZONESC	Escape all database values	X		X	X


Substitute HTML reserved characters (MODSUB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	Text handling
These values are:

Yes	HTML reserved characters (< > " &) within the module design are replaced with the appropriate escape characters (&lt; &gt; &quot; &amp;).
No	HTML reserved characters within the module design are executed as HTML syntax. When set to NO, take care to use escape characters where they are necessary. For example, to display "This shows employees with a salary < $5000" the text must be defined as "This shows employees with a salary &lt; $5000".
By default, HTML reserved characters (< > " &) detected within the module design specification are replaced with escape characters (&lt; &gt; &quot; &amp;) to avoid potential formatting problems in generated Web pages.

However, if you have experience with HTML you may want to use the HTML reserved character set to directly format text held within the module design. If this is the case, set this preference to NO so that no character substitution takes place.

User text	MODSUB = NO	MODSUB = YES
Welcome to the <b>ACME Corporation</b> home page.	Welcome to the ACME Corporation home page.	Welcome to the <b>ACME Corporation </b> home page.
This preference applies to text you define within the module design specification:

•	user text

•	titles and headings

•	headers and footers

•	hyperlinks to the About Page

•	custom bullet symbols

Note:	This preference is ignored if you use an HTML Editor to define entire HTML documents for user text areas, as it is assumed that HTML reserved character substitution is required. About


PL/SQL package list (PKGLST)

Related Topics

Default:	None  (HTF, WSGL and WSGFL)
Values:	Valid PL/SQL package names separated by commas.
Levels:	Container, module
Category:	Text handling
Use this preference to define the names of PL/SQL packages you intend to use within the generated application. Calls to PL/SQL functions can be embedded within the module design specification if custom formatting or additional functionality is required.

For Web PL/SQL Generator to recognize and implement custom function calls they must be part of a PL/SQL package that is declared prior to generation, within this preference (PKGLST). Custom packages must also be installed on the PL/SQL Toolkit schema. The syntax of an embedded PL/SQL function is checked automatically during generation and any syntax errors which would result in an unsuccessful installation are reported.

Example:	mypackage,custompkg
PL/SQL packages defined using this preference may be referenced within:

•	user text

•	titles and headings

•	headers and footers

•	hyperlinks to the About Page

•	custom bullet symbols

The HyperText Functions (HTF) package provided by Web PL/SQL Toolkit is pre-defined for you so you may reference any of these functions without modifying this preference. Some common examples of HTF functions are htf.bold, htf.italic, htf.mailto and htf.img. You can also reference functions within the Web PL/SQL Generator library (WSGL and WSGFL) as these are also pre-defined.

If you try to reference a function from an undefined package it cannot be processed and the function call syntax will appear as normal text in the generated application.

Note:	If you want to specify multiple packages, the package names must be separated by a comma only.


Escape all database values (ZONESC)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, module, module component
Category:	Text handling
When this preference is set to Yes. HTML special characters in text retrieved from the database are escaped, and the browser does not interpret the values returned as HTML. Values returned for the following are affected:

•	bound items

•	unbound items of type:

−	SQL Expression

−	Server Side Function

−	SQL Aggregate

−	Computed

Yes	HTML reserved characters (< > " &) returned from the database are replaced with the appropriate escape characters (&lt; &gt; &quot; &amp;).
No	HTML reserved characters within the module design are executed as HTML syntax.
If you want the text returned from unbound items to be interpreted as HTML you should set this to No and escape individual items using either:

•	the MODSUB preference

•	the item level Formatting property


View Form preferences (Web)
View Form preferences

Related Topics

These options determine the appearance of the View Form.

Name	Description	Levels at which preferences can be set
		Container	Table	Module	Module Component	Action Item	Item
ZONVAC	View Form: Align center	X	X	X	X
ZONVBD	View Form: Button Display Order	X	X	X	X
ZONVBT	View Form: Add table border	X	X	X	X
ZONVCA	View Form: Always display count information	X	X	X	X
ZONVCC	View Form: Caption for Count button	X	X	X	X
ZONVCF	View Form: Context header format	X	X	X	X
ZONVCH	View Form: Display context header	X	X	X	X
ZONVDC	View Form: Caption for Delete button	X	X	X	X
ZONVDN	View Form: Display prompts for null values	X	X	X	X
ZONVEC	View Form: Derive expressions in client	X	X	X	X
ZONVFC	View Form: Caption for First button	X	X	X	X
ZONVFH	View Form: Horizontal alignment for values	X	X	X	X
ZONVIC	View Form: Caption for New Button	X	X	X	X
ZONVLC	View Form: Caption for Last button	X	X	X	X
ZONVLS	View Form: Item layout style	X	X	X	X
ZONVNC	View Form: Caption for Next Record Set button	X		X	X
ZONVNM	View Form: Caption for N to M button	X		X	X
ZONVPC	View Form: Caption for Previous Record Set button	X		X	X
ZONVPH	View Form: Horizontal alignment for prompts	X	X	X	X
ZONVPN	View Form: Always display Previous/Next buttons	X		X	X
ZONVQC	View Form: Caption for ReQuery button	X		X	X
ZONVRC	View Form: Caption for Revert button	X	X	X	X
ZONVRN	View Form: Display Record and Set Numbers	X	X	X	X
ZONVRV	View Form: Vertical alignment for rows	X	X	X	X
ZONVSD	View Form: Show context items for deleted rows	X	X	X	X
ZONVTC	View Form: Number of items per line	X	X	X	X
ZONVUC	View Form: Caption for Update button	X	X	X	X
ZONVXC	View Form: Caption for Query button	X		X	X


View Form: Align center (ZONVAC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to determine whether or not the content of the View Form is aligned to the center of the page, or HTML frame. About

9

Note: 	A separate set of horizontal alignment preferences determine how item prompts and values are aligned relative to each other. About


View Form: Button Display Order (ZONVBD)

Related Topics

Default:	F.P.N.L.R.C
Values:	Valid combinations of F P N L R C I Q . /  up to 30 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to specify which buttons you want to display on the View Form and the order in which they appear. About

9

10	Each button can be identified using a single letter (F=First, P=Previous, N=Next, L=Last, R=ReQuery, C=Count, I=Insert, Q=Query) and the letters must be separated by full stops. If a letter is omitted, the corresponding button is not displayed. The '/' character may also be used to insert a new line between two buttons.

Example:	F.L./.P.N  Previous and Next buttons appear below the First and Last buttons.  Other buttons are not displayed.
If the browser supports JavaScript the buttons defined by this preference can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration, providing the ZONVPN preference is set to 'Yes'. If a user clicks on an inappropriate button, a popup message is displayed.

14	Conversely, browsers not supporting JavaScript will only display the buttons you define if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

New and Query buttons

If the module component has an associated Query Form or Insert Form, Query and New buttons are displayed on the View Form. This preference can be used to control the position of New and Query buttons (using I=Insert, Q=Query) providing that when pressed, the associated Form is displayed in the same window (or frame) as the View Form. Note however that omitting either of these letters does not mean that the corresponding button is hidden.

0	This preference has no effect on the Query/New button position if the resultant Query Form or Insert Form is being displayed in a different window (or frame) from the View Form.

Note:	You can also use preferences to define alternative captions for any of these buttons, if required. About


View Form: Add table border (ZONVBT)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	View Form
If the Layout style preference of the View Form is set to TABLE, use this preference to determine whether or not the table displays a border.

9


View Form: Always display count information (ZONVCA)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	View Form
These values are:

No	Count information is only displayed when the user selects the Count button.
Yes	Record count information is displayed all the time.
Use this preference to specify whether or not record count information is displayed below the View Form all the time. Count information is provided to assist the user search through long lists of records, for example Records 1 to 10 of 103.

14	If this preference is set to No, a Count button is displayed and the record count presented when the Count button is selected. The information is subsequently removed once Next or Previous buttons have been selected.

Note:	If you want to hide the Count button altogether, set this preference to No and ensure the ZONVBD preference is set correctly.


View Form: Caption for Count button (ZONVCC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which displays the total number of records stored for the module component, for example 1 to 10 of 103. The count information is only displayed for the current record set, it is cleared when you move to a different record set (select First, Last, Next or Previous). The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

9	To display Count information permanently, set the ZONVCA preference to Yes. In this case, the Count button is not displayed.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

0	If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration (providing the ZONVPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

1	Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


View Form: Context header format (ZONVCF)

Related Topics

Default:	DEFAULT
Values:	A PL/SQL function call or valid HTML syntax. Up to 240 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define the format of the context header displayed for a single record on a View Form. Typically you would only define a custom format using this preference, as the header text itself is generated dynamically while running the application.


View Form: Display context header (ZONVCH)

Related Topics

Default:	Context Headings
Values:	Context Headings, Highlight Values, None
Levels:	Container, table, module, module component
Category:	View Form
These values are:

Context Headings	Display Context Items as Heading (Default) The View Form displays a context header for the current record. This information can be useful if the Record List and View Form appear on separate pages.
Highlight Values	Display Context Values In Bold No context header is displayed for the View Form. Instead, read-only context values are highlighted in bold.
None	No Heading No context header is displayed for the View Form. Use this option when context headers are not required or considered useful, for example if there are many context values, or the Layout Style is 'List/Form' and the Record List and View Form appear side-by side.
Use this preference to define how context information is displayed on a View Form. Context information is derived from those columns appearing in the Record List (that is, items marked 'Context') and it can be useful if the Record List and View Form appear on separate pages.

16


View Form: Caption for Delete button (ZONVDC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which deletes the record currently displayed on the View Form. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

9

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.


View Form: Display prompts for null values (ZONVDN)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	View Form
Set this preference to define whether prompts are always displayed on the View Form, or only displayed when a column value is available.

9

10	Note that prompts and fields for items marked 'Update' are always displayed, even if this preference is set to No.


View Form: Derive expressions in client (ZONVEC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	View Form
Set this preference to determine how SQL expression or client-side function unbound items appear on the View Form when the items on which they are based are also included on the View Form.

Note:	This preference only affects unbound items where the Display property is set to yes.

Values:

Yes	The item is recalculated client-side when the item on which it is based is updated on the form. The text is updated whenever the base item value on the form is updated. The user can amend the value in the field, but these changes are overwritten by any subsequent changes to the master item on which this item is dependent.
No	This item is only ever recalculated server-side. It is displayed as read-only text, and is only updated to reflect the base item value when the form is submitted.


View Form: Caption for First button (ZONVFC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which fetches the first record set and displays them in the View Form. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

0	If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration (providing the ZONVPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

1	Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


View Form: Horizontal alignment for values (ZONVFH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table, module, module component
Category:	View Form
If the ZONVLS for the View Form is 'TABLE' or PREFORMAT', use this preference to define how values are aligned on a View Form. About

9


View Form: Caption for New Button (ZONVIC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which displays an empty Insert Form so the user can add a new record.. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

9

Note:	If left null, each default value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package, that is

WSGL.MsgGetText(6,WSGLM.CAP006_VF_UPDATE), WSGL.MsgGetText(8,WSGLM.CAP008_VF_REVERT), WSGL.MsgGetText(7,WSGLM.CAP007_VF_DELETE)
WSGL.MsgGetText(23,WSGLM.CAP023_NEW)

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.


View Form: Caption for Last button (ZONVLC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which fetches the last record set and displays them in the View Form. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

0	If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration (providing the ZONVPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

1	Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


View Form: Item layout style (ZONVLS)

Related Topics

Default:	TABLE
Values:	TABLE, PREFORMAT, BULLET, CUSTOM, NUMBER, WRAP
Levels:	Container, table, module, module component
Category:	View Form
The format of items on the View Form, click on an option for a popup example. The ZONVTC preference determines how many items are placed on each line.

Note:	Some HTML browsers do not support tables and in such cases the layout style dynamically defaults to PREFORMAT when the application is run. Web PL/SQL Generator is able to maintain a list of known HTML browsers which support tables. If the browser you are using is not included it is possible to edit the 'TablesSupported' function in ORACLE_HOME\CGENW61\CVWETC\WSGL.PKB.


View Form: Caption for Next Record Set button (ZONVNC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table,.module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which fetches the next set of records and displays them in the View Form. For example, 'Scroll Down', 'Up'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

0	If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration (providing the ZONVPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

1	Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


View Form: Caption for N to M button (ZONVNM)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table,.module, module component
Category:	View Form
Use this preference to define a caption for the button which fetches the next set of records and displays them in the View Form. For example, 'Scroll Down', 'Up'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

0	If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration (providing the ZONVPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

1	Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


View Form: Caption for Previous Record Set button (ZONVPC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table,.module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which fetches the previous set of records and displays them in the View Form. For example, 'Scroll Up', 'Back'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

0	If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration (providing the ZONVPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

1	Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


View Form: Horizontal alignment for prompts (ZONVPH)

Related Topics

Default:	Left
Values:	Left, Center, Right
Levels:	Container, table,.module, module component
Category:	View Form
If the ZONVLS for the View Form is 'TABLE' or PREFORMAT', use this preference to define how prompts are aligned on a View Form. About

9


View Form: Always display Previous/Next buttons (ZONVPN)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, table,.module, module component
Category:	View Form
Use this preference to determine whether Previous and Next buttons are displayed for a View Form when they are not required in the current record set. If the browser being used does not support JavaScript, this preference has no effect.

Note:	You can also use preferences to define alternative captions for these buttons and the order in which they are displayed. About


View Form: Caption for ReQuery button (ZONVQC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which requeries the record set and displays the results in the View Form. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

0	If the browser supports JavaScript these buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration (providing the ZONVPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

1	Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


View Form: Caption for Revert button (ZONVRC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which clears any unsaved changes, reverting the current record to the version as queried. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

9

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.


View Form: Display record and set numbers (ZONVRC)
View Form: Display record and set numbers (ZONVRN)

Related Topics

Default:	Yes
Values:	Yes, No.
Levels:	Container, table, module, module component
Category:	View Form
This preference allows you to suppress the multi-record caption "records n to m" on the View Form. When it is set to N, this caption is not displayed, and the Count button does not appear.

9


View Form: Vertical alignment for rows (ZONVRV)

Related Topics

Default:	Top
Values:	Top, Center, Bottom
Levels:	Container, table, module, module component
Category:	View Form
Set this preference to specify the vertical alignment of item prompts and column values on a View Form.

9


View Form: Show context items for deleted rows (ZONVSD)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to display a summary of any deleted rows at the top of a multi-row View Form.

Yes	A comma separated list of context item values is displayed.
No	A summary is not displayed.
Note:	This preference has no effect when:

•	the layout style of the module component is List

•	the layout style of the module component is List/Form and Rows Displayed = 1


View Form: Number of items per line (ZONVTC)

Related Topics

Default:	1
Values:	A series of numbers from 1 to 99, separated by dots
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define how many items are displayed on each line of the View Form. By default, items are placed vertically, that is, each item appears on a new line. The amount of vertical space used may be reduced by placing more than one item per line. About

When only one number is entered, that number specifies the number of items per line.

On a multi-row View Form you can specify the number of items to be displayed in each row. The numbers separated by dots indicate the number of items that appear in the corresponding HTML row. For example, 3.1.2 specifies that 3 items appear on the first row, 1 on the second and 2 on the third and subsequent rows.

The effect of these preferences is influenced by the item layout style

TABLE	- fields and prompts align vertically
BULLET, CUSTOM, NUMBER	- no vertical alignment takes place
PREFORMAT	- the result is not favorable, do not try to display more than one item per line
WRAP	- these preferences are ignored


View Form: Caption for Update button (ZONVUC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table, module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which saves changes to the current record back to the database. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers that do not support JavaScript cannot handle multibyte character captions.


View Form: Caption for Query button (ZONVXC)

Related Topics

Default:	<Null>
Values:	Any valid caption up to 100 characters.
Levels:	Container, table,.module, module component
Category:	View Form
Use this preference to define an alternative caption for the button which displays an empty Query Form so the user can enter a new query condition. The default caption is 'Query'. The default captions are sourced from a translatable file (WSGLM.PKS) to assist in the translation of generated applications into different languages.

Note:	Browsers not supporting JavaScript cannot display multibyte character captions.

Note:	If left null, each default value is based on a function call to WSGL.MsgGetText which accesses the appropriate string constant defined in the WSGLM package,

If the browser supports JavaScript this buttons can be displayed all the time, regardless of whether individual button actions are valid for a particular View Form configuration (providing the ZONVPN preference is set to 'Yes'). If a user clicks on an inappropriate button, a suitable popup message is displayed.

Conversely, browsers not supporting JavaScript will only display buttons if its associated action is available. For example, First, Previous, Next and Last buttons are not displayed when all the records are displayed at once.

Note:	You can also customize the display order of these buttons, if required. About


Indicates whether this preference can be set at container (i.e. application system or folder) level. Click here for more information.


Indicates whether this preference can be set at table level. Click here for more information.


Indicates whether this preference can be set at module level. Click here for more information.


Indicates whether this preference can be set at module component level. Click here for more information.


Indicates whether this preference can be set at action item level. Click here for more information.


Indicates whether this preference can be set at item level. Click here for more information.


Features added to Web PL/SQL Generator in previous releases

Related Topics

Features added to WebServer Generator in Oracle Designer Release 6.0

Features added to WebServer Generator in Oracle Designer Release 2.1.2

Features added to WebServer Generator in Designer/2000 Release 2.1.1

Features added to WebServer Generator in Designer/2000 Release 2.1


Features added to WebServer Generator in Oracle Designer Release 6.0
Features added to the WebServer Generator in Oracle Designer Release 6.0

Related Topics

No new features were added to WebServer Generator in Oracle Designer Release 6.0.


Features added to WebServer Generator in Oracle Designer Release 2.1.2
Features added to the WebServer Generator in Oracle Designer Release 2.1.2

Related Topics

Major new features in Oracle Designer WebServer Generator Release 2.1.2

Generation and design capture of multiple modules is now supported by the Design Editor's new batch processing tools


Features added to WebServer Generator in Designer/2000 Release 2.1.1
Features added to the WebServer Generator in Designer/2000 Release 2.1.1

Related Topics

No new features were added to WebServer Generator in Designer/2000 Release 2.1.1.


Features added to WebServer Generator in Designer/2000 Release 2.1
What's new in WebServer Generator in Designer/2000 for Release 2.1

Related Topics

Terminology

New/changed terminology

Major new features

HTML style sheet support

Custom frameset definition

Advanced text searching - Oracle ConText Cartridge

Enhanced security options

Application logic generation

Other new and improved features

LOVs displayed on Query Forms

Insert-only applications supported

Add record hyperlinks replaced with 'New' buttons

Query buttons added to Record Lists

Module design

New repository elements

New repository properties

Preferences

New preferences

Preferences removed in Release 2.1

New/changed terminology

If you have used WebServer Generator in a previous release of Designer/2000 you will notice some terminology changes:

Release 1.x element	Release 2.1 element
Detailed column usage	Bound Item
Detailed table usage	Module component table usage
Release 1.x property	Release 2.1 property
Page Text	User Text
Presentation Style	Layout Style
Frames (Presentation Style)	List/Form
Column Usage Alias	Item Name
Select	Query
Caption	Prompt
Justification	Alignment
Display Style	Display Type
Derivation Expression	Derivation Text
HTML style sheet support

Custom style templates can now be incorporated into generated WebServer applications. This means you can customize the appearance and layout of generated pages using a wide range of style attributes e.g. font, leading, margins, indents, color, background etc. Aboutwsg_About_style_sheets_and_templates

Custom frameset definition

Custom frameset templates can now be incorporated into generated WebServer applications. This feature allows you to customize the layout of pages containing frames i.e. List/Form module components. About

Advanced text search - Oracle ConText Cartridge

The functionality provided by the Oracle ConText Cartridge can be used to add text-search capabilities to generated WebServer applications. About

Enhanced security options

Several new security features can be built into generated WebServer applications to protect against unauthorized access. About

Application logic generation

Event logic and named routines can be entered directly against WebServer modules in the repository. WebServer modules support user-defined application logic (PL/SQL and JavaScript) against modules, module components and items. About

New repository elements used by WebServer Generator

Repository element	Use in WebServer application
Window	Determine whether master-detail module components appear on the same, or separate, Web pages. About
Module Components	Defines characteristics of a WebServer module component. You can also create reusable module components for use by more than one module. About
Unbound Items	Defines HTML form elements that are not bound to columns. About
New repository properties used by WebServer Generator

Repository element	Property	Use in WebServer application
Table Usage	Name in Database	Table name used in the FROM clause of generated queries.
Lookup Table Usage	Filter before Display?	Controls the number of records displayed in a lookup LOV.
	LOV Title	Title for lookup LOV window.
	Lookup Validation WHERE Clause	Condition for foreign key validation.
	Outer Join?	Controls whether outer join operator (+) added to query.
Item	Unbound Type	Defines a type of unbound item.
	Range Search	Controls range searching on the Query Form.
	ConText Option?	Controls text searching on the Query Form.
	Show Meaning?	Controls display of allowed values and meanings.
New WebServer Generator preferences

Document template preferences

Use the document template preferences to embed custom style information into generated WebServer applications:

Text Frame Template Filename	DOCTTF
Module Content Template Filename	DOCTMC
Record List Template Filename	DOCTRL
Query Form Template Filename	DOCTQF
Insert Form Template Filename	DOCTIF
View Form Template Filename	DOCTVF
List of Values Template Filename	DOCTLV
About Page Template Filename	DOCTAP
Custom frameset template preferences

Use the custom frameset preferences to use custom framesets within generated WebServer applications:

Template filename	LFFSTP
Module content frame	LFMCFM
Default text frame	LFDTFM
Record List frame	LFRLFM
Query Form frame	LFQFFM
View/Insert Form frame	LFVFFM
List of Values frame	LFLVFM
Header frame	LFHDFM
Footer frame	LFFTFM
Use custom frameset	LFCUST
Button caption preferences

Use these preferences to define alternative captions for the additional buttons that are generated in this release:

Query Form	ZONQIC
Record List	ZONLXC
	ZONLIC
View Form	ZONVIC
Build return hyperlinks (MODBRL)

Use this preference to define whether return hyperlinks are generated to assist user-navigation within the application. See MODBRL

Force URL to Lowercase (SECEUC)

Use this preference to define whether URLs that relate to generated WebServer applications are forced to lowercase to ensure that authentication takes place. See SECEUC

Enforce URL checksums (SECLECS)

Use this preference to define whether user access to generated pages is restricted. See SECECS

Default date format for date fields (TXTDDF)

Use this preference to define a default date format mask for date fields. The default value of this preference is DD-MON-RRRR, for Year/2000 compliance. See TXTDDF

Preferences removed in Release 2.1

Scope of code controls table (CCTABL)
This preference is now one of several 'General application' options set from Design Editor using Options→Generator Options→General.

Scope of reference codes table (DVTABL)
This preference is now one of several 'General application' options set from Design Editor using Options→Generator Options→General.

Hold Time on change history columns (WHTIME)
This preference is now one of several 'General application' options set from Design Editor using Options→Generator Options→General.

Maximum number of rows to auto-query (MAXQRY)
The functionality provided by this preference is now controlled by the Filter before Display? property.


Repository custom action item properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Action Item property	Use by Web PL/SQL Generator	Notes and related topics
Module Component	The module component for the action item
Window	When the action item is created at Window level, the name of the owning window is shown
Name	A unique name for the action item. Web PL/SQL Generator supports navigation and custom action items	About action items in Web PL/SQL applications
Usage Sequence	The order in which all the action items at this level are displayed
Enable on database record?	Not used in Web PL/SQL Generator
Template/Library Object	Not used in Web PL/SQL Generator
Display
Prompt	The caption or label to appear on the control (or menu item) generated from this action item
Icon Name	The path and filename of an image to use instead of the hyperlink
Create Button?	Indicates whether the action item is implemented as a button
Button Height	Not used in Web PL/SQL Generator
Button Width	Not used in Web PL/SQL Generator
Create Menu Item?	Not used in Web PL/SQL Generator
Help
Hint	The text entered here appears on the status bar when the mouse is moved over the hyperlink or button
User/Help Text	Not used by Web PL/SQL Generator
Documentation
Description	You can enter descriptive information here
Notes	Additional descriptive information


Repository navigation action item properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Action Item property	Use by Web PL/SQL Generator	Notes and related topics
Module Component	The module component for the action item
Window	When the action item is created at Window level, the name of the owning window is shown
Name	A unique name for the action item Web PL/SQL Generator supports navigation and custom action items	About action items in Web PL/SQL applications
Usage Sequence	The order in which all action items in the same window are displayed
Template/Library Object	The order in which all action items in the same window are displayed
Navigate To
To Module Component	The module component to which this navigation action item navigates in the generated application
To Module	The module to which this navigation action item navigates in the generated application
Display
Prompt	The caption or label to appear on the control (or menu item) generated from this action item
Icon Name	The path and filename of an image to use instead of the hyperlink
Create Button?	Indicates whether the action item is implemented as a button
Button Height	Not used in Web PL/SQL Generator
Button Width	Not used in Web PL/SQL Generator
Create Menu Item?	Not used in Web PL/SQL Generator
Help
Hint	The text entered here appears on the status bar when the mouse is moved over the hyperlink or button
User/Help Text	Not used by Web PL/SQL Generator
Documentation
Description	You can enter descriptive information here
Notes	Additional descriptive information


Repository argument properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Argument property	Used by Web PL/SQL Generator	Notes and related topics
Module	The name of the module for which this argument is defined
PL/SQL Definition	The PL/SQL definition that this argument is defined against
Name	Specifies the name of the argument	Using module arguments to restrict records
Input/Output	Not used by Web PL/SQL Generator
Position	Not used by Web PL/SQL Generator
Defined By
Domain	Not used by Web PL/SQL Generator
Datastructure	Not used by Web PL/SQL Generator
Column	Specifies the underlying column of the argument item usage.	Using module arguments to restrict records
Table Definition	Not used by Web PL/SQL Generator
Oracle Type	Not used by Web PL/SQL Generator
Definition
Datatype	Not used by Web PL/SQL Generator
Length	Not used by Web PL/SQL Generator
Decimal Places	Not used by Web PL/SQL Generator
Default	Not used by Web PL/SQL Generator
Optional?	Not used by Web PL/SQL Generator
Display
Display?	Not used by Web PL/SQL Generator
Prompt	Not used by Web PL/SQL Generator
Dynamic List?	Not used by Web PL/SQL Generator
Suggestion List?	Not used by Web PL/SQL Generator
Input Mask	Not used by Web PL/SQL Generator
Menu Generation
Substitution String	Not used by Web PL/SQL Generator
Documentation
Comment	Not used by Web PL/SQL Generator
Description	Not used by Web PL/SQL Generator
Notes	Not used by Web PL/SQL Generator


Repository item properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Item property	Use by Web PL/SQL Generator	Notes and related topics
Module Unit	Module component or LOV containing item
SQL Query Set	Not used by Web PL/SQL Generator
Table Usage (bound item only)	Table usage containing bound item
Column (bound item only)	The name of the underlying column on which the generated item is based
Name	Used as the base name for PL/SQL variables within generated packages It must not begin with a digit, or contain characters other than alphanumeric characters and _ $ #.  Also, it must not exceed 28 characters This Name can be referenced when defining HTML formatting or derivation text for an item	About generated PL/SQL procedures About text field formatting  About derived unbound items
Unbound Type (unbound item only)	The type of unbound item. Web PL/SQL Generator supports Computed, SQL Aggregate, SQL Expression, Client-side function, Server-side function and Custom	About unbound items
Maximum Length (unbound item only)	If greater than 255, used to set the Query Length of generated items.	This property can be used to set the Maximum Length property of some generated items.
Usage Sequence	The order in which the items are displayed
Template/Library Object	Not used by Web PL/SQL Generator
Operations
Insert?	Indicates whether this item is displayed on the Insert Form. This means that the user can enter a value for the column when a new record is being created It should be unchecked (No) if the column value is to be generated automatically. If all items within a module component are unchecked (No), an Insert Form is not created	About Insert Forms
Update?	Indicates whether the user is allowed to update the value of this column using the View Form. If all items within a module component are unchecked (No), Update, Requery, Reset buttons are not created on the View Form.	About View Forms
Query		About Query Forms
Query?	Indicates whether this item is displayed on the Query Form. If unchecked (No), this item does not appear on the Query Form. If all items within a module component are unchecked (No), a Query Form is not created. When this is set to Always then the behavior is determined by other factors.	See Using the Query property
Range Search	Used to determine whether range searching is allowed for the item.  By default, Web PL/SQL Generator creates a pair of To/From for items based on DATE and non-key NUMERIC columns. However, this default can be overridden.
ConText Option (bound item only)	Determines whether Oracle interMedia (with Oracle 8i) or Oracle ConText (with Oracle7 or 8.0) cartridge text search facilities are required for the item.	About Oracle interMedia/ConText Cartridge
Display
Display?	Indicates whether this item is displayed on the View Form.	About View Forms
Prompt	The prompt (or caption) for the HTML form element.	About prompt layout
Display Type	The HTML form element type to use for data entry.	About HTML form elements in Web PL/SQL applications
Show Meaning?	Indicates whether the Value or Meaning properties of allowable values are displayed for the item. If set to <Null> the allowable value is displayed in the generated application. If set to 'Meaning Only' the Meaning is displayed. Web PL/SQL Generator does not support the 'Meaning Alongside code' option.	About allowable values
Width	The width of text fields on the Query Form, Insert Form and View Form.  Note: This property is only relevant if the Display Type of the item is 'Text'. If this property is undefined, the Default display length preference values are used instead.	About text boxes
Height	The number of lines to display in a generated text field or text list. Note: This property is only relevant if the Display Type of the item is 'Text' or 'Text List'.	About text boxes  About text lists
Alignment	Not used by Web PL/SQL Generator.
Format Mask	Defines how number, date or time information is displayed in the generated application. This value must be a valid SQL format model. For a date format mask to be Y2K-compliant, the year element must be set to one of the following: YYYY, RRRR, RR. Note: Web PL/SQL Generator does not support the Roman Numeral Format Mask (RN). If no format mask is entered, Web PL/SQL Generator uses the value of TXTDDF	About text field formatting  See the "SQL Language Reference Guide" for details of valid number and date formats. About date and time fields
Formatting	Applies formatting to a text item, using a PL/SQL function that returns HTML. Web PL/SQL Generator recognizes a standard range of HTML functions provided by the HyperText Functions (HTF) package within the PL/SQL Toolkit or Web PL/SQL Generator Formatting Library (WSGFL). The standard options are displayed on the Item Property Dialog. For example, BOLD, ITALIC, PREFORMAT, BLUE. You can also combine standard option values by separating them with a comma, for example BOLD, BLUE or ITALIC, GREEN. If you enter a custom function here, it must return VARCHAR2. The parameters within the function must also be defined as VARCHAR2.	About text field formatting
Wrap Style	Not used by Web PL/SQL Generator.
Item Group	The name of the item group that this item belongs to.
Context?	Indicates whether this item is displayed in the Record List.  If there are no Context items in the module component the Primary Key columns are used instead,  together with any columns which are marked as 'descriptors' within the column definition (Descriptor Sequence). If the Layout Style for the module component is 'List/Form' it is counter intuitive for all the items to be marked 'Context'.  If the Layout Style is 'Form' no Record List is created and therefore the Context property has no effect.	About Record Lists
User Text Areas (unbound item only	Not used by Web PL/SQL Generator.
Relative Tab Stops
Start Tab Stop	Not used by Web PL/SQL Generator.
End Tab Stop	Not used by Web PL/SQL Generator.
Align Prompt?	Not used by Web PL/SQL Generator.
Definition
Domain (unbound item only)	(Unbound items only) The name of a domain to be associated with this unbound item. If specified, the datatype, length fields and allowed values are derived from the domain definition.	About allowable values
Datatype	Indicates the datatype of the item, for example Date, Number, Char.	About date and time fields
Default Value	The default value used to populate the HTML form element when a new record is created. You can enter AutoGen types if you wish, for example DATETIME. These values are not case sensitive but you must add $$ before and after the AutoGen keyword. For example,$$DATETIME$$.	About default values
Default Value Type	Indicates whether the default value is a literal string or a function call.  When this is set to Literal, the literal string is returned. For example, if the Default Value is set to $$DATETIME$$ and the Default Value Type is set to Literal, then the value returned is the string "$$DATETIME$$". To return a date value, set this property to either Database Function Call or Client Function Call.	Note Web PL/SQL Generator generates the same code if the Default Value Type property is set to Client Function Call or to Database Function Call.
Optional?	Indicates whether validation code (JavaScript) is generated to ensure that the user provides values for these columns when creating or updating records.	About validation during data entry  When the value is set to 'Always', the effect depends on a number of other factors. See Using the Query Property
Ordering
Order By Sequence	The Sequence number defines the position within the ORDER BY.	About custom Record List queries
Sort Order	Indicates whether records are displayed in an ascending or descending order.	About custom Record List queries
Computed
Reset Level (unbound item only)	Used to set the reset level of the break group.	About Computed unbound items
Reset Group (unbound item only)	When you have a reset level of Named Group, enter the group name here.
SQL
Derivation Text (unbound item only)	(Unbound items only) An expression to derive a value for the generated item.  Use this property to create non-base table items. To ensure uniqueness, we recommend you refer to any columns in the derivation text using item names. To call a PL/SQL function or procedure, enter the statement containing the function call.	About Computed unbound items  About SQL aggregate unbound items  About SQL expression unbound items  About Server-side function unbound items  About Client-side function unbound items
PL/SQL Block	Not used by Web PL/SQL Generator.
Validation
Dynamic List? (unbound item only)	Not used by Web PL/SQL Generator.
Help
Hint	Not used by Web PL/SQL Generator.
User/Help Text	Not used by Web PL/SQL Generator.
Documentation
Comment	Not used by Web PL/SQL Generator.
Description	Not used by Web PL/SQL Generator.
Notes (bound item only)	Not used by Web PL/SQL Generator.


Repository item group properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Item group property	Use by Web PL/SQL Generator	Notes and related topics
Module Component	The name of the module component that contains this item group.
Name	Specifies the name of the item group.
Parent Item Group	Not used by Web PL/SQL Generator.
Template/Library Object	Not used by Web PL/SQL Generator.
Display
Prompt	Not used by Web PL/SQL Generator.
Layout Format	The only value used by Web PL/SQL Generator is STANDARD. This property is used when generating Record Lists with complex summaries	About Record Lists with complex summaries
Orientation	Not used by Web PL/SQL Generator
Stacked	Not used by Web PL/SQL Generator
Relative Tab Stops
Tab Stop Scope	Not used by Web PL/SQL Generator
Start Tab Stop	Not used by Web PL/SQL Generator
End Tab Stop	Not used by Web PL/SQL Generator
Reports Break Group
Break Group	Set this to Yes to generate a new break group.  This property is ignored when it is set to No.	About Record Lists with complex summaries
Break Group Direction	Not used by Web PL/SQL Generator.
Help
User/Help Text	Not used by Web PL/SQL Generator.
Documentation
Description	Not used by Web PL/SQL Generator.
Notes	Not used by Web PL/SQL Generator.


Repository List of Value properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Module property	Use by Web PL/SQL Generator	Notes and related topics
Name	Name of List of Values
Short Description	Not used by Web PL/SQL Generator.
Template/Library Object	Not used by Web PL/SQL Generator.
Usage Sequence	Not used by Web PL/SQL Generator.
Item	The item associated with this LOV
Return List	Item in the generated form into which the LOV returns a value.
Filter before Display? or Long List?	Controls the number of records displayed in a list of values (LOV) window. If set to Yes,  the user is prompted to enter search criteria to restrict the number of records displayed (referred to as a long list). If set to No, the LOV window lists all available records.	Querying LOVs automatically
Restriction
Used For	The LOV can be used for one or both of: • Query • Data Entry (update or insert) An item can have up to two LOVs associated with it, but they must be for different modes. That is, an item can have: • only one LOV for Query • only one LOV for Data Entry • only one LOV for Query and Data Entry • two LOVs, one for each of Query and Data Entry
Additional Restriction	An entry here overrides any restrictive clauses that may be present in the module component table usages. When this is not set, and you have restrictive clauses on the module component table usages, the clauses are merged into the LOV query.
Restriction Clause	The part of the SQL query to which the Additional Restriction property value is added. When you leave this as the default, the generator decides where to use the Additional Restriction property value,
Placement
X Position	Not used by Web PL/SQL Generator.
Y Position	Not used by Web PL/SQL Generator.
Display
Title	Title property of generated LOV	This property is not used for a particular LOV inclusion if that LOV inclusion's Title Override property is also set.
Layout Style	Not used by Web PL/SQL Generator
Rows Displayed	Not used by Web PL/SQL Generator
TItle Override	Title property of generated LOV	If specified for a particular inclusion of an LOV, this property overrides the Title property.
Size
Width	Not used by Web PL/SQL Generator
Height	Not used by Web PL/SQL Generator
Help
User/Help Text	Not used by Web PL/SQL Generator
Help Context Id Prefix	Not used by Web PL/SQL Generator
Description
Description	Not used by Web PL/SQL Generator
Notes	Not used by Web PL/SQL Generator


Repository module properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Module property	Use by Web PL/SQL Generator	Notes and related topics
Short Name	Used to name generated PL/SQL files and packages if the Implementation Name is not defined. In this context the name is limited by any filename length restriction.	About generated files and packages
Name	Not used by Web PL/SQL Generator.
Language	To create a Web PL/SQL module, choose Oracle Web PL/SQL. Web PL/SQL applications can also be generated from modules where the Language is defined as Oracle Forms, Oracle Reports, or Visual Basic.
Purpose	The purpose or short description for documentation purposes.
Implementation Name	Used to name PL/SQL files and packages generated from this module. If the Implementation Name is omitted the Short Name is used instead. If you have set a length restriction for generated files, ensure this value does not exceed the maximum length allowed, otherwise generation will be unsuccessful.	About generated files and packages
Module Type	Web PL/SQL Generator only processes modules if the type is <null> or MENU, that is LIBRARY modules are ignored.
Display
Top Title	The default title for the module Startup Page. If the Menu Style preference is set to LONG TITLE, this text is also displayed within hyperlinks to this module.	About titles and headings  About navigation hyperlinks and menus
Bottom Title	Not used by Web PL/SQL Generator.
Short Title	If the Menu Style preference is set to SHORT TITLE, this text is displayed within hyperlinks to this module.	About navigation hyperlinks and menus
Layout Format	Not used by Web PL/SQL Generator.
Invocation
Status	Not used by Web PL/SQL Generator.
Candidate?	Indicates whether module was created by the Application Design Transformer .	To generate from a module created by the Application Design Transformer, you must accept the candidate module by setting this property to No.
Prevent Generation?	Do not generate this module.
Size	Not used by Web PL/SQL Generator.
Complexity	Not used by Web PL/SQL Generator.
Project	Not used by Web PL/SQL Generator.
Activity	Not used by Web PL/SQL Generator.
Task	Not used by Web PL/SQL Generator.
Time Estimate	Not used by Web PL/SQL Generator.
Estimate Units	Not used by Web PL/SQL Generator.
Invocation
Top Level?	Not used by Web PL/SQL Generator.
Command Line	The URL used when generating calls to this module. Typically the Command Line should not be defined as the Generator determines the appropriate URL to use when linking modules. If the data source of this module (and its sub network) is different from the database used by the calling module, use this property to specify the new location and PL/SQL procedure to invoke. Alternatively, if this module represents a static page on the WWW, use this property to specify its URL.	About data access from multiple Oracle Application Servers  About navigation hyperlinks and menus in Web PL/SQL application
Return Type	Not used by Web PL/SQL Generator.
Runtime Path	Not used by Web PL/SQL Generator.
Source
Source Path	Not used by Web PL/SQL Generator.
Help
User/Help Text	User text for the module Startup Page and About Page. Text for the Startup Page normally serves to introduce the module, or give instructions. If this is the top-level module for your application, this text will be displayed on the first page of your generated application.	About user text
Help File Name	Not used by Web PL/SQL Generator.
Help Graphic File Name	Not used by Web PL/SQL Generator.
Help Context Id Prefix	Not used by Web PL/SQL Generator.
Documentation
Release Notes	Not used by Web PL/SQL Generator.
Description	Not used by Web PL/SQL Generator.
Notes	Not used by Web PL/SQL Generator.


Repository module component properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Module component property	Use by Web PL/SQL Generator	Notes and related topics
Name	The name of the PL/SQL packages generated from this module component. It must not begin with a digit, or contain characters other than alphanumeric characters and _ $ #.  Do not use any PL/SQL, or SQL reserved words.  The combined length of the Module Implementation Name and the Module Component Name must not exceed 29 characters.	About generated files and packages
Short Description	Not used by Web PL/SQL Generator.
Template/Library Object	Not used by Web PL/SQL Generator.
Language	Web PL/SQL Generator processes module components when the Language is Form, Reports, Visual Basic or  Web PL/SQL.
Module Level?	Not used by Web PL/SQL Generator.
Usage Sequence	Not used by Web PL/SQL Generator.
Placement
Window	Not used by Web PL/SQL Generator.
Placement	Not used by Web PL/SQL Generator.
Right of component	Not used by Web PL/SQL Generator.
Placement Template/Library Obj	Not used by Web PL/SQL Generator.
X Position	Not used by Web PL/SQL Generator.
Y Position	Not used by Web PL/SQL Generator.
Data
Datasource Type	Web PL/SQL applications display data sourced from a QUERY.
Datatarget Type	Web PL/SQL applications use PL/SQL PROCEDURES to write data.
Operations
Insert?	Determines whether records can be added using this module component.	About Insert Forms
Delete?	Determines whether records can be deleted using this module component.	About Delete Confirmation Form
Update?	Determines whether records can be updated using this module component.	About View Forms
Query
Query?	Determines whether QUERY operations are allowed using this module component.	About Query Forms
Autoquery?	For masterless module components this determines whether the Record List is queried automatically on startup (Yes) or whether a Query Form is displayed (No). If this property is set to Default Behavior, Web PL/SQL Generator checks whether there is a Query Form is associated with the module component, that is, whether one or more items are marked Query. If it does not have a Query Form, the Record List is automatically queried.	About custom Record List queries
Display
Title	The default title for HTML documents generated from this module component. The format of these titles can be customized using preferences.	About generated HTML documents  About titles and headings
Layout Style	The overall layout of the module component in the generated Web PL/SQL application. Valid options are List, List/Form and Form.	About layout styles
Rows Displayed	This property is used: • to set the preferred number of rows displayed in the Record List generated for List style module components only • to generate multi-row View Forms from Form and List/Form style module components. In this case, the Rows Displayed property has no effect on the Record List.	Designing multi-row View Forms  Using the Rows Displayed property with Record Lists
Overflow	Not used by Web PL/SQL Generator.
Size
Width	Not used by Web PL/SQL Generator.
Height	Not used by Web PL/SQL Generator.
View Width	Not used by Web PL/SQL Generator.
View Height	Not used by Web PL/SQL Generator.
Help
User/Help Text	User text for the HTML documents generated for this module component, that is Query Form, Record List, View Form, Insert Form and Delete Form.	About user text
Help Context Id Prefix	Not used by Web PL/SQL Generator
Documentation
Description	Not used by Web PL/SQL Generator
Notes	Not used by Web PL/SQL Generator


Rows Displayed property and Record Lists (Web)
Rows Displayed property and Record Lists

This property only has an effect on the Record List when the Layout Style is List. When the Layout Style is Form or List/Form, this property affects the View Form. About

When the Rows Displayed property is set to a value other than 0 or <null>, the value of this property determines the number of rows displayed.

When set to 0 or <null>, or when the Layout Style is List/Form the ZONLRS preference value is used instead (default=10).

When selecting a suitable record set size, take ZONLTC into consideration. If the size you specify is not an exact multiple of ZONLTC, the record set size is adjusted automatically to minimize the number of empty cells in the Record List.

Note: The value of this property is ignored if the Record List appears on the same page as its master's View Form. In this case all the records are displayed, up to the maximum number of rows (MAX_ROWS) which can be returned. The value of MAX_ROWS (default =1000) is specified within the Web PL/SQL Generator Library (WSGL) package, oracle_home\cgenw61\cvwetc\WSGL.PKS.


Repository table usage properties used by Web PL/SQL Generator

Related Topics

Use Design Editor to set these properties. How

Table usage property	Use by Web PL/SQL Generator	Notes and related topics
SQL Query Set	Not used by Web PL/SQL Generator
Table/View/Materialized View	Not used by Web PL/SQL Generator
Usage Alias	Used within the FROM clause of generated SQL statements and to identify columns in PL/SQL procedures and function calls.	About generated PL/SQL procedures
Name in Database	The name to be used instead of the table/view/materialized view name within the FROM clause of generated queries. This name is used without any user/schema prefix, regardless of the preference settings (TABOWN). A suggestion list displays the Global Synonym Names for all implementations of the relation but free-format text may also be entered.	TABOWN
Partition	Not used by Web PL/SQL Generator
Usage Type	Identifies whether the table usage is a base or lookup table usage within the module component.	About module definitions and data usages
Template/Library Object	Not used by Web PL/SQL Generator
Query
WHERE Clause of Query	A SQL WHERE condition to be applied to the SELECT statement used to query the module component's records.  Use this property to restrict the records displayed within a particular Record List.	About custom Record List queries
Select Distinct?	Indicates whether DISTINCT is to be added to the SELECT statement used to query the module component's records.  Note:If you set this to Yes the Record List will not have hyperlinks to the View Form.
Link
Link to	Displays the alias of the table usage that this table usage is linked to.
Via Join Constraint	Displays the foreign key that links this table usage to another table usage.
Outer Join?	When set to Yes, Web PL/SQL Generator adds an outer join operator (+) to the generated query. When set to Default Behavior, the Generator adds an outer join operator (+) to the generated query if this is a lookup table usage and the foreign key column to the lookup table usage is optional.	When the Query property on an item is set to Always, the value of this property can affect the way that queries are handled. See Using the Query property
Lookup
Validation WHERE Clause	A SQL condition to perform foreign key validation and restrict records displayed within the lookup LOV.	Defining WHERE conditions for LOV validation
Sub Query
Not Exists?	Not used by Web PL/SQL Generator
Tree Walk
Via Pig's Ear Join Constraint	Specifies the recursive join constraint to use.
Via Network Join Constraint	Specifies the module network link to use
Connect By Clause	A CONNECT BY clause which restricts the rows returned in a hierarchy of data.
Start With Clause	A START WITH clause which provides a starting point for the hierarchy of data.
Direction	Not used by Web PL/SQL Generator
Documentation
Comment	Not used by Web PL/SQL Generator
Description	Not used by Web PL/SQL Generator
Notes	Not used by Web PL/SQL Generator


Repository window properties used by Web PL/SQL Generator

Related Topics

Web PL/SQL Generator supports the concept of Windows but uses none of the properties. Use Design Editor to create windows. How

Window property	Use by Web PL/SQL Generator	Notes and related topics
Name	Windows determine whether master-detail module components appear on the same, or separate, Web pages. Same page layouts can be attained only if the layout style of the detail module component is 'List' and the detail module component does not generate a Query Form, that is no items are marked 'Query'.	Defining basic Web PL/SQL module layout in Display View


About generated code for Web PL/SQL applications

Related Topics

Derivation code

About column values generated by the Table API

About derived unbound items

Validation code

About validation during data entry

About check constraint validation

Generated code

About generated files and packages

About generated PL/SQL procedures

Library code

General library code (WSGL)

Message library (WSGLM)

JavaScript library code (WSGJSL)

Oracle interMedia/ConText Cartridge library (WSGOCOL)

SQL to JavaScript conversion

Keyword and Operator Conversion Table

SQL Functions Converted to Built-in JavaScript Functions

SQL Functions Converted to WSGJSL Library Functions

Table API code

About the Table API


About validation during data entry in Web PL/SQL applications
About validation during data entry

Related Topics

Web PL/SQL Generator generates additional validation code to ensure that any data entered using the Insert Form or View Form is valid. Specifically, such code is generated for any enterable HTML form element that is unable to perform its own validation, that is text fields and text boxes.

Server-side validation

If the browser running the application does not support JavaScript, all the necessary data validation takes place on the server using generated Table API code. About

Client-side validation

The following JavaScript validation functions (defined within the WSGJSL library package) are used to perform the validation:

Mandatory values defined	JSLNotNull
Correct precision	JSLChkNumPrecision
Correct scale	JSLChkNumScale
Correct range	JSLCheckRange
Correct length	JSLChkMaxLength
Convert to uppercase	JSLMakeUpper
Check constraints enforced	JSLChkConstraint
Theses validation functions are generated and embedded as required, into the head section of the HTML document in which they are to be used, that is an Insert Form or View Form. The generated code and associated error message text appears within the <SCRIPT> tag.

In general, the error message text is derived from the translatable WSGLM.PKS. The exception here is constraint violation message text which is sourced from generated Table API code. About

Mandatory values defined  (JSLNotNull)

If an item is defined as mandatory (Optional flag is unchecked) code is generated to check that the user has entered a value for the associated HTML form element before data is sent to the server. If a mandatory value is omitted, an error message is displayed and the insert/update operation is canceled:

<item prompt> a value must be entered

Precision/scale respects underlying column (JSLChkNumPrecision and JSLChkNumScale)

JavaScript code is generated if the datatype of an underlying column is 'Number' and a precision/scale is defined (Maximum Length/Decimal Place properties). This code checks that values entered by the user respect the precision and scale defined:

JSLChkNumPrecision - checks the number of digits before the decimal point.

•	JSLChkNumScale - checks the number of digits after the decimal point.

If the maximum number of digits is exceeded the appropriate error message is displayed and the insert/update operation is canceled:

<item prompt> Value cannot have more than <precision> digits before the decimal point

<item prompt> Value cannot have more than <scale> decimal places

<item prompt> Value cannot contain decimal places

Number value within range (JSLCheckRange)

JavaScript code is generated if the datatype of an underlying column is 'Number' and a single range of valid values is defined (Value and High Value properties). This code ensures that values entered by the user are within the permitted range of numeric values for the column.

JSLCheckRange, checks whether values are above or below the pre-defined range. If a value is outside the given range an error message is displayed and the insert/update operation is canceled:

<item prompt> Value outside of allowed range <low value> to <high value>

Text value correct length (JSLChkMaxLength)

JavaScript code is generated for multi-line text boxes if the Maximum Length property is defined against the underlying column. This code ensures that the value entered by the user is not longer than the underlying column permits.

If the maximum length is exceeded an error message is displayed and the insert/update operation is canceled:

<item prompt> Value exceeds the maximum column length <max length>

Text value converted to uppercase (JSLMakeUpper)

If an underlying column is defined as Uppercase (Uppercase property) code is generated to ensure that any value entered by the user is converted to uppercase characters before data is sent to the server.

The conversion to uppercase takes place on the JavaScript 'OnChange' event, that is when the form element loses focus and the value has changed.

Check constraints enforced (JSLChkConstraint)

If any check constraints are defined against the underlying table, code is generated to ensure that all the values entered by the user meet the constraint criteria defined. About

If a value fails to meet the requirements of a particular check constraint a user-defined error message is displayed and the insert/update operation is canceled. This message text is sourced from generated Table API code. About

•	Note:	If the constraint is only being validated in the Client (Validate In property is set to Client) the error message will be hardcoded within the generated Web PL/SQL application.


Image locations on the Oracle Application Server

Related Topics

Any images you want to display within a generated application must reside on your Oracle9i Application Server file system and be in a format supported by the web browser you are using, such as GIF format.

The location of the image files need to be specified at several different places within the module design, for example:

•	MODBGR defines the name and location of an image file to be displayed in the background of pages generated using the default style template, for example /images/general/backgrd.gif
•	IMGIFP defines the location of image files displayed on a View Form, that is when Display Type or Formatting is 'IMAGE'. For example, /images/products/
•	MODCLH defines the name and location of an image file for custom bullets, for example htf.img(/images/general/red_ball.gif)
•	htf.img function can be embedded within static text areas, for example htf.img(/images/general/logo.gif).
•	SYSIMG defines the location of the system images that are used to produce tick boxes in generated multi-row View Forms. This path has to be a mapped to a virtual directory.
Important:	The application server supports the concept of a "virtual" or mapped file system. If the image directory you want to define is mapped to a "virtual" directory, it is the mapped path name which should be specified within the module design.

Directory mapping

Mapped file systems enable the URL used to reference a set of files (directory) to remain constant, even if the files are moved. The translation of the visible "virtual" path to the physical path is performed at runtime, based on mappings set out in the server configuration file.

The following is an example for UNIX systems, where:

Physical Directory	is mapped to... 	Virtual Directory
/usr/disk1/images/products 	/images/products

For this example, the URL http://www.acme.com/images/products/info.html, is actually located on the file system of www.acme.com as:

/usr/disk1/images/products/info.html

For more information on how to set up directory mappings, refer to the Oracle9i Application Server online documentation.


Custom PL/SQL function - page footer example

Related Topics

The sample package below (acme) contains a custom PL/SQL function (standard_footer) that makes use of the WSGL variable 'InBottomFrame'. This variable allows you to define different footer characteristics, depending on whether or not the footer appears in a frame:

Sample package:

CREATE OR REPLACE PACKAGE acme IS

FUNCTION standard_footer return varchar2;

END acme;

/

CREATE OR REPLACE PACKAGE BODY acme IS

FUNCTION standard_footer return varchar2 is

BEGIN

   IF wsgl.inbottomframe

   THEN

   return htf.anchor2('http://www.acme.com:80/sales/owa/home$.startup'

                      , 'Return to Acme Corporation Home Page', ctarget=>'_top');

   ELSE

   return htf.line ||

          htf.anchor2('http://www.acme.com:80/sales/owa/home$.startup'

                      , 'Return to Acme Corporation Home Page', ctarget=>'_top');

  END IF;

END standard_footer;

END acme;

/

This PL/SQL function displays a hyperlink 'Return to ACME Corporation Home Page' which points to the URL 'http://www.acme.com:80/sales/owa/home$.startup'. If the footer does not appear in a frame, an additional horizontal line (htf.line) will be displayed above the hyperlink. This is illustrated below:

To display this footer within a generated application you must define the function call 'acme.standard_footer' within the MODSFT preference. Also, remember that the custom package must be installed in the Web PL/SQL account (in this case the one defined by the 'sales' DAD) and declared within the PKGLST preference.


SQL to JavaScript conversion tables

Related Topics

This lists the SQL functions, keywords and operators that are supported by Web PL/SQL Generator for client-side calculations.

Refer to the tables below for detailed conversion information:

•	Keyword and operator conversion table

•	SQL functions converted to built-in JavaScript functions

•	SQL functions converted to WSGJSL JavaScript library functions

Keyword and operator conversion table

SQL	JavaScript
Arithmetic Operators
+ (unary), - (unary), /, *, +, -	Same
Logical Operators
NOT, AND, OR, XOR	Replaced with   !, &&, ||, ^.
Character Operators & Literals
||	Replaced with   +
'STRING'	Replaced with   "STRING"
'DATE'	Not supported.
Comparison Operators
=	Replaced with   ==
>, <, <=. >=	Same
!=, ^=, ¬=, <>	All inequality operators replaced with   !=
x IS [NOT] NULL	Replaced with   x !=  ""
SQL functions converted to built-in JavaScript functions

SQL	JavaScript
ABS(n)	math.abs(n)
CEIL(n)	math.ceil(n)
COS(n)	math.cos(n)
EXP(n)	math.exp(n)
FLOOR(n)	math.floor(n)
LN(n)	math.log(n)
POWER(m, n)	math.pow(m, n)
SIN(n)	math.sin(n)
SQRT(n)	math.sqrt(n)
TAN(n)	math.tan(n)
SQL functions converted to WSGJSL JavaScript library functions

SQL	JavaScript
CONCAT(char1,char2)	JSLConcat(char1,char2)
INITCAP(char)	JSLInitCap(char)
INSTR(char1, char2, [, n [, m]])	JSLInstr(char1, char2, n)
LENGTH(string)	JSLLength(string)
LOWER(string)	JSLLower(string)
LPAD (char1, n [, char2])	JSLLPad (char1, n, char2)
LTRIM(char1, char2)	JSLLTrim(char1, char2)
NVL(expr1,expr2)	JSLNvl(expr1, expr2)
REPLACE(char, searchstr[, replacestr)	JSLRTrim(char1, char2, char3)
ROUND(n[,m])	JSLRound(n)   : m is ignored
RPAD (char1, n [, char2])	JSLRPad (char1, n, char2)
RTRIM(char1, char2)	JSLRTrim(char1, char2)
SIGN(n)	JSLSign(n)
SUBSTR(char, m [, n])	JSLSubstr(char, m, n)
TRUNC(n [, m])	JSLTrunc(n, m)
UPPER(string)	JSLUpper(string)


current working directory

Initially the working directory for Oracle Designer is \ORACLE_HOME\BIN.


Adding more functionality to the Web PL/SQL module design

Related Topics

Once you are satisfied with your basic module design, you may want to introduce some of the more advanced features listed here.

Action items

Defining custom action items

Defining module component navigation action items

Defining module navigation action items

Calculated HTML form elements

Defining computed unbound items

Defining SQL aggregate unbound items

Defining SQL expression unbound items

Defining SQL function unbound items

Defining JavaScript function unbound items

Defining custom unbound items

Multi-row forms

Defining multi-row View Forms

Record List queries

Defining restrictive WHERE conditions

Displaying records in a specific order

Adding ConText Option search facilities to a Query Form

Using module arguments to restrict record queries

Data entry

Defining a list of allowable values

Using sequences to provide unique values

Specifying default values

Defining optional/mandatory fields

Defining check constraints

Providing messages for constraint violations

Format data

Displaying values with HTML formatting

Displaying values with format masks

User text areas

Defining user text for HTML documents

Embedding images within user text

Embedding email addresses within user text

Embedding URL hyperlinks within user text

Embedding calls to custom PL/SQL functions

User application logic

Entering user-defined event code

Entering user-defined named routines


About action items in Web PL/SQL applications

Related Topics

Action items can be used in Web PL/SQL applications to perform two specific types of function: to navigate to another module or module component, or to execute a specific piece of user-defined application logic. Action items can be generated against windows or module components, and are displayed as buttons, hyperlinks or image links.

Web PL/SQL Generator supports two types of action item:

• Navigation	Generates a button or a link that allows a user to navigate to a module component in the same module, or to another module. About
• Custom	Generates a button or a link that executes code on an event. About
A set of repository action item properties define how these items are to be generated.

Action items on the Module Diagram

	On the Module Diagram (in Display View)., action items are represented as buttons. In Display View, you can drag and drop action items on the Module Diagram to define the order in which they are displayed in the application. This example shows action items held against a module component. Action items can also be defined against a window.
Action items defined against a module component

When an action item is defined at module component level it will not appear on the Startup Page, even though AILFRM may show this as one of the forms to display the action item on. The only way to display an action item on a Startup Page is to define it at window level.

Action items defined against a window

When an action item is defined at window level the preference AILFRM determines the forms within the window on which it will appear.


 About navigation action items in Web PL/SQL applications

Related Topics

This type of action item allows navigation within a generated application, or to another generated application. The Web PL/SQL Generator supports two kinds of navigation action items:

to a module component within the same module	These navigation action items can navigate to a specific zone within the same module. How If two module components in the same module are linked together using a key based link and the module components do not appear in the same window, a navigation action item is created automatically.
to a different module	These navigation action items can be created to navigate to a different module, but not a specific zone within that module. How
In Web PL/SQL modules, navigation action items can be defined against module components and windows.

Button generation

By default, navigation action items are generated as buttons.

Link generation

Navigation action items can also be implemented as hyperlink items or image link items.

Display order

The display order of action items within a zone or window can be modified by dragging and dropping the action items on the Module Diagram (in Display View).


About custom action items in Web PL/SQL applications

Related Topics

This type of action item executes a specific piece of user defined code on one of the following JavaScript events: OnClick, OnMouseOver and OnMouseOut.

In Web PL/SQL modules, custom action items can be defined against module components or windows. How

Button generation

By default, custom action items are generated as buttons.

Link generation

Custom action items can also be implemented as hyperlink items or image link items.

Display order

The display order of action items within a zone or window can be modified by dragging and dropping the action items on the Module Diagram (in Display View).

Application logic

User defined code may be specified against custom action items. About


Defining custom action items

Related Topics 	Where am I?

To generate a button or link item that allows a user to navigate to a module component on a different window, define a module component navigation action item. About

To define a module component navigation action item:

1.	In Design Editor, open the Module Diagram in Display View. How

2.	Choose Options→Use Property Dialogs.

3.	Click [image] and then click the module component or window where the action item is to appear.

4.	Select Navigation within the Module and then click Next.

5. 	Enter a Name for the action item and a suitable display Prompt.

6.	Click Next and choose the module component (or zone) this action item will navigate to in the generated application.

7.	Click Next and specify display options for the action item:

•	to display the action item as a button, enter Y in Create Button? to display as a hyperlink, set CreateButton to N

•	to display as an image link, enter the name of the image file in the Icon Name field.

8.	Click Finish to save.


Defining module navigation action items

Related Topics 	Where am I?

To generate a button or menu item that allows a user to navigate to another PL/SQL module or a module in a different language, define a module navigation action item. About

To define a module navigation action item:

1.	In Design Editor, open the Module Diagram in Display View. How

2.	Choose Options→Use Property Dialogs.

3.	Click [image] and then click the module component or window where the action item is to appear.

4.	Select Navigation to a different Module and then click Next.

5. 	Enter a Name for the action item and a suitable display Prompt.

6.	Click Next and choose the module this action item will navigate to in the generated application.

7.	Click Next and specify display options for the action item:

•	to display the action item as a button, enter Y in Create Button? to display as a hyperlink, set CreateButton to N

•	to display as an image link, enter the name of the image in the Icon Name field.

8.	Click Finish to save.


Defining module component navigation items

Related Topics 	Where am I?

To generate a button or menu item that allows a user to navigate to a module component on a different window, define a module component navigation action item. About

To define a module component navigation action item:

1.	In Design Editor, open the Module Diagram in Display View. How

2.	Choose Options→Use Property Dialogs.

3.	Click [image] and then click the module component or window where the action item is to appear.

4.	Select Navigation within the Module and then click Next.

5. 	Enter a Name for the action item and a suitable display Prompt.

6.	Click Next and choose the module component (or zone) this action item will navigate to in the generated application.

7.	Click Next and specify display options for the action item:

•	to display the action item as a button, enter Y in Create Button? to display as a hyperlink, set CreateButton to N

•	to display as an image link, enter the name of the image in the Icon Name field.

8.	Click Finish to save.


About unbound items in Web PL/SQL applications

Related Topics

Unbound items can be used to record the use of an item whose value cannot be calculated from a single column. Web PL/SQL Generator supports six types of unbound item.

To generate an HTML form element that...	Define...
Calculates values from a computed function.	A Computed unbound item How
Calculates values from a SQL Aggregate.	A SQL Aggregate unbound item How
Calculates values from a SQL Expression.	A SQL Expression unbound item How
Calculates values from a PL/SQL function.	A Server-side function unbound item How
Calculates values from a JavaScript function.	A Client-side function unbound item How
Executes user defined code on an event.	A Custom unbound item How
The values are calculated and displayed when the application is run but are not saved back to the database. They are presented to the user as read-only text.

Computed unbound items

A computed unbound item is a calculation, such as a subtotal or grand total, that is performed on the values of a single item. Computed unbound items can only be displayed on Record Lists. About

SQL aggregate unbound items

A SQL aggregate unbound item is an item that computes a value by applying a SQL aggregation function to a column. SQL aggregate unbound items can only be displayed on Record Lists. About

SQL expression unbound items

If Web PL/SQL Generator can translate the SQL expression to JavaScript, values can be calculated within the browser, as well as on the server. About

Server-side function unbound items

The values are calculated at the time the data is queried from the database. About

Client-side function unbound items

Calculated values are calculated within the browser, providing it supports JavaScript. About

Custom unbound items

Use this type of unbound item to create an item of any type. The item may be, for example, a free text field that will be inserted/updated in another table, or a form of custom validation. About


About computed unbound items in Web PL/SQL applications
About computed unbound items

Related Topics

This type of unbound item can be used to generate an HTML form element on a Record List that derives its value from a calculation, such as a subtotal or a grand total. About

For information on how to define a Computed unbound item, refer to Defining computed unbound items

When you create a Computed unbound item, you set the following properties:

Item used	The value or values of a computed unbound item are calculated by summarizing data retrieved from another item.
Function	The function defines how to compute the value of the computed unbound item. Oracle Designer provides default functions to calculate the following types of computed summaries:
	• average value	count of values
	• first or last value	• maximum or minimum value
	• percentage of a total	• standard deviation
	• sum of values	variance
Reset level	The reset level specifies where the summary is calculated. You can calculate a summary at the following levels:
	Current group	Calculates a group summary.
	Parent group	Calculates a summary for each record in the master group.
	Module	Creates a report-level summary
	Named group	Calculates a summary using the specified break group. Use this option if you are defining a summary for a Record List that contains more than one break group. If you use this option you also need to specify the name of the break group.


Defining computed unbound items

Related Topics	Where am I?

To generate a HTML form element on a Record List whose value is derived from a calculation involving other columns in the same module component, define a computed unbound item. About

To create an unbound item using a module diagram:

1.	Open the correct module diagram in the Design Editor. How

2.	Choose Options→Use Property Dialogs.

3.	Choose View→Display View. About

4.	Click [image] and then click the module component.

The snap line indicates where the unbound item will be created.

5.	Enter a Name for the unbound item and set the Unbound Type property to Computed.

6.	Click Next and enter the expression you want to use to calculate values for this item.

Tip:	If you are using Property Palettes this is the Derivation Text property.

7.	Click Next and choose the datatype of the calculated item.

8.	Click Next and set the following display properties as required:

Prompt	Context?
Display Type	Width
Formatting	Height
Format Mask
Note:	The Context? property must be set for the item to appear on the Record List.

9.	Set the computed unbound item preferences. Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

10.	Select the Record List branch on the preference tree:

a.	(Optional) You can specify that a horizontal line is displayed to separate data rows from computed item rows on the Record List using ZONLSS .

b.	(Optional) You can specify whether the prompt for aa computed item is displayed immediately to the left of the item value, or in the same column as the last item in the break group using ZONLPP .

9.	Click Finish to save.

Note:	To change the order in which unbound items appear in the generated application, click an unbound item using the right mouse button and then click Resequence Items.


About SQL aggregate unbound items in Web PL/SQL applications
About SQL aggregate unbound items

Related Topics

This type of unbound item can be used to generate an HTML form element that calculates its value by applying a SQL aggregation function to a column. You can define an unbound item using Design Editor and use the Derivation Text property to enter the SQL aggregation function. How

The initial value is populated when the Record List is displayed.

In the example above, TOTAL_EMPLOYEES is a SQL Aggregate unbound item, with the Derivation Text property set to

count(emp.empno)

Web PL/SQL Generator includes the SQL aggregate summary item or items in the query generated for the module component. Web PL/SQL Generator includes an aggregate item in the generated query either by adding it as a single item in the SELECT list, or by including it in an embedded table.

A SQL aggregate item is added to the SELECT list when only one aggregate item is defined for the module component. In all other cases, Web PL/SQL Generator adds the SQL aggregate item as an embedded table in the generated query.

The SQL aggregate calculation is an expression that can include references to any item in the current module component. The expression can also include literal values, for example:

count(title) + 10

SQL aggregates of base table or lookup table columns

You can create a SQL aggregate item to summarize columns in a base table or lookup table usage. When you define a SQL aggregate summary item in this way, the module component containing the SQL aggregate item is known as a multiple-row SQL aggregate (MRSA).

Note:	An MRSA module component cannot be the master in a master-detail relationship using a key based link, and it will not display hyperlinks to the View Form.

SQL aggregates of non-base table columns

You can create a SQL aggregate item to summarize columns in tables other than the base table and its lookups. To do this you must define a Single Row SQL Aggregate (SRSA) table usage for the non-base table.

Note:	If you have a SQL aggregate summary item that refers to columns from more than one table, you should make sure that the expression will produce a meaningful result. For example the SQL aggregate expression:

SUM(EMP.SAL) + SUM(DEPT.OVERHEAD)

would not return a meaningful result because OVERHEAD is the overhead for the entire department, not a single employee. However:

SUM(EMP.SAL) + SUM(DEPT.EMP_BONUS)

would return a meaningful result because EMP_BONUS is the fixed bonus amount to be paid to each person in the department.

For information about how to create SQL aggregate summary items, see Defining calculated items (SQL Aggregate)


Defining SQL aggregate unbound items

Related Topics	Where am I?

To generate a HTML form element whose value is calculated from a SQL expression calculation involving other columns in the same module component, define a SQL expression unbound item. About

To create an unbound item using a module diagram:

1.	Open the correct module diagram in the Design Editor. How

2.	Choose Options→Use Property Dialogs.

3.	Choose View→Display View. About

4.	Click [image] and then click the module component.

The snap line indicates where the unbound item will be created.

5.	Enter a Name for the unbound item and set the Unbound Type property to SQL Expression.

6.	Click Next and enter the SQL expression you want to use to calculate values for this item.

Tip:	If you are using Property Palettes this is the Derivation Text property.

The values can be calculated and displayed dynamically during data entry, providing that Web PL/SQL Generator can convert all the SQL functions, keywords and operators used within the Derivation Text expression to JavaScript. About

7.	Click Next and choose the datatype of the calculated item.

8.	Click Next and set the following display properties as required:

Prompt	Context?
Display Type	Width
Formatting	Height
Format Mask
Note:	The Context? property must be set for the item to appear on the Record List.

9.	Click Finish to save.

10.	To change the order in which unbound items appear in the generated application, click an unbound item using the right mouse button and then click Resequence Items.


About SQL expression unbound items in Web PL/SQL applications
About SQL expression unbound items

Related Topics

This type of unbound item can be used to generate an HTML form element that calculates its value from a SQL expression. You can define an unbound item using Design Editor and use the Derivation Text property to enter the expression calculation. How

The initial value is populated when the data is queried from the database and it presented to the user as read-only text. If a value within the Derivation Text expression changes, the new value can be calculated on the client, or the server.

Client-side calculation using JavaScript

If Web PL/SQL Generator can translate the SQL expression into JavaScript and the client browser supports JavaScript, the value can be calculated and displayed dynamically during data entry, that is before the record is submitted to the server. Changes to calculated item values are displayed whenever a value within the Derivation Text expression changes, that is on the JavaScript 'OnChange' event.

Dynamic updates to calculated item fields can take place providing that:

•	all SQL functions, keywords and operators used in the Derivation Text expression are supported by Web PL/SQL Generator. For more information, including lists of the supported functions, keywords and operators, refer to the SQL to Javascript conversion table

Note:	SQL date functions cannot be converted to JavaScript.

•	all items referenced within the SQL expression appear on the HTML document where dynamic calculations are required, that is Insert Form (Insert=Yes), View Form (Update=Yes).

Server-side calculation

If a browser does not support JavaScript or a SQL function, keyword, or operator used within the expression is not supported by Web PL/SQL Generator, the calculations can only take place on the server. This means that changes to calculated item fields are displayed only after a record is refreshed. Because the calculation takes place on the server, all SQL functions, keywords and operators are supported. For more information, refer to the Oracle8 Server SQL Reference manual.

Display properties

The display characteristics of unbound items are defined using the same repository properties as bound items. About

Examples

If you have the following items in an Employees module component:

SAL, COMM, FIRST_NAME, LAST_NAME

You can create unbound items that calculate values from the following SQL expressions:

Unbound Item	Derivation Text expression
MONTHLY_SALARY	SAL/12
TOTAL_SALARY	SAL + nvl(COMM,0)
FULL_NAME	FIRST_NAME || ' ' || LAST_NAME


Defining SQL expression unbound items

Related Topics	Where am I?

To generate a HTML form element whose value is calculated from a SQL expression calculation involving other columns in the same module component, define a SQL expression unbound item. About

To create an unbound item using a module diagram:

1.	Open the correct module diagram in the Design Editor. How

2.	Choose Options→Use Property Dialogs.

3.	Choose View→Display View. About

4.	Click [image] and then click the module component.

The snap line indicates where the unbound item will be created.

5.	Enter a Name for the unbound item and set the Unbound Type property to SQL Expression.

6.	Click Next and enter the SQL expression you want to use to calculate values for this item.

Tip:	If you are using Property Palettes this is the Derivation Text property.

The values can be calculated and displayed dynamically during data entry, providing that Web PL/SQL Generator can convert all the SQL functions, keywords and operators used within the Derivation Text expression to JavaScript. About

7.	Click Next and choose the datatype of the calculated item.

8.	Click Next and set the following display properties as required:

Prompt	Context?
Display Type	Width
Formatting	Height
Format Mask
9.	Click Finish to save.

10.	To change the order in which unbound items appear in the generated application, click an unbound item using the right mouse button and then click Resequence Items.

Next step

To ensure that the values can be calculated and displayed dynamically during data entry, all items referenced within the SQL expression must appear in the same HTML document as the unbound item and be modifiable:

Insert Forms	All items referenced within the expression must be marked 'Insert' How
View Forms	All items referenced within the expression must be marked 'Update' How


About server-side function unbound items in Web PL/SQL applications
About server-side function unbound items

Related Topics

This type of unbound item can be used to generate an HTML form element that calculates its value from a function held on the server. You can define an unbound item using Design Editor and use the Derivation Text property to enter the PL/SQL function and its parameters. How

The calculation can only take place on the server. This means that changes to calculated item fields are displayed only after a record is refreshed.

Display properties

The display characteristics of unbound items are defined using the same repository properties as bound items. About

Application logic

Custom PL/SQL functions or procedures defined in the repository as named routines can be used to populate values for a server-side function unbound item. How

Example

You may have a PL/SQL function (CALC_SAL) which calculates the total salary using the basic salary and commission values. In this case, you could create an unbound item with the following text:

CALC_SAL(sal,comm)


Defining PL/SQL function unbound items

Related Topics	Where am I?

To generate a HTML form element whose value is calculated from a PL/SQL function held on the server, define a server-side function unbound item. About

To create an unbound item using a module diagram:

1.	Open the correct module diagram in the Design Editor. How

2.	Choose Options→Use Property Dialogs.

3.	Choose View→Display View. About

4.	Click [image] and then click the module component.

The snap line indicates where the unbound item will be created.

5.	Enter a Name for the unbound item and set the Unbound Type property to Server-Side Function.

6.	Click Next and enter the PL/SQL function you want to use to calculate values for this item.

Tip:	If you are using Property Palettes this is the Derivation Text property.

PL/SQL functions and procedures defined in the repository as named routines can be used to populate unbound items. About

7.	Click Next and choose the datatype of the calculated item.

8.	Click Next and set the following display properties as required:

Prompt	Context?
Display Type	Width
Formatting	Height
Format Mask
9.	Click Finish to save.

10.	To change the order in which unbound items appear in the generated application, click an unbound item using the right mouse button and then click Resequence Items.


About client-side function unbound items in Web PL/SQL applications
About client-side function unbound items

Related Topics

This type of unbound item can be used to generate an HTML form element that calculates its value from a function held on the client browser. You can define an unbound item using Design Editor and use the Derivation Text property to enter the JavaScript function and its parameters. How

The value will be calculated and displayed dynamically during data entry and presented to the user as read-only text. Changes to calculated item fields are displayed whenever a value within the function changes, that is on the JavaScript 'OnChange' event.

Display properties

The display characteristics of unbound items are defined using the same repository properties as bound items. About

Application logic

Custom JavaScript functions defined in the repository as named routines can be used to populate values for client-side function unbound items. How

Example

You may have defined a JavaScript function (CALC_SAL) which calculates the total salary using the basic salary and commission values. In this case, you could create an unbound item with the following derivation text:

CALC_SAL(sal,comm)


Defining JavaScript function unbound items

Related Topics	Where am I?

To generate a HTML form element whose value is calculated from a JavaScript function on the client, define a client-side function unbound item. About

To create an unbound item using a module diagram:

1.	Open the correct module diagram in the Design Editor. How

2.	Choose Options→Use Property Dialogs.

3.	Choose View→Display View. About

4.	Click [image] and then click the module component.

The snap line indicates where the unbound item will be created.

5.	Enter a Name for the unbound item and set the Unbound Type property to Client-Side Function.

6.	Enter the function you want to use to calculate values for this item.

Tip:	If you are using Property Palettes this is the Derivation Text property.

JavaScript functions and procedures defined in the repository as named routines can be used to populate unbound items. About

7.	Click Next and choose the datatype of the calculated item.

8.	Click Next and set the following display properties as required:

Prompt	Context?
Display Type	Width
Formatting	Height
Format Mask
9.	Click Finish to save.

10.	To change the order in which unbound items appear in the generated application, click an unbound item using the right mouse button and then click Resequence Items.


About custom unbound items in Web PL/SQL applications
About custom unbound items

Related Topics

A custom unbound item provides you with the ability to create an item totally under your control. How

It may be a text field, or a GUI widget (if you define allowable values against it). Using the events defined client-side and/or server-side, you can process the value of the item in whatever way is appropriate.


Defining custom unbound items

Where am I?

To generate an HTML form element that executes user defined code on a particular event, create a custom unbound item. About

To create an unbound item using a module diagram:

1.	Open the correct module diagram in the Design Editor. How

2.	Choose Options→Use Property Dialogs.

3.	Choose View→Display View. About

4.	Click [image] and then click the module component.

The snap line indicates where the unbound item will be created.

5.	Enter a Name for the unbound item and set the Unbound Type property to Custom.

6.	Click Next and define valid operations for the unbound items:

Insert?	Query?
Update?	Range Search
7.	Click Next and define information about the unbound item values:

Default value	Optional?
Domain	Datatype
8.	(Optional) Click Next and define a set of allowable values for the unbound item.

9.	Click Next and set the following display properties as required:

Prompt	Show Meaning
Display Type	Context?
Formatting	Width
Format Mask	Height
10.	Click Finish to save.

11.	To change the order in which unbound items appear in the generated application, click an unbound item using the right mouse button and then click Resequence Items.

12.	(Optional) Define user-defined event code for the unbound item. How


About custom Record List queries in Web PL/SQL applications
About custom Record List queries

Related Topics

You can customize how records are displayed in a Record List. For example, a Record List can be designed to:

•	Display a restricted set of records

•	Display records in a specific order

Restrictive WHERE conditions

You can restrict the records displayed in a Record List, by defining a SQL WHERE condition against the table usages within the module component. How

The SQL WHERE condition is applied to the SELECT statement used to query the module component's records. For example, TYPE = 'MOVIE'.

Note that it is important that you refer to items in WHERE clauses using their item name, and not the name of the underlying column usage.

Record order

You can define the order in which records are returned from the database and displayed in the Record List, using the Order by Sequence and Sort Order properties. How

These properties indicate which items (if any) participate within the ORDER BY clause of the SQL statement that is used to query rows for the Record List. The Sequence number defines the position within the ORDER BY. For example, you may want to sort SALES_ORDERS by REGION first (1), SALES_PERSON second (2), and ORDER_VALUE third (3).

For Sort Order, you may specify whether records are displayed in an ascending, or descending order. For example, you may want to view ORDER_VALUE in either ascending, or descending order.

Note: 	These properties may be set against both base and lookup items.

Autoquery

The Autoquery property (on the module component dialog) enables a Record List to be displayed immediately without referring to a Query Form; a Query Form can be defined for subsequent restrictive queries.


Defining restrictive WHERE conditions in Web PL/SQL applications
Defining restrictive WHERE conditions

Related Topics	Where am I?

You can restrict the records displayed in a Record List, by defining a SQL WHERE condition against the table usages within the module component. About

To define a restrictive WHERE condition:

1.	In Design Editor, double-click the base or lookup table usage.

2.	Use the WHERE Clause of Query property to define the SQL WHERE condition for the table.

Tip: 	If you are using Property Dialogs this is displayed on the WHERE tab. For lookup table usages, choose the Query option. The Validate option is used to restrict the records displayed in the LOV for a foreign key lookup. How

•	the 'WHERE' keyword must not be entered here.

•	it is recommended that you prefix column names with the Table Usage Alias property.

See the "SQL Language Reference Guide" for more information on how to construct valid WHERE statements.

3.	Click [image] or Finish to save the changes.


Displaying records in a specific order in a Web PL/SQL application
Displaying records in a specific order

Related Topics	Where am I?

You can define the order that records are returned from the database and displayed in the Record List. About

To determine record order:

1.	In Design Editor, choose Options→Use Property Palette.

2.	Double-click the item to include in the order.

3.	For Order By Sequence, enter the number which specifies the position of this item within the ordering sequence.

4.	For Sort Order, choose whether rows are sorted in ascending order or descending order.

5.	Click [image] to save.

6.	Repeat steps 2 to 5 for the other items that are to participate in the ORDER BY.

Important:	Ensure the Order By Sequence property is not set for those items not participating in the Order By.


Using module arguments to restrict record queries

Related Topics	Where am I?

You can define argument items for Web PL/SQL modules which will allow users to restrict record queries for the first module component using the URL. When module arguments are defined, the URL format is as follows: <URL>$.startup?Z_<column_name>=<value>&Z_<column_name_2>=<value>

For example, if the user entered the URL:

http://myhost:8000/demoapp/owa/jobs$.startup?Z_category=manager&Z_location=CA

Only management jobs in California would be displayed in the Record List.

Note:	If module arguments are defined, the SECECS preference must be set to 'No'.

To restrict record queries using module arguments:

1.	In the Navigator, select the Argument node for the module.

2.	Select Create Argument from the right-mouse menu.

3.	Enter a name for the module argument.

4.	Specify the underlying column of the module argument.

5.	Click [image] to save.

6.	Select the Argument Item Usages node and click

7.	Select the bound item that you want to associate with the argument.

Only select items defined within the base table of the first module component. If required, you can associate an argument with more than one bound item.

Note:	If you select a bound item that is marked Query, that is, when Query=Yes, it is excluded from the Query Form.

If you select an item from a detail module component or a lookup item, it is ignored during generation.

8.	Click OK.

Note:	For Web PL/SQL modules the Operator of the argument item is always =.


Querying LOV values automatically in Web PL/SQL applications
Querying LOV values automatically

Related Topics	Where am I?

You can define whether LOV values are queried automatically or whether an additional query dialog is displayed in order to reduce the number of values returned. About

To query lookup values automatically:

1.	In Design Editor, double-click the LOV.

2.	Set the Filter before Display? property to No.

Tip: 	If you are using Property Dialogs, select the Usage tab and uncheck Filter before Display?

3.	Click [image] or Finish to save the changes.


About generated lookup poplists and lookup text list items

Related Topics	Where am I?

You can use Web PL/SQL Generator to generate poplist items and text list items to display values from lookup tables in the following ways:

•	implicitly

•	explicitly using a repository LOV definition

•	explicitly using a lookup table usage

Implicit lookup poplist and lookup text list generation

You can generate lookup poplist and lookup text list items implicitly by:

•	creating a base table item based on a column that is a foreign key to one (and only one) lookup table

•	setting the item's Display Type property to Poplist or Text list

Note that you do not create the lookup table usage, and that the base table column must form a single column foreign key relationship with the lookup table

Explicity lookup poplist and lookup text list item generation using a repository LOV definition

You can generate lookup poplist and lookup text list items explicitly using a repository LOV definition by:

•	creating a repository LOV definition with a usage of the lookup table

•	associating the LOV with an item in a module component base table usage and setting the item's Display Type property to Poplist or Text list

Note that you can only associate one LOV with the repository item you are generating as a lookup poplist or  lookup text list item, and that the base table column must form a single column foreign key relationship with the lookup table.

Explicit lookup poplist and lookup text list generation using a lookup table usage

You can generate lookup poplist and lookup text list items explicitly using a lookup table usage by:

•	creating a bound item in the lookup table usage (i.e. a lookup item)

•	setting the item's Display Type property to Poplist or Text list

In the case of both single column and multiple column foreign key relationships between a base table and a lookup table, Web PL./SQL Generator determines most properties of the generated poplist/ text list from a lookup item in the lookup table usage. However, Web PL/SQL Generator determines some properties from a foreign key item in the base table usage.

In the case of a multiple column foreign key relationship:

•	the column in the lookup table from which the poplist/text list item is generated must be the only column in a unique key

•	when deriving properties of the generated item from a foreign key item in the base table usage, Web PL/SQL Generator uses the first foreign key item in the base table usage

Note the following:

•	Only one item in the lookup table usage (i.e. the poplist or text list item) can have its Display property set to Yes

•	All items in subsequent (i.e. chained) lookups linked to the first lookup table usage must have their Display properties set to No

•	If allowable values have been defined for a lookup column definition in the repository, Web PL./SQL Generator uses the allowable values rather than values from the lookup table to populate a generated lookup poplist, text list or combo box item based on the column


Defining WHERE conditions for LOV validation in Web PL/SQL applications
Defining WHERE conditions for LOV validation

Related Topics	Where am I?

You can restrict the records displayed in the List of Values (LOV) window. For example, DATE_LEFT_COMPANY IS NULL would only display, or validate against existing employees. About

To define a WHERE condition for lookup validation:

1.	In Design Editor, double-click the LOV table usage for the column you want.

2.	Use the Validation WHERE Clause property to define the SQL WHERE condition for the LOV. You can refer to items using the item prefixed by the module component name, in the format module_component.item_name. When the item is enterable, it takes the value that the user has entered.

Tip: 	If you are using Property Dialogs, select the WHERE tab and then choose the Validate option. The Query option is used to restrict the records displayed in the Record List. How

•	the 'WHERE' keyword must not be entered here.

•	it is recommended that you prefix column names with the Table Usage Alias property.

See the "SQL Language Reference Guide" for more information on how to construct valid WHERE statements.

3.	Click [image] or Finish to save the changes.


Using the Query? property in Web PL/SQL applications
Using the Query? property

Related Topics	Where am I?

The item-level Query? property can be set to Yes, No or Always, however when it is set to Always the resulting behavior depends on a number of other factors.

Query? property set to Yes

The item is displayed as a queryable field on a Query Form. About

Query? property set to No

The item does not appear on the Query Form. If all the items have the Query? property set to No, a Query Form is not created.

Query? property set to Always

When you set the Query? property on an item to Always, that item is used as part of the query, even if its value is null.

For example, if you wanted to return records of all employees who do not have a manager from an EMP table you would:

•	Set the Query property to Always for the bound item MGR in EMP

•	Leave the MGR field on the Query Form blank

The employee records returned are those where the value of MGR is null.

However the behavior of setting Query? for an item to Always is affected by the following:

•	whether the base column for the item is optional

•	for a lookup table, whether there is an outer join required

•	for an unbound item, whether the item is optional

Check boxes on Query Forms

To display a checkbox on a Query Form, the Display type property should be set to Check box, and the Query? property must be set to Always.


Query? property: Item bound to base column (Web)
Using the Query? property when the item is bound to a base column

If the item is bound to a base column, then the value of the Optional property of the column is used to determine whether the query field is optional or mandatory.

The Optional property (Column) is	therefore, the Query field is	When the value entered in the field on the Query Form is	then the value used in performing the query is
Yes	Optional	<Null>	<Null>
Yes	Optional	any value that is not <Null>	the entered value
No	Mandatory	any value that is not <Null>	the entered value
Note:	It makes no difference whether the Optional property on the Item is Yes or No.


Query? property: Item bound to lookup table column (Web)
Using the Query? property when the item is bound to a lookup table column

When the item is bound to a column from a lookup table, then both the Optional property of the column and the Optional property of the join constraints determine whether the query field is mandatory. That is, when the column is mandatory, but any of the join constraints are optional, then the query field is optional.

Optional property on Column	and the lookup table usage has an Outer Join	Then, the Query field is	When the value entered in the field on the Query Form is	then the query is performed using
Yes	Yes	Optional	<Null>	<null>
Yes	Yes	Optional	any value that is not <Null>	outer join operator (+) is added to the query
Yes	No	Optional	<Null>	column value of <null>
Yes	No	Optional	any value that is not <Null>	the entered value
No	Yes	Optional	<Null>	<null>
No	Yes	Optional	any value that is not <Null>	outer join operator (+) is added to the query
No	No	Mandatory	any value that is not <Null>	the entered value


Query? property: Unbound item (Web)
Using the Query? property with unbound items

For unbound items, a query field is mandatory if the item is mandatory, and the query field is optional if the item is optional.

Optional property on Item	therefore, the Query field is	When the value entered in the field on the Query Form is	then the value used in performing the query is
Yes	Optional	<Null>	<Null>
		any value that is not <Null>	the entered value
No	Mandatory	any value that is not <Null>	the entered value


About allowable values for Web PL/SQL applications

Related Topics

For HTML form elements such as radio groups, checkboxes, pop lists and text lists, you will need to define a set of allowable values. How

If appropriate, you can also provide a list of allowable values for text fields.

Allowable values can be defined against a column definition (in which case they are inherited by all bound items based on that column) or unbound item. Alternatively, they can be defined within a domain, in which case they can be used by several columns or unbound items.

Allowable values against column definitions and unbound items

This is a sample set of allowable values for the optional item AUDIO:

Sequence 1 2 3	Value MON STE SUR	Meaning Mono Stereo Surround Sound
If a radio group, text list or pop list is based on an optional item (Optional property = Yes) extra values are generated in addition to the list of allowable values:

•	On the Insert Form, <null> is displayed so that the user can leave this optional item blank when creating a record.

•	On the View Form, <null> is one of the allowable values for this optional item. Also, if the database value of the item retrieved by the query does not match one of the allowable values, #INVALID!# is displayed.

•	On the Query Form, <null> and Unknown are displayed:

−	When the user selects <null>, it is the equivalent of leaving a text item blank and the query is not performed on this item.

−	When the user selects Unknown, the item is included in the query which finds all records which have no value selected for this item.

For checkboxes that are 'optional', only one allowable value is required because the second value automatically becomes 'Unknown'.

Sequence	For radio groups, this defines the order in which the radio buttons are displayed. For checkboxes, the first value defines the 'true', or 'checked' state.
Value	The valid value. For bound items this defines the value to be stored in the column on the database. If you intend to enter a corresponding Meaning, this can be a short identifier for the value.
Meaning	Optional. Provides a meaningful description of the value. The Show Meaning? property defines whether values or meanings are displayed in the generated application.
Abbreviation	Optional. Provides an abbreviation or short code for an allowable value. If defined, it means that the user can type the short code into the text field and when the form is submitted it is replaced with its corresponding value. After the form has been submitted the value or meaning is displayed. Abbreviations are only supported by text boxes.
Note:	A set of allowable values can also be defined against an unbound item.

Reusable sets of allowable values using domains

Domains allow you to define a common set of allowable values which can be reused across multiple columns, for example Y/N for flag columns. To define that a column makes use of a Domain, first use Design Editor to create the Domain and specify its associated values. Then, set the column's 'Domain' property. How

Note:	Unbound items can also calculate a set of allowable values from a domain.

Defining where allowable values are stored (Dynamic List? property)

If you define a set of allowable values, you must decide whether you want them stored in a 'reference code table' on the database (referred to as a Dynamic List), or hard-coded within the generated application. The Dynamic List? property (of the column definition or domain) controls this behavior. Note that in previous versions of Designer, the Dynamic List? Property was referred to as ‘Soft LOV’.

Reference Code Table	Dynamic List? property=Yes If you select this option you must run the Reference Code Table Utility prior to generation. About This utility will populate the database with the 'allowable values' that are defined for the container (i.e. folder or application system).  Choose this option if the allowable values are likely to change after an application has been delivered.
Hardcoded	Dynamic List? property=No Choose this option if you intend to use checkboxes or if the allowable values are not going to change. If you did need to modify the values at some later stage it would mean generating the Web PL/SQL module again.
Suggestion lists

Within conventional screen-based applications suggestion lists are implemented using combo-boxes. Since HTML does not support this element type, generated Web PL/SQL applications cannot provide a list of suggested values for HTML form elements.


Defining a list of allowable values for a Web PL/SQL application
Defining a list of allowable values

Related Topics	Where am I?

Allowable values can be defined against a column definition, unbound item, or within a domain. The values can be stored on the database, or hardcoded within the generated application. About

To define a set of allowable values against a column definition (or unbound item):

1.	In Design Editor, choose Options→Use Property Palette.

2.	On the Navigator, expand the column definition (or unbound item) that requires allowable values.

3.	Select Allowable Values and click

4.	Set Value, Meaning and Display Sequence properties as required.

5.	(Optional) For a text field, enter an Abbreviation for the value.

6.	Click [image] to save.

For each allowable value, repeat steps 3 to 6.

7.	Set the Dynamic List? property to define where the allowable values should be stored.

8.	Select the column definition or unbound item and click [image].

9.	Set the Dynamic List? property to Yes, to store the values on the database.

Note:	A reference code table is not created and populated automatically where allowable values have been specified for unbound items. If the reference code table does not already exist, you must explicitly create it and update the table. About

To define a set of allowable values within a domain:

1.	In Design Editor, choose Options→Use Property Dialogs

2.	Create the domain.

3.	On the Navigator, select Domains and click

4.	Enter a name for the domain, then click Next to define further domain details.

5.	Click Next again to define one or more allowable values for the domain.

6.	Set the Dynamic List? property to define where the allowable values should be stored.

7.	Click Finish to save.

8.	Associate columns (or unbound items) with the domain.

9.	On the Navigator, double-click the column definition, or unbound item.

10.	Use the Domain property to enter the name of the Domain.

11.	Click Finish to save.

Next step

If the allowable values are to be stored on the database (Dynamic List?=Yes), you must run the Reference Code Table Utility prior to generation. About

This utility will populate the database with the 'allowable values' you have just defined.


Using sequences to provide unique values in Web PL/SQL applications
Using sequences to provide unique column values

Related Topics	Where am I?

A sequence may be used to provide unique numbers for a single column in a single table (invoice numbers) or a number of columns in different tables (if contiguous numbers are not paramount). About

To set up a column to provide unique values from a sequence:

1.	In Design Editor, choose Options→Use Property Palette.

2.	Double-click the column definition.

3.	From the Sequence drop-down list, select the sequence which must be used to derive the column values.

Create the sequence definition in the repository if it does not exist. How

4.	Ensure that the Server Derived property is set to Yes.

Sequence values are generated via the Table API, on the server. About

5.	Click [image] to save.

Next step

Before generating the Web PL/SQL application:

•	ensure that the table owner schema contains the Oracle sequence definition, or code controls table for the sequence. If necessary generate these objects on the table owner schema. How

•	generate the Table API for the table that has changed. How


About default values for Web PL/SQL applications
About default values in Web PL/SQL applications

Related Topics

To speed up data entry, it can be useful to provide the user with appropriate default values. This is so that when a new record is created the HTML form elements initially appear with frequently used values. Defaults may be set explicitly, or in some cases can be generated automatically. How

Default values for check boxes, radio groups, pop lists and text lists

The default value you specify for these HTML form elements must be one of the allowable values defined for the column. About

For example:

Display Type	Popup example	Allowable Values (Meaning)	Default
Radio group	Product Type	MO (Movie) GA (Game)	MO
Pop list	Audio	MON (Mono) STE (Stereo) SUR (Surround Sound)	STE
Text list	Age Classification	U (Universal) 12 (Over 12) 15 (Over 15) PG (Parental Guidance) 18 (Over 18)	U
		Domain Values (Meaning)
Check box	Monochrome	N (No), Y (Yes)	N
Note:	Domains allow you to define a common set of allowable values which can be reused across multiple columns, for example Y/N for flag columns.

Default values for text fields

Use the Default Value and Default Value Type property of a repository item to set the initial value of the generated item. Note that the default values defined for text fields must be compatible with the datatype of the HTML form element.

Set Default Value Property to	Set datatype to	Set Default Value Type property to	Displayed in generated item	Notes
a literal string	Char	Literal	the specified string	For example, to set a default memory module as 1, set the datatype to Number and set the Default Value property to 1, and the Default Value Type property to Literal.
USER	Char	Client Function Call or Database Function Call	current username
SYSDATE	Date	Client Function Call or Database Function Call	current system date	You may find that one of the system default values below suits your purposes better than SYSDATE
a date/time system default value	Date	Client Function Call or Database Function Call	local system date/time or database date/time	The date/time system default values are $$DATE$$, $$DATETIME$$, $$TIME$$, $$DBDATE$$, $$DBDATETIME$$, $$TIME$$.


Specifying default values for Web PL/SQL applications
Specifying default values

Related Topics	Where am I?

To speed up data entry, it can be useful to provide the user with appropriate default values. About

To specify a default value:

1.	In Design Editor, double-click the item you require.

2.	Set the Default Value property.

Tip:	If you are using Property Dialogs this is displayed on the Definition tab.

Radio groups  Pop lists Text lists Check boxes	Enter a previously defined allowable value. About Note: Allowable values are case sensitive.
Text fields	Enter a value that matches the datatype of the item.  You can enter AutoGen types if you wish, for example DATETIME. These values are not case sensitive but you must add $$ before and after the AutoGen keyword. For example, $$DATETIME$$
3.	Set the Default Value Type property.

4.	Click [image] or Finish to save the changes.


Default Value - Radio Group


Default Value - Pop List


Default Value - Text List


Default Value - Checkbox


About optional/mandatory fields in Web PL/SQL applications

Related Topics

To assist data entry, individual HTML form elements may be defined as optional or mandatory. How

When saving a new record, or updating an existing record, 'optional' fields may be left blank. However, values must be provided for mandatory fields and additional code is generated (JavaScript and Table API) to check this. About

If a mandatory field is not defined the record is not saved; instead, a message is displayed to advise the user which value has been omitted.

Example

For example, consider an HTML form for recording details about 'Videos'. The 'Title', 'Movie Category' and 'Age Classification' may be considered essential (mandatory), whereas the 'Duration' of the video could be considered optional.


Defining optional/mandatory fields in Web PL/SQL applications
Defining optional/mandatory fields

Related Topics	Where am I?

To assist data entry, individual HTML form elements may be defined as optional or mandatory. About

To define optional/mandatory fields:

1.	In Design Editor, double-click the item you require.

2.	Set the Optional property.

Tip: If you are using Property Dialogs this is displayed on the Definition tab.

Yes	For an item that is optional during data entry.

No	For a mandatory field.

3.	Click [image] or Finish to save the changes.


About check constraint validation in Web PL/SQL applications

Related Topics

You can define check constraints based on SQL expressions to restrict the data entered into application tables. How

Note:	A check constraint can be used only to evaluate the columns in a single row of a single table, it cannot reference columns on different tables.

Validation options

The 'Validate In' property allows you to define where check constraint validation takes place, that is on the server, on the client (browser), or on both the client and the server. If on the client, additional code is generated to perform the validation:

Validate In?
Server	Check constraint validation only takes place on the server, using a declarative check constraint on the table. About
Client	Check constraint validation only takes place on the client browser, using JavaScript code generated by Web PL/SQL Generator. About
Both	Check constraints are validated on the client and the server.
Server-side validation prevents invalid data from being stored on the server. In contrast, client-side validation prevents the user from entering incorrect values and this reduces network traffic, as more errors are trapped before data is submitted to the server. However, client-side validation is restricted to referencing columns in the table that are represented as enterable items, whereas all the columns are accessible server-side.

Client-side validation using JavaScript

A single JavaScript check constraint validation function (JSLChkConstraint) is generated for a Web PL/SQL module component, if any of the underlying tables have check constraints defined against them. This function will perform all the check constraints checks required for a particular module component (there may be more than one).

JavaScript check constraint validation functions are generated when:

•	all items referenced within the SQL expression appear on the HTML document where validation is required, that is when Insert Form (Insert=Yes), View Form (Update=Yes).

•	the SQL expression consists entirely of SQL functions, keywords and operators that are supported by Web PL/SQL Generator, that is the SQL commands can be converted to JavaScript.

The generated JavaScript check constraint validation function is embedded into the head section of the HTML document in which it will be used, that is on an Insert Form or View Form. Specifically, the validation code and any user-defined error message text will appear within the <SCRIPT> tag.

Note:	For client-side validation to take place the browser being used to run the application must support JavaScript.

SQL to JavaScript conversion

Web PL/SQL Generator converts SQL check constraints into JavaScript by replacing every SQL operator, keyword and function with an equivalent JavaScript operator, keyword, built-in function or Web PL/SQL Generator library function (WSGJSL). About

SQL		JavaScript
Operator	==>	Operator
Keyword	==>	Keyword
Function	==>	Built-in function or WSGJSL library function
If a simple conversion is not possible a warning message is issued during generation.

Note:	If a check constraint involves date manipulation, validation can only take place on the server as SQL date functions cannot be converted to JavaScript.

For more detailed conversion information refer to the SQL to JavaScript conversion tables.

Protected and unprotected null values in JavaScript

To ensure that the validation is only performed when all (optional) fields have been given values, an additional 'if' statement is added to the generated JavaScript code.

Example

Suppose that the columns company_identifier and customer_number on a given table are mutually exclusive. You might define a check constraint to ensure that either:

•	a value is specified for customer_number and the value for company_identifier is null, or

•	a value is specified for company_identifier and the value for customer_number is null.

The SQL expression for this check condition would be:

(((company_identifier IS NULL) AND (customer_number IS NOT NULL)) OR

 ((customer_number IS NULL) AND ((company_identifier IS NOT NULL)))

If these two columns were represented by items COMPID and CUSTID respectively, the JavaScript expression would be of the form:

(((JSLGetValue(P_COMPID)=="")&&(JSLGetValue(P_CUSTID)!=""))

((JSLGetValue(P_COMPID)!=""&&(JSLGetValue(P_CUSTID)=="")))


Defining check constraints for Web PL/SQL applications
Defining check constraints

Related Topics	Where am I?

You can define check constraints based on SQL expressions to restrict the data entered into application tables. Web PL/SQL Generator can convert these expressions to JavaScript, if validation is required on the client browser. About

To define a check constraint:

1.	In Design Editor, choose Options→Use Property Palette.

2.	On the Navigator, expand the relational table definition node and select Check Constraints.

3.	Click

4.	Enter a unique name for the check constraint.

5.	(Optional) Use the Validate In? property to define where the constraint is to be enforced. By default, check constraints are enforced on the server.

Server	Check constraint validation only takes place on the server, using the declarative check constraint on the table. About
Client	Check constraint validation only takes place on the client browser, using JavaScript code generated by Web PL/SQL Generator. About Note that if the browser being used does not support JavaScript, no client-side validation can take place.
Both	Check constraints are validated on the client and the server.
6.	Click the Where/Validation Condition property to enter the check constraint condition.

Tips:	Only reference columns within the same table. If client-side validation is required, only use SQL operators, keywords and functions that can be converted to JavaScript. Refer to the SQL to JavaScript Conversion Tables.

7.	Enter the Error Message you want to display if the constraint conditions are not met. About

8.	Ensure that the Enable property is set to Yes.

9.	Click [image] to save.

Next step

If you add or modify a check constraint that must be validated in the server (or both client and server) you will need to:

•	add (or update) the constraint to the application table on the database. How

•	generate the Table API for the table that has changed. How


About constraint violation messages in Web PL/SQL applications
About constraint violation error messages

Related Topics

You can define custom error messages against the table constraints defined for your generated application. How

If a value fails to meet the requirements of a particular constraint, the user-defined message text is displayed and the insert/update operation is canceled. For example:

The message text is incorporated within generated Table API code, unless the constraint is only being validated in the browser (Validate In?=Client) in which case the error message is hardcoded within the generated Web PL/SQL application.

There is no need to define error messages for columns that derive their values from sequences (typically Primary or Foreign key columns) as such values will always be valid.

Note:	If specific Error Message text is not defined for a particular table constraint, the default Oracle message, for example ORA-001, is displayed incorporating HTML form element prompts.


Defining error messages for constraint violations in Web PL/SQL applications
Defining error messages for constraint violations

Related Topics	Where am I?

You can define custom error messages against the table constraints defined for your generated application. About

To define a constraint violation error message:

1.	In Design Editor, double-click the constraint definition you require.

One of Primary Key, Foreign Key, Unique Key and Check Constraint.

2.	Enter suitable Error Message text, up to 70 characters.

Tip:	If you are using Property Dialogs this is on the Validation tab.

3.	Click [image] or Finish to save the changes.

Next step

If you add, or change a message for a constraint that must be validated in the server (or both client and server) you will need to re-generate the Table API for the table that has changed. How


About text field formatting in Web PL/SQL applications
About text field formatting

Related Topics

Format masks

You can use the Format Mask property to define how number or date information is displayed in the generated application. How

The value defined for this property must be a valid SQL format model. For example,

Number Default:	No formatting takes place
Format Examples:	9,999 $999.99 9.99
Date Default:	DD-MON-YY
Format Examples:	DD-MON-YYYY HH:MI:SS, DD-MON-YYYY, DAY DD/MM/YYYY, MM-RRRR, MM-DD-RR
For a date format mask to be Y2K-compliant, the year element must be set to one of the following: YYYY, RRRR, RR.

Note:	If the Format Mask property is not defined for a date item, the TXTDDF preference is used instead.

See the "SQL Language Reference Guide" for details of valid number and date formats. Note that Web PL/SQL Generator does not support the Roman Numeral Format Mask (RN).

Where client-side processing of formatted values is required, Web PL/SQL Generator uses the JavaScript library function JSLStripMask to convert the formatted value into a string that just contains a number, that is with no formatting.

HTML formatting

The Formatting property defines a PL/SQL function that returns HTML. You can use this property to customize the way text fields are displayed in a Web PL/SQL application. How

Note:	This property is only applicable for items where the Display Type is 'Text'.

Standard formatting options

Web PL/SQL Generator uses HTML functions provided by the HyperText Functions (HTF) package within the Oracle Web PL/SQL Developers Toolkit and its own library package (WSGFL) to provide a range of standard formatting options and colors. You can specify a single option such as BOLD or BLUE or a multiple comma-separated list of options such as BOLD, BLUE, ITALIC.

Format	PL/SQL function	Example
BOLD	htf.bold(Item_Name)	Text is displayed in bold
ITALIC	htf.italic(Item_Name)	Text is displayed in italics
PREFORMAT	wsgl.preformat (Item_Name)	Read-only text is displayed preformatted: - fixed font (Courier) - with line breaks
IMAGE	htf.img(Item_Name)	If the text is a graphic filename, the image is displayed:
MAILTO	htf.mailto(Item_Name, Item_Name)	If the text is a mail address, it is displayed as a hypertext mail link
URL	htf.anchor(Item_Name, Item_Prompt)	If the text is a URL, it is displayed as a hypertext URL link
ESCAPE	htf.escape_sc (Item_Name)	Text is reformatted to handle escape characters <>"& For example, 'Smith & Jones' is modified to Smith &amp; Jones
Color options

RED, GREEN, BLUE, BLACK, WHITE, GRAY, YELLOW, CYAN, MAGENTA
	wsgfl.red(Item_Name)	Text is displayed in red
Custom format functions

In additional to these standard options you may specify custom HTML formatting, by defining the name of an appropriate PL/SQL function that returns HTML.

The PL/SQL function must return VARCHAR2 and should include a reference to the item (using the item name) as one of the function's parameters. The parameters within the function must also be defined as VARCHAR2. For example,

myformatfunction(SALARY)

Alternatively, you can use a combination of the standard toolkit options. For example,

htf.bold(htf.italic(ENAME))	htf.bold(htf.escape_sc(DESCRIPTION))

Record List and View Form

By default, HTML formatting is applied to values on the Record List and the View Form. If the additional formatting is only required on the View Form, set ZONLHF preference to 'No'.


Displaying values with HTML formatting in Web PL/SQL applications
Displaying values with HTML formatting

Related Topics	Where am I?

The Formatting property provides a range of options which allow you to customize the way text fields are displayed in the generated Web PL/SQL application. About

If these options do not suit your particular requirements and a PL/SQL function exists which can return the HTML you require, you can use the Formatting property to identify the custom PL/SQL function that must be used.

To display a value with HTML formatting:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	Double-click the item you require.

3.	From the Display tab, select the format option you require from the Formatting dropdown list.

To combine standard options, separate each value with a comma, for example, BOLD, BLUE or ITALIC, GREEN.

Note:	Use the PREFORMAT option for read-only items (on the View Form) that display text containing hard carriage returns. This will ensure that the text is displayed with line breaks in the generated application

Alternatively, enter the PL/SQL function you require. The PL/SQL function must return VARCHAR2 and should include a reference to the item (using the item name) as one of the function's parameters, for example myformatfunction(SALARY).

4.	Click Finish to save the changes.

Next step

If you choose IMAGE, ensure that the Default Image Location (IMGIFP) preference for the module component is set correctly. About

If you define a custom PL/SQL function, it must be installed on the PL/SQL Toolkit schema. About


Displaying values with format masks

Related Topics	Where am I?

The Format Mask property allows you to define how number or date information is displayed in the generated application. This value must be a valid SQL format model. About

To display a value with a format mask:

1.	In Design Editor, double click the item you require.

2.	Use the Format Mask property to define the SQL format mask you require.

Tip:	If you are using Property Dialogs this is displayed on the Display tab.

See the "SQL Language Reference Guide" for details of valid number formats.  Refer to Date and time format codes for details of valid date and time formats.

Note:	For a date format mask to be Y2K-compliant, the year element must be set to one of the following: YYYY, RRRR, RR.

3.	Click [image] or Finish to save the changes.

Note:	To define a default date format mask for all date fields in a container (i.e. folder or application system) or a module, use the TXTDDF preference.


Adding interMedia search facilities to a Query Form

Related Topics	Where am I?

Once the WSGOCOL package has been set up on the PL/SQL Toolkit schema, you can add interMedia  search options to items on a Query Form.

For more information about interMedia search facilities refer to About the Oracle interMedia Cartridge.

For more information about setting up the WSGOCOL package on the PL/SQL Toolkit schema, refer to Setting up the PL/SQL Toolkit schema.

To generate an interMedia search item on a Query Form:

1.	In Design Editor, double click the item you require.

2.	Set the Query? property to Yes.

Tip:	If you are using Property Dialogs this is displayed on the Operations tab.

3.	Set ConText Option? property to Yes.

4.	On Oracle7 or 8 (not Oracle 8i) make any appropriate changes to the preferences that affect how the interMedia functionality is implemented in a Query Form, OCORES and OCOPOL.

5.	Click [image] or Finish to save the changes.


About user text in Web PL/SQL applications
About user text

Related Topics

You can define user text against Web PL/SQL modules and module components. You can also specify where the text is placed in the generated application. How

Note:	For ease of use, we recommend that you use the Design Editor Property Dialogs to view and edit user text for Web PL/SQL modules.

User text is not restricted to plain text, it can contain calls to custom PL/SQL functions that return valid HTML syntax, or text that is formatted directly with HTML syntax. In this way, any content that is displayable using HTML can appear in your Web PL/SQL application.

Text locations

Module-level user text

User text defined against modules can be placed on the Startup Page and/or About Page generated from the module. In addition, you can specify whether the text is to be placed above or below the information on the page.

Note:	If a specific text location is not defined text is placed in the default text area (top of Startup Page).

Typically, text for a Startup Page serves to introduce the module, or give instructions. If it is the top-level module within the application, the text appears on the first page of the generated application.

Module component-level user text

User text defined against module components can be placed on any of the HTML documents that are generated from the particular module component, that is a Query Form, Record List, View Form, Insert Form and Delete Form. In addition, you can specify whether the text is be placed above or below the database information.

Note:	If a specific text location is not defined text is placed in the default text area:

•	when the layout is List or List/Form, this is at the top of the Record List

•	when the layout is Form, this is at the top of View Form (because no Record List is generated).

Typically, you would add text to introduce or describe an HTML document, or maybe give instructions.

Formatting text with PL/SQL functions

Within user text you may reference any PL/SQL function defined in the HyperText Functions (htf) package within the Oracle PL/SQL Web Toolkit, the Web PL/SQL Generator Library package (WSGL and WSGFL), or any custom packages specified within the PKGLST preference that return valid HTML.

During generation, user text is scanned for function calls and the appropriate PL/SQL is generated to combine HTML returned from the function call, with the rest of the static text. For example,

Sample user text:	Welcome to the htf.bold('ACME Corporation') home page. Send any comments on this page to htf.MailTo('JBLOGGS.ACME.COM','Joe Bloggs').
Generated PL/SQL:	htp.print('Welcome to the '||htf.bold('ACME Corporation')|| 'home page. Send any comments on this page to '||htf.MailTo('JBLOGGS.ACME.COM','Joe Bloggs'))
Generated output:	Welcome to the ACME Corporation home page. Send any comments on this page to Joe Bloggs.
See also examples of PL/SQL functions in user text.

Formatting text with HTML

Normally, HTML reserved characters (< > " &) within user text are replaced with escape characters (&lt; &gt; &quot; &amp;). This behavior ensures there are no formatting problems with generated Web pages.

If you have HTML experience, you may prefer to use the HTML syntax to directly format user text (rather than PL/SQL function calls that return HTML). There are two ways to do this from Design Editor:

•	add HTML syntax to user text

•	add entire HTML documents in their native format, via an HTML Editor

Adding HTML syntax to user text

Use this method for simple formatting requirements, that is, the assistance of an HTML Editor is not required to create or view the formatted text. During generation, the user text is placed between the <BODY><\BODY> tags of the appropriate HTML document.

If you use this method, set the MODSUB preference to 'No'.

For example,

Sample user text	Generated output (MODSUB=NO)
Welcome to the <b>ACME Corporation</b> home page.	Welcome to the ACME Corporation home page.
You must take care to use escape characters where they are appropriate. For example,

Sample user text	Generated output (MODSUB=NO)
This shows employees with a salary &lt; $5000. For more details, click on the <b>Employee Name</b>:	This shows employees with a salary  < $5000. For more details, click on  the Employee Name:
Note:	The MODSUB preference affects all the pages generated from a particular module, not an individual HTML document.

Adding entire HTML documents, via an HTML editor

Use this method for more complex formatting requirements and where you would benefit from the assistance of an HTML Editor to create or view the formatted text you require.

Your preferred HTML Editor can be invoked from the user text property in Design Editor. From here, you can create, view and test the content that is required and then save the entire source of the HTML document back to the repository as User/Help Text.

Note:	In this instance, an HTML document is defined as text containing the following strings, in any case, but in the following order: "<HTML>" "<BODY>" "</BODY>" "</HTML>"

If modifications are required, the entire HTML document can be loaded back into the HTML Editor and the changes made in a native HTML editing environment.

Sample user text	Generated output (MODSUB=NO)
<html> <head>  <title></title> </head> <body> Welcome to the <b>ACME Corporation</b> home page. </body> </html>	Welcome to the ACME Corporation home page.
During generation, Web PL/SQL Generator will extract the user text between the <BODY></BODY> tags and place it into the appropriate HTML document. In this case, the value of MODSUB is ignored and assumed to be 'No'.

Text storage in repository

User text is stored in the repository as User/Help Text, with tags to indicate the different locations. These tags are not displayed when you view the text using the Design Editor Property Dialogs, but they do appear if you view or edit the text via the Design Editor Property Palettes or other dialogs, for example using the Repository Object Navigator TextPad facility.

Note:	For ease of use, we recommend that you always use the Design Editor Property Dialogs to view and edit user text for Web PL/SQL modules.

For reference, the tags used are as follows:

Module  text locations	Text tag	Module component text locations	Text tag
Default Area		Default Area
Top of First Page	CG$FP_TP	Top of Record List	CG$RL_TP
Bottom of First Page	CG$FP_BP	Bottom of Record List	CG$RL_BP
Top of About Page	CG$AP_TP	Top of View Form	CG$VF_TP
Bottom of About Page	CG$AP_BP	Bottom of View Form	CG$VF_BP
		Top of Query Form	CG$QF_TP
		Bottom of Query Form	CG$QF_BP
		Top of Insert Form	CG$IF_TP
		Bottom of Insert Form	CG$IF_BP
		Top of Delete Form	CG$DF_TP
		Bottom of Delete Form	CG$DF_BP


Defining user text for HTML documents in Web PL/SQL applications
Defining user text for HTML documents

Related Topics	Where am I?

You can define user text against Web PL/SQL modules and module components. You can also specify where the text is placed in the generated application. About

User text is not restricted to plain text, it can contain calls to custom PL/SQL functions that return valid HTML syntax, or text that is formatted directly with HTML syntax. In this way, any content that is displayable using HTML can appear in your Web PL/SQL application.

To define user text against a Web PL/SQL module:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	On the Navigator, double click the module or module component you require.

• Click on a module to enter text for:	Startup Pages and About Pages
• Click on a module component to enter text for:	Record Lists, Query Forms, View Forms, Insert Forms and Delete Forms
3.	Select the User Text tab.

4.	Select the text location you require from the list, for example Top of Query Form.

5.	Enter the user text required.

•	enter text directly into the text box provided, or

•	cut, copy and paste text, to and from the text box using the hot-keys Ctrl+X, Ctrl+C and Ctrl+V, or

•	use the HTML Editor to define the content

•	use the Text Editor to define the content

6.	Click Finish to save.


Examples - HTF functions in user text
Examples - PL/SQL functions in user text (htf.img, htf.mailto, htf.anchor, wsgfl.red)

htf.img

User text	Generated output
htf.img('/images/logo.gif') Welcome to the htf.bold('ACME Corporation') home page.
	Welcome to the ACME Corporation home page.
htf.tableOpen htf.tableRowOpen htf.tableData(htf.img('/images/logo.gif')) htf.tableData('Welcome to the '||htf.bold('ACME Corporation')||' home page.') htf.tableRowClose htf.tableClose		Welcome to the ACME  Corporation home page.
htf.mailto

User text	Generated output
Please mail comments to htf.mailto('jbloggs@acme.com')	Please mail comments to jbloggs@acme.com
Please mail comments to htf.mailto('jbloggs@acme.com', 'Joe Bloggs')	Please mail comments to Joe Bloggs
Please mail comments to htf.mailto('jbloggs@acme.com', 'Customer Services')	Please mail comments to Customer Services
htf.anchor

User text	Generated output
For the latest information, see htf.anchor('http://www.acme.com/new.html')	For the latest information, see http://www.acme.com/new.html
For the latest information, see htf.anchor('http://www.acme.com/new.html', 'What's New ?')	For the latest information, see What's New ?
wsgfl.red

User text	Generated output
wsgfl.red(' Welcome to the ACME Corporation.')	Welcome to the ACME Corporation.


MailTo function

When a Web user clicks on a MailTo hyperlink like this, the locally installed E-Mail application is loaded with the chosen mail address preselected.


Anchor function

When a Web user clicks on a hyperlink URL like this, its associated Web page is displayed.


Embedding images within user text in Web PL/SQL applications
Embedding images within user text

Related Topics	Examples	Where am I?

To display images within user text you simply need to reference the HTML image function (htf.img). About

Note:	Page headers, page footers and bullet symbols can also include embedded images.

To embed an image within a user text area:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	On the Navigator, double click the module or module component you require.

• Click on a module to embed images on:	Startup Pages and About Pages
• Click on a module component to embed images on:	Record Lists, Query Forms, View Forms, Insert Forms and Delete Forms
3.	Select the User Text tab.

4.	Select the location you require from the list, for example Top of Query Form.

5.	At the appropriate place within the text, enter the HTML image function which specifies the name and location of the image file you want to display. For example,

htf.img('/images/logo.gif')

Ensure that you specify the correct Web PL/SQL image location. About

6.	Click Finish to save.


Embedding email addresses within user text in Web PL/SQL applications
Embedding email addresses within user text

Related Topics	Examples	Where am I?

To embed a hypertext email address within user text you simply need to reference the HTML MailTo function (htf.mailto). About

Note:	Page headers and footers can also include embedded email addresses.

To embed an email address within a user text area:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	On the Navigator, double click the module or module component you require.

• Click on a module to embed email links on:	Startup Pages and About Pages
• Click on a module component to embed email links on:	Record Lists, Query Forms, View Forms, Insert Forms and Delete Forms
3.	Select the User Text tab.

4.	Select the location you require from the list, for example Top of Query Form.

5.	At the appropriate place within the text, enter the HTML MailTo function which specifies the email address you require and any text you may want displayed. For example,

htf.mailto('jbloggs@acme.com', 'Joe Bloggs')

6.	Click Finish to save.


Embedding URL hyperlinks within user text in Web PL/SQL applications
Embedding URL hyperlinks within user text

Related Topics	Examples 	Where am I?

To embed the URL of a WWW page within user text you simply need to reference the HTML Anchor function (htf.anchor). About

Note:	Page headers and footers can also include embedded URLs to WWW pages.

To embed a URL hyperlink within a user text area:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	On the Navigator, double click the module or module component you require.

• Click on a module to embed URL hyperlinks on:	Startup Pages and About Pages
• Click on a module component to embed URL hyperlinks on:	Record Lists, Query Forms, View Forms, Insert Forms and Delete Forms
3.	Select the User Text tab.

4.	Select the location you require from the list, for example Top of Query Form.

5.	At the appropriate place within the text, enter the HTML Anchor function which specifies the URL you require and any text you may want displayed. For example,

htf.anchor('http://www.acme.com/new.html', 'What's New ?')

6.	Click Finish to save.


Embedding calls to custom PL/SQL functions in Web PL/SQL applications
Embedding calls to custom PL/SQL functions

Related Topics	Where am I?

If your Web PL/SQL application has functionality or formatting requirements that cannot be achieved via the Oracle PL/SQ: Web Developers Toolkit package (HTF) or Web PL/SQL Generator library packages (WSGL or WSGFL), you can define your own PL/SQL functions that create the special effects you require. These custom function calls must return valid HTML and be installed within a package on the PL/SQL Toolkit schema .

Note:	PL/SQL functions can be used to customize user text, titles and headings, page headers and footers, hyperlinks to the About Page and bullet symbols.

To embed a custom PL/SQL function call within user text:

1.	Ensure that the custom function is part of a PL/SQL package that is installed on the PL/SQL Toolkit schema.

2.	In Design Editor, use PKGLST to define the name of the package where the custom function is defined. How

Text in the generated application is scanned for function calls and the appropriate PL/SQL is generated to combine HTML returned from the function call, with the rest of the static text. In addition, the syntax of embedded PL/SQL functions is checked automatically during generation and any syntax errors which would result in an unsuccessful installation are reported.

3.	On the Navigator, double click the module or module component you require.

• Click on a module to embed PL/SQL function on:	Startup Pages and About Pages
• Click on a module component to embed PL/SQL function on:	Record Lists, Query Forms, View Forms, Insert Forms and Delete Forms
4.	At the appropriate place within the user text, enter the custom PL/SQL function which specifies the special formatting or functionality you require.

The following syntax should be used:

mypackage.myfunction(<module component name>.<column usage name>)

You can use the following as parameters to your PL/SQL function in a View Form:

•	CURR_VAL. for a base table. Use the syntax curr_val.<column_name>

•	NBT_VAL. for a lookup table. Use the syntax nbt_val.<item_name>

For example, if there is a column usage ORDER_NO and you want to pass the value to the function myfunction in the package mypackage, you would use

mypackage.myfunction(curr_val.order_no)

5.	Click [image] or Finish to save the changes.


Generating Web PL/SQL applications for use in other countries

Related Topics	Where am I?

To generate Web PL/SQL applications where the visible text is not English, the following steps are required.

1.	Ensure Web PL/SQL Generator uses the appropriate translated library package (wsglm<lang>.pks).

Any end user text that appears within a generated Web PL/SQL application is defined within a package named 'WSGLM' and this is located in the installed file cgenw61\cvwetc\WSGLM.PKS. Translated versions of this file are named WSGLM<lang>.PKS and they also appear in the cgenw61\cvwetc directory of your Oracle Designer installation.

The languages supported (and corresponding values for <lang>) are:

<lang>	Language	<lang>	Language
cs	Czech	pl	Polish
d	German	pt	Portuguese
dk	Danish	ptb	Brazilian Portuguese
e	Spanish	ru	Russian
el	Greek	s	Swedish
f	French	sf	Finnish
hu	Hungarian	sk	Slovak
i	Italian	tr	Turkish
n	Norwegian
nl	Dutch
To make use of the translated file for your target language, you will need to install the appropriate package into your PL/SQL Toolkit schema. When a translated version of this package is installed manually, the default version with the language specified at install time is replaced.

2.	Use the appropriate language, when defining any textual display properties within Web PL/SQL modules.

Display properties such as 'Title', 'Prompt' and 'Error Message' will be displayed in a generated application and therefore they should be defined in the required language.

These tasks outline the additional steps required to create Web PL/SQL applications in languages other than English. Once complete, generate the application in the usual way. How


HTP.anchor

Clicking on this hypertext link opens the page, new.html.


About multi-row Forms in Web PL/SQL applications
About multi-row forms

Related Topics

When your users have a lot of data to input, you can generate multi-row Insert forms which allow several rows to be entered on one form and then saved. Similarly, you can generate multi-row View Forms which allow more than one record to be updated or deleted at the same time.

Multi-row Insert Forms

You can generate a multi-row Insert Form for your Web PL/SQL application so that users can enter multiple rows of data on one page. How

You can control the layout using:

•	ZONIBR to specify how many rows are displayed.

•	ZONITC to specify how many blank fields (items) should appear on each row.

When the Insert button is pressed, a further page is displayed which displays:

•	the number of rows that were successfully entered

•	a list of error messages for rows that were not entered, and the rows are displayed so that the user can edit the data and resubmit it

•	blank rows for more data entry

Note:	For the tick boxes on multi-row Insert Forms to generate correctly, system images have to be copied to the Oracle Application Server, and SYSIMG set to correct location. If this is not done, the symbol on your browser for a missing graphic is displayed instead. How

Multi-Row View Forms

If a large number of records need to be updated or deleted, you can generate a multi-row View Form directly after the initial query which shows several rows of data that can be either modified or deleted at the same time. How

Note:	Multi-row View Forms can only be defined for the Form or List/Form layout styles.

Setting the module component Rows Displayed property to a value greater than 1 causes a multi-row View Form to be generated. The form is displayed when the Find button on the Query Form is pressed.

In List/Form layout style, you can also set ZONLMV, to display a Record List as well, and you can control the number of rows on it using ZONLRS

When records are deleted, the number of deleted items is shown at the top of the multi-row View Form. To see a summary as well, use ZONVSD.

Row set page

The displayed rows on the multi-row View Form consist of a range of rows that match the user's query conditions. When the user modifies any of the rows and presses the Update button, the modified rows form a row set, and the results are displayed on the row set page, where:

•	all the records that were modified are displayed in the same order in which they appeared on the initial page, even if a field used for ordering is modified. If another user has inserted any new records that match the initial query conditions, they are not shown.

•	if the user has tried to modify a row that was subsequently deleted by another user all available columns of the deleted row are displayed as non-updateable text, and an error message is displayed.

•	if the user has attempted to modify a row that has subsequently been updated by another user the row is displayed with the current database values, and an error message is displayed

•	in other cases where an error occurs during update, the row is displayed with an error message, but in this case all updateable items are shown with the values the user has just entered.


Designing multi-row View Forms (Web)
Designing multi-row View Forms

Related Topics

You can generate a multi-row View Form for your Web PL/SQL application so that users can update or delete multiple rows of data at the same time. About

Note:	Designing a multi-row View Form is similar to designing a standard View Form, and this topic just describes the tasks specific to generating a multi-row View Form. See Designing View Forms

To generate a multi-row View Form:

1.	In Design Editor, set the module component properties:

a.	Choose Options→Use Property Dialogs and double-click the module component.

b.	Select the Operations tab and set the module component Update flag.

c.	Select the Display tab and set the module component Layout Style property to be Form or List/Form.

d.	Set the module component Rows Displayed property to be the maximum number of rows you want displayed on the View Form.

e.	Click Finish to save.

2.	In Design Editor, set the item properties:

a.	On the Navigator, select the items in the module component to be updateable and click [image].

3.	Set the multi-row View Form preferences. Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

4.	Select the View Form branch on the preference tree:

a.	(Optional) When the List/Form layout style is used, you can specify that a Record List is also created using ZONLMV . The Record List will not contain any links to the View Form.

b.	Use ZONVTC to specify the number of items to be displayed on the corresponding rows.

c.	Use ZONVBD to specify the order in which navigation buttons are displayed on the multi-row View Form.

d.	You can define alternative prompts for the buttons using these preferences:

ZONVCC	Count
ZONVFC	First
ZONVLC	Last
ZONVNC	Next
ZONVPC	Previous
ZONVQC	Requery
ZONVXC	Query
e.	Use ZONVNM to set the caption of the N to M button on the row set page.

f.	You can set the Previous and Next buttons to always be displayed, regardless of whether a set of records exists before or after the current set using ZONVPN.

g.	If you want to display the total number of records on the View Form before the Count button is pressed, set ZONCVA to Y.

5.	Make any other changes to the View Form. How

6.	Click [image] to save.


About master context in Web PL/SQL applications
About master context

Related Topics

Master context is a record of the master-detail relationship between module components.

In this example there are three module components, and each is connected to the next via a key based link. Each country may have one or more departments, and each department may have one or more employees. The country and department module components are masters of the employee module component. The country module component has no master.

The ability to maintain master context information means that you can use the following functionality:

•	you can provide access to master module component item values by referencing the from

−	LOVs

−	User text

−	SQL expression unbound items

−	SQL text (WHERE, HAVING, and CONNECT BY clauses)

−	User-defined application logic

•	you can customize dynamic return links.

•	you can integrate master context information with other information to control the formatting of a component's header and footer text.

Note:	Only user-defined application logic can reference master components items.  For more information, refer to About user-defined application logic.

The main features of this functionality are:

•	within the context of a module component or list of values you can refer to items from master module components using the item name prefixed by the module component name, in the format module_component.item_name.

•	within the scope of a module component you can load a cache with definitions of objects for the current and master module components. For example, the cache has a list of all the items and their prompts for the current and master components. This is turned on automatically when a display package is named using MDNDPK, or you can use MCNAAC. For more information, refer to Using a cache with master context values

•	within the scope of a module component you can define a custom PL/SQL procedure to display master context headings using MCNDPK. For more information, refer to Writing your own display package


Using a cache with master context values (Web)
Using a cache with master context values

Related Topics

The definition of the current module and any master components are held in an object cache which can be read by the display package. The definition of the object cache is given in the PL/SQL package wsgoc.pks, which appears in the CGENW61\CVWETC directory of your Oracle Designer installation, and it contains an example display package, WSGMC_OUTPUT2. The display procedure is passed a reference to the current module component, and therefore the module is identified. This means that all the module components and items can also be identified.

When either of the following are set, the object cache is automatically added to the generated package: use one of:

•	MCNDPK to define the name of a display package

•	MCNAAC set to Y


Writing your own display package (Web)
Writing your own display package

Related Topics

In order to use master context values saved in an object cache, you have to create your own PL/SQL display package, based on WSGMC_OUTPUT2 that is defined in wsgoc.pkb, and define the  name using MCNDPK.

If you want to write your own display packages you have to implement the following PL/SQL subprograms.

The package must implement the following predefined interface:

create or replace interface WSG_MC_DISPLAY is

  procedure Before (pRef in WSGOC.COMPONENT_REF, pDepth in number);

  procedure After  (pRef in WSGOC.COMPONENT_REF, pDepth in number

end;

As interfaces are not currently part of PL/SQL this means that the package that is named must have the two procedures named with the same signatures.

 The Before procedure is called after any standard page header has been output and before the component starts to output its real user interface. It replaces the user text (TOP text) and title that would normally be output before the component UI. However, the object cache contains methods to get hold of the user text and title so that they can be incorporated into the output as is the case in the following example, where "Requests" is the title of the current component but has been formatted as part of the master context heading.

 The After procedure is called after the component has output its real user interface but before any standard page footer. It replaces the user text (BOTTOM text) that would normally be output after the component UI. However, the object cache contains a method to get hold of the bottom text, referred to as "AfterText", so that it can be incorporated into the output.

In order for the display procedures "Before" and "After" to be called a depth to maintain master context to must be set. This is the number of master components above the current one that context should be shown for. This is usually set using the preference MCNMDP. However, you may want to set a display depth that is less than the maintained depth. For example, you may have a piece of application logic that requires a component two levels above to have the correct item values but you only wish to display one level in your generic display procedure. In this case you would set the MCNMDP to 2 and the MCNDDP to 1.


Customizing the layout of Web pages

Related Topics

During the initial design stages you will probably generate your Web PL/SQL applications using default design and layout settings. However, once you are satisfied with the basic content of your Web pages you may want to customize or refine the layout to suit your particular requirements. These topics describe how to customize different aspects of generated Web pages:

Designing the layout of a generated HTML documents

Startup Pages	About Pages

Query Forms	Insert Forms

Record Lists

List of Values windows

View Forms

General page customization

Defining document templates

Refining the default frameset

Defining custom framesets

Adding color to generated pages

Defining background image files

Displaying custom titles and headings

Adding page headers and footers

Module components - general

Changing the layout style

Aligning elements on HTML forms

Optimizing vertical space

Customizing Record List buttons

Creating graphic hotspot options

Displaying master-detail module components on the same page

HTML form elements

Selecting an HTML form element type

Creating radio groups and radio buttons

Creating text lists and pop lists

Defining check boxes

Setting the size of text boxes or text lists

Defining how prompts are displayed

Splitting HTML form element prompts

Preferences

Setting generator preferences


Designing Startup Pages for Web PL/SQL applications
Designing Startup Pages

Related Topics	Where am I?

A Startup Page is generated for every module within the application. Its purpose is to provide an introduction to the module and navigation to other pages in the application. About

Many aspects of the Startup Page can be customized using preferences. The following steps outline all the aspects of the Startup Page you may change. You may choose to do all, or some of the tasks outlined here.

To set Startup Page properties:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	On the Navigator, double-click the module you require and select the Titles tab.

3.	Enter the Startup Page title.

4.	Select the User Text tab and enter the text which serves to introduce the module.

This introduction may include a combination of text, images, email addresses, URL references and calls to PL/SQL functions. About

5.	Click Finish to save.

To set Startup Page preferences:

1.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system) or module. How

2.	Select the Startup Page branch on the preference tree:

a.	Use MODIFZ to choose whether or not the first module component displayed on the Startup Page.

b.	Use MODFAC to align introductory text and hyperlinks to the center of the page.

c.	Use MODALR to define whether to display or hide the About Page hyperlink.

If you choose to display the About hyperlink, use MODAPL  to format or modify the default hyperlink text.

d.	Use MODFTF to define custom formatting or text for the page title.

3.	Select the Links branch on the preference tree and use MODMNS to define the appearance of navigation hyperlinks.

4.	Select the Headers and Footers branch on the preference tree and use these preferences to define headers and footers for the Startup Page. About

5.	If a custom frameset is defined for the page, select the Frames-Custom branch on the preference tree and use LFMCFM to identify the frame for module content. About

6.	If you have defined custom styles for the module content, select the Document Templates branch on the preference tree and use DOCTMC to define the name and location of the style sheet or template. About

7.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Designing About Pages for Web PL/SQL applications
Designing About Pages

Related Topics	Where am I?

An About Page is generated for every module within the application and its purpose is to display information about the versions of software used to generate, install and display the generated module. About

To set About Page properties:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	On the Navigator, double-click the module you require and select the User Text tab.

3.	Choose the location you require, that is Top of About Page or Bottom of About Page.

4.	Enter text for the About Page.

This may include a combination of text, images, email addresses, URL references and calls to PL/SQL functions. About

5.	Click Finish to save.

To set About Page preferences:

1.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system) or module. How

2.	Select the Startup Page branch on the preference tree:

a.	Use MODALR to define whether an About Page hyperlink is displayed on the Startup Page.

b.	If you choose to display the About hyperlink, use MODAPL to format or modify the default hyperlink text.

c.	Use MODFAC to align the content to the center of the About Page.

d.	If a custom title has been set for the Startup Page using MODFTF, it is also displayed on the About Page.

3.	To use a template or style sheet, select the Document Templates branch on the preference tree and use DOCTAP.

4.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Designing Query Forms for Web PL/SQL applications
Designing Query Forms

Related Topics	Where am I?

If you want the user to be able to enter search criteria before records are displayed in the Record List you must define a Query Form for the module component. Then, you can customize the layout of the Query Form using preferences. About

Note:	Query Forms are optional. For unrestricted queries ensure that all the items in the module component have the Query property set to 'No', or the AutoQuery Property set to 'Yes'.

To set Query Form properties:

1.	In Design Editor, choose Options→Use Property Palette.

2.	On the Navigator, select all the items in the module component (bound and unbound) and click [image].

Tip:	Use the 'Displayed Items and Groups' node on the Navigator to view all bound/unbound items in the module component marked 'Display'.

3.	Click [image] to view the item properties in spreadtable view.

4.	For the set of items you want to appear on the Query Form:

a.	Set the Query property to Yes.

b.	Use the Range Search property to indicate whether a pair of To/From fields are generated.

c.	Use the Width property to specify the display length of the criteria fields.

You may want the user to be able to perform a query on all the items, or just a subset.

5.	To provide additional text searching capabilities, set the ConText Option property of the appropriate item to Yes. About

6.	Click [image] to save.

7.	To add text to describe the Query Form or give instructions:

a.	Choose Options→Use Property Dialogs.

b.	Double-click the module component you require.

c.	Select the User Text tab and then the location you require, that is Top of Query Form or Bottom of Query Form.

d.	Enter the text required.

This may include a combination of text, images, email addresses, URL references and calls to PL/SQL functions. About

8.	Click Finish to save.

To set Query Form preferences:

1.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

2.	Select the Query Form branch on the preference tree:

a.	Use ZONQLS  to select the basic layout you require.

If the layout is set to TABLE, use ZONQBT to add or remove the border.

If the layout is CUSTOM, use MODCLH to define the HTML syntax for the custom bullet.

b.	Use ZONQAC to define whether or not the Query Form is aligned to the center of the page or frame.

c.	Use ZONQTC to specify how many query items appear on each line.

d.	Use ZONQPH to define whether criteria prompts should be left, right or center aligned.

e.	Use ZONQFH to define whether criteria fields should be left, right or center aligned.

f.	Use ZONQQC , ZONQCC and ZONQIC to define alternative prompts for the Find, Clear and New buttons.

g.	(Optional) By default, a hyperlink to a popup calendar is displayed next to date fields.

You can choose to hide the popup calendar that is displayed next to date fields setting CALBUT. to null.

You can change the size and position of the window using CALWIN.

You can change the caption for the Close button, which the user clicks to close the calendar window without selecting a date, using CALCBC.

3.	If the Query Form is for the first module component:

a.	Select the Startup Page branch on the preference tree.

b.	Use MODIFZ to choose whether or not the Query Form is displayed on the Startup Page.

4.	If the Layout Style of the module component is List/Form and the default frameset is used:

a.	Select the Frames branch on the preference tree.

b.	Use LFQOSP to define whether the Query Form is displayed on the same page as the Record List and View Form.

5.	If a custom frameset is defined for the page, select the Frames-Custom branch on the preference tree and use LFQFFM to identify the frame for the Query Form. About

6.	If you have defined custom styles for the Query Form, select the Document Templates branch on the preference tree and use DOCTQF to define the name and location of the stylesheet template. About

7.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Designing Record Lists for Web PL/SQL applications
Designing Record Lists

Related Topics	Where am I?

A Record List is generated for each module component within the module. First, you need to specify properties that govern the content of the Record List. Then, you can customize the layout of the Record List using preferences. About

Note:	The following steps outline all the aspects of the Record List you may change. You may choose to do all, or some of the tasks outlined here.

To set Record List properties:

1.	In Design Editor, set module component properties:

a.	Choose Options→Use Property Dialogs and double-click the module component you require.

b.	Use the Title property to enter a suitable title for the Record List.

For List and List/Form module components, you can also define the number of Rows Displayed in the Record List.

c.	Select the User Text tab and then the location you require, that is Top of Record List or Bottom of Record List.

d.	Enter the text required.

This may include a combination of text, images, email addresses, URL references and calls to PL/SQL functions. About

e.	Click Finish to save.

2.	In Design Editor, set item properties:

a.	On the Navigator, select all the items in the module component (bound and unbound) and click

Tip:	Use the 'Displayed Items and Groups' node on the Navigator to view all bound/unbound items in the module component marked 'Display'.

b.	Click [image] to view the item properties in spreadtable view.

c.	Set the Context property to Yes for the set of items you want to appear in the Record List.

d.	Use the Prompt property to define suitable titles for the columns in the Record List.

e.	If required, use the Order By and Sort Order properties to define the order of rows in the Record List. About

f.	Click [image] to save.

3.	Optionally, define restrictive query conditions against table usages within the module component. How

To set Record List preferences:

1.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

2.	Select the Record List branch on the preference tree:

a.	Use ZONLLS to select the basic layout you require.

If the layout is set to TABLE, use ZONLBT to add or remove the border.

If the layout is CUSTOM, use MODCLH to define the HTML syntax for the custom bullet.

b.	Use ZONLHF to choose whether or not values are displayed with HTML Formatting.

c.	Use ZONLAC to define whether or not the Record List is aligned to the center of the page or frame.

d.	Use ZONLCH , ZONLDH and ZONLNH to define whether prompts and their values should be left, right or center aligned.

e.	Use ZONLHD to indicate whether headings for Record List columns should be displayed.

f.	Use ZONLRS to specify the maximum number of records to be displayed on the page.

This preference is not used if a record set size has been defined using the module component Rows Displayed property. About

g.	(Optional) Use ZONLTC to specify how many records appear on each line. (Optional)

h.	(Optional) Use ZONLPN to determine whether Previous and Next buttons are created when they are not required in the current record set.

i.	Customize the Record List buttons. About

j.	If the module component has any detail components, use ZONLDL to choose how hyperlinks to the detail information are displayed.

k.	(Optional) Change the hyperlink to the popup calendar that is displayed next to date fields using CALBUT, and customize the appearance of the calendar using CALWIN and CALCBC.

3.	If this Record List is for the first module component and it has no Query Form:

a.	Select the Startup Page branch on the preference tree.

b.	MODIFZ to choose whether or not you want the Record List displayed on the Startup Page (MODIFZ).

4.	If a custom frameset is defined for the page, select the Frames-Custom branch on the preference tree and use LFRLFM to identify the frame for the Record List. About

5.	If you have defined custom styles for the Record List, select the Document Templates branch on the preference tree and use DOCTRL to define the name and location of the style sheet or template. About

6.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Designing View Forms for Web PL/SQL applications
Designing View Forms

Related Topics	Where am I?

A View Form is generated for each record displayed in the Record List. First, you need to specify properties that govern the content of the View Form. Then, you can customize the layout of the View Form using preferences. About

You can also generate a multi-row View Form, which allows the user to amend or delete a number of records at one time. How

Note:	The following steps outline all the aspects of the View Form you may change. You may choose to do all, or some of the tasks outlined here.

To set View Form properties:

1.	In Design Editor, set module component properties:

a.	Choose Options→Use Property Dialogs and double-click the module component.

b.	Use the Title property to enter a suitable title for the View Form.

c.	Select the User Text tab and then the location you require, that is Top of View Form or Bottom of View Form.

d.	Enter the text required.

This may include a combination of text, images, email addresses, URL references and calls to PL/SQL functions. About

e.	Click Finish to save.

2.	In Design Editor, set item properties:

a.	On the Navigator, select all the items in the module component (bound and unbound) and click [image].

Tip:	Use the 'Displayed Items and Groups' node on the Navigator to view all bound/unbound items in the module component marked 'Display'.

b.	Click [image] to view the item properties in spreadtable view.

c.	Ensure the Display property for each is set to Yes.

d.	For updateable items, set the Update property to Yes.

e.	Set display properties as required:

Prompt	Display Type	Show Meaning
Width	Height
Format Mask	Formatting
f.	For derived (unbound) items, enter the Derivation Text required.

To calculate and display a derived value dynamically on a View Form, ensure that all items referenced within the derivation expression appear on the same form and are updateable. About

To set View Form preferences:

1.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

2.	Select the View Form branch on the preference tree:

a.	Use ZONVLS to select the basic layout you require.

If the layout is set to TABLE, use ZONVBT to add or remove the border.

If the layout is CUSTOM, use MODCLH to define the HTML syntax for the custom bullet.

b.	Use ZONVAC to define whether or not the View Form is aligned to the center of the page or frame.

c.	Use ZONVPH and ZONVFH to define whether field prompts and values should be left, right or center aligned.

d.	Use ZONVTC to specify how many items appear on each line.

e.	Customize the format, or hide the Context Header, using ZONVCH and ZONVCF.

f.	Use ZONVDN to define whether or not prompts are displayed on the View Form even when no column value is available.

g.	Use ZONVRV to define how HTML form elements and prompts are aligned.

h.	Use ZONVUC , ZONVDC , ZONVRC and ZONVIC to define alternative prompts for the Update, Delete, Revert and New buttons.

i.	(Optional) By default, a hyperlink to a popup calendar is displayed next to date fields.

You can choose to hide the popup calendar that is displayed next to date fields setting CALBUT. to null.

You can change the size and position of the window using CALWIN.

You can change the caption for the Close button, which the user clicks to close the calendar window without selecting a date, using CALCBC.

3.	Use ZONVEC to determine whether any unbound items in this module component (SQL expression or Client-side functions only) appear on the View Form by default, if the items on which they are based are also included on the View Form.

4.	If the Layout Style of the module component is List/Form:

a.	Select the Frames branch on the preference tree.

b.	Use LFVFAQ to define whether to auto-query the first entry in the Record List.

5.	If a custom frameset is defined for the page, select the Frames-Custom branch on the preference tree and use View Form Frame (LFVFFM) to identify the frame for the View Form. About

6.	If you have defined custom styles for the View Form, select the Document Templates branch on the preference tree and use View Form Template filename (DOCTVF) to define the name and location of the style sheet or template. About

7.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Designing Insert Forms for Web PL/SQL applications
Designing Insert Forms

Related Topics	Where am I?

If you want the user to be able to enter new records you must define an Insert Form for the module component. Then, you can customize the layout of the Insert Form using preferences. About

You can also create multi-row Insert Forms where the user can add more than one record at a time. About

Note:	The following steps outline all the aspects of the Insert Form you may change. You may choose to do all, or some of the tasks outlined here.

To set Insert Form properties:

1.	In Design Editor, set module component properties:

a.	Choose Options→Use Property Dialogs and double-click the module component.

b.	Select the User Text tab and then the location you require, that is Top of Insert Form, or Bottom of Insert Form.

c.	Enter the text required.

This may include a combination of text, images, email addresses, URL references and calls to PL/SQL functions. About

d.	Click Finish to save.

2.	In Design Editor, set item properties:

a.	On the Navigator, select all the items in the module component (bound and unbound) and click [image].

Tip:	Use the 'Displayed Items and Groups' node on the Navigator to view all bound/unbound items in the module component marked 'Display'.

b.	Click [image] to view the item properties in spreadtable view.

c.	Set the Insert property to Yes for the set of items to be displayed on the Insert Form.

d.	Set display properties as required:

Prompt	Display Type	Show Meaning
Width	Height
e.	If appropriate, use the Default property to define default values for new records.

f.	For derived (unbound) items, enter the Derivation Text required.

To calculate and display a derived value dynamically on an Insert, ensure that all items referenced within the derivation expression appear on the same form. About

To set Insert Form preferences:

1.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

2.	Select the Insert Form branch on the preference tree:

a.	Use ZONILS to select the basic layout you require.

If the layout is set to TABLE, use ZONIBT to add or remove the border.

If the layout is CUSTOM, use MODCLH to define the HTML syntax for the custom bullet.

b.	Use ZONIAC to define whether or not the Insert Form is aligned to the center of the page or frame.

c.	Use ZONIPH and ZONIFH to define whether field prompts and values should be left, right or center aligned.

d.	Use ZONITC to specify how many items appear on each line.

e.	Use ZONIBR to specify the number of blank rows to display. For a single-row Insert Form, set this to 1.

f.	(Optional) Use ZONIIC and ZONIRC to define alternative prompts for the Insert and Clear buttons.

g.	(Optional) Use ZONIEC to determine whether any unbound items in this module component (SQL expression or Client-side functions only) appear on the Insert Form by default, if the items on which they are based are also included on the Insert Form.

h.	(Optional) By default, a hyperlink to a popup calendar is displayed next to date fields.

You can choose to hide the popup calendar that is displayed next to date fields setting CALBUT. to null.

You can change the size and position of the window using CALWIN.

You can change the caption for the Close button, which the user clicks to close the calendar window without selecting a date, using CALCBC.

3.	If a custom frameset is defined for the page, select the Frames-Custom branch on the preference tree and use Insert Form Frame (LFVFFM) to identify the frame for the Insert Form. About

4.	If you have defined custom styles for the Insert Form, select the Document Templates branch on the preference tree and use Insert Form Template filename (DOCTIF) to define the name and location of the style sheet or template. About

5.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Designing List of Values windows as repository definitions for Web PL/SQL applications
Designing List of Values windows as repository definitions

Related Topics	Where am I?

List of Values windows can be defined as reusable LOVs within a workarea, or as an LOV definition within a module component.  For more information about repository LOV definitions, refer to Lists of Values (LOVs) components.

To create the LOV as a repository element:

1.	Create the repository LOV definition. How

2.	Create an LOV base table usage (and optionally LOV lookup table usages) of the table(s) containing the values you want to display in the generated LOV.

3.	Create bound items from columns in the LOV table usage(s) that you want to appear in the generated LOV (set the items' Display properties to Yes).

4.	Associate the repository LOV definition with appropriate bound and unbound items in the module.

5.	Specify the values returned by the LOV, and which items the values are returned to.

If you do not specify the items to return values to, values are returned to those items that are also contained in the LOV.

6.	To restrict the values that are available in an LOV, use the following repository properties to build up a query in the Record Group Query property of the query record group on which the generated LOV is based:

•	use the LOV table usage's WHERE Clause of Query property to limit the values in the generated LOV when querying data, and the LOV table usage's Validation WHERE Clause property to limit the values in the generated LOV when entering or modifying data

•	use the repository LOV definition's Additional Restriction property to limit the values in the generated LOV in addition to any conditions specified by the LOV table usage's WHERE Clause of Query property and Validation WHERE Clause property (if you use the Additional Restriction property, Web PL/SQL Generator ignores WHERE clause properties of lookup usages of the table on which the LOV is based)

•	use the repository LOV definition's Restriction Clause property to control where the condition specified by the Additional Restriction property appears in the query record group's Record Group Query property

•	if you do not set the repository LOV definition's Additional Restriction property and if a module component lookup table usage and a repository LOV table usage are based on the same table, you can limit the values in the LOV using the module component lookup table usage's WHERE Clause of Query property (when querying data) and Validation WHERE Clause property (when entering or modifying data)

7.	Set other properties for the generated LOV as required, using preferences.

To set LOV preferences:

For more information about List of Values preferences, refer to List of Values window preferences.

Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.

1.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

2.	Select the List of Values branch on the preference tree:

a.	Use LOVBUT to define a custom LOV hyperlink.

b.	Use LOVSTL to specify whether the LOV should appear in the browser as a new window, or an HTML frame.

If a new (or secondary) window is used, use LOVWIN to define its initial size and other window properties. You can also define alternative captions for the Find and Close buttons (LOVFBC, LOVCBC) if required.

If the LOV is to be displayed in an HTML frame within the default frameset, use LOVFWD to define its initial width. You may also define an alternative caption for the Find button (LOVFBC). The Close button is not required as the frame is permanently displayed.

If the LOV is to be displayed in an HTML frame within a custom frameset, select the Frames-Custom branch and use LFLVFM to define which frame it is placed in.

3.	Click [image] to save.


About templates and style sheets in Web PL/SQL applications
About templates and style sheets

Related Topics	Where am I?

By default, Web PL/SQL Generator uses a set of standard, built-in styles to format generated documents. When the default styles are used you can control the background color, background image, text color and hyperlink color using a set of document attribute preferences.

However, if the default styles used by Web PL/SQL Generator do not suit your particular requirements, you can customize the look and feel of generated Web PL/SQL applications by applying consistent colors, fonts, and so on using document templates. There are a number of preferences which allow you to map the document templates to one or more types of generated document, for example Query Form, Record List and so on. You can create:

•	a single template and apply it to all the different types of generated documents. This will produce an application that presents a consistent look and feel across all pages

•	several different style templates and apply them to individual documents in the application

For information about the preferences that you use to associate a template with a document, refer to Document Template preferences.

Document templates

The text in the document template, which is an ASCII file, becomes the content of the HEAD section, i.e. the text between the <HEAD> and </HEAD> tags, of the generated HTML document. You can use it for:

•	Controlling the font sizes, margins, indents, line spacing, colors, and so on using:

−	embedded styles. Click here for an example of a document template file containing embedded styles

−	Cascading Style Sheets (CSS) . Click here for an example of a document template file referencing a CSS

•	meta information

•	any other information that is valid in the HEAD section of the version of HTML supported by the browser on which your application will be run. You can find reference information about HTML, including the HEAD section, at:

−	http://www.w3.org/MarkUp/

−	http://www.htmlhelp.com/reference/

Notes

Not all browsers currently support style sheets or cascading style sheets to the same degree. Browsers that have no support for style sheets display pages using the browser's default settings.

The document template is only used during generation; it does not have to be present when the generated application is run. However, if you are using CSS, you must ensure that the CSS file referenced in the document template is available when the generated application is run.

Choosing a character set

We recommend that you set the character set of HTML pages so that the browser is prevented from interpreting characters as HTML control characters. To do this, add the following line to the document template:

<META http-equiv="charset" content="charset required">

For example:

<META http-equiv="charset" content="iso-8859-1">

Location of the document templates

Use the Source options on the Web PL/SQL Generator Options dialog to determine where Web PL/SQL Generator searches for templates (either in the filesystem or in the repository).


Document template example, using embedded styles

This example shows a document template that uses:

•	embedded styles for the document (in the STYLE section).

•	the title that identifies the document.

•	meta information. In this case it specifies that the character set to be used is that for West European languages.

For assistance with the hexadecimal value for each color, refer to the Color chart.

For reference information about HTML, connect to:

•	http://www.w3.org/MarkUp/

•	http://www.htmlhelp.com/reference/

For more information about using document templates, refer to About templates and style sheets


Document template example, using CSS

A document template is an ASCII file in which you specify the HTML for the HEAD section of the generated Web PL/SQL document. You associate the template with one or more of the elements of a Web PL/SQL application using preferences. For more information, refer to About templates and style sheets

This example of the contents of a document template file shows how to specify:

•	that a Cascading Style Sheet (CSS) is used (in the LINK section). CSS is a powerful mechanism that can allow more than one style sheet to influence the presentation simultaneously. We recommend that you use CSS rather than embedded styles in the document template because you can change the font sizes, colors, and so on, in the application by changing the settings in the CSS file without having to generate the application again.

•	the title that identifies the document.

•	meta information. In this case it specifies that the character set to be used is that for West European languages.

The CSS style sheet, "mystyles.css", is an ASCII file. In this example, the colours and fonts are defined.  (For assistance with the hexadecimal value for each color, refer to the Color chart.)

   HTML {background: #000000; color: #FFFFCC}

   BODY {background: #000000; color: #FFFF00; margin-left: 30px}

   TABLE {background: ""}

   H1 {font-family: Times New Roman; font-size: 24 pt; color: #FFFF00}

   H2 {color: #0099FF}

   P {font: 12pt Times New Roman; color: #FFFF00}

Note	When you use CSS, you must ensure that the CSS file is available when the application is run.

For detailed information on how to achieve advanced layouts with style sheets refer to the following Web sites:

•	http://www.w3.org/Style/

•	http://www.htmlhelp.com/reference/css


Defining document templates for Web PL/SQL applications
Defining document templates

Related Topics	Where am I?

You can design document templates and then use preferences to map the templates to one or more types of generated document (Query Form, Record List and so on). About

To define a document template for a generated document:

1.	Design a suitable template for the generated document.

2.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

3.	Select the Document Templates branch on the preference tree.

4.	Use the appropriate preference to enter the name and location of the template file.

For example, Record List Template Filename (DOCTRL), View Form Template Filename (DOCTVF), List of Values Template Filename (DOCTLV).

Note that the Source options on the Web PL/SQL Generator Options dialog determine where Web PL/SQL Generator searches for templates (either in the filesystem or in the repository).

5.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About HTML framesets in Web PL/SQL applications

Related Topics

What are HTML frames and framesets ?

HTML frames allow you to divide a Web page into separate regions that display content independently so that you can create pages that are divided up into rows, columns, or multiple rows and columns.

A standard HTML document has a HEAD section, followed by a BODY section. An frameset document has a HEAD section, but in this case it is followed by a FRAMESET section. For detailed information about framesets, and other HTML tags, connect to:

•	http://www.w3.org/MarkUp/

•	http://www.htmlhelp.com/reference/

Default frameset for module components using List/Form layout style

By default, Web PL/SQL Generator uses a frameset similar to that shown below to display the HTML documents generated from List/Form module components:

The content and placement of these frames are fixed, but you can change the relative sizes of these frames using preferences. For more information, refer to About the default frameset.

Custom framesets for module components using List/Form layout style

If the default frameset does not suit your particular requirements, you can design a custom frameset template of your own and then use preferences to map the frameset to a particular module component. For more information, refer to About custom framesets

This feature allows you to generate advanced custom layouts for List/Form module components. You have complete control over the number and placement of frames and what they are used for. For example, you can:

•	place several documents in the same frame (for example Query Form and Record List). If the same frame is used for more than one document additional buttons are generated so the user can switch between the different forms.

•	create extra frames and use the SRC attribute of the FRAME tag to load non-generated documents.

•	utilize FRAMESET and FRAME tag attributes to define details such as the frame size, whether the frame is resizable or scrollable, the type of border, the space between frames, border color.

Custom framesets for module components using List or Form layout styles

If you want to use the different kinds of layout styles on the the same page, you should define your own frameset.  For more information, refer to About custom framesets.


About the default frameset in Web PL/SQL applications

Related Topics

If the Layout Style for a module component is List/Form, the documents generated from the module component can appear in frames on the same page. By default, Web PL/SQL Generator uses this frameset to display the HTML documents:

If this frameset does not suit your particular requirements, you can define a custom framesets for List/Form module components. For more information, refer to About custom framesets.

Default frameset preferences

To ensure that the information on the page is presented in the most economical way, you can pre-define the sizes of each frame using preferences. How

First you must have a firm idea of the content of the page so you can determine the number of frames which will be generated and the area required by each frame. The generated page will be made up of at least three frames, but additional frames may be generated to display page footers, or lists of values for foreign key lookup columns. For example:

<FRAMESET> syntax examples

Use the syntax of the <FRAMESET> tag to set the size of frames 1, 2 and 3. For example,

*,2*	First row (or column) is half the size of the second.
25%,75%	First row (or column) is 25% of space available and the second uses 75%
100,*	First row (or column) is 100 pixels, the second fills remaining space.
Note:	The default frameset is used when the LFCUST preference is set to No.


Refining the default frameset in Web PL/SQL applications
Refining the default frameset

Related Topics	Where am I?

You can pre-define the size of frames within the default frameset using preferences. About

To define the size of frames within the default frameset:

1.	Ensure that the Layout Style of the module component is List/Form. How

2.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

Typically frame size preferences are set for a particular module component, therefore select the Module branch on the hierarchy tree, the module you require and then the module component.

3.	Select the Frames branch on the preference tree and check that LFCUST is set to No.

4.	Select the Frames-Default branch on the preference tree and then use the <FRAMESET> tag syntax to specify frame sizes:

a.	Use LFROWS to define the relative heights of the Top Frame and the Record List/View Form Frames.

b.	Use LFCOLS to define the relative widths of the Record List and View/Insert Form Frames.

c.	If a footer is defined for the page, use MODSFH to define the absolute height of the bottom frame.

Note:	This preference must be set at container (i.e. folder or application system) level or at module level.

5.	If the module component contains any enterable foreign key lookup columns and the LOV style is set to Frames:

a.	Select the List of Values branch on the preference tree.

b.	Use LOVFWD to define the absolute width of the LOV frame.

6.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About custom framesets in Web PL/SQL applications

Related Topics

You can design a custom frameset template and then use preferences to map the template to one or more module components. How

Custom frameset templates

The frameset template is an ASCII file that just contains HTML frame information. This example shows the type of information that can be included:

In this example the frameset defines a page containing two columns and the first column is a single frame named F1 (FRAME tag). The second column contains three rows (FRAMESET tag), the first row is named F2, the second row is named F3 and the third row is named F4.

If you specify a SRC attribute for a FRAME tag it is used as the initial URL, providing that no generated document is going to appear in the frame (in this case the SRC attribute is replaced).

If the template does not include <TITLE> or <NOFRAME> tags they are added to the generated document automatically.

For detailed information about framesets, connect to:

•	http://www.w3.org/MarkUp/

•	http://www.htmlhelp.com/reference/

Custom frameset preferences

To use a custom frameset you will need to set the LFCUST preference to Yes and then use the LFFSTP preference to define the name and location of the frameset template.

There are additional preferences to map the template to individual HTML documents. For example,

During generation, Web PL/SQL Generator extracts the frame information and incorporates the HTML within the appropriate generated document.


Defining custom framesets for Web PL/SQL applications
Defining custom framesets

Related Topics	Where am I?

You can design a custom frameset template and then use preferences to map the template to one or more List, List/Form or Form module components. About

To define a custom frameset for a List/Form module component:

1.	Design a suitable frameset template for the module component. For more informaiton, refer to About custom framesets

2.	Set that the Layout Style of the module components is List/Form. How

3.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

Typically frameset preferences are set for a particular module component, therefore select the Module branch on the hierarchy tree, the module you require and then the module component.

4.	Select the Frames branch on the preference tree and set LFCUST to Yes.

5.	Select the Frames-Custom branch on the preference tree and then use LFFSTP to define the name and location of the ASCII file containing the frameset definition.

6.	For each type of generated document, use the appropriate preference to enter the name of the destination frame. For example, Record List Frame (LFRLFM), Header Frame (LFHDFM), List of Values Frame (LFLVFM).

7.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About color and background images in Web PL/SQL applications

Related Topics

For generated HTML documents that use the default style template, the background color, background image, text color and hyperlink color can be defined using a set of document attribute preferences.

Note:	Where you have defined document templates for your Web PL/SQL application, the document attribute preferences are not used. In this case, you should define document attributes within the template itself. About

Document attribute preferences may be set at container (i.e. folder or application system) or module level. This allows you to create a Web PL/SQL application which displays different colored modules and this feature may be useful within larger applications where you want to clarify different areas of functionality. Alternatively, you can set these preferences at container level to generate a Web PL/SQL application which displays a common color scheme across all pages.

If you decide not to configure custom colors, or a background image of your own, the Web PL/SQL application inherits the default colors defined within the browser.

Color preferences

To specify the background color, text color or hyperlink color you need to enter the hexadecimal value which represents the color you want to display. How

Each hexadecimal value takes the form "RRGGBB" where RR is the value from 00-FF(hex) for the degree of the red color component, GG for the green component and BB for the blue component. Refer to the Color chart for assistance.

Background image files

To enhance the appearance of your generated Web PL/SQL application you can define the name and location of background image files using Background Image File (MODBGR). How

The image you define must reside on the Web PL/SQL file system and should be in a format supported by the Web browser you are using, such as GIF format. If the Web PL/SQL image directory is mapped to a "virtual" directory, the mapped path name should be specified. About


Color chart for Web PL/SQL applications
Color chart

Each hexadecimal value takes the form "RRGGBB" where RR is the value from 00-FF(hex) for the degree of the red color component, GG for the green component and BB for the blue component. Use this color chart for assistance:


Adding color to generated pages in a Web PL/SQL application
Adding color to generated pages

Related Topics	Where am I?

For generated HTML documents that use the default style template, the background color, text color and hyperlink color can be defined using a set of document attribute preferences. About

If you decide not to configure custom colors of your own, the Web PL/SQL application inherits the default colors defined within the browser.

To specify custom colors:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system) or module. How

2.	Select the Document Attributes branch on the preferences tree.

3.	For each color preference, enter the hexadecimal value that represents the color you require:

Page/ frame background	MODBGC
Text	MODFGC
Standard hyperlinks	MODSLC
Active hyperlinks	MODALC
Visited hyperlinks	MODVLC
Refer to the Color Chart for example values.

Note:	Alternatively, use the MODBGR preference.

4.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Defining background image files for Web PL/SQL applications
Defining background image files

Related Topics	Where am I?

You can define custom backgrounds for generated HTML documents that use the default style template. About

To specify a background image file:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system) or module. How

2.	Select the Document Attributes branch on the preferences tree.

3.	Use MODBGR to enter the image file name and location.

4.	The image you define must reside on the Web PL/SQL file system and should be in a format supported by the Web browser you are using, such as GIF format. About

Note:	If a single color is required, use MODBGC instead.

5.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About titles and headings in Web PL/SQL applications

Related Topics

Default title text and style

Within the module design you specify properties which provide default titles for generated HTML documents.

Title	Default text	Default style	Repository element
Startup Page, About Page	Top Title property	<H1>	Module
Query Form, Record List, Insert Form, View Form	Title property	<H1> or <H2>	*Module component
Context header (View Form)	Prompt property	<H2>	Items marked 'Context'
* <H1> is used whenever module component titles appear at the top of a page. <H2> is used if a detail module component appears on the same page as its master, or if the module component appears on the Startup Page.

Custom title preferences

For greater flexibility a number of preferences are provided which allow you to customize the style, or change the text for any title within the application. How

MODFTF	Formats the title of the Startup Page (and About Page).
ZONZTF	Formats the title of the Query Form, Record List, Insert Form and View Form.
ZONVCF	Formats the context header on the View Form. The header text is created dynamically from column values displayed in the Record List.
Title format preferences may be set at container (i.e. folder or application system), module, module component, or table level. If you want titles to be displayed using the same custom format, throughout the entire generated application, set the preferences at container (i.e. folder or application system) level. If you just want to modify the default style for all the pages generated from a particular module, set the preferences at the module level. Finally, to define a custom title for an individual HTML document, set the preference against the associated module component (or table).

The content and format of titles can be defined using plain text, calls to PL/SQL functions, or HTML syntax:

PL/SQL functions	Functions must be part of a PL/SQL package defined within the PKGLST preference and be installed on the PL/SQL Toolkit schema. If you try to reference a function from an undefined package it cannot be processed and the function call syntax is treated as normal text. If a valid function is found without parameters it is assumed that the function takes a single parameter and the default title text is passed in.
HTML syntax	MODSUB must be set to No.
Example preference values

	Generated title	Description
DEFAULT	<Default Title Text>	Default text and format
htf.header(3, 'New Title')	New Title	Displayed as <H3>
htf.header(3, '%s')	<Default Title Text>	Displayed as <H3>
htf.italic('New Title') htf.para	New Title	Displayed in italics
htf.italic('%s') htf.para	<Default Title Text>	Displayed in italics
wsgfl.cyan('%s') htf.para	<Default Title Text>	Displayed in cyan
<I>New Title</I><P>	New Title	Displayed in italics
<H3>%s</H3><P>	<Default Title Text>	Displayed as <H3>
mypackage.myfunction('My Title')	My Title	Custom format
mypackage.myfunction	<Default Title Text>	Custom format
-		No title generated
To ensure that user text appears on a new line underneath the title the relevant paragraph marker must be used, that is htf.para, or <P>. The exception here is htf.header, as this function does not require an additional paragraph marker.

%s indicates that the default title text should be displayed, although entirely new titles may be defined if required.


Displaying custom titles and headings in Web PL/SQL applications
Displaying custom titles and headings

Related Topics	Where am I?

You can customize the content and format of titles using plain text, calls to PL/SQL functions, or HTML syntax. About

To customize a title or heading:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system), module or module component. How

3.	To modify the title of the Startup Page:

a.	Select the Startup Page branch on the preference tree.

b.	Use MODFTF to specify the custom format (or content).

4.	To modify the title of the Query Form, Record List, Insert Form and View Form:

a.	Select the General Layout branch on the preference tree.

b.	Use ZONZTF to specify the custom format (or content).

5.	To modify context headers on the View Form:

a.	Select the View Form branch on the preference tree.

b.	Use ZONVCF to specify the custom format (or content).

To hide context headers, set ZONVCH to No.

6.	If any title contains a call to a custom PL/SQL function, check that its associated PL/SQL package is defined within the PKGLST preference (Text Handling branch).

7.	If any title is formatted with HTML syntax, check that MODSUB is set to No (Text Handling branch).

8.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About page headers and footers for Web PL/SQL applications
About page headers and footers in Web PL/SQL applications

Related Topics

A header or footer is text or graphics that typically appears at the top or bottom of generated Web pages. If a generated page uses the default frameset the header appears in the top frame and an additional frame is created to display the footer information. If a custom frameset is used, the position of header and footer frames are user-defined.

Page headers and footers for generated Web PL/SQL applications are defined using a set of header and footer preferences and they may be set at an application or module level. How

Setting them at container (i.e. folder or application system) level generates an application where all the pages have the same header or footer. Alternatively, by setting them at the module level, unique headers and footers can be defined to clarify different areas of functionality.

When defining a header or footer you can choose whether it appears on all the pages generated from the module or just the Startup Page.

The content and format of headers and footers can be defined using plain text, calls to PL/SQL functions, or HTML syntax. This means that headers and footers can include anything that is displayable using HTML.

Calls to PL/SQL functions	Functions must be part of a PL/SQL package defined within the PKGLST preference and be installed on the PL/SQL Toolkit schema.
HTML syntax	The MODSUB preference must be set to No.
If your generated application contains a mixture of pages that contain frames and pages that do not, you can use the WSGL variable 'InBottomFrame' (within custom PL/SQL functions) to define a footer that looks suitable across all pages. The use of the 'InBottomFrame' is illustrated in a page footer example.


Adding page headers and footers for Web PL/SQL applications
Adding page headers and footers

Related Topics	Where am I?

You can add page headers and footers to some or all of the pages in your generated application. About

To add a page header or footer:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system) or for a module. How

2.	Select the Headers and Footers branch on the preference tree.

3.	Use MODSHD to specify the content of a page header.

If you define a header you may choose whether it is displayed on all pages generated from the module, or just the Startup Page MODSHA).

4.	Use MODSFT to specify the content of a page footer.

If you define a footer you may choose whether it is displayed on all pages generated from the module, or just the Startup Page MODSFA).

5.	If the header or footer contains a call to a custom PL/SQL function, check that its associated PL/SQL package is defined within the PKGLST preference (Text Handling branch).

6.	If the header or footer is formatted with HTML syntax, check that MODSUB is set to No (Text Handling branch).

7.	If a custom frameset is defined for the page, select the Frames-Custom branch on the preference tree and then use Header Frame (LFFTFM) and Footer Frame (LFHDFM) to identify the frames that are used to display headers and footers. About

8.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Changing the layout style of Web PL/SQL module components

Related Topics	Where am I?

The overall appearance, content and sequence of pages generated for a particular module component is mainly driven from the module component Layout Style property. About

To change the layout style for a module component:

1.	In Design Editor, double-click the module component you require.

2.	Choose the Layout Style you require.

Tip: If you are using Property Dialogs this is on the Display tab.

3.	Click [image] or Finish to save the changes.


About alignment on HTML forms in Web PL/SQL applications

Related Topics

You can set various preferences to determine the way items are aligned within an HTML document. How

Default alignment

By default, the content of HTML documents are aligned to the left of the page (or frame). Prompts and HTML form elements are also aligned to the left.

The only exception here is numeric columns within a Record list, which are right aligned.

Alignment preferences

First there are the set of page alignment preferences which allow you to align the content of any generated HTML document to the center of the page, or frame. About

In addition, there are horizontal alignment preferences which allow you to align HTML form elements and their prompts when the item layout style is TABLE or PREFORMAT. About

Finally, for the View, Insert and Query Forms, you can specify how HTML form elements and their prompts are aligned vertically. About


Aligning elements on HTML forms in Web PL/SQL applications
Aligning elements on HTML forms

Related Topics	Where am I?

You can set various preferences to determine the way HTML form elements are aligned within an HTML document. About

To define the alignment of items using preferences:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the required element, that is container (i.e. folder or application system), table, module or module component. How

2.	Set page alignment preferences as required:

MODFAC (Module Content)

ZONTAC (Text Frames)

ZONQAC (Query Forms)

ZONIAC (Insert Forms)

ZONLAC (Record Lists)

ZONVAC (View Forms)

3.	Set horizontal alignment preferences for form elements as required:

ZONQFH (Query Forms)

ZONQPH (Query Forms)

ZONIFH (Insert Forms)

ZONIPH (Insert Forms)

ZONLCH (Record Lists)

ZONLNH (Record Lists)

ZONLDH (Record Lists)

ZONVFH (View Forms)

ZONVPH (View Forms)

4.	For a View Form, set the vertical alignment for form elements and their prompts using ZONVRV

5.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About vertical space in Web PL/SQL applications

Related Topics

Query Forms, View Forms and Insert Forms

By default, HTML form elements on these HTML forms are laid out vertically in the order they appear within the module component. If vertical space is limited, you can reduce the amount required by placing more than one item on each line. How

Sometimes this means that vertically short items are adjacent to tall items, creating areas of empty space. One way to make better use of this space would be to change the display order of the items such that tall elements (or short elements) are displayed adjacent to each other. You can do this by dragging and dropping the items on the module diagram (in Display View).

Number Items per Line = 2	Number Items per Line = 2	Number Items per Line = 4
	Note that the display order has been changed.
Record Lists

The amount of vertical space used by Record Lists can be reduced by placing more than one record on each line. How

If this is not desirable, you can reduce the number of records the Record List displays at a time using the:

•	Rows Displayed property for the module component.

•	ZONLRS preference


Optimizing vertical space in Web PL/SQL applications
Optimizing vertical space

Related Topics	Where am I?

You can optimize the use of vertical space on generated HTML forms using preferences. About

To optimize space on generated HTML forms using preferences:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the required module component. How

2.	To generate a Query Form, Insert Form or View Form which displays more than one HTML form element per line:

a.	Select the appropriate branch from the preference tree, that is one of Query Form, Insert Form or View Form.

b.	Use the appropriate preference to define how many items are displayed on each line:

•	ZONQTC (Query Form)

•	ZONITC (Insert Form)

•	ZONVTC (View Form)

3.	To reduce the amount of vertical space used by a Record List:

a.	Select the Record List branch from the preference tree.

b.	Use ZONLTC to display more than one record on each line.

c.	If appropriate, use ZONLHD to hide column headings.

d.	Reduce the record set size. Do one of the following:

•	Set the Rows Displayed property for this module component.

•	Use the ZONLRS preference.

4.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About Record List buttons in Web PL/SQL applications
About Record List buttons

Related Topics

A set of push-buttons may be provided for the Record List to facilitate navigation through database records. Through the use of preferences you can change the order of the buttons, hide buttons, or change the button captions. How

Here are some examples:

Preference values	Record List buttons
Default captions  ZONLBD = F.P.N.L.R.C
Custom captions  ZONLPC = << ZONLNC = >>	(no Insert/Query Forms)
ZONLBD = F.L./.P.N Default Captions	(no Insert/Query Forms)
Note:	The Count button is not displayed if you have set the ZONLDC preference to 'Yes', as in this case the count information is permanently displayed.

JavaScript support

If the browser supports JavaScript and the ZONLPN preference is set to 'Yes', the buttons you configure are displayed all the time, regardless of whether an individual button action is available. If a user clicks on an inappropriate button, a popup message is displayed.

Conversely, if the browser does not support JavaScript, or the preference ZONLPN is set to 'No', buttons are only displayed if an associated action is available. For example, First, Previous, Next and Last buttons are not displayed if all the records are displayed at once.


Customizing Record List buttons

Related Topics	Where am I?

You can use preferences to customize Record List buttons. For example, you can change the order of buttons, hide buttons, or change button captions. About

To customize Record List buttons:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the required module component. How

2.	Select the Record List branch:

a.	Use ZONLDC to specify whether count information should be displayed all the time, or if a Count button if required.

b.	Use ZONLBD to identify the buttons you want to display, the order in which they must appear, and whether they should be placed over more than one line.

c.	(JavaScript browsers only). Use the ZONLPN to specify when navigation buttons are displayed.

d.	Use the Record List button preferences to define alternative captions for the buttons you want to display.

3.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About View Form buttons in Web PL/SQL applications
About View Form buttons

Related Topics

A set of push-buttons may be provided for the View Form to facilitate navigation through database records. Through the use of preferences you can change the order of the buttons, hide buttons, or change the button captions. How

Here are some examples:

Preference values

Default captions

ZONVBD = F.P.N.L.R.C

Custom captions

ZONVPC = <<
ZONVNC = >>

ZONVBD = F.L./.P.N

Default Captions

Note:	The Count button is not displayed if you have set the ZONVCA preference to 'Yes', as in this case the count information is permanently displayed.

JavaScript support

If the browser supports JavaScript and the ZONVPN preference is set to 'Yes', the buttons you configure are displayed all the time, regardless of whether an individual button action is available. If a user clicks on an inappropriate button, a popup message is displayed.

Conversely, if the browser does not support JavaScript, or the preference ZONVPN is set to 'No', buttons are only displayed if an associated action is available. For example, First, Previous, Next and Last buttons are not displayed if all the records are displayed at once.


Customizing View Form buttons

Related Topics	Where am I?

You can use preferences to customize View Form buttons. For example, you can change the order of buttons, hide buttons, or change button captions. About

To customize View Form buttons:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the required module component. How

2.	Select the View Form branch:

a.	Use ZONVCA to specify whether count information should be displayed all the time, or if a Count button is required.

b.	Use ZONVBD to identify the buttons you want to display, the order in which they must appear, and whether they should be placed over more than one line.

c.	(JavaScript browsers only). Use the ZONVPN to specify when navigation buttons are displayed.

d.	Use the View Form button preferences to define alternative captions for the buttons you want to display.

3.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


About graphic hotspot options
About graphic hotspot options in Web PL/SQL applications

Related Topics

Many Web applications use graphics to present link options. Web users navigate through the application by clicking on these graphic hotspots in the same way as conventional hyperlinks.

You may create this effect by generating a one column Record List, where the column is set up to display an image and the layout style of the Record List is set to WRAP. How

In the generated application, each graphic provides an embedded link to a View Form. For example,

Notes: The Record List column you want to display must store the names of the files which hold the images. These images must reside on the Web PL/SQL file system and should be in a format supported by the Web browser you are using, such as GIF format.


Creating graphic hotspot options

Related Topics	Where am I?

You can display Record List options as a series of hotspot graphics that link to View Forms.

To generate a Record List as a series of graphic hotspot options:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	Double-click the item that will display graphic hotspots in the Record List and select the Display tab.

3.	Check the Context property for this item.

Note:	Only one item within the module component must be marked 'Context'.

4.	Select IMAGE from the Formatting dropdown list.

5.	Click Finish to save.

6.	Display the Web PL/SQL Generator Preferences Palette for the required module component. How

7.	Select the Record List branch:

a.	To ensure that the necessary HTML image formatting is applied to the Record List, set ZONLHF to Yes.

b.	To display the images side by side, set the ZONLLS for the Record List to Wrap, that is set the layout items in free format.

c.	Set ZONLRS so that all rows (graphic hotspots) can be displayed at once.

Alternatively, set the Rows Displayed property for this module component.

8.	Select the General branch and use the IMGIFP to define the Web PL/SQL file system location where the image files are stored.

9.	Click [image] to save.

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Graphic Hotspots

When the Web user clicks on one of these images its associated View Form and/or detail Record List displays further Flight, Coach, Car Hire, Ferry, Train, and Cruise information respectively.


Selecting an HTML form element type

Related Topics	Where am I?

Like conventional user interfaces, generated HTML forms can display various different types of form elements to assist data entry.

To select the Display Type for an item:

1.	In Design Editor, double-click the item you require.

2.	From the Display Type dropdown list, select the HTML form element you require.

Tip: If you are using Property Dialogs this is on the Display tab.

3.	Click [image] or Finish to save the changes.


About radio groups and radio buttons in Web PL/SQL applications

Related Topics

Radio buttons (also called option buttons) can be used to display allowable values. How

They are typically used when you want a user to select a single option from a group of options. When any one radio button is selected, the other buttons within the group are automatically unset. For example,

Display property

You determine whether the radio buttons are laid out vertically or horizontally using these Display Type property values:

Radio Group (Across)	displays the radio buttons as a horizontal row
Radio Group (Down)	displays the radio buttons as a vertical row
Allowable values

To generate an item as a radio group, a set of allowable values must be defined for the item. How

If a radio group is based on an optional item (Optional property = Yes) extra values are generated in addition to the list of allowable values:

•	On the Insert Form, <null> is displayed so that the user can leave this optional item blank when creating a record.

•	On the View Form, <null> is one of the allowable values for this optional item. Also, if the database value of the item retrieved by the query does not match one of the allowable values, #INVALID!# is displayed.

•	On the Query Form, <null> and Unknown are displayed:

−	When the user selects <null>, it is the equivalent of leaving a text item blank and the query is not performed on this item.

−	When the user selects Unknown, the item is included in the query which finds all records which have no value selected for this item.

For more information, refer to About allowable values for Web PL/SQL applications


Creating radio groups and radio buttons for Web PL/SQL applications
Creating radio groups and radio buttons

Related Topics	Where am I?

You can generate a radio group when you want a user to select a single option from a group of options. About

To generate an item as a radio group:

Before you start, ensure that a set of allowable values are defined for the item. How

1.	In Design Editor, double-click the item you require.

2.	From the Display Type dropdown list, select Radio Group (Across) or Radio Group (Down), as appropriate.

Tip: If you are using Property Dialogs this is on the Display tab.

3.	(Optional) If more descriptive meanings are defined against all the allowable values, select Meaning Only from the Show Meaning dropdown list.

If the Optional property is set to Yes, an extra radio button for 'Unknown' is generated. If you are using Property Dialogs this is on the Definition tab.

4.	Click [image] or Finish to save the changes.


About text lists and pop lists in Web PL/SQL applications

Related Topics

Text lists and pop lists can be used to display lists of allowable values and single column foreign key lookup values. How

Text lists provide vertical scroll bars which allow a user to scroll up and down the list of available options. Pop lists provide a single 'down arrow' that displays a dropdown list of options.

For example:

Text List Pop List
Allowable values

To generate an item as a text list or pop list, a set of allowable values must be defined for the item. How

If a text list or pop list is based on an optional item (Optional property = Yes) extra values are generated in addition to the list of allowable values:

•	On the Insert Form, <null> is displayed so that the user can leave this optional item blank when creating a record.

•	On the View Form, <null> is one of the allowable values for this optional item. Also, if the database value of the item retrieved by the query does not match one of the allowable values, #INVALID!# is displayed.

•	On the Query Form, <null> and Unknown are displayed:

−	When the user selects <null>, it is the equivalent of leaving a text item blank and the query is not performed on this item.

−	When the user selects Unknown, the item is included in the query which finds all records which have no value selected for this item.

For more information, refer to About allowable values for Web PL/SQL applications

Foreign key lookup values

To display single column foreign key lookup information in a text list or pop list, all you need to do is set the Display Type property. How

Using repository LOV definitions

You can use Web PL/SQL Generator to generate text list or pop list items to display values from a repository LOV component, where the value that the text list or pop list represents is the first item in the LOV, and the value that is displayed is the first display item in the LOV. For more information, refer to About Lists of Values (LOVs) in Web PL/SQL applications


Creating text lists and pop lists for Web PL/SQL applications
Creating text lists and pop lists

Related Topics	Where am I?

You can generate text list and pop list controls to display lists of allowable values and single column foreign key lookup values. About

To generate an item as a text or pop list:

If required, define a set of allowable values for the item. How

1.	In Design Editor, double-click the item you require.

2.	From the Display Type dropdown list, choose one of:

Text List	To display values in a text list
Pop List	To display values in a dropdown list
Tip:	If you are using Property Dialogs this is on the Display tab.

3.	For text lists, use the Height property to define the number lines (or values) displayed.

4.	(Optional) For allowable values, select Meaning Only from the Show Meaning dropdown list if descriptive meanings are defined against all the allowable values.

If the Optional property is set to Yes, an extra value for 'Unknown' is generated. If you are using Property Dialogs this is on the Definition tab.

5.	Click [image] or Finish to save the changes.


About check boxes in Web PL/SQL applications

Related Topics

A check box displays a check mark (X) when selected, which disappears when the check box is cleared. Use this type of control to give the user a True/False or Yes/No option. You can also use check boxes in groups to display multiple choices from which the user can select one or more. How

Allowable values

To generate an item as a check box, suitable allowable values must be defined against the item. How

•	for mandatory items, two values must be defined

•	for optional items, only one value need be defined as the second value automatically becomes 'null' or 'unknown'

•	the allowable value with the lowest sequence number defines the 'true' or 'checked' state

•	if a default is not defined (Default Value property), a check box initially appears unchecked

Note that allowable values for checkboxes are always hardcoded in the generated application, that is the Dynamic List property is ignored.

Check boxes on Query Forms

Web applications do not support three-state check boxes, and in previous releases of Oracle Designer check box items on Query Forms were generated as radio groups with a third option of <unknown> meaning that the query was performed when the column was null. In this release the Query? property has new functionality so that check boxes can be generated on Query Forms.

To display a checkbox on a Query Form, set the Display type property to Check box, and the Query property to Always. About

Note:	Use domains to define a common set of allowable values which can be reused across multiple columns and unbound items, for example Yes / No values for check boxes. About


Defining check boxes for Web PL/SQL applications
Defining check boxes

Related Topics	Where am I?

You can generate an item as a check box to give the user a True/False or Yes/No option. You can also use check boxes in groups to display multiple choices from which the user can select one or more. About

To generate an item as a check box:

Before you start, ensure that appropriate allowable values are defined for the item. How

1.	In Design Editor, double-click the item you require.

2.	From the Display Type dropdown list, select Check Box.

Tip: If you are using Property Dialogs this is on the Display tab.

3.	(Optional) If more descriptive meanings are defined against all the allowable values, select Meaning Only from the Show Meaning dropdown list.

4.	To generate a check box on a Query Form, you must also set the item property Query to Always. About

5.	Click [image] or Finish to save the changes.


About text boxes in Web PL/SQL applications

Related Topics

The size and shape of an enterable text field may be modified using the item display properties Width and Height. The Height property can also be used to define the number of options displayed in a text list. How

For bound items, the overall display size is not limited by the number of characters the column can store (Maximum Length property). Table API validation code will check that the maximum length is not exceeded and if the browser supports JavaScript, generated JavaScript code (JSLChkMaxLength) can check that the length is correct before data is sent to the server.

Width of text boxes

This property defines the display length of the text box, in characters, that is Display Type=Text.

You do not need to define a width for pop lists or text lists. Suitable widths for these form elements are selected automatically, according to the allowable values they are expected to display.

If this property is undefined, the width values specified by Default display length preferences are used instead.

Height of text boxes and lists

This property defines the number of lines to display in a text box or text list. You do not need to define the height of pop lists as the height should always be one.

Read-only text fields

View Forms display read-only text as a single string, that is hard carriage returns are ignored. Within the browser this text wraps automatically as the window size changes. In order to display hard carriage returns within read-only text, set the Formatting property of the item to PREFORMAT. How


Setting the size of text boxes or text lists in Web PL/SQL applications
Setting the size of text boxes or text list

Related Topics	Where am I?

You can determine the width and height of text based controls using the item display properties Width and Height. About

To define the size of a text box or text list:

1.	In Design Editor, double-click the item you require.

2.	Ensure the Display Type is 'Text' or 'Text List'.

Tip: If you are using Property Dialogs this is on the Display tab.

3.	Use the Width property to define the display length of the text box, in characters.

4.	Use the Height property to define the height of the text box, in lines.

5.	Click [image] or Finish to save the changes.


About prompt layout in Web PL/SQL applications
About prompts in Web PL/SQL applications

Related Topics

Prompts are used to identify HTML form elements in a generated application. You can modify the appearance and layout of HTML form elements and their prompts using preferences. How

Default prompt layout
Custom layout options

Change or remove the character separating the prompt from its control
Change the color of prompts  Text color (MODFGC) = FF0000 Text Color (MODFCG) = FF0000
Split prompts

Through the use of preferences and special character markers, you can divide a prompt into two portions. The first half appears before the HTML form element and the second half appears after it.

Preference	Prompt	Example
ITMPPM = |	Distance | (Miles)
ITMPPM = |	Price |$


Defining how prompts are displayed in Web PL/SQL applications
Defining how prompts are displayed

Related Topics	Where am I?

Prompts are used to identify HTML form elements within a generated application. You can modify the appearance and layout of HTML form elements and their prompts using preferences. About

To modify the layout of prompts:

1.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the required module, or for the container (i.e. folder or application system). How

2.	To modify prompt layout, set the required preferences.

Task	Preference
To change, or remove the character that separates the prompt from its control.	ITMDPS
To change the color of prompts (and all other text)	MODFGC
3.	Click [image].

Tip:	Whenever you change any of the preference values, you need to generate the affected module(s) again, according to the level at which the preference has been set.


Splitting HTML form element prompts in Web PL/SQL applications
Splitting HTML form element prompts

Related Topics	Where am I?

You can use special character markers to indicate where prompts are split and hence change the prompt position (relative to their controls). About

To define a split prompt:

1.	Specify a suitable character for the split prompt marker:

a.	In Design Editor, display the Web PL/SQL Generator Preferences Palette for the required module, or for the container (i.e. folder or application system). How

b.	Select the General Layout branch.

c.	Use the Split Prompt Separator (ITMPPM) preference to define the character marker you want to use.

2.	Insert the character marker into the appropriate item Prompt property at the point where the prompt must be split. How

Only the first occurrence of this character is used to split the prompt. Any additional instances of this character are displayed normally.

3.	Click [image] or Finish to save the changes.


About date and time fields (Web)
About date and time fields

Related Topics	Where am I?

To specify a date or a time field on an Insert Form, Query Form or View Form, set the Datatype property for the column on which the item is based to either DATE or TIME.

Datatype	Notes
DATE	The popup calendar link is automatically displayed next to the item on the generated form.  You can set either a date or a time format mask, however if you want the field to be a time field without the popup calendar link you should set the column datatype to TIME and set a time format mask. If you do not set a format mask then either the format mask set for TXTDDF is used, or where that is set to null, the system default date format mask is used.
TIME	For a time item, you must set a time format mask, e.g. HH24:MI. If it is appropriate, you can set TXTDDF to a time format mask for all date/time items in the module. When the datatype is TIME, the popup calendar link is not displayed.
For information about the codes you can use in a date or time format mask, refer to Date and time format codes.

How the user can enter dates

There are three ways that a user can enter a date in a date field on an Insert Form, Query Form or View Form. In each case Web PL/SQL Generator ensures that the chosen date conforms to the date format mask for the field, if one is used, or to the default date format mask.

•	The user can type a value directly into a date field. Web PL/SQL Generator checks that it conforms to the correct format, and if it does not, attempt to convert it using:

−	the field format mask

−	the default date format mask set in TXTDDF

−	the default system format mask

•	The user can enter a relative date value, for example:

Relative value	Interpreted as
+d7 or +7	7 days from today
-7 or -7d	7 days ago
+m4	4 months from today
-m4	4 months ago
+y2	2 years from today
-y2	2 years ago
If the value in a date field does not match any of the above, then the popup calendar is displayed showing the current date.

•	The user can use the popup calendar to select a date. When the datatype of the underlying column is DATE, by default a hyperlink is displayed to the right of a date field. When the user clicks on it a browser window opens that allows them to select a date. About


Date and time format codes for Web PL/SQL applications
Date and time format codes

Related Topics

This table lists the date and time format codes that are valid for Web PL/SQL applications. These can be entered as part of the Format Mask property for a date item. About

Element	Meaning
- / , . ; : 'text'	Punctuation and quoted text is reproduced in the result.
AD A.D.	AD indicator with or without periods.
AM A.M.	Meridian indicator with or without periods.
BC B.C.	BC indicator with or without periods.
D	Day of week (1-7).
DAY	Name of day, padded with blanks to length of 9 characters.
DD	Day of month (1-31).
DDD	Day of year (1-366).
DY	Abbreviated name of day.
HH	Hour of day (1-12).
HH24	Hour of day (0-23).
J	Julian day; the number of days since January 1, 4712 BC. Number specified with 'J' must be integers.
MI	Minute (0-59).
MM	Month (01-12; JAN = 01)
MON	Abbreviated name of month.
MONTH	Name of month, padded with blanks to length of 9 characters.
RM	Roman numeral month (I-XII; JAN = I).
RR	Given a year with 2 digits, returns a year in the next century if the year is <50 and the last 2 digits of the current year are >=50; returns a year in the preceding century if the year is >=50 and the last 2 digits of the current year are <50.
RRRR	Round year. Accepts either 4-digit or 2-digit input. If 2-digit, provides the same return as RR. If you don't want this functionality, simply enter the 4-digit year.
SS	Second (0-59).
SSSSS	Seconds past midnight (0-86399).
Y,YYY	Year with comma in this position.
YYYY SYYYY	4-digit year; "S" prefixes BC dates with "-".
YYY YY Y	Last 3, 2, or 1 digit(s) of year.


About popup calendars (Web)
About popup calendars

Related Topics	Where am I?

A hyperlink is displayed to the right of the date field which, when clicked, displays the calendar in a popup window. When the user clicks on a date, the popup window closes and the date is displayed in the field.

Tip:	To find today's date, the user can click on Today and the date number button is shadowed. If they then press Enter on the keyboard, today's date is entered in the date field.

There are three preferences which you can use to determine the appearance and behavior of the popup calendar:

•	CALBUT which allows you to change the appearance of the hyperlink. Setting this to null turns off the popup calendar.

•	CALCBC which allows you to specify a different caption for the Close button which lets the user close the window without selecting a date.

•	CALWIN which allows you to specify the size and position of the popup window.

Note:	Popup calendar buttons that do not have a date display two underscores. This is to force browsers to display all buttons the same size.


About multiple module Web PL/SQL applications

Related Topics

To combine a set of modules into one integrated application you may need to further define the structure of the application by setting up module network links. How

You may also want to introduce extra modules to provide additional navigation, for example you may want to add:

•	a Launch Page module How

•	a Help Page module How

•	menu modules How

•	a module to link to a page on the WWW How

•	a module that accesses data on a different Web PL/SQL How

You can customize your applications by defining navigation action items, which take precedence over the default hyperlinks, to create links to a form other than the Startup Page, or to provide a button or image link. About

Values and parameters are passed between one Web PL/SQL module to another using the key-based links between them. Web PL/SQL Generator does not use argument passed values or named passed values.


About Launch Pages for PL/SQLWeb applications
About Launch Pages for Web PL/SQL applications

Related Topics

You can generate a Launch Page for your generated Web PL/SQL application by defining an additional top-level module and links to other modules in the generated application. How

Launch Pages normally start with an introduction to the entire application, followed by a set of hyperlinks to the rest of the modules within the application.

Note:	Top-level modules, created to generate Launch pages normally do not contain module components.

User text

The introduction may include text, images, email addresses, URL references and other embedded PL/SQL functions. About

Navigation hyperlinks

Hyperlinks are automatically generated to navigate to those modules called directly from the top-level module. The appearance of these links may be customized by:

•	adding menu modules How

•	changing MODMNS How


Creating Launch Pages for Web PL/SQL applications

Related Topics	Where am I?

You can generate a Launch Page for your Web PL/SQL application by defining an additional top-level module and links to other modules in the application. About

To create a Launch Page module:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	On the Navigator, select the Modules branch and choose Edit→Create.

3.	Enter the following mandatory properties:

Module Type

Module Short Name

Purpose

Language

4.	(Optional) Click Next and enter a suitable title for the Web PL/SQL application (use Startup Page title).

5.	(Optional) Click Next again and enter an Implementation Name

6.	To enter user text for the Launch Page.

a.	Click Next to display the User Text tab. About

b.	Select Top of First Page, or Bottom of First Page.

c.	Enter the text required.

User text can be formatted using PL/SQL functions and HTML syntax.

Alternatively, click the Text Editor or HTML Editor button and then use your preferred editors to enter the text required (Options→Text Editor Options).

7.	Click Next to define hyperlinks to other modules in the application:

a.	Click Select Modules and choose the set of modules to link to, from the Launch Page.

b.	If there is more than one called module, use the Up and Down arrows to define the order in which the hyperlinks are displayed in the application.

8.	Click Finish to save.

Note that Launch Page modules will not usually contain module components.


Providing help pages for Web PL/SQL applications
Providing help pages

Related Topics	Where am I?

If you want to provide additional information, you can display a help page hyperlink on the Startup Page that links to a generated help page. First you must create a new module for the help page and enter the text required. Then, you need to create the link to the help page module.

Note:	To generate help page hyperlinks for generated documents which do not appear on the Startup Page, use the Anchor function (htf.anchor) to embed the URL of an external help page within the user text. How

To display a help page hyperlink on the Startup Page:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	Create the help page module:

a.	On the Navigator, select the Modules branch and choose Edit→Create.

b.	Enter the following mandatory properties:

Module Type

Module Short Name

Purpose

Language

 c.	Click Next and enter suitable text for the help page title and hyperlink (use the Startup Page Title property).

For example, Additional Information, Help Page, Help on Departments.

d.	Enter a suitable short hyperlink caption (use the Hyperlink text property).

For example, HELP.

e.	 Click next twice and enter the user text you want to display on the help page.

This text may include a combination of text, images, email addresses, URL references and calls to PL/SQL functions. About

f.	Click Finish to save.

Note that help page modules will not usually contain module components.

3.	Define the help page hyperlink on the Startup Page:

a.	On the Navigator, double-click the calling module and select the Module Network tab.

b.	Click Select Modules and select the name of the help page module.

If there is more than one called module, use the Up and Down arrows to define the correct calling sequence for your application.

c.	Click Finish to save.


About navigation hyperlinks and menus in Web PL/SQL applications

Related Topics

In Web PL/SQL applications hyperlinks are generated to navigate to module Startup Pages, About Pages, initial module component documents (Query Form or Record List) and non-generated pages linked via the module Command Line property.

When several hyperlinks appear together, they present a series of menu options. You can customize the way menu information is presented by:

•	changing the menu style preference

•	adding menu modules

Hyperlink style

You can set the Menu Style (MODMNS) preference to LONG TITLE or SHORT TITLE. How

For example,

LONG TITLE	SHORT TITLE
• Εμπλοψεεσ  • Job Descriptions  • Job Opportunities in USA  • Job Opportunities in UK	[Employees][Job Descriptions][Vacancies-USA ][Vacancies-UK]
Module hyperlink hierarchy

You can organize a series of module hyperlinks into a hierarchical structure by adding menu modules to the overall module hierarchy. How

For example, Job Opportunities:

LONG TITLE	SHORT TITLE
• Εμπλοψεεσ  • Job Descriptions  • Job Opportunities -  USA  -  UK	[Employees][Job Descriptions]  Job Opportunities   [USA][ UK]
Return hyperlinks

To assist navigation, return links are generated back to module Startup Pages and initial module component documents. For example,

•	Return Links

Employees

If return hyperlinks are not required, you can set the Build return hyperlinks (MODBRL) preference to No. How

External page hyperlinks

You can display hyperlinks to non-generated pages on the World Wide Web (WWW), which appear alongside hyperlinks to other generated modules within your application. For example, Other Useful Links:

• Εμπλοψεεσ

•	Job Descriptions

•	Job Opportunities

−	 USA

−	 UK

•εφυλ Λινκσ

First you need to create the module which defines the URL of the hyperlink. Then you can create a module network link to the new module. How


Adding menus to Web PL/SQL applications
Adding menu modules to Web PL/SQL applications

Related Topics	Where am I?

You can organize a series of module hyperlinks into a hierarchical structure by adding menu modules to the overall module hierarchy. About

To add a menu module:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	On the Navigator, select the Modules branch and choose Edit→Create

3.	Set the Module Type property to Menu.

4.	Enter the following mandatory properties:

Module Short Name

Purpose

Language

5.	Click Next and use the Startup Page Title property (called Top Title on the property palette) to enter the menu heading.

All modules that link directly from this menu module are grouped beneath the menu defined here.

6.	Click Next to create module network links:

a.	Click Select Modules and choose the set of modules to link to, and from this menu.

b.	If there is more than one called module, use the Up and Down arrows to define the order in which the hyperlink menu options are displayed in the application.

1. 	Click Finish to save.

Next step

You can use MODMNS to determine whether long or short menu titles are displayed. How

If you want to use short titles, ensure that the Short Title property is set for each module within the application. How


Linking to pages on the WWW

Related Topics	Where am I?

You can generate hyperlinks to non-generated pages on the World Wide Web (WWW), which appear alongside hyperlinks to other generated modules within your application.

Note:	The modules you create especially to link to static pages should not contain module components or have child modules.

To create a module to link to a page on the WWW:

1.	In Design Editor, choose Options→Use Property Dialogs.

2.	Create the module that defines the URL of an HTML page.

a.	On the Navigator, select the Modules branch and choose Edit→Create

b.	Enter the following mandatory properties:

Module Type

Module Short Name

Purpose

Language

c.	Click Next and then enter suitable text for the hyperlink, use:

Startup Page Title (Top Title) - if the menu style is 'Long Titles'

Hyperlink text (Short Title) - if the menu style is 'Short Titles'

d.	Use the URL property to define the URL for the HTML page, for example 'http://www.oracle.com'.

e.	Click Finish to save.

3.	Create a link from the Startup Page to the non-generated HTML page:

a.	In Design Editor, choose Options→Use Property Dialogs.

b.	On the Navigator, double click the calling module and select the Module Network tab.

c.	Click Select Modules and select the name of the module that defines the URL.

If there is more than one called module, use the Up and Down arrows to define the order in which the hyperlinks are displayed in the application.

d.	Click Finish to save.


About data access from multiple Oracle Application Servers

Related Topics

You can define a Web PL/SQL application which sources data from different Oracle Application Server sites, or different schemas on the same server. The source of the data is transparent to the user of the Web application.

First you need to indicate within the module design that a module (or module subnetwork) must access data using a different DAD and this is defined by specifying the new location using the Command Line property.

Then, you will need to generate from these modules (or module subnetworks) and install them onto their target databases, separately.

Example

The best way to describe this feature is by using an example. The sample module network shown below illustrates the concept of a Web PL/SQL application, accessing data from two different sources.

The main Personnel Enquiry System will be installed into the database account defined by the application schema DAD (Database Connection Descriptor) named 'people'. The Command Line setting on module D indicates that the Job Opportunities subnetwork will be installed into a different database account defined by the 'jobs' DAD.

Step 1

The first step is to generate and install from the top-level module (A) using the default database connection. How

Note:	Before you generate, ensure that the 'Include Module Network' checkbox is checked.

This process generates modules A, B and C and a hyperlink to module D. The installation details and DAD for these modules must be defined prior to generation. How

Step 2

The next step is to generate and install from module D, using the new database connection.

Note:	Before you generate, ensure that the 'Include Module Network' checkbox is checked.

This process generates modules D, E and F. You must remember to change the installation details prior to generation and the new logon details should match those of the DAD referenced within the Command Line property, that is 'jobs' in the above example.


About the Web PL/SQL application design process

Related Topics

This diagram presents the range and sequence of tasks required to design and generate a Web PL/SQL application. If this is your first application you may want to step through the tasks one at a time. To jump to a particular task, click on the appropriate step.

			Set up the database design Record the database design Set key database design properties
	Create schemas		Set up the table owner schema  Set up the application schema
			Create a Web PL/SQL module Plan the structure of the module Create Web PL/SQL module definition Create module components Create data usages Define key based links Define basic layout Set table usage properties Set basic item properties
			Extend module design and customize layout Add more functionality to the module design Customize the appearance and layout
			Create multiple module applications
	Set up the PL/SQL Toolkit schema		Set Web PL/SQL Generator options
			Generate the Web PL/SQL application
			Install the Web PL/SQL application
			Run and check the Web PL/SQL application


About schemas for generated Web PL/SQL applications
About schemas for Web PL/SQL applications

Related Topics

The inherent flexibility and distributed capability of the Oracle database means that the table owner schema, the application schema and the PL/SQL Toolkit schema can be set up in many ways.

This topic introduces the different types of schema and outlines typical configurations for generated Web PL/SQL applications. When you have decided how to set up your schemas you can create them using SQL*Plus. How

Types of database schema

Table owner schema

The schema for a user who owns the application tables, constraints, sequence definitions, reference code tables and the generated table API. About

Application schema

The schema for a user who owns the the generated Web PL/SQL application. About

PL/SQL Toolkit schema

The schema for a user who owns or must have access to the Web PL/SQL Generator Library, Table API Error package and PL/SQL Web Toolkit packages. About

Repository owner

The repository owner has access to the repository being used to design the database definitions and client-side application (module) design and therefore has a role to play in the generation of Web PL/SQL applications.

Typical database schema configurations

This section illustrates two different ways these schemas may be set up within your environment and they also highlight additional implementation issues. The important point to note from these examples is the distinction between the table owner schema, the application schema and the PL/SQL Toolkit schema. These different schemas are referred to throughout the online help and it is important that you understand the difference between them, even though they may use the same database account.

Due to the flexibility of the Oracle9i Application Server, many configurations are possible. Refer to the application server documentation for configurations that best meet your needs.


Repository owner

The Oracle user who will have access to the repository containing database definitions and client-side application design information.


Table owner schema

The schema for a user who has access to the database containing the application tables, constraints, sequence definitions, reference code tables and the generated Table API. Click on the graphic for more information.


Application schema

The schema for a user who has access to the database containing the generated Web PL/SQL application. Click on the graphic for more information.


PL/SQL Toolkit schema

The schema for a user who has access to the database containing the Web PL/SQL Generator Library (WSGL, WSGJSL, WSGLM, WSGOCOL, WSGFL) and Web PL/SQL Toolkit (HTF, HTP, OWA, OWA_UTIL) packages. Click on the graphic for more information.


Creating schemas  for Generated Web PL/SQL Applications
Creating schemas for Web PL/SQL applications

Related Topics	Where am I?

When you have decided how to set up database schemas for your Web PL/SQL application you can create them using SQL*Plus. About

To create a database schema:

1.	Logon to SQL*Plus as a DBA User.

2.	Create the schema, granting the database privileges required to create the database objects.

For example, type:

CREATE USER PERSONNEL IDENTIFIED BY PERSONNEL;

GRANT CONNECT, RESOURCE TO PERSONNEL;

Next step

Once you have created the database schemas you require, you will need to carry out further tasks to:

•	Set up the table owner schema How

This set of tasks prepare the application schema for the generated Web PL/SQL application, that is they ensure that all the necessary database objects exist and are up-to-date before generation takes place.

Note:	Before you can set up the application schema, the database design must be recorded in the repository. How

•	Set up the PL/SQL Toolkit schema How

This set of tasks prepare the PL/SQL Toolkit schema for the generated application. This involves installing the Oracle Web PL/SQL Developers Toolkit and Web PL/SQL Generator Library packages.

The PL/SQL Toolkit schema must be set up before you can generate your Web PL/SQL application.

•	Configure the Oracle9i Application Server with database connection information. How

This involves creating a DAD for the application server which defines how to log on to the Oracle database where the generated Web PL/SQL application is to be installed, that is the application schema.


About database design for Web PL/SQL applications
About database design

Related Topics

Before you can begin to design and generate a Web PL/SQL application, the database design specification must exist within the repository. To ensure that the database design specification is complete, carry out the set of tasks outlined below.

If this is your first Web PL/SQL application you may want to step through the tasks one at a time. To jump to a task, click on the appropriate step.

	Record the database design
	Set key database design properties
	Set up the table owner schema
Once you are satisfied that the database design specification is complete and the application schema is set up with all the required database objects, you can use Design Editor to create the Web PL/SQL modules which make up your application. How

Database design in the repository

During module design and generation Web PL/SQL Generator makes use of table and column information defined in the repository. It does not reference the 'actual' tables created in your table owner schema within the Oracle database.

Therefore, before you can create a module and generate a Web PL/SQL application from it, the database design must be recorded accurately in the repository. How

Whether you intend to use an existing database design, or an entirely new design it is important for you to spend some time fine-tuning the database design in preparation for Web PL/SQL generation. How

If all the database objects are defined in as much detail and with as much accuracy as possible, the module design and generation process is simplified significantly.


Recording the database design for a Web PL/SQL application
Recording the database design

Related Topics	Where am I?

Before you can create a module and generate a Web PL/SQL application from it, the database design must be recorded accurately in the repository. About

To record the database design:

If one has not already been defined, you may record a new database design using Oracle Designer in one of three ways:

•	record a new database design, using a Server Model Diagram in Design Editor How

•	create a database design automatically from analysis data, using Database Design Transformer How

•	capture database objects from an existing database How

Next step

To ensure that the database design specification is complete, check certain key database properties are set. How


Setting key database design properties for a Web PL/SQL application
Setting key database design properties

Related Topics	Where am I?

The steps outlined below guide you to the database design properties which are particularly important for Web PL/SQL module generation. About

To set key database design properties:

1.	Ensure that a Navigator window is open in Design Editor. How

2.	Choose Options→Use Property Palette. About

3.	In the Navigator, double-click the table definition and then ensure these properties are set correctly:

Alias

Display Title

4.	In the Navigator, double-click a column definition and then ensure these properties are set correctly:

Column Name	Prompt
Domain	Display Type
Sequence	Display Length
AutoGen Type	Uppercase?
Note:	If either the Sequence or AutoGen Type property is set, ensure that the Server Derived? property is set to Yes.

5.	Define allowable values against columns if appropriate. How

6.	Ensure that each table has an appropriate:

Primary Key	At least one primary key column must be defined. How
Foreign Key	All necessary foreign keys must be defined. How
Next step

Once you are satisfied that the database design specification is complete, you can create the database objects into your table owner schema in preparation for generating your Web PL/SQL application into the application schema . How

If you modify the database design specification at any stage in the future you must take care to ensure that the application schema is updated with the changes you have made.


About the table owner schema for a Web PL/SQL application
About the table owner schema

Related Topics

This is the schema who will have access to the database containing the application tables, constraints, sequence definitions, reference code tables and generated Table API.

Table owner schema preparation

You must create all the database objects that are required, such as tables, constraints, sequences, reference code tables, Table API, using Design Editor. How

Subsequently, if database object definitions are modified (or new ones added) the appropriate utilities must be run again. This ensures that the table owner schema is always up-to-date before you generate your Web PL/SQL application.

DDL generation from server model

Generate DDL from your repository-held server model to create:

•	tables, columns constraints, Oracle sequences and so on from definitions in the repository

•	the Code Control Table needed to provide unique identifier for columns deriving unique values from a sequence defined as 'Code Control'

The DDL statements are written to command files which must be executed on the table owner schema.

Reference code table generation

If any of your tables contain columns that derive their values from 'dynamic lists' or 'domains', for example pop lists and text lists, you must also generate a reference code table. How

A reference code table is needed to carry out runtime validation and LOV processing for columns with allowable values.

Table API generation

Generate the Table API to create a set of PL/SQL packages that will provide insert, update, delete and lock procedures for your application tables. These packages must also be installed on the table owner schema. How


Setting up the table owner schema (Web)
Setting up the table owner schema

Related Topics	Where am I?

The table owner schema must be set up with all the required database objects and they must be up to date, before you generate a Web PL/SQL module. About

To set up the table owner schema:

1.	Generate database objects in your server model, to an Oracle database How

2.	Create or update the reference code table (CG_REF_CODES). How

Note that the owner of the WSGL packages (PL/SQL Toolkit schema) must have access to the table (CG_REF_CODES), that is the table owner schema must 'GRANT SELECT ON CG_REF_CODES TO <WSGL OWNER>' and the PL/SQL Toolkit schema must 'CREATE SYNONYM CG_REF_CODES FOR <REF CODE TABLE OWNER>.CG_REF_CODES

3.	Generate and install Table API packages that will provide insert, update, delete and lock procedures for your application tables. How

Next step

If the modules which make up your application exist, first set Web PL/SQL Generator options. How

Once your database design specification is complete you can set up the Application schema the generated Web PL/SQL application must run against. How

If no modules exist, use Design Editor to create Web PL/SQL modules. How


About the application schema for a Web PL/SQL application
About the application schema

Related Topics

This is the schema who will have access to the database containing the application tables, constraints, sequence definitions, reference code tables and generated Table API.

Oracle9i Application Server configuration

As part of the Oracle9i Application Server configuration, an DAD must be created. This defines how to log on to the Oracle database where the generated Web PL/SQL application is to be installed. How


Configuring the Oracle9i Application Server

Related Topics	Where am I?

As part of the application server configuration, a DAD must exist which defines how to log on to the Oracle database where the generated Web PL/SQL application is to be installed, that is the application schema.

Note:	For detailed instructions refer to the Web PL/SQL online documentation (typically installed on the Web PL/SQL at http://<website>:8888).

To configure the application server:

1.	On the application server, create an DAD (Database Access Descriptor) for your application schema. Refer to the Oracle 9i Application Server documentation for information on how to do this.

2.	Define a PL/SQL Agent which references the DAD for your generated application. Refer to the Oracle 9i Application Server documentation for information on how to do this.

The DAD you have created will form part of the URL for your generated Web PL/SQL application. For example, if you created a DAD called app_user the URL could be: http://<website>:9999/app_user/plsql/webapp$.startup

Next step

Web PL/SQL Generator must be configured with application schema and DAD  information before generation can take place. How


Generating and installing table API packages

Related Topics	Where am I?

Before generating a Web PL/SQL application, API packages for your application tables must be generated and installed on the table owner schema.

The table API packages provide a set of insert, update, delete and lock procedures for each application table used by the generated application. About

Note:	Whenever a column or table definition is changed, the table API must be re-generated.

To generate the Table API:

1.	In Design Editor, select the table (or tables) that require Table API packages on the Navigator.

2.	Select Generate→Generate Table API.

3.	On the Target tab, select Oracle and specify the installation details:

Username:	The name of your user on the database account.

Password:	Your password.

Connect:	The connect string to access your database account.

If you do not want the Table API to be installed directly onto your database user, choose File.

4.	(Optional) Enter a File Prefix and Directory for generated files, and specify whether you want generated files uploaded to the repository.

If you omit the Directory, files are generated to the current working directory.

5.	Select the Objects tab and then identify the application tables that require API packages:

All tables

Use the arrow buttons to move all the tables to the 'Generate' list box.

Selected tables

Use the arrow buttons to move individual tables to the 'Generate' list box.

If you incorrectly move a table to the 'Generate' list box, highlight the table and then select the < arrow button.

6	Click Start.

If you chose 'Oracle' in step 4, the generated files are installed directly onto the table owner schema.

7.	Choose Messages→Build Actions to view the content of generated files.

If you chose 'File' in step 4, run the generated .SQL file to install the generated packages on the database.

Next step

When you are sure that the application schema is up-to-date with the repository, you may generate your Web PL/SQL application. How

If the modules which make up your application do not yet exist, use Design Editor to create Web PL/SQL modules. How


About Web PL/SQL module design

Related Topics

Once the database design is complete, you may create one or more Web PL/SQL modules. This diagram illustrates the process for defining data usages and key based links for one, simple Web PL/SQL module.

If this is your first Web PL/SQL module you may want to step through the tasks one at a time. To jump to a task, click on the appropriate step.

	Plan module structure
	Create Web PL/SQL module definition
	Create Web PL/SQL module components
	Create data usages
	Define key based links
	Define basic layout
	Set table usage properties
	Set basic item properties
Next step

Once you have completed the set of tasks outlined here you can generate a Web PL/SQL application from the new Web PL/SQL module. How

No further configuration is required to display a prototype application and test the fundamental module design.

Once the basic module design is complete, you can add more functionality to the module design or customize the layout of generated Web pages as required. About


Planning the structure of Web PL/SQL modules

Related Topics	Where am I?

Before you start to create a Web PL/SQL module, it is good practice to plan the module structure. For each module you require, consider the following questions:

•	What module components need to be included?

•	Which database tables will be used for the base tables of each module component?

•	How should the module components be sequenced?

•	Which lookup tables are required?

•	Do the necessary foreign key constraints exist?

Next step

Once you have a firm idea of how to structure the module, use Design Editor to create the module definition. How

Examples

The figures above show two sample module data diagrams, where:

•	each colored box represents a table usage

•	 table usages shown on the left of the diagrams represent base tables

•	table usages shown to the right represent lookup tables

•	a single base table and any associated lookups represents a module component

•	each vertical line represents a key based (master-detail) link between table usages

•	each horizontal line represents a link to a lookup table

•	the crow's-foot on the line shows the table that contains the foreign key used to implement the link


Creating Web PL/SQL module definitions
Creating Web PL/SQL module definitions using Design Editor

Related Topics	Where am I?

A module definition is used to record data usage and layout information, from which an application can be generated. You may create a Web PL/SQL module definition, in various ways:

•	Create a new module definition from scratch	How
•	Copy an existing module definition from the current container (i.e. folder or application system) and adapt a new definition from it	How
•	Create default modules from this analysis information, using the Application Design Transformer	How
Next step

Once a module definition is complete, you can create module components for the module. How


Creating new Web PL/SQL module definition
Creating new Web PL/SQL module definitions

Related Topics	Where am I?

There are various different ways to create a Web PL/SQL Basic module definition using Design Editor. This method describes how to create a new module from scratch, using a Module Diagram. About

To create a new Web PL/SQL module definition:

1.	In Design Editor, choose File→New→Module Diagram.

2.	Click Create and enter the following mandatory properties:

Module Type

Module Short Name

Purpose

3.	For Language, choose Oracle Web PL/SQL.

4.	(Optional) Click Next and enter the following information:

Hyperlink text (Short Title)

Startup Page title (Top Title)

URL (Command Line)

5.	(Optional) Click Next again and enter an Implementation Name

6.	Enter text which introduces the module to the user of the application:

a.	Click Next to display the User Text page. About

b.	Select Top of First Page (or Default Area).

By default, text defined against a module is placed at the top of the first page. You can also use this dialog to enter text for other locations.

c.	Enter the text required.

User text can be formatted using PL/SQL functions and HTML syntax.

Alternatively, click the Text Editor or HTML Editor button and then use your preferred editors to enter the text required (Options→Text Editor Options).

7.	Click Finish to save and then OK to display the new module definition on a Module Diagram. Tip

Next step

Once a module definition is complete, you can create module components for the module. How

If they are already defined, create data usages for the module component. How


You may save a diagram independently of its corresponding module definition. For instance, you may wish to annotate the diagram with embedded OLE objects. However, as you can always create a new diagram wholly from an existing module, you rarely need to save a Module Diagram in the repository; the diagram is merely a visual representation of the underlying module definition.


Creating a Web PL/SQL module by copying an existing definition

Related Topics	Where am I?

You can create a new Web PL/SQL module definition by basing it on an existing one. This technique allows you to copy modules originally designed for Forms, Reports or Visual Basic applications and then modify or adapt them for use in a Web PL/SQL application.

To copy a module definition and create a new diagram:

1.	Ensure that a Navigator window is open in Design Editor. How

2.	In the Navigator, select the module you want to copy.

3.	Do one of the following:

To copy a Web PL/SQL module

a.	Choose Utilities→Copy Object.

b.	Enter a new name for the module.

c.	Choose Copy.

To copy a non-Web PL/SQL module

a.	Choose Utilities→Copy With New Language.

b.	Enter a new name for the module.

c.	Define the new language as Oracle Web PL/SQL.

d.	Choose OK.

4.	Display the new, copied module on a Module Diagram. How

Tip:	Drag and drop the new copied module onto the workarea.

Next step

Once a module definition is complete, you can create module components for the module. How

If they are already defined, create data usages for the module component. How


Creating Web PL/SQL module components

Related Topics	Where am I?

A single Web PL/SQL module may contain one or more module components. About

Note:	Some modules will not contain module components. The most common of these are top-level modules, which are created to launch the Web PL/SQL application. Another example are those modules created to link pages on the WWW. About

To create a module component for a Web PL/SQL module:

1.	Open the Module Diagram in Design Editor. How

2.	Choose Options→Use Property Palette. About

3.	Click [image] and then click on the module.

4.	Enter a Module Component Name that is unique within the module.

5.	Enter the following information (as appropriate):

Title	Query?	Insert?	Delete?
Layout Style		Update?
Rows Displayed
6.	Optionally, enter additional text for the default text area:

a.	Double-click on User/Help Text to open the Text Editor.

By default, text defined against a module component is placed at the top of the Record List. You can define text for other HTML documents generated from the module component. About

b.	Enter the text required.

User text can be formatted using PL/SQL functions and HTML syntax.

7.	Click [image] to save.

The order in which module components are positioned on the diagram determines their display sequence in the generated application. To change the sequence, drag and drop the module components on the Module Diagram.

Next step

Create data usages for the module component. How


Creating data usages for Web PL/SQL module components

Related Topics	Where am I?

After you have recorded a module component definition you can define the tables and columns that it uses (data usages). Each module component is based on a specific table (the base table) but may also make use of other tables to provide lookup information (lookup tables). Bound items are used to specify which columns are used.

To create data usages for a Web PL/SQL module component:

1.	Open the Module Diagram in Design Editor. How

2.	Choose View→Data View. About

3.	Create a base table usage:

a.	In the Navigator, select the relational table definition for the base table usage.

b.	Drag the table definition onto the module component on the diagram where the base table usage is to appear.

The base table usage is created on the diagram. Example

If a base table already exists you will only be able to create lookup table usages, as each module component can only have one base table usage.

4.	(Optional) Create one or more lookup table usages.

a.	In the Navigator, select the table definition for the lookup table usage.

Ensure that a foreign key constraint exists between the base and lookup table you want to add. You can create foreign key constraints using Design Editor. How

b.	Drag the table definition on, or to the right of the base table usage on the Module Diagram.

The lookup table usage is created on the diagram. Example

Note:	Lookup tables typically provide lookup information for base table usages. However, they can also be linked to another lookup table usage, forming a chained lookup.

5.	Define bound items for each table usage:

a.	Select the table usage.

b.	Click the right mouse button and choose Bound Items.

c.	Choose the required columns and click OK.

d.	Edit the default bound item properties as required or just click [image] to save.

Next step

If the module contains more than one module component, you will typically:

•	create key based links (master-detail) between them How

•	and use the 'window' layout item to define the basic layout of the generated application. How

Alternatively, you may set properties for the table usages. How


Base table usage


Lookup table usage


Key-based links


About key based links in Web PL/SQL modules

Related Topics

Web PL/SQL Generator supports key based links from any base or lookup table usage:

•	that is connected back to the base table usage

•	or to any lookup table that is connected to the base table usage

Note that the foreign key column in the base table should be used, instead of the primary key column of the lookup table usage. If the primary key of the lookup table usage is used, the primary key column usage is not generated and, for example, application logic that references the primary key will not work.

For more information and examples of key based links in Oracle Designer, refer to Key Based Links

Key based links cannot be used in Web PL/SQL applications to link to or from:

•	Single Row SQL Aggregate (SRSA) module components or lookups attached to them

•	Subquery module components or lookups attached to them

For information on defining keybased links for Web PL/SQL applications, refer to Defining key based links between module components


Defining key based links between Web PL/SQL module components
Defining key based links between module components

Related Topics	Where am I?

A key based link defines a link between two table usages in different Web PL/SQL module components. To create a key based link the appropriate constraint must exist (primary key or foreign key). About

To define a key based link between two Web PL/SQL module components:

1.	Open the Module Diagram in Design Editor. How

2.	Choose View→Data View. About

3.	Click [image].

4.	Click on one of the table usages that are to make up the link.

5.	Click on the other table usage that is to complete the link.

If the destination of the link is in a different module, click on the white space surrounding the module definition diagram element and choose the table usage you require.

6.	Choose the appropriate key constraint from the list.

If only one constraint exists, it is selected automatically. The key based link is created on the diagram. Example

Next step

Once you have defined module components and data usages, and linked them together, use Design Editor in display view to define the basic layout. How


Defining basic Web PL/SQL module layout in Display View

Related Topics	Where am I?

The placement of master-detail module components on the same or separate Web pages can be defined visually using the 'Window' layout element. This layout element is available when the Module Diagram in set to Display View. In Display View, you can also change the sequence in which module components and items are displayed.

Note:	'Same page' layouts can be attained only if the Layout Style of the detail module component is 'List' and the detail module component does not generate a Query Form, that is all items have the Query property set to 'No'.

Window layout element

By default, a module component is created within a new window. You can use this layout element to display a master View Form and detail Record List:

•	on different pages How

•	on the same page How

Display sequence

You can drag and drop objects on the Module Diagram to change the display order of module components and bound/unbound items in the generated application. How

Next step

After defining the basic layout of the module you will typically set:

•	table usage properties How

•	and item properties How


Displaying master-detail module components on different pages
Displaying master-detail components on different pages

Related Topics	Where am I?

Use the window layout item to define that a detail Record List is displayed on a new page in the Web PL/SQL application.

Illustration: Master-detail components on different pages

To display master-detail module components on separate pages:

1.	Open the Module Diagram in Design Editor. How

2.	Choose View→Display View. About

3.	Click [image].

4.	Draw the window layout element around the detail module component.

Hold down the mouse button and drag the rubberband box to create a boundary around the module component to be included in the window layout element. At least one module component must be included in the selection.

Next step

You can further define the basic layout of a Web PL/SQL module in Display View. About

Once the basic layout is complete, you will typically set:

•	table usage properties How

•	and item properties How


Displaying master-detail module components on the same pages
Displaying master-detail components on the same page

Related Topics	Where am I?

Use the window layout item to define that a detail Record List is placed on the same page as its master View Form in the Web PL/SQL application.

Illustration: Master-detail components on same page

Note that 'same page' layouts can be attained in the following conditions:

•	when the Layout Style of both the master module component and the detail module component is 'List'

Note	If you want to display module components of different types on the same page, you should design your own custom frameset and use navigation action items and user-defined event code to navigate between the elements.

•	and the detail module component does not generate a Query Form, that is all items have the Query? property set to 'No'

To display master-detail module components on the same page:

1.	Open the Module Diagram in Design Editor. How

2.	Choose View→Display View. About

3.	Resize the window surrounding the master module component, so that it encompasses the detail module component.

Next step

You can further define the basic layout of a Web PL/SQL module in Display View. About

Once the basic layout is complete, you will typically set:

•	table usage properties How

•	and item properties How


Setting table usage properties for Web PL/SQL modules

Related Topics	Where am I?

After you have recorded the module definition and module components, and built up a picture of the tables to be used, you must set certain table usage properties. The steps below guide you to properties that are particularly important for Web PL/SQL generation.

Note:	You do not need to set lookup table usage properties unless you want to define a SQL WHERE condition for the table (see step 4).

To set table usage properties for a Web PL/SQL module:

1.	Open the Module Diagram in Design Editor. How

2.	Choose View→Data View. About

3.	Choose Options→Use Property Palette.

4.	Double-click the table usage and set the following properties as required:

Base tables	Lookup tables
Usage Alias	Validation WHERE Clause
WHERE Clause of Query
5.	Click [image] to save.

Next step

Once table usage properties are defined, specify item properties which determine how the columns are used and displayed in the Web PL/SQL application. How

You may also want to create further bound or unbound items. How


Setting basic item properties for Web PL/SQL modules

Related Topics	Where am I?

The steps below describe how to set some basic properties which determine how items are used and displayed in a Web PL/SQL application.

To set item properties for a Web PL/SQL module:

1.	Open the Module Diagram in Design Editor. How

2.	Choose View→Data View. About

3.	Choose Options→Use Property Palette.

4.	Double-click the item and set the following basic properties as required:

Display?	Insert?	Optional?
Prompt	Update?	Context?
Display Type	Query?
5.	Click [image] to save.

6.	To change the order in which items appear in the Web PL/SQL application, click an item using the right mouse button and then click Resequence Items.

Note:	By default, lookup items will appear immediately after the foreign key item.

7.	To add another HTML form element based on a column, create a bound item. How

Tip: 	To create an HTML form element that is not derived from a column, create an unbound item. About

Next step

After you have defined all the module components and items you may generate a standalone application from the Web PL/SQL module. How

Note:	If the module contains items that must derive their values from a dynamic list of allowable values held on the database, or a Sequence, ensure that the appropriate reference code or code control tables exist on the Application schema prior to generation. About

Once the basic module design is complete, you can further enhance the module design or customize the appearance and layout as required. About


About the PL/SQL Toolkit schema

Related Topics

This is the Oracle user who will have access to the database containing the Web PL/SQL Generator Library (WSGL, WSGJSL, WSGLM, WSGFL, WSGOCOL) and Oracle PL/SQL Web Toolkit (HTF, HTP, OWA, OWA_UTIL) packages.

Toolkit schema preparation

Before generating your Web PL/SQL application you need to set up the PL/SQL Toolkit schema. How

This involves:

•	creating the database schema (PL/SQL Toolkit schema)

•	installing the PL/SQL Web Toolkit

•	installing the PL/SQL Library packages

Multiple Web PL/SQL applications

If you intend to generate more than one Web PL/SQL application, we recommend that you install all the Web PL/SQL library packages into a separate account. This way, you only have to install the packages once and they may be used by more than one application. Once installed, you must remember to create public synonyms for the library packages and 'Grant Execute' on each package to 'Public' so that they are accessible to all users on the database.


Setting up the PL/SQL Toolkit schema

Related Topics	Where am I?

The PL/SQL Toolkit schema must contain all the necessary library packages, before you generate a Web PL/SQL module. The Oracle PL/SQL Web Toolkit is part of the Oracle 9i Application Server. About

To setup the Toolkit schema:

1.	Install the Web PL/SQL Generator Library packages by running the installation script <ORACLE_HOME>\cgenw61\cvwetc\WSGL.SQL on the PL/SQL Toolkit schema.

WSGL.SQL installs the Web PL/SQL Generator library packages WSGL, WSGJSL, WSGFL and WSGLM. It also creates public synonyms for HTF, HTP, OWA, OWA_UTIL, WSGL, WSGJSL, WSGFL and WSGLM.

Note:	Ensure that the PL/SQL Toolkit schema has the system privilege CREATE PUBLIC SYNONYM otherwise an error message will be displayed.

If any public synonyms for these packages exist, error messages are displayed. You should check that each existing synonym is correct.

To generate non-English Web PL/SQL applications you need to install an additional translated package into the same account, that is (<ORACLE_HOME>\cgenw61\cvwetc\WSGLM<LANG>.PKS) About

2.	To use Oracle interMedia you need to install another Web PL/SQL Generator library package (WSGOCOL) on the PL/SQL Toolkit schema.

a.	Ensure that WSGOCOL packages and tables are made available to the PL/SQL Toolkit schema:

Log on to SQL Plus as the Context Administrator User.

Grant SELECT privilege on the table CTX_USER_POLICIES, type

grant select on ctx_user_policies to <toolkit user>;

Grant execute privilege on the package CTX_QUERY

grant execute on ctx_query to <toolkit user>;

b.	Install the WSGOCOL library package by running one of the following installation scripts.

•	On an Oracle8i database, to use the interMedia functionality, run oracle_home\cgenw61\cvwetc\WSGIMTL.SQL on the PL/SQL Toolkit schema.

4.	If your table owner schema is a separate database account, you will need to grant access to the Web PL/SQL Generator library packages. Do one of the following:

•	Run the script <ORACLE_HOME>\cgenw61\cvwetc\WSGUSER.SQL on the PL/SQL Toolkit schema. WSGUSER.SQL grants execute permissions on the public synonyms to the table owner schema whose name you enter.

•	Manually grant execute permissions on the public synonyms to the table owner schema.

Next step

If the module design specification is complete, you can generate the Web PL/SQL module. How

If the modules which make up your application do not exist yet, first use Design Editor to create the Web PL/SQL modules. About


Setting Web PL/SQL Generator options

Related Topics	Where am I?

Before running Web PL/SQL Generator you must specify the application schema and DAD information for the generated application. About

You can also define the directory where Web PL/SQL Generator saves generated files.

To set Web PL/SQL Generator options:

1.	In Design Editor, choose Options→Generator Options→Web PL/SQL.

2.	Use the Source options to specify where to locate required files (on the filesystem or in the repository) during generation.

3.	Specify where to save generated files using the Destination of generated files field.

By default, generated files are saved to the current working directory of Oracle Designer.

4.	If you want to store generated files in the repository after generation, check the Upload generated files to repository checkbox.

5.	Enter the Name and Connect String of your Application schema.

This is the database account where the generated application will be installed after generation. The connection information entered here must match the DAD for the application server specified within the Web Agent URL option (see step 6).

6.	Set run options for the generated application.

a.	Specify the name and location of the browser you wish to use.

b.	Enter the Web Agent URL. This contains the DAD (database access descriptor) for the generated application, that ishttp://<machine:port>/<Web PL/SQL DAD>/plsql/

Note: 	For information on how to set up DADs, refer to the Oracle9i Application Server administration documentation.

These options allow you to run the Web PL/SQL application from the Design Editor immediately after successful installation.

Next step

If the modules which make up your generated application exist, generate the Web PL/SQL application. How

If no modules exist, first use Design Editor to create Web PL/SQL modules. About


Generating Web PL/SQL applications

Related Topics	Where am I?

Once the module design is complete, you can generate the Web PL/SQL application. Whenever you modify a module definition, the module network, or any of the preferences, you will have to generate all or part of the Web PL/SQL application again. Before following these steps, ensure:

the database design is complete (and up to date) How

Table API packages are installed How

Web PL/SQL Generator options are set correctly How

the PL/SQL cartridge has Session Enabled turned off (otherwise return links will fail to work)

generation to Oracle Portal is set up, if you want your application to be a portlet How

To generate a Web PL/SQL application:

1.	On the Navigator, select the module to generate.

To generate a Web PL/SQL application for a module network, ensure that the module you select is the top-level module.

2.	Choose Generate→Generate Module to display the Generate Web PL/SQL dialog box.

Tip:	To generate from a non- Web PL/SQL module, choose Generate→Generate Module As.

3.	(Optional) Select Include the module network to generate the module network which exists below the chosen module.

4.	(Optional) To install the PL/SQL packages after generation, enter the password for the Installation, or application schema.

This field is available if the Name and Connect String of the application schema is defined on the Web PL/SQL Generator Options dialog. The field will be grayed if you chose to define the password within the Name field. Click the Options button to open this dialog.

5.	Use the Post Generation options to specify whether to save changes to the repository during generation:

Commit - update repository objects

Revert - do not update repository objects

Browse/Edit - show proposed repository changes, enabling you to choose how to process them

Note that there are some circumstances when Web PL/SQL Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

6.	Click Start.

During generation the Message Window displays progress information and details of any errors that occur. Use the automated message action facility to correct any errors that occur and then generate the Web PL/SQL application again. How

Batch generation of multiple modules

You can generate multiple modules of the same and different languages using the Design Editor's batch processing tools.

Next step

After successful generation, the Web PL/SQL application must be installed.  Installation will happen automatically if the "Auto-install after Generation" option is set.  How

Otherwise, you must install the generated application manually.  How

Applications that have been generated as a portlet will appear in the portal window after:

the provider has been refreshed, and

the newly installed portlet application has been selected from the list of available portlets.

These steps are described in the online help for Oracle Portal.


Installing Web PL/SQL applications after generation

Related Topics	Where am I?

The Web PL/SQL generation process creates all the PL/SQL files and packages needed to create the Web PL/SQL application. After successful generation, you can install the application onto the application schema from Design Editor.

Note:	The generated Web PL/SQL application can be installed automatically, if preferred. How

To install a Web PL/SQL application after generation:

During generation the Message Window displays progress information and details of errors that occur. After successful generation follow the steps below:

1.	Choose Messages→Build Actions, or click [image] on the Message Window.

Note: Actions are only displayed after generation.

2.	Double-click Install generated packages in <Schema Name@Connect String>from the list of possible actions.

If installation is not initiated, check that SQL*Plus is installed correctly.

If this action is not displayed, check the Web PL/SQL Generator install options to see if they are set correctly. How

3.	Review the output from the installation process to check for any errors which may have occurred.

Next step

After successful installation, double-click Run generated application using browser from the action list to view the application. How


Installing generated Web PL/SQL applications manually

Related Topics	Where am I?

A .SQL file is created during generation which simply calls all the generated files (.PKS and .PKB) for the module, or module network and it can be used to install the generated packages onto an Oracle database.

Note:	Use the Web PL/SQL Generator Options dialog to specify where Web PL/SQL Generator saves generated files.

To install a generated Web PL/SQL application manually, using SQL*Plus:

1.	Start up SQL*Plus.

2.	Connect to the appropriate application schema.

3.	Enter the command required to run the generated .SQL file.

For example:	SQL>@D:\WORK\MYAPP

Progress information and error messages are displayed during installation.

Next step

After successful installation you may run the Web PL/SQL application using any HTML browser. How


Running Web PL/SQL applications after generation

Related Topics	Where am I?

You can run a Web PL/SQL application from Design Editor, providing you have just successfully:

•	generated the Web PL/SQL application How

•	installed the Web PL/SQL application How

•	defined a browser and web agent URL in the Options dialog How

To run Web PL/SQL applications after generation:

1.	Choose Messages→List Actions, or click [image] on the Message Window.

Note: Actions are only displayed after generation.

2.	Double-click 'Run generated application using browser' from the list of possible actions.

The Startup Page for the generated Web PL/SQL module is displayed using your chosen HTML browser.

If this action is not displayed or the application is not displayed in the browser , check the Web PL/SQL Generator run options to see if they are set correctly. How

3.	Check through the generated application for errors and omissions.

Next step

Typically you will customize or refine the module design and regenerate the application several times, until you are satisfied that it meets your business requirements. About


Running Web PL/SQL applications from any browser

Related Topics	Where am I?

You can use any HTML browser to run a previously generated Web PL/SQL application that has been installed on an application schema, providing the schema knows which URL to use and has suitable access rights to the application server.

To run a Web PL/SQL application:

1.	Start up the HTML browser.

2.	Enter the URL for the Startup Page of the generated module.

http://<machine:port>/<Web PL/SQL_Agent>/plsql/<module_implementation_name>$.startup

Note: You should always use the hostname to run your generated
application (e.g.  http://mypc.us.oracle.com:80/pls/package$.startup) and not the IP Address (e.g. http://123.48.86.37:80/pls/package$.startup), or the Return Links and LOVs will not work as expected.

The Startup Page of the chosen Web PL/SQL module is displayed.


Web PL/SQL module containing two module components


Master-detail module components on same Web Page

This module design will display the master's View Form
and detail's Record List on the same page:


Master-detail module components on different Web Pages

This module design will display the detail's
Record List on a new page:


Extend the Functionality of the module design and customizing layout
Extending module design and customizing Web page layout

Related Topics

Once you have a basic module design you can generate a first-cut Web PL/SQL application. From here, you will probably want to extend the functionality further and customize the layout of the application to suit your particular requirements.

For information on some of the more advanced aspects of design and generation, refer to the following topics:

Adding more functionality to the module design

Customizing the appearance and layout


Copying the system images to the Oracle Application Server
Copying the system images to the Oracle9i Application Server

Related Topics

These images have to be copied to to the location referenced by SYSIMG on the application server so that multi-row Insert Forms are displayed correctly. About

To set up the system images on the server:

1.	Copy the files in the <ORACLE_HOME>\CGENW61\CVWIMG directory to a directory path of up to 100 characters on the server. About

2.	Set the preference SYSIMG to the corresponding virtual path. About

a.	Display the Web PL/SQL Generator Preferences Palette for the container (i.e. folder or application system). How

b.	Select the General layout branch:

c.	Set SYSIMG to the virtual directory path.

d.	Click [image] to save.


Setting up to generate an application as a portlet in Oracle Portal (Web)
Setting up to generate a portlet

Related Topics	Where am I?

Instead of generating your Web application for display in its own browser instance, you can generate it to be displayed as a portlet in Oracle Portal.  All the procedures that you have followed so far for Web PL/SQL generation remain valid.  Before you generate and install the application, you must carry out the additional steps described below.

To set up for generation of portlets in Oracle Portal:

1.	If you require single sign-on (SSO) security for the generated application (portlet), install security package wsgsso.  How

Note: The generated portlets and provider package are designed to work with the wsgsso security package. In particular, the provider do_login function will attempt to call the wsgsso.update_session procedure. If you do not want security and you haven't installed the wsgsso SSO packages, you should prevent do_login being called by setting the provider login frequency to 'Never' when you register the provider with the portal.

2.	From the Oracle Portal Development Kit (PDK), run the PROVSYNS.SQL script that corresponds to your version of Oracle Portal.

Note: Run the PROVSYNS.SQL script in the Portal schema as:  SQL> @provsyns.sql <povider_schema>

3.	Run the PL/SQL script wsgp.sql (which is located in <oracle_home>\cgenw61\cvwetc).

This runs three other scripts, which in turn install packages and other database objects.

One of the installed packages is WSG_GENERIC_PROVIDER.  You can rename this package if you wish.

4.	Using Oracle Portal, register WSG_GENERIC_PROVIDER (under its new name, if you renamed it in the previous step) with the Oracle Portal provider.

Instructions for registering a package with a provider are in the online help for Oracle Portal.

5.	In Oracle Designer, set the preference MODPTL to 'Yes' for each module to be implemented and registered as a portlet.

6.	For the preference MODFOU, specify the location (DAD) of forms generated from this module.

7.	For the preference MODCSS, enter a URL for the cascading style sheet that will be used to define the appearance of HTML pages generated from this module (other than the first page, the style of which will be set to the standard for the portal page).

Next steps

You can now continue with the generation of your Web PL/SQL applications.  How

After the module has been successfully generated, go to the portal Administer page and refresh the provider repository.  In the Build page, create a page group and a page within the page group.  Add a portlet to the page and select the WSG generated portlet from the provider registered earlier.  For further information about this, see the online help for Oracle Portal.


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design Record the database design Set key database design properties
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design Record the database design Set key database design properties
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design Record the database design Set key database design properties
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules  Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


 Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


 Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components  Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


 Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components  Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


 Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components  Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


 Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components  Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


 Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components  Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


 Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components  Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


 Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules Plan module structure Create Web PL/SQL module definition Create Web PL/SQL module components  Create data usages Define key based links  Define basic layout Set table usage properties Set basic item properties
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application


Generating Web PL/SQL Applications Step-by-Step

	Create schemas
	Set up the database design
	Set up the table owner schema
	Set up the application schema
	Create Web PL/SQL modules
	Add more functionality to the module design
	Customize the layout of Web pages
	Create multiple module applications
	Set up the PL/SQL Toolkit schema
	Set Web PL/SQL Generator options
	Generate the Web PL/SQL application
	Install the Web PL/SQL application
	Run the Web PL/SQL application