OFGREAD
OFGREAD
=========================
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
3. Known Problems
-------------------------------------------------------------------------------
1. Documentation Available
3. Known Problems
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.
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.
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
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:
The Generator does not support the use of the 'DECODE' function in table
and column level check constraints
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
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.
NOTE: THIS TEMPLATE CAN ONLY BE USED TO GENERATE A MODULE WHICH HAS CHILD
MODULES
SPECIFIED IN THE MODULE NETWORK DIAGRAMMED
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.
COMPLEX: block_navigation('BLOCKNAME')
Procedure:
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.
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
- 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
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.
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
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'.
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',
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
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.
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.
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.
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.
The query length property for text items is now calculated in the following
manner:
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.
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 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.
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.
By default, the Generator hard codes messages into the PL/SQL of generated
forms.
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
In the procedure you can modify both specific user messages defined in
the
Repository and specific generator messages from the ofg4mes.pll library.
Because you write the procedure specified by MSGSFT, you have control over
which generator and user messages are externalized and how they are
externalized.
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.
An 'empty' non-base table item is one created and laid out by the
Generator, for which you enter appropriate code after generation.
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".
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:
object
else if size and/or position are recorded for the detailed table
usage, the Generator uses these
If this preference is set to No, the Generator sizes and positions windows,
if size and/or position are recorded for the detailed table usage,
the Generator uses these
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: