0% found this document useful (0 votes)
130 views13 pages

OFGREAD

sdfsd

Uploaded by

dragela
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
130 views13 pages

OFGREAD

sdfsd

Uploaded by

dragela
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 13

Copyright (c) Oracle Corporation 1994. All rights reserved, worldwide.

=========================
Forms Generator
4.5.10.0.0 Release Notes
Production Release
=========================

T a b l e o f C o n t e n t s

1. Documentation Available

2. New features for 4.5.10.0.0

3. Known Problems

4. Hints and Tips

4.1 Shipped example templates


4.2 Developer/2000 issues
4.3 Generating on MS-Windows platform for deployment on Motif platform

5. Bugs fixed in 4.5.10.0.0

6. New features for 4.5.8

6.1 Ms-Help generator(beta) support


6.2 Block and Group Tabulation
6.3 Query Length property for generated text items

7. New features for 4.5.9

7.1 Current record indicator


7.2 Stacked Item Groups
7.3 Soft coded messages
7.4 Calendar windows for date items
7.5 Window title property
7.6 Ms-Help generator support
7.7 Generating 'Empty' non-base table items from 2nd usages
7.8 Increased support for generation of forms for Oracle Applications
7.9 Controlling generated layout object dimensions

-------------------------------------------------------------------------------

1. Documentation Available

Currently on-line help is provided.

2. New features for 4.5.10.0.0

No new features have been made available for this release.

3. Known Problems

- Generator Working Directory

For each diagrammer it is possible to specify in the Windows Program Item


Properties the working directory. However it is not recommended that you
rely on this for specifying the path to files used during generation.
The working directory can be changed by use of any standard file dialogue
windows. There is also a problem if you use several diagrammers, calling
one from another, as the working directory is inherited from the calling
diagrammed, if these differ you may have a problem during generation.

The files used during generation are typically template forms and
libraries. We strongly recommend that you always specify the full
pathname to these files in the preferences and don't rely on the working
directory.

- Ensure Template Path preferences set for Generators

If the generators are installed after the repository has been built then
it is possible that a number of the internal user preferences that
control template path specification may not be set correctly.

The following sqlplus script should be run to upgrade the shipped


defaults, if this is not run the results when running the generator are
unpredictable.

To run the script:


1) set-up program item with the following command line:

plus31 <REPADM10>/utl/ckprefup.sql <p1> <p2>

where: <REPADM10> is path where the repository management facility is


installed, as defined by the variable REPADM10.
e.g. D:\ORAWIN\REPADM10
and
<p1> is the path where the forms generator is installed, as
defined by the variable CGENF45.
e.g. D:\ORAWIN\CGENF45
and
<p2> is the path where the reports generator is installed, as
defined by the variable CGENR25.
e.g. D:\ORAWIN\CGENR25

and variable <name> is either defined in the oracle.ini for 16bit


platforms or in the registry for 32bit platforms.

- Use of view definitions

rather than using table definitions to define detailed table usage you
can use view definitions. If a view is defined as being used by a module,
then the properties of the underlying table(s) (e.g. the key definitions,
lists of valid values, column auto-generation, etc.) are NOT inherited
by the view. Thus views and their columns must be given the same
attributes as the tables they are defined on, in order for the Generator
to add the required code. In addition, if a view is defined as
'SELECT * ...' then no columns are defined in the repository and hence
none are visible to the Generator. In this case Oracle Forms modules
cannot contain a usage of the view

- Names of tables, unique names

The Generator requires that the names of tables and their keys be unique
within the first 21 characters. The table names are used to create names
for program units, which are limited to 30 chars.
The generator pre-pends the following example text when naming program
units to support various bits of functionality:

CGRI$CHK_<table name> or CGRI$DEL_<table name>

- Use of decode in check constraint definition

The Generator does not support the use of the 'DECODE' function in table
and column level check constraints

- Support for 'LAST' high level layout details

Previous version of Forms Generator utilised two sets of 'high


level layout details' recorded against base detailed table usages, this
new version only supports the details recorded for the 'REQUIRED'
settings. The main conversion/upgrade for your repository applications
and modules allows you to merge any that you may have used that are held
against the 'LAST' with those recorded for the 'REQUIRED' settings, the
conversion operates for all modules in all application systems; after
conversion the generator will use the merged settings and any new module
definitions will only contain one set of 'high level layout details'.

4. Hints and Tips

4.1 Shipped example templates

There are three new templates supplied with this version of Forms
generator 4.5, the following templates are for generation and deployment
on MS Windows, they are installed as follows:

<cgen_home>\admin\ofg4pc1t.fmb
<cgen_home>\admin\ofg4pc2t.fmb

The third new template is designed for generation on windows and deployment
on Motif and is installed as follows:

<cgen_home>\admin\ofg4mf1t.fmb

where cgen_home is <drive>:\orawin\cgenf45

These templates are designed to work as they are shipped. However,


you can customize these to meet your own requirements. We are keen to
include useful generic template features as part of the product and
would welcome any examples or suggestions, which could be considered
for inclusion for future releases.

ofg4pct1.fmb is the new standard GUI template for MS Windows, ofg4pc1t.fmb


and ofg4mf1t.fmb are very similar, both of these templates contain the
following:

An iconic MDI toolbar which includes with tool/tips/bubble help


implemented and colour icons are supplied

A set of MS Windows/Motif style visual attributes specified, which are


specified in association with a custom palette

Using real co-ordinate system with real unit inch, where character
cell size is width = 0.1" and height = 0.25"
Care must be taken with when deploying on motif using ofg4mf1t.fmb as the
toolbar
window is displayed at 0,0, you will need to make sure that any generated
windows
are displayed below it by specifying their X and Y co-ordinates.

ofg4pc2t.fmb is the same as ofg4pc1t.fmb above, plus it has functionality


for implementing buttons for inter-form navigation

NOTE: THIS TEMPLATE CAN ONLY BE USED TO GENERATE A MODULE WHICH HAS CHILD
MODULES
SPECIFIED IN THE MODULE NETWORK DIAGRAMMED

- Useful Example Implementation for Inter-Block Navigation

In this new release it is now possible to generate buttons, and define a


PLSQL procedure to be actioned when the button is pressed.

A button can be generated by specifying a secondary column usage with a


display datatype of BUTTON. For the column usage a PLSQL block definition
can be specified with the syntax COMPLEX:<Procedure Name>(<Parameters>).
The parameters can be anything, i.e.; literals, forms items etc.

In previous versions of the Forms Generator there was no way to


generate inter-block navigation other than use the native forms
next/previous block.
This is not very desirable in a GUI environment as block navigation is
very rarely sequential. It is very simple to use this new feature to solve
this problem.

On any block the user can create a button using secondary usages for each
block they wish to navigate to. Each secondary usage can then have a
COMPLEX call to a library or template form procedure. If the call passes
the blockname of the target block (this can be deduced from the block
naming scheme in operation, normally using the table aliases) then a
generic procedure can be written to do a go_block.

PLSQL block definition on the secondary usage:

COMPLEX: block_navigation('BLOCKNAME')

Procedure:

PROCEDURE block_navigation (blockname varchar2) IS


BEGIN
go_block(blockname);
END;

This logic could be made more sophisticated if you wanted to force


commits, prohibit navigation without a master record, etc; before
navigating between blocks, by passing additional parameters.

Note that you will need to handle how windows are closed once opened,
but this can be done with a generic WHEN_WINDOW_CLOSE trigger in the
template form or explicitly generated close window buttons.

The navigation buttons required are very dependant on the layout of the
forms blocks across pages, popups and canvases, and what type of workflow
is required for the end user to complete the function the screen was
designed for. To this end, it makes much more sense to leave the
inter-block navigation model to the application developer rather than
enforcing a fixed generated solution.

4.2 Developer/2000 issues

bug #270619 - FILE/ADMINISTRATE/DATABASE ROLES HANGS IF NO ACCESS TO


DBA_ROLES

ensure user account has 'select access' granted to dba_roles


and dba_role_privs when attempting to access
FILE/ADMINISTRATE/DATABASE ROLES option in forms designer.

4.3 Generating on MS-Windows platform for deployment on Motif platform

The generator produces fixed/aligned boilerplate so that if the font size


changes on different platforms then prompts grow in the correct direction,
i.e, the gap between the item they reference and the prompt stays fixed.

When generating for Motif you need to create a template form on Motif which
takes note of the limitations of that platform. i.e, No MDI window thus no MDI
toolbar etc(Note that any toolbar would need to go in a user template window,
it is suggested the ROOT-WINDOW and set the preference WINUSR = N). Move the
Motif template to MS-Windows and generate, then move the fmb, mmb and
libraries back to Motif and re-compile all of these.

In R1.0 generating with a real coord template all the item sizes were
calculated by determining the average char cell size for font specified in the
CG$visual attribute for that item type, and multiplying this by the detailed
column usage display length. However, if were generating with a Motif style
template on MS-Windows the generator was unable to determine the average cell
size for a motif font like Helvetica, and hence used the default font. This
meant that the item may not be the correct size when run on Motif. You have two

ways to handle this in R1.1 onwards.

- Change your template to use a MS-Window font, for all CG$visual attributes,
which is similar size to the required Motif font (recommend Helvetica and MS
San Serif). The use font aliasing at runtime to solve the font conversion.

- Or you set the new preference ITMBIF =N. This controls the way items are
sized
during generation. When set to no the items will be sized as the char cell
size
in the template * DCU display length, thus font is removed from the equation.
This
does mean you have to work out a cell size that handles the average cell size
of
your desired Motif font. (Helvetica and MS San Serif 10 point both require a
cell
size of ht=0.25", wd=0.1". If the point size is changed, the cell size should

change in the same ratio).

Note also, that whatever the target platform is some display formats won't
fit
in a generated item which is multiples of the average cell size. Look at
preference TXTSCA, this allows a percentage greater than the average cell
size
to specified to be factored in the sizing of date, number and uppercased
items
to make sure text fits. This defaults to 20%.

Last of all you need to avoid any hardcoded paths. It is suggested do not set
the
paths for menus and libraries in the generate dialog, use the environment
variable
FORMS45_PATH to hold the paths.

5. Bugs fixed in 4.5.10.0.0

336056 WHEN USER CLEARS A LOOKUP THE CORRESPONDING FK DATABASE SHOULD ALSO BE
CLEARED
361616 WINDOW AND LAYOUT VALUES MUST BE NULL IF POSITION IS SAME PAGE.
364292 CGEN - 01034 WHEN TRYING TO RESTRICT TABLE USAGES
373673 REGENERATION DOES NOT USE TEMPLATE CANVASES AND GENERATOR ATTRIBUTES.
375563 SUPERFLUOUS CODE GENERATED FOR FOREIGN KEY CHECK WHEN FOREIGN KEY
CONTAINS NULL
379274 CGEN 200 ERROR: INVALID PREFERENCE SHORT NAME ERROR USING MVS EBCDIC
DATABASE
396676 CF45G32 CAUSED AN INVALID PAGE FAULT IN MODULE CF45G32@0137:005BLCFF
403852 CF45G32 CAUSED AN INVALID PAGE FAULT IN MODULE CF45G32.EXE AT
0137:005D9D28
411204 BACKPORT REQUEST FOR BUG 267105 TO DES/2000 RELEASE 1.3.2
414801 NULL CHECKS IN FOREIGN KEY LOOKUP CAUSE FULL TABLE SCAN; NIVVKC IS
IGNORED

6. New features for 4.5.8

6.1 Ms-Help generator(beta) support

To use this functionality requires that the following line is set


in your oracle.ini file:

HELPFILE_PATH=<path for help file storage>\

for example: HELPFILE_PATH=D:\work\cgen45\help\

If this environment variable is not set then the generated


applications will assume that the help files are stored locally
in the working directory.

The following user preference 'HLPTYP' also needs to be set, it should


be set using the preference navigator to have the following value:

MSHELP

If this user preference is set to 'HELPFORM' which is the default, the help
processing
provide by the generator will as defined by the user preference 'HLPFRM'.

If help processing is not required in a generated application then set this


user preference
to 'NONE'.
6.2 Block and Group Tabulation

This release contains new support for both block and item group tabulation
control,
a new user preference GRPTAB(Group tabulation table) allows the
specification tab stops that are
used to display items and their prompts(labels) within an item group. The
tab stops must be in
ascending order and separated by periods.

Also the following new options are available for the user preferences
'GRPUTT' and 'BLKUTT',

For BLKUTT the new options are:

SS Align the start of the prompts and align the start of the items
EE Align the end of the prompts and align the end of the items
SE1 Align the start of the prompts and align the end of the items
SE2 Align the start of the prompts and align the end of the items

Note: SE1 and SE2 have the same effect.

The Generator uses the tabs specified by the BLKTAB preference to align
prompts to even tab stops
(i.e. tab�0, tab�2, tab�4, . . .) and items to odd tab stops
(i.e.�tab�1,�tab�3,�tab�5,�.�.�.).
ITMPIG and ITMIPG specify the minimum gaps between prompt and item, and
between item and the next
prompt. If gaps will be less than specified by these preferences, the next
appropriate tab stop is
used.

If insufficient space is available to display a prompt beside an item, the


prompt is displayed
above the item. In this case, if BLKUTT is set to SS, the SD alignment is
used. If BLKUTT is set
to EE, SE1 or SE2, the ED alignment is used.

For GRPUTT the new options are:

SS Align the start of the prompts and align the start of the items
EE Align the end of the prompts and align the end of the items
SE1 Align the start of the prompts and align the end of the items; minimize
the use of horizontal space
SE2 Align the start of the prompts and align the end of the items; make
sure that no prompt overlaps an item

Note: SE1 and SE2 have the same effect for horizontal item groups.

For Horizontal Item Groups:

If GRPUTT is set to one of SS, EE, SE1, or SE2 . . .

The Generator uses the tabs specified by the GRPTAB preference to align
prompts to even tab stops
(i.e. tab�0, tab�2, tab�4, . . .) and items to odd tab stops
(i.e.�tab�1,�tab�3,�tab�5,�.�.�.).
ITMPIG and GRPHIS specify the minimum gaps between prompt and item, and
between item and the next
prompt. If gaps will be less than specified by these preferences, the next
appropriate tab stop is
used.

If insufficient space is available to display a prompt beside an item, the


prompt is displayed
above the item. In this case, if GRPUTT is set to SS, the SD alignment is
used. If GRPUTT is set
to EE, SE1 or SE2, the ED alignment is used.
If the user preference GRPUTT is set then the generator will
use the tab stops defined in the new user preference GRPTAB to layout
items in a horizontal item group.

For Vertical Item Groups:

The alignments ED, SD, SS, EE, and SE2 can increase the overall width of
vertical item groups.
If this makes the item group too wide to fit in the available width, the
alignments EP or SP are
used by the Generator to position the items.

6.3 Query Length property for generated text items

The query length property for text items is now calculated in the following
manner:

where query allowed, query length property=255


where query not allowed, query length property=0
where the display datatype results in a Descriptive Flex field, query
length=2000

7. New features for 4.5.9

7.1 Current row indicator

What are Current Record Indicator Items?

A current record indicator item is a 'marker' beside the currently


selected record in a block (usually a multi-row block).

If a multi-row block contains current record indicator items, an


indicator item appears in each record in the block. When a record is
selected (e.g. by navigating to one of the enterable items in the
record), the visual attribute of the indicator item in that record
changes to that specified by the item's Current Record Attribute
property. When the user navigate to a different record, the indicator
item returns to its previous state.

The Generator creates a current record indicator item as an enterable,


non-base table item to enable users to navigate to a record by selecting
the indicator item itself.

To generate a current record indicator:

1) Create a secondary usage

Hint: If you want the indicator item to be the first item in the block,
create a non-displayed column usage as the first DCU, and create
a secondary usage of the column as the second DCU.

2) Set the DCU Display Datatype property to Current Record.


3) Set dimensions of the current indicator item as required.
4) In the template form, define two named visual attributes, as follows:

- CG$CURRENT_RECORD, to set the appearance of the item when it is


indicating the current record
- CG$OTHER_RECORD, to set the appearance of the item when it is not
indicating the current record
5) Generate the form.

7.2 Stacked Item Groups

What are Stacked Item Groups ?

A stacked item group comprises two or more item groups that are displayed
in the same area on a form. The item groups are effectively stacked on
top of each other, with only one item group in the stack visible at any
one time. Users of the generated form select which item group in the
stacked
group to display using a control poplist containing the Prompt of each
group
in the stack. Items not in stacked item groups, and other non-stacked item

groups, are laid out before and after a stacked item group.

Stacked item groups are sometimes called 'alternative regions' or


'tabbed canvases'.

Why Use Stacked Item Groups ?

Stacked item groups are an efficient way to display blocks containing many
items, particularly single-row blocks where the number of items to be
displayed cannot be accommodated within the required canvas dimensions and
scrolling is undesirable.

How to Create Stacked Item Groups:

1) Create two or more item groups from DCU's in the same DTU (for more
information, refer to Item Groups).
2) Specify a Prompt for each of the item groups you want in the stack.
3) Specify Stacked as the Layout Style for the item groups you want in the
stack.

7.3 Soft coded messages

Why Externalize Message Text?

By default, the Generator hard codes messages into the PL/SQL of generated
forms.

However, you might want to change generated message text to:

- improve the usability of the forms you generate (e.g. by modifying

the standard generator messages)


- provide messages in different languages (e.g. by modifying both
user messages and generator messages)

To enable you to access the message text, you can specify that the
Generator
is to use 'externalized' generator messages from a separate library file
(called ofg4mes.pll) that is attached to the form during generation, rather

than hard coding the messages into the form itself. At runtime, the
generator
messages are processed by a procedure you define, which also enables you to

externalize user messages.

The ofg4mes.pll library file is installed as part of Designer/2000 and


already
contains the standard generator messages.

To externalize message text:

1) Create a suitable form procedure in the template.

In the procedure you can modify both specific user messages defined in
the
Repository and specific generator messages from the ofg4mes.pll library.

2) Set MSGSFT to the name of the form procedure in the template.


3) Generate the form.

During generation, the Generator:

- copies the procedure specified by MSGSFT from the template into


the
generated form
- replaces calls to the standard Forms message handling procedure
with
calls to this procedure
- attaches the ofg4mes.pll library to the generated form

Techniques to Externalize User Messages

Because you write the procedure specified by MSGSFT, you have control over
which generator and user messages are externalized and how they are
externalized.

Techniques you could adopt include:

- do not modify generator messages - the messages are taken directly


from
the ofg4mes.pll library
- modify some or all of the generator messages explicitly in the
procedure
specified by MSGSFT, using the message numbers in the ofg4mes.pll
library
to identify the messages (Note: We recommend you do not modify the

generator messages in ofg4mes.pll directly)


- do not externalize user messages - the messages are taken directly
from
error messages recorded against constraints

- externalize some or all user messages, as follows:

either by creating a new library, adding user messages to the


library,
and calling the library from the procedure specified by
MSGSFT
(recommended)
or by explicitly handling user messages in the procedure
specified
by MSGSFT
or by adding user messages to the list of messages in
ofg4mes.pll
(not recommended). Enter a numeric identifier for the
constraint
error message in the Repository, and include the numeric
identifier
and the corresponding error message in the ofg4mes.pll
library.
Note: Message numbers 1 to 100 are reserved for Generator
messages,
so do not give numbers in this range to user messages.

7.4 Date Field using Calendar window

This new feature generates a Calendar window that is analogous to a LOV


for date fields, if the user presses the LOV button whilst on a date item
a calendar appears, the user can then pick the date required.

Generator support for this functionality can be user driven, for date
fields the generator produces a KEY-MENU trigger that simply calls a
program unit defined in the template where the user may call any code
that is required.

A new shipped template (ofg4calt.fmb) contains an example definition of


a calendar window and a display_calendar program unit. A new shipped
library (ofg4call.pll) contains code that uses the calendar window.

A new user preference called USECAL is used control when this


functionality is generated.

7.5 Window title property

A title for generated windows can now be defined as a property of a


detailed table usage. The window title is taken from the first base
detailed table usage defined in a window, other titles are ignored.

If no title has been defined in the repository the generator reverts


to previous functionality, where window titles, were generated as
follows:

eg "My Form: Window 0"

7.6 Ms-Help generator support

This support is now production.

7.7 Generating 'Empty' non-base table items from 2nd usages


What is an 'Empty' Non-Base Table Item?

An 'empty' non-base table item is one created and laid out by the
Generator, for which you enter appropriate code after generation.

Why Create 'Empty' Non-Base Table Summary Items?

Using the Generator to create these items rather than creating


them by hand using the Forms Designer ensures that the items are taken
into consideration when the Generator is laying out the generated form.

How to Create an 'Empty' Non-Base Table Summary Item:

1) Create a secondary usage.


2) Ensure the following conditions are met:

- the DCU Display Datatype property is not Button


- the DCU has no Summary function defined for it
- the DCU has no Derivation Expression defined for it

3) Generate the form.


4) Use Forms Designer to modify the generated item properties and add
appropriate code to meet your requirements.

7.8 Increased support for generation of forms for Oracle Applications

What are Oracle Applications?

Oracle Applications are a suite of integrated client/server applications


for managing finance, government, manufacturing, distributing, project
control and human resources information. Some of the many Oracle
Applications include Oracle General Ledger, Oracle Payroll, Oracle Order
Entry and Oracle Purchasing. All Oracle Applications adhere to the same
set of coding and interface standards and so present users with a common
'look-and-feel'.

Designer/2000 and Oracle Applications

Oracle Applications are developed with a business model that meets both
core application requirements and has generic structures and features to
support customization. Customization is frequently required at some point,
especially since customer requirements will change over time in response
to changes in legislation and organizational structure. You can use
Designer/2000 to store the application definition in a common repository.
This will enable you to first identify missing functionality, and then to
model, design and generate the necessary customer-specific extensions.

For a detailed discussion of the issues involved, refer to the white paper
"Designer/2000 for Oracle Application Users".

Generating Oracle Applications-like Forms

The Forms Generator has a number of features that you can use to give
generated forms an Oracle Applications 'look-and-feel'. These features are
grouped together in the list of topics below:

- Generating Calendar Windows for Date Items


- Stacked Item Groups
- Generating 'Empty' Non-Base Table Items from Secondary Usages
- Generating Current Record Indicator Items
- Generating Forms with Descriptive Flexfields
- Using the appsgen.fmb Standard Template Form

There is also a shipped library of examples in appsexp.pll.

Note: Ensure that the versions of Forms used in Designer/2000 and


Oracle Applications are the same.

7.9 Controlling generated layout object dimensions

TEMSIZ is a new user preference that enables the user to control


how the Generator sizes and positions windows, views and canvases
(i.e. pages and popups), when dimensions are stored in number of
repository elements and/or the template used during generation.

If this preference is set to Yes, the Generator sizes and positions


windows, views and canvases as follows:

if the generated window/view /canvas is based on a template object,


the Generator uses the size and position defined for the template

object

else if size and/or position are recorded for the detailed table
usage, the Generator uses these

otherwise the Generator uses the appropriate preference values

If this preference is set to No, the Generator sizes and positions windows,

views and canvases as follows:

if size and/or position are recorded for the detailed table usage,
the Generator uses these

else if the generated window/view /canvas is based on a template


object, the Generator uses the size and position defined
for the template object

otherwise the Generator uses the appropriate preference values

The preferences used by the Generator if size and/or position are not
recorded for either the detailed table usage or the template object
depend on the generated object, as shown below:

Preference controlling Window Content Canvas(Page) Stacked


Canvas(Popup)
Width WINFWD PAGCWD POPCWD
Height WINFHT PAGCHT POPCHT
X position WINFXP
Y position WINFYP
View Width POPVWD
View Height POPVHT
View X position POPVXP
View Y position POPVYP

You might also like