|
|
Cooperative Extension Service |
|
|
|
||
|
|
||
|
Agricultural
Experiment Station |
||
|
|
|
|
Note: This is very out-dated, and is probably not very useful any more. One of these days, I may have some time to update it!
In order to create a custom form in Banner, SCT has supplied a skeleton form, guaskel.fmb, in Banner 3, with most of the baseline code in it to create your own Banner-compatible form (gtvskel.fmb is also available). They've put a lot of stuff in the Banner 4 version of guaskel.fmb which makes it unsuitable for modeling the forms I create, so, instead, I use one of the smaller forms, gtvobjt.fmb, as my skeleton form. The first half of this web page shows the Banner 3 version, and below that in the second half of this web page is the Banner 4 version. (I haven't done any later Banner versions of this yet.) Also see Edward Stoever's white paper on creating custom forms (Fuller Theological Seminary).
All you will need to do with it is to copy the skeleton file you are modeling after to your new .fmb file (7-character name, with Banner requiring F (Finance) or one of the other products' prefix characters in the first character position, and with Z (or W or Y) in the second character position to indicate a locally-created form), open up that new form in the Forms Designer, rename some of the objects in it to your new form's name, add the table's block or fields in the screen layout editor, modify the objects' properties to describe them and their accessing further, make any code changes needed for the triggers used by the objects, and generate the resulting .fmx file. You will also need to add the new form to the Banner security system, after which the form is ready to be used in Banner.
Below are the step-by-step instructions for creating a new FZIHOLD Invoice Hold Indicator Change form, which we are currently using to selectively change the hold status for a group of invoices, instead of individually bringing up each invoice in Banner's FAAPAYC Payment Control Form to release them. It lists all open (unpaid) invoices, showing their invoice document number, payee, transaction date, total amount, cancel indicator, and hold indicator, in a scrollable list of 10 invoices per page, and allows you to change the hold indicator for a particular invoice, or a set of invoices, in the list by clicking on it's checkbox. It also has the standard Rollback, Save, and Exit buttons supplied in guaskel.fmb (Banner 3).
The screen layout for the Banner 3 version of FZIHOLD is shown below, which is a snapshot of the Forms Designer's screen layout editor:

To create the form in the Oracle Forms Designer, the following steps are performed. I've tried to give as much detail as needed for someone who has never used the Forms Designer to be able to create the FZIHOLD form in under 2 hours. If you want more information about the properties, triggers, items, and other objects created and used here, please consult any of the books and manuals available on Oracle Forms Designer (or Designer2000), not me, since this stuff is all new to me, too, and I'm trying my best to dissuade our users from requesting custom forms and to not even get into forms develop- ment here! (If I've left anything out, or deleted something that needs to be kept, please let me know!)
Copy guaskel.fmb to fzihold.fmb (may have to FTP it from the Oracle server
from $BANNER_HOME/general/forms/guaskel.fmb), probably in the winfmx
forms directory on your Windows PC client network.
Bring up the Forms Designer (f45des.exe for 16-bit forms, or f45des32.exe
for 32-bit forms, in the orawin\bin directory on your Windows PC).
Click on File | Connect (item in the menu line across the top of the Forms
Designer's Object Navigator screen) and log in as user baninst1 (our
Forms Designer tends to crash if we don't connect first).
Click on File | Open (or, click on the folder icon (Open) at the top of
the column of icons on the lefthand side of the screen), position to the
forms directory (winfmx) using the Drives pull-down menu and Folders
tree in the Open screen, select Forms (*.fmb) from the "List files of
type" pull-down menu, and select (double click on) fzihold.fmb to bring
up FZIHOLD in the Forms Designer.
Rename GUASKEL module name to FZIHOLD:
Double click on the box beside (to the immediate left of) GUASKEL under
the Forms section header.
Type in FZIHOLD into the Name property value box, and press Enter (the
property value box extends all the way across the top of the property
window above the list of properties; the first property in the list of
properties (Name) should already be selected).
Click on the rightmost X in the Properties title line to close the
property window.
Rename GUASKEL canvas name to FZIHOLD:
Click on + beside the Canvas-Views section header.
Right click on the box beside GUASKEL_1_CANVAS to bring up the menu.
Click on Properties... in the menu.
Highlight (select) GUASKEL in the Name property value, type in FZIHOLD
over it, and press Enter, making it FZIHOLD_1_CANVAS.
Click on the rightmost X in the Properties title line to close the
property window.
Rename GUASKEL buttons to FZIHOLD:
Click on + beside the Blocks section header.
Click on + beside BUTTON_CONTROL_BLOCK under the Blocks section header.
Click on + beside Items under BUTTON_CONTROL_BLOCK.
(Or, instead of above three, you could just type GU into Find box.)
Rename GUASKEL_1_ROLLBACK_BTN to FZIHOLD_1_ROLLBACK_BTN:
Double click on the box (button) beside GUASKEL_1_ROLLBACK_BTN (it
might have a typo error, and show GUASEKL_1_ROLLBACK_BTN instead).
Highlight (select) GUASKEL in the Name property value, type in FZIHOLD
over it, and press Enter, making it FZIHOLD_1_ROLLBACK_BTN.
Click on the rightmost X in the Properties title line to close the
property window.
Rename GUASKEL_1_SAVE_BTN to FZIHOLD_1_SAVE_BTN as described above.
Rename GUASKEL_1_EXIT_BTN to FZIHOLD_1_EXIT_BTN as described above.
(If you don't need the ROLLBACK and SAVE buttons for your particular
form, you could delete them as described below for CHECK_KEYS,
instead of doing the rename's above for them.)
Remove CHECK_KEYS item:
Click on the CHECK_KEYS text (under the FZIHOLD buttons).
Click on the X icon (Delete) on the lefthand side of the screen (or,
press the Delete key), answering Yes to the delete confirmation
message to delete that item.
Remove KEY_BLOCK item (which contains the fields displayed on the original
GUASKEL screen; but, see the notes at the end when developing your forms):
Click on the KEY_BLOCK text (under Blocks section header).
Click on the X icon (Delete) on the lefthand side of the screen (or,
press the Delete key), answering Yes to the delete confirmation
message to delete that item.
Create FABINVH block to hold 10 FABINVH records at a time for the screen:
Click on the Blocks section header.
Click on the + icon (Create) on the lefthand side to create an item and
bring up the New Block Options window.
Type in FIMSMGR.FABINVH into the Base Table field (which also changes
the Block Name field when you click into it - you could change that
field value to name this block something other than FABINVH, such as
FZIHOLD_BLOCK or back to the original KEY_BLOCK).
Click on the Items tab in the New Block Options window.
Click on the Select Columns button to bring in all columns in the
FABINVH table.
Click on each field in the Select Columns list (or, arrow down; make
sure that Caps Lock is off before using the arrow or Enter keys),
starting with FABINVH_POHD_CODE, and press Enter (or, click on the
Include checkbox to uncheck it) to exclude that field (puts a "-"
beside that field name in place of the +) for all fields except for:
FABINVH_CODE, FABINVH_TRANS_DATE, FABINVH_HOLD_IND,
FABINVH_CANCEL_IND
Click on FABINVH_HOLD_IND in the Select Columns list and select
Check Box in the Type pull-down menu to the right.
Click on FABINVH_CANCEL_IND in the Select Columns list and select
Check Box in the Type pull-down menu to the right.
Click on the Layout tab in the New Block Options window.
Enter 10 into Records.
Click on the Scrollbar option to check it.
Click on the OK button at the bottom of the New Block Options window.
Add PAYEE1 and TOTAL items to FABINVH block (their values will be derived
in a POST-QUERY trigger):
Click on Items under FABINVH in the Blocks section.
Click on the + icon (Create) on the lefthand side to create a new item
(probably initially called ITEM1).
Double click on abc box beside ITEM1 to bring up the property window.
Highlight (select) ITEM1 in Name property value and type in PAYEE1 over
it, and press Enter.
Click on the Canvas property in the Display section, click on the arrow
on the right end of the property value box, and select FZIHOLD_1_CANVAS
(or, you could just double click on the Canvas property or press Enter
to cycle around to that FZIHOLD_1_CANVAS value).
Click on the rightmost X in the Properties title line to close the
property window.
Do the same for TOTAL:
Click on Items under FABINVH in the Blocks section.
Click on the + icon (Create) on the lefthand side to create a new item
(probably initially called ITEM2).
Double click on abc box beside ITEM2 to bring up the property window.
Highlight (select) ITEM2 in Name property value and type in TOTAL over
it, and press Enter.
Click on the Canvas property in the Display section, click on the arrow
on the right end of the property value box, and select FZIHOLD_1_CANVAS
(or, you could just double click on the Canvas property or press Enter
to cycle around to that FZIHOLD_1_CANVAS value).
Click on the rightmost X in the Properties title line to close the
property window.
Arrange the items in the FZIHOLD_1_CANVAS so that they are lined up left
to right in the following order:
FABINVH_CODE, PAYEE1, FABINVH_TRANS_DATE, TOTAL, FABINVH_HOLD_IND,
FABINVH_CANCEL_IND, and the vertical scroll bar,
as shown at the top of this web page (PAYEE1 and TOTAL will be on top of
each other in the upper left corner, so, you'll have to move one to see
the other; the FABINVH fields will be toward the bottom of the form, so
you will have to scroll down to them):
Click on + beside Canvas-Views section header (if not already expanded).
Double click on box beside FZIHOLD_1_CANVAS to open up the screen editor.
Click on and drag each 10-row item to its spot on the canvas, and, then,
enlarge it or shrink it horizontally as needed by clicking on the square
handle in the middle of the left or right edges of the item and dragging
the handle left or right to fit (you can see the name of the item by
double clicking on it to bring up it's property box; you'll have to
enlarge the PAYEE1 text item and shrink the IND checkbox items). (Below,
I give you the actual coordinates I ended up with for the table's items.)
Click on each item, click on Format | Font, select Arial, Regular, 8, and
press the OK button, to set the font for that item.
Click on and drag the Rollback, Save, and Exit buttons to align them
below the grid of items.
Create headings above the items in the screen editor:
Click on and delete (press the Delete key) each of the text headers from
the added items and block and the leftover ID and Name headers.
Click on Format | Font, select Arial, Regular, 8, and press the OK button,
to set the font for all subsequent headings.
Click on Format | Alignment | Center to center all subsequent headings.
(I can't get centering to stick, but, maybe it will work for you.)
Click on the Line Color icon (2nd icon below the huge T near the lower
left corner) and select No Line below the color grid to not show a
box around subsequent headings.
Double click on the Text icon (T in the middle of the lefthand side of
the screen, not the huge T near the lower left corner) to pin it for
several text header additions.
Click above the FABINVH_CODE item, and type in Invh<return>Code (<return>
is the Enter key) to create the invoice code heading (don't worry about
alignment just yet).
Create headings for Payee, Trans<return>Date, Total, Cancel<return>Ind,
and Hold<return>Ind as described above, clicking twice on the canvas
before typing.
Click on the diagonal arrow icon (Select) (topmost icon on left side)
so that your cursor turns into an arrow instead of a + (make sure you
don't have a text item currently being edited by clicking on the canvas
once to close the current item; otherwise, the pinned Text icon will
stay selected).
Click on and drag each of the headings to align them above their items
as close as you can.
To align the tops of the headings, select all headings by holding down
the left mouse button and dragging a selection box completely around
all of the headings (but nothing else), then, click on Arrange | Align
Objects, select Align Top in the Vertically box, and click on the OK
button. You may also have to click on View | Grid Snap to uncheck that
option and allow you free movement of those selected items, instead of
snapping to grid.
Finally, click on the lower right corner of the canvas area (the clear part)
to show its square handle, and drag the lower right corner up to just under
the row of buttons and just right of the vertical scroll bar so that it just
fits around the items on the canvas; then, click on the rightmost (or lower)
X in the screen editor title line to close the screen editor window.
Modify properties of FZIHOLD screen items:
Click on + beside Blocks section header (if not already expanded).
Click on + beside FABINVH in the Blocks section (if not already expanded).
Click on + beside Items section header under FABINVH (if not already
expanded).
Double click on abc box beside TOTAL under Items section header to open
up its property window.
Click on the following properties and enter the given values for them
(the X Position, Y Position, Width, and Height are what my positions
for the item turned out to be, which you may or may not want to change,
but, if you do, you'll want to go back into the FZIHOLD_1_CANVAS and
readjust the headings on your screen after finishing these property
changes; some of these property values are selected from the property
value box pull-down menu using the arrow on the right end of the value
box, or, you can double click or press Enter on them to cycle through
their values):
Display
X Position 57
Y Position 3
Width 13
Data
Data Type Number
Maximum Length 14
Format Mask $9,999,990.99
Navigation
Enabled False
Navigable False
Database
Base Table Item False
Insert Allowed False
Query Allowed False
Update Allowed False
Functional
Alignment Right
Click on the rightmost X in the Properties title line to close the
property window.
Do the same for the following properties for the PAYEE1 item:
Display
X Position 16
Y Position 3
Width 30
Navigation
Enabled False
Navigable False
Database
Base Table Item False
Insert Allowed False
Query Allowed False
Update Allowed False
Functional
Alignment Left
Do the same for the following properties for the FABINVH_CODE item:
Display
X Position 6
Y Position 3
Database
Query Only True
Primary Key True
Insert Allowed False
Update Allowed False
Do the same for the following properties for the FABINVH_TRANS_DATE item:
Display
X Position 46
Y Position 3
Database
Query Only True
Insert Allowed False
Update Allowed False
Do the same for the following properties for the FABINVH_HOLD_IND item:
Display
X Position 77
Y Position 3
Width 2
Database
Insert Allowed False
Functional
Label <delete it to blank it out>
Check Box Other Values Unchecked
Do the same for the following properties for the FABINVH_CANCEL_IND item:
Display
X Position 72
Y Position 3
Width 2
Database
Query Only True
Insert Allowed False
Update Allowed False
Functional
Label <delete it to blank it out>
Check Box Other Values Unchecked
Miscellaneous
Auto Hint True
Do the same for the following properties for the FABINVH block:
Display
Scroll Bar X Position 81
Scroll Bar Y Position 3
Database
Delete Allowed False
Insert Allowed False
WHERE Clause fabinvh_open_paid_ind = 'O'
ORDER BY Clause fabinvh_code
Records Buffered 20
Update Changed Columns True
Miscellaneous
In Menu False
Block Description <delete it to blank it out>
Do the same for the following properties for the MAIN_WINDOW, after
clicking on + beside Windows section header.
Display
Width 84
Height 16
Title Invoice Hold Indicator Change
Do the same for the following properties for the FZIHOLD_1_CANVAS:
Right click on the box beside FZIHOLD_1_CANVAS to bring up the menu.
Click on Properties... in the menu.
Display
Width 84
Height 16
If you typed in any of the position, width, or height values, double click
on the box beside FZIHOLD_1_CANVAS in the Canvas-Views section to open up
the screen editor and adjust the column headings text to align them over
their items again for those new positions. Close the screen editor after
you've finished adjusting the headings and realigning them.
Add the code to fill in the TOTAL and PAYEE1 items on the screen, which
will run from the FABINVH block's POST-QUERY trigger:
Click on + beside Blocks section header (if not already expanded).
Click on + beside FABINVH under the Blocks section header (if not already
expanded).
Click on Triggers under FABINVH block.
Click on the + icon (Create) on the lefthand side to create a trigger,
select POST-QUERY from the pull-down menu, and click on the OK button
to create the trigger and bring up the PL/SQL Editor.
Enter the following select statements to fill in TOTAL and PAYEE1:
begin
select nvl(sum(farinva_appr_amt),0)-nvl(sum(farinva_disc_amt),0)+
nvl(sum(decode(nvl(va.ftvvend_collect_tax,'N'),'N',0,farinva_tax_amt)),0)+
nvl(sum(farinva_addl_chrg_amt),0) into :FABINVH.TOTAL
from farinva,fabinvh,ftvvend va
where fabinvh_code = :FABINVH.FABINVH_CODE
and farinva_invh_code = fabinvh_code
and fabinvh_vend_pidm = va.ftvvend_pidm(+)
and (not exists
(select vb.ftvvend_pidm from ftvvend vb
where vb.ftvvend_pidm = fabinvh_vend_pidm)
or va.ftvvend_eff_date =
(select max(vb.ftvvend_eff_date) from ftvvend vb
where vb.ftvvend_pidm = va.ftvvend_pidm
and trunc(vb.ftvvend_eff_date) <= trunc(sysdate)));
end;
begin
select substr(decode(va.ftvvend_entity_ind,'C',spriden_last_name,
spriden_first_name || ' ' || spriden_mi || ' ' || spriden_last_name),
1,30) into :FABINVH.PAYEE1
from fabinvh,spriden,ftvvend va
where fabinvh_code = :FABINVH.FABINVH_CODE
and spriden_pidm = fabinvh_vend_pidm
and spriden_change_ind is null
and va.ftvvend_pidm = spriden_pidm
and va.ftvvend_eff_date =
(select max(vb.ftvvend_eff_date) from ftvvend vb
where vb.ftvvend_pidm = va.ftvvend_pidm
and trunc(vb.ftvvend_eff_date) <= trunc(sysdate));
exception
when no_data_found
then
:FABINVH.PAYEE1 := 'NO VENDOR NAME FOUND' ;
end;
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
Update the triggers for FZIHOLD:
Click on + beside Triggers section header.
For each of the following triggers to add code to:
Double click on the box beside the indicated trigger name to bring up
the PL/SQL editor for that trigger.
Add or update the code as shown.
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window (or, you could just pick the next
trigger to edit from the PL/SQL editor window's Name pull-down menu
above the code pane).
Triggers to update:
Trigger WHEN-NEW-BLOCK-INSTANCE:
Add this trigger by clicking on the Triggers section header and,
then, clicking on the + icon (Create) on the lefthand side of
the screen, selecting WHEN-NEW-BLOCK-INSTANCE from the list of
trigger types, and clicking on the OK button.
Add the following code:
EXECUTE_QUERY;
Trigger LOAD_CURRENT_RELEASE:
Replace release number with 2.1.11, as in:
BEGIN
:CURRENT_RELEASE := '2.1.11';
END;
Trigger PRE-FORM:
Comment out CHECK_SET line (by putting two dashes in front of it):
-- G$_GUAMENU_CHECK_SET('');
Trigger SAVE_KEYS:
Replace current code with:
null;
Trigger GLOBAL_COPY:
Replace current code with:
null;
Trigger ENABLE_KEYS:
Replace current code with:
null;
Trigger DISABLE_KEYS:
Remove this trigger by clicking on it under the Triggers section
header (you must be out of the PL/SQL Editor to do this) and, then,
clicking on the X icon (Delete) on the lefthand side of the screen
(or, pressing the Delete key), answering Yes to the delete
confirmation message (or, you could have also just replaced its
code with null; like what was done for the ENABLE_KEYS trigger).
Trigger PRE-UPDATE:
I removed this trigger as well, since I didn't want the Activity
Date in FABINVH to be updated when the hold indicator was released.
All the editing has been done now for the new form. Save and generate the
form:
Click on FZIHOLD under the Forms section header.
Click on File | Save to save the module.
Click on File | Administration | Generate to generate the module's .fmx
file.
If any errors were encountered during the generation, an error message box
would be displayed showing the error and where it occurred. Go back and
fix any errors, save the module, and do the generate again until all of
the errors are cleared up.
Exit the Forms Designer, without saving after the generate (so that no
generated pseudocode is placed into the final .fmb):
Click on File | Exit to exit the Designer, answering No to the save
changes message.
Copy the fzihold.fmx generated form to your winfmx directory with all of
your other Banner generated forms, if you didn't create it and generate
it in that winfmx directory in the first place.
Finally, add the form to the Banner security system. After bringing up the
Banner security form (these instructions are for Banner 2.1.x screens):
1) Add the form to the list of Banner objects:
Click on the Object Maintenance button.
Click on the Insert button.
Add the following information for FZIHOLD (in our case, giving the current
Finance version number, F sys code, and a default role of BAN_DEFAULT_M
for forms that modify the tables, or BAN_DEFAULT_Q for forms that only
query tables):
FZIHOLD 2.1.11 F BAN_DEFAULT_M
Click on the Save button.
2) Add the form to the classes that will have access to it (if any):
Click on the Class Maintenance button.
Click on the Class Code of the class to add the form to.
Click on the Class Objects button.
Click on the Insert button
Add the following information for FZIHOLD:
FZIHOLD BAN_DEFAULT_M
Click on the Save button.
Click on the Close button.
Click on the Class Code for the class just updated.
Click on the Sync Users button.
Click on the next Class Code to be updated, and repeat the above process
as needed to add all classes for that form.
Click on the Close button after adding all classes for that form.
3) Add the form to the individual users that will have access to it, but
not through the classes (if any):
Click on the User Maintenance button.
Enter the User ID of the person that will be using the form.
Click on the Modify button.
Click on the Insert button.
Add the following information for FZIHOLD:
FZIHOLD BAN_DEFAULT_M
Click on the Save button.
Click on the Close button.
Enter the User ID of the next person that will be using the form, and
repeat the above process as needed to add all users for that form.
Click on the Close button after adding all users for that form.
4) Click on the Exit button to exit the Banner security form.
For Banner 3.x, you will also have to add the new form to the guaobjs screen
in Banner itself.
Your form is now ready to be used through Banner 3.
The screen layout for the Banner 4 version of FZIHOLD is shown below, which is a snapshot of the Forms Designer's screen layout editor. Note that there are no Rollback, Save, or Exit buttons. These are replaced by the standard set of icons automatically placed along the top of all Banner 4 screens. Also note that the screen coordinates are given in pixels for Banner 4, instead of in characters.

The steps for creating FZIHOLD using the gtvobjt.fmb form as the skeleton model are shown below.
Copy gtvobjt.fmb to fzihold.fmb (may have to FTP it from the Oracle server
from $BANNER_HOME/general/forms/gtvobjt.fmb), probably in the winfmx
forms directory on your Windows PC client network.
Bring up the Forms Designer (f45des32.exe), in the orawin\bin directory
on your Windows PC).
Click on File | Connect (item in the menu line across the top of the Forms
Designer's Object Navigator screen) and log in as user baninst1 (our
Forms Designer tends to crash if we don't connect first).
Click on File | Open (or, click on the folder icon (Open) at the top of
the column of icons on the lefthand side of the screen), position to the
forms directory (winfmx) using the Drives pull-down menu and Folders
tree in the Open screen, select Forms (*.fmb) from the "List files of
type" pull-down menu, and select (double click on) fzihold.fmb to bring
up FZIHOLD in the Forms Designer.
Rename GTVOBJT module name to FZIHOLD:
Double click on the box beside (to the immediate left of) GTVOBJT under
the Forms section header.
Type in FZIHOLD into the Name property value box, and press Enter (the
property value box extends all the way across the top of the property
window above the list of properties; the first property in the list of
properties (Name) should already be selected).
Click on the rightmost X in the Properties title line to close the
property window.
Rename GTVOBJT canvas name to FZIHOLD:
Click on + beside the Canvas-Views section header.
Right click on the box beside GTVOBJT_1_CANVAS to bring up the menu.
Click on Properties... in the menu. (Or, could have double clicked
on the box.)
Highlight (select) GTVOBJT in the Name property value, type in FZIHOLD
over it, and press Enter, making it FZIHOLD_1_CANVAS.
Click on the rightmost X in the Properties title line to close the
property window.
Rename GTVOBJT buttons to FZIHOLD:
Click on + beside the Blocks section header.
Click on + beside BUTTON_CONTROL_BLOCK under the Blocks section header.
Click on + beside Items under BUTTON_CONTROL_BLOCK.
(Or, instead of above three, you could just type GU into Find box.)
Rename GTVOBJT_1_EXITVALUE_BTN to FZIHOLD_1_EXITVALUE_BTN:
Double click on the box (button) beside GTVOBJT_1_EXITVALUE_BTN.
Highlight (select) GTVOBJT in the Name property value, type in FZIHOLD
over it, and press Enter, making it FZIHOLD_1_EXITVALUE_BTN.
Click on the rightmost X in the Properties title line to close the
property window.
Remove GTVOBJT item (which contains the fields displayed on the original
GTVOBJT screen; but, see the notes at the end when developing your forms):
Click on the GTVOBJT text (under Blocks section header).
Click on the X icon (Delete) on the lefthand side of the screen (or,
press the Delete key), answering Yes to the delete confirmation
message to delete that item.
Create FABINVH block to hold 10 FABINVH records at a time for the screen:
Click on the Blocks section header.
Click on the + icon (Create) on the lefthand side to create an item and
bring up the New Block Options window.
Type in FIMSMGR.FABINVH into the Base Table field (which also changes
the Block Name field when you click into it - you could change that
field value to name this block something other than FABINVH, such as
FZIHOLD_BLOCK or back to the original KEY_BLOCK).
Click on the Items tab in the New Block Options window.
Click on the Select Columns button to bring in all columns in the
FABINVH table.
Click on each field in the Select Columns list (or, arrow down; make
sure that Caps Lock is off before using the arrow or Enter keys),
starting with FABINVH_POHD_CODE, and press Enter (or, click on the
Include checkbox to uncheck it) to exclude that field (puts a "-"
beside that field name in place of the +) for all fields except for:
FABINVH_CODE, FABINVH_TRANS_DATE, FABINVH_HOLD_IND,
FABINVH_CANCEL_IND
Click on FABINVH_HOLD_IND in the Select Columns list and select
Check Box in the Type pull-down menu to the right.
Click on FABINVH_CANCEL_IND in the Select Columns list and select
Check Box in the Type pull-down menu to the right.
Click on the Layout tab in the New Block Options window.
Enter 10 into Records.
Click on the Scrollbar option to check it.
Click on the OK button at the bottom of the New Block Options window.
Add PAYEE1 and TOTAL items to FABINVH block (their values will be derived
in a POST-QUERY trigger):
Click on Items under FABINVH in the Blocks section.
Click on the + icon (Create) on the lefthand side to create a new item
(probably initially called ITEM1).
Double click on abc box beside ITEM1 to bring up the property window.
Highlight (select) ITEM1 in Name property value and type in PAYEE1 over
it, and press Enter.
Click on the Canvas property in the Display section, click on the arrow
on the right end of the property value box, and select FZIHOLD_1_CANVAS
(or, you could just double click on the Canvas property or press Enter
to cycle around to that FZIHOLD_1_CANVAS value).
Click on the rightmost X in the Properties title line to close the
property window.
Do the same for TOTAL:
Click on Items under FABINVH in the Blocks section.
Click on the + icon (Create) on the lefthand side to create a new item
(probably initially called ITEM2).
Double click on abc box beside ITEM2 to bring up the property window.
Highlight (select) ITEM2 in Name property value and type in TOTAL over
it, and press Enter.
Click on the Canvas property in the Display section, click on the arrow
on the right end of the property value box, and select FZIHOLD_1_CANVAS
(or, you could just double click on the Canvas property or press Enter
to cycle around to that FZIHOLD_1_CANVAS value).
Click on the rightmost X in the Properties title line to close the
property window.
Arrange the items in the FZIHOLD_1_CANVAS so that they are lined up left
to right in the following order:
FABINVH_CODE, PAYEE1, FABINVH_TRANS_DATE, TOTAL, FABINVH_HOLD_IND,
FABINVH_CANCEL_IND, and the vertical scroll bar,
as shown at the top of this web page (PAYEE1 and TOTAL will be on top of
each other in the upper left corner, so, you'll have to move one to see
the other; the FABINVH fields will be toward the bottom of the form, so
you will have to scroll down to them):
Click on + beside Canvas-Views section header (if not already expanded).
Double click on box beside FZIHOLD_1_CANVAS to open up the screen editor.
Click on and drag each 10-row item to its spot on the canvas, and, then,
enlarge it or shrink it horizontally as needed by clicking on the square
handle in the middle of the left or right edges of the item and dragging
the handle left or right to fit (you can see the name of the item by
double clicking on it to bring up it's property box; you'll have to
enlarge the PAYEE1 text item and shrink the IND checkbox items). (Below,
I give you the actual coordinates I ended up with for the table's items.)
Click on each item, click on Format | Font, select Arial, Regular, 8, and
press the OK button, to set the font for that item.
Create headings above the items in the screen editor:
Click on and delete (press the Delete key) each of the text headers from
the added items and block and the leftover ID and Name headers.
Click on Format | Font, select Arial, Regular, 8, and press the OK button,
to set the font for all subsequent headings.
Click on Format | Alignment | Center to center all subsequent headings.
Click on the Line Color icon (2nd icon below the huge T near the lower
left corner) and select No Line below the color grid to not show a
box around subsequent headings.
Double click on the Text icon (T in the middle of the lefthand side of
the screen, not the huge T near the lower left corner) to pin it for
several text header additions.
Click above the FABINVH_CODE item, and type in Invh<return>Code (<return>
is the Enter key) to create the invoice code heading (don't worry about
alignment just yet).
Create headings for Payee, Trans<return>Date, Total, Cancel<return>Ind,
and Hold<return>Ind as described above, clicking twice on the canvas
before typing.
Click on the diagonal arrow icon (Select) (topmost icon on left side)
so that your cursor turns into an arrow instead of a + (make sure you
don't have a text item currently being edited by clicking on the canvas
once to close the current item; otherwise, the pinned Text icon will
stay selected).
Click on and drag each of the headings to align them above their items
as close as you can.
To align the tops of the headings, select all headings by holding down
the left mouse button and dragging a selection box completely around
all of the headings (but nothing else), then, click on Arrange | Align
Objects, select Align Top in the Vertically box, and click on the OK
button. You may also have to click on View | Grid Snap to uncheck that
option and allow you free movement of those selected items, instead of
snapping to grid.
Finally, click on the lower right corner of the canvas area (the clear part)
to show its square handle, and drag the lower right corner up to just under
the row of buttons and just right of the vertical scroll bar so that it just
fits around the items on the canvas; then, click on the rightmost (or lower)
X in the screen editor title line to close the screen editor window.
Modify properties of FZIHOLD screen items:
Click on + beside Blocks section header (if not already expanded).
Click on + beside FABINVH in the Blocks section (if not already expanded).
Click on + beside Items section header under FABINVH (if not already
expanded).
Double click on abc box beside TOTAL under Items section header to open
up its property window.
Click on the following properties and enter the given values for them
(the X Position, Y Position, Width, and Height are what my positions
for the item turned out to be, which you may or may not want to change,
but, if you do, you'll want to go back into the FZIHOLD_1_CANVAS and
readjust the headings on your screen after finishing these property
changes; some of these property values are selected from the property
value box pull-down menu using the arrow on the right end of the value
box, or, you can double click or press Enter on them to cycle through
their values):
Display
X Position 317
Y Position 37
Width 60
Data
Data Type Number
Maximum Length 14
Format Mask $9,999,990.99
Navigation
Enabled False
Navigable False
Database
Base Table Item False
Insert Allowed False
Query Allowed False
Update Allowed False
Functional
Alignment Right
Click on the rightmost X in the Properties title line to close the
property window.
Do the same for the following properties for the PAYEE1 item:
Display
X Position 66
Y Position 37
Width 187
Navigation
Enabled False
Navigable False
Database
Base Table Item False
Insert Allowed False
Query Allowed False
Update Allowed False
Functional
Alignment Left
Do the same for the following properties for the FABINVH_CODE item:
Display
X Position 13
Y Position 37
Width 53
Database
Query Only True
Primary Key True
Insert Allowed False
Update Allowed False
Do the same for the following properties for the FABINVH_TRANS_DATE item:
Display
X Position 254
Y Position 37
Width 64
Database
Query Only True
Insert Allowed False
Update Allowed False
Do the same for the following properties for the FABINVH_HOLD_IND item:
Display
X Position 414
Y Position 37
Width 10
Database
Insert Allowed False
Functional
Label <delete it to blank it out>
Check Box Other Values Unchecked
Do the same for the following properties for the FABINVH_CANCEL_IND item:
Display
X Position 389
Y Position 37
Width 10
Database
Query Only True
Insert Allowed False
Update Allowed False
Functional
Label <delete it to blank it out>
Check Box Other Values Unchecked
Miscellaneous
Auto Hint True
Do the same for the following properties for the FABINVH block:
Display
Scroll Bar X Position 474
Scroll Bar Y Position 37
Database
Delete Allowed False
Insert Allowed False
WHERE Clause fabinvh_open_paid_ind = 'O'
ORDER BY Clause fabinvh_code
Records Buffered 20
Update Changed Columns True
Miscellaneous
In Menu False
Block Description <delete it to blank it out>
Do the same for the following properties for the MAIN_WINDOW, after
clicking on + beside Windows section header.
Display
Width 460
Height 200
Title Invoice Hold Indicator Change
Do the same for the following properties for the FZIHOLD_1_CANVAS:
Right click on the box beside FZIHOLD_1_CANVAS to bring up the menu.
Click on Properties... in the menu.
Display
Width 460
Height 200
If you typed in any of the position, width, or height values, double click
on the box beside FZIHOLD_1_CANVAS in the Canvas-Views section to open up
the screen editor and adjust the column headings text to align them over
their items again for those new positions. Close the screen editor after
you've finished adjusting the headings and realigning them.
Add the code to fill in the TOTAL and PAYEE1 items on the screen, which
will run from the FABINVH block's POST-QUERY trigger:
Click on + beside Blocks section header (if not already expanded).
Click on + beside FABINVH under the Blocks section header (if not already
expanded).
Click on Triggers under FABINVH block.
Click on the + icon (Create) on the lefthand side to create a trigger,
select POST-QUERY from the pull-down menu, and click on the OK button
to create the trigger and bring up the PL/SQL Editor.
Enter the following select statements to fill in TOTAL and PAYEE1:
begin
select nvl(sum(farinva_appr_amt),0)-nvl(sum(farinva_disc_amt),0)+
nvl(sum(decode(nvl(va.ftvvend_collect_tax,'N'),'N',0,farinva_tax_amt)),0)+
nvl(sum(farinva_addl_chrg_amt),0) into :FABINVH.TOTAL
from farinva,fabinvh,ftvvend va
where fabinvh_code = :FABINVH.FABINVH_CODE
and farinva_invh_code = fabinvh_code
and fabinvh_vend_pidm = va.ftvvend_pidm(+)
and (not exists
(select vb.ftvvend_pidm from ftvvend vb
where vb.ftvvend_pidm = fabinvh_vend_pidm)
or va.ftvvend_eff_date =
(select max(vb.ftvvend_eff_date) from ftvvend vb
where vb.ftvvend_pidm = va.ftvvend_pidm
and trunc(vb.ftvvend_eff_date) <= trunc(sysdate)));
end;
begin
select substr(decode(va.ftvvend_entity_ind,'C',spriden_last_name,
spriden_first_name || ' ' || spriden_mi || ' ' || spriden_last_name),
1,30) into :FABINVH.PAYEE1
from fabinvh,spriden,ftvvend va
where fabinvh_code = :FABINVH.FABINVH_CODE
and spriden_pidm = fabinvh_vend_pidm
and spriden_change_ind is null
and va.ftvvend_pidm = spriden_pidm
and va.ftvvend_eff_date =
(select max(vb.ftvvend_eff_date) from ftvvend vb
where vb.ftvvend_pidm = va.ftvvend_pidm
and trunc(vb.ftvvend_eff_date) <= trunc(sysdate));
exception
when no_data_found
then
:FABINVH.PAYEE1 := 'NO VENDOR NAME FOUND' ;
end;
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
Update the triggers for FZIHOLD:
Click on + beside Triggers section header.
For each of the following triggers to add code to:
Double click on the box beside the indicated trigger name to bring up
the PL/SQL editor for that trigger.
Add or update the code as shown.
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window (or, you could just pick the next
trigger to edit from the PL/SQL editor window's Name pull-down menu
above the code pane).
Triggers to update:
Trigger WHEN-NEW-BLOCK-INSTANCE:
Add this trigger by clicking on the Triggers section header and,
then, clicking on the + icon (Create) on the lefthand side of
the screen, selecting WHEN-NEW-BLOCK-INSTANCE from the list of
trigger types, and clicking on the OK button.
Add the following code:
EXECUTE_QUERY;
Trigger LOAD_CURRENT_RELEASE:
Replace release number with 4.0, as in:
BEGIN
:CURRENT_RELEASE := '4.0';
END;
Trigger PRE-UPDATE:
I removed this trigger, since I didn't want the Activity Date in
FABINVH to be updated when the hold indicator was released. To
remove it, click on it and press the Delete key (or X icon).
All the editing has been done now for the new form. Save and generate the
form:
Click on FZIHOLD under the Forms section header.
Click on File | Save to save the module.
Click on File | Administration | Generate to generate the module's .fmx
file.
If any errors were encountered during the generation, an error message box
would be displayed showing the error and where it occurred. Go back and
fix any errors, save the module, and do the generate again until all of
the errors are cleared up.
Exit the Forms Designer, without saving after the generate (so that no
generated pseudocode is placed into the final .fmb):
Click on File | Exit to exit the Designer, answering No to the save
changes message.
Copy the fzihold.fmx to winfmx, add it to Banner security, and add it to
the guaobjs screen in Banner 4, as described for Banner 3.x.
Your form is now ready to be used through Banner 4.
To allow for deletes from the base table, just set the Delete Allowed property in the Database section of the base table's block (such as FABINVH above) to True. This enables the Record | Remove action in the form's menu in Banner. You could also add a Delete button with the following, instead of having to go through the menu to remove the currently selected record (this example is different from FZIHOLD):
Click on + beside Blocks section header (if not already expanded).
Click on + beside BUTTON_CONTROL_BLOCK in the Blocks section (if not
already expanded).
Click on Items under BUTTON_CONTROL_BLOCK in the Blocks section.
Click on the + icon (Create) on the lefthand side to create a new item
(maybe initially called ITEM3).
Double click on abc box beside ITEM3 to bring up the property window.
Highlight (select) ITEM3 in Name property value and type in the button
name (such as PZPRIOR_1_DELETE_BTN) over it, and press Enter.
Click on the Item Type property in the Type section, click on the arrow
on the right end of the property value box, and select Button.
Click on the Canvas property in the Display section, click on the arrow
on the right end of the property value box, and select PZPRIOR_1_CANVAS
(or, you could just double click on the Canvas property or press Enter
to cycle around to that canvas value).
Double click on the Navigable property in the Navigation section to set
it to False.
Double click on the Mouse Navigate property in the Navigation section
to set it to False.
Click on the Label property in the Functional section, type in Delete,
and press Enter.
Click on the rightmost X in the Properties title line to close the
property window.
Click on + beside PZPRIOR_1_DELETE_BTN item.
Click on Triggers under PZPRIOR_1_DELETE_BTN item.
Click on the + icon (Create) on the lefthand side to create a trigger,
select WHEN-BUTTON-PRESSED from the pull-down-menu, and click on the
OK button to create the trigger and bring up the PL/SQL Editor.
Enter the following function to perform the deletion:
do_key('Delete_record');
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
To allow for inserts into the base table, you will have to set the Insert Allowed property in the Database section of the base table's block (such as FABINVH above) to True, along with the properties of the base table items in the form, as shown below ("With Inserts" in Property Settings For Screen Items). This enables the Record | Insert action in the form's menu in Banner. You could also add an Insert button, similar to the Delete button above, with the following in the WHEN-BUTTON-PRESSED trigger:
do_key('Create_record');
instead of having to go through the menu to add a new record to fill in and save.
You will also need to remove the PRE-INSERT trigger in the form level (top level) Triggers section if the record you are adding does not contain an ACTIVITY_DATE field.
If you have derived fields on your screen (such as PAYEE1 above), the insert will have to fill in those fields as well. Since the base table block probably has a POST-QUERY trigger to fill in the derived items, you could just call that POST-QUERY trigger by adding a POST-CHANGE trigger on the base table item (such as an ID or SSN item) that determines that derived field's lookup. The POST-CHANGE trigger would, then, contain just:
execute_trigger('POST-QUERY');
which would go back to the block level POST-QUERY trigger and execute it when that base table item was changed (during the insert, in this case).
Below is a summary of the property settings (except for positioning and formatting) for the screen items, depending on whether those items are base table items or derived items (such as PAYEE1), and if those base table items are query-only or can be updated, and if new base table item records can be inserted or no inserts are allowed.
Derived Items, All Cases:
Navigation
Enabled False
Navigable False
Database
Base Table Item False
Query Only False
Primary Key False
Insert Allowed False
Query Allowed False
Update Allowed False
Query-Only Table Items, No Inserts:
Navigation
Enabled True
Navigable True
Database
Base Table Item True
Query Only True
Primary Key False (True if primary key)
Insert Allowed False
Query Allowed True
Update Allowed False
Updatable Table Items, No Inserts:
Navigation
Enabled True
Navigable True
Database
Base Table Item True
Query Only False
Primary Key False (True if primary key)
Insert Allowed False
Query Allowed True
Update Allowed True
Query-Only Table Items, With Inserts:
Navigation
Enabled True
Navigable True
Database
Base Table Item True
Query Only False
Primary Key False (True if primary key)
Insert Allowed True
Query Allowed True
Update Allowed False
Updatable Table Items, With Inserts:
Navigation
Enabled True
Navigable True
Database
Base Table Item True
Query Only False
Primary Key False (True if primary key)
Insert Allowed True
Query Allowed True
Update Allowed True
To add a check box to a form, for example, to set constraints in the base table's WHERE clause, you will need to add the check box to the BUTTON_CONTROL_BLOCK Items list, set it's properties, add a WHEN-CHECKBOX-CHANGED trigger to it, put it's initial value in the WHEN-NEW-BLOCK-INSTANCE trigger (assuming it isn't a table field), and put it's condition in the base table's block. In this example (a form called GZIRSQL, which is different from the FZIHOLD form above), I'm adding a Scripts Only check box to only show records where the "sqldoc" base table's "type" field is "script" whenever that check box is checked (otherwise, showing all records if it is not checked), and doing a re-query when that check box is changed. (To add a button, you would use the WHEN-BUTTON-PRESSED trigger instead of the WHEN-CHECKBOX-CHANGED trigger.)
Click on + beside Blocks section header (if not already expanded).
Click on + beside BUTTON_CONTROL_BLOCK in the Blocks section (if not
already expanded).
Click on Items under BUTTON_CONTROL_BLOCK in the Blocks section.
Click on the + icon (Create) on the lefthand side to create a new item
(maybe initially called ITEM3).
Double click on abc box beside ITEM3 to bring up the property window.
Highlight (select) ITEM3 in Name property value and type in the check
box name (GZIRSQL_1_SCRIPTS) over it, and press Enter.
Click on the Item Type property in the Type section, click on the arrow
on the right end of the property value box, and select Check Box.
Click on the Canvas property in the Display section, click on the arrow
on the right end of the property value box, and select GZIRSQL_1_CANVAS
(or, you could just double click on the Canvas property or press Enter
to cycle around to that canvas value).
Set the following properties as well:
Display
Width 14
Font Name MS Sans Serif
Font Size 8
Font Weight Demilight
Data
Maximum Length 1
Default Value Y
Navigation
Navigable False
Mouse Navigate False
Functional
Label Scripts Only
Checked Value Y
Unchecked Value N
Click on the rightmost X in the Properties title line to close the
property window.
Click on + beside GZIRSQL_1_SCRIPTS item.
Click on Triggers under GZIRSQL_1_SCRIPTS item.
Click on the + icon (Create) on the lefthand side to create a trigger,
select WHEN-CHECKBOX-CHANGED from the pull-down-menu, and click on
the OK button to create the trigger and bring up the PL/SQL Editor.
Enter the following function to perform the re-query:
begin
go_block('SQLDOC');
execute_query;
end;
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
Click on + beside Triggers section header under GZIRSQL form name (if not
already expanded).
Double click on the box beside WHEN-NEW-BLOCK-INSTANCE to bring up the
PL/SQL Editor.
Change the code to the following:
:GZIRSQL_1_SCRIPTS := 'Y';
EXECUTE_QUERY;
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
Double click on the box beside the SQLDOC base table block in the Blocks
section to open up its property window.
Click on the WHERE Clause property in the Database section, and enter the
following clause:
:gzirsql_1_scripts = 'N' or type = 'script'
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
Click on + beside Canvas-Views section header (if not already expanded).
Double click on box besize GZIRSQL_1_CANVAS to open up the screen editor.
Click on and drag the check box to its appropriate spot on the canvas and
make any other adjustments needed to the form.
Click on the rightmost (or lower) X in the screen editor title line to
close the screen editor window.
Save and generate the updated form.
To call a second form from a primary form, using data from the primary form to bring up a matching record in the second form, you can add a Show or Edit button to the primary form, which saves the value to be matched into a global variable and calls the second form, which has a pre-query trigger to set up the match for the second form. In this example, my form GZIRSQL is calling my form GZMRSQL to bring up the same script name that is currently selected in GZIRSQL. In addition, after GZMRSQL is brought up with that script, I'm turning off the match criteria so that I can do additional queries in that form without having the script name match tacked on. If GZMRSQL is brought up directly from Banner, the script search criteria isn't set, so a normal full query is performed when it is first brought up (the execute_query in the when-new-block-instance trigger) (thanks to Mike Bradley and Brian Hadizadeh for help with the query part).
In the primary form (GZIRSQL):
Click on + beside Blocks section header (if not already expanded).
Click on + beside BUTTON_CONTROL_BLOCK in the Blocks section (if not
already expanded).
Click on Items under BUTTON_CONTROL_BLOCK in the Blocks section.
Click on the + icon (Create) on the lefthand side to create a new item
(maybe initially called ITEM3).
Double click on abc box beside ITEM3 to bring up the property window.
Highlight (select) ITEM3 in Name property value and type in the button
name (GZIRSQL_1_SHOW_BTN) over it, and press Enter.
Click on the Item Type property in the Type section, click on the arrow
on the right end of the property value box, and select Button.
Click on the Canvas property in the Display section, click on the arrow
on the right end of the property value box, and select GZIRSQL_1_CANVAS
(or, you could just double click on the Canvas property or press Enter
to cycle around to that canvas value).
Set the following properties as well:
Display
Font Name MS Sans Serif
Font Size 8
Font Weight Demilight
Navigation
Navigable False
Mouse Navigate False
Functional
Label Show
Miscellaneous
Hint Show currently-selected script.
Auto Hint True
Click on the rightmost X in the Properties title line to close the
property window.
Click on + beside GZIRSQL_1_SHOW_BTN item.
Click on Triggers under GZIRSQL_1_SHOW_BTN item.
Click on the + icon (Create) on the lefthand side to create a trigger,
select WHEN-BUTTON-PRESSED from the pull-down-menu, and click on
the OK button to create the trigger and bring up the PL/SQL Editor.
Enter the following function to perform the query-only form call (for
an Edit button to allow updates while in that second form, you would
use '' instead of 'QUERY' in the form call parameters):
:global.value := :script;
:global.form_was_called := 'Y';
g$_secured_form_call(:global.current_user,'GZMRSQL','QUERY');
:global.value := '';
:global.form_was_called := '';
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
Click on + beside Canvas-Views section header (if not already expanded).
Double click on box besize GZIRSQL_1_CANVAS to open up the screen editor.
Click on and drag the button to its appropriate spot on the canvas and
make any other adjustments needed to the form.
Click on the rightmost (or lower) X in the screen editor title line to
close the screen editor window.
Save and generate the updated form.
In the second form (GZMRSQL):
Click on Triggers section header.
Click on the + icon (Create) on the lefthand side to create a trigger,
select PRE-QUERY from the pull-down-menu, and click on the OK button
to create the trigger and bring up the PL/SQL Editor.
Enter the following function to set the search criteria:
if :global.form_was_called = 'Y' then
:sqldoc.script := :global.value;
end if;
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
Click on Triggers section header.
Click on the + icon (Create) on the lefthand side to create a trigger,
select POST-QUERY from the pull-down-menu, and click on the OK button
to create the trigger and bring up the PL/SQL Editor.
Enter the following function to clear the search criteria:
if :global.form_was_called = 'Y' then
:global.form_was_called := '';
end if;
Click on the rightmost (or lower) X in the PL/SQL Editor title line
to close the PL/SQL editor window.
Save and generate the updated form.
I received the following information from Ken Komoto about KEY_BLOCK and the trigger changes that are done in this presentation, which you will want to keep in mind when you develop your own custom forms, and, possibly, modify my procedure appropriately, such as building onto KEY_BLOCK itself instead of deleting it and creating your own block. I've updated some of my steps given above involving these items and triggers to accomodate this new information. (Thanks, Ken!)
CHECK_KEYS makes sure that all of the required keyblock items are present. KEY_BLOCK has a lot of fields that are used by the other triggers that can do stuff for you. The GLOBAL_COPY trigger checks for global.keyblock_pidm, _term_code, _crn, etc., and populates the corresponding keyblock fields for you. That's why, if you go from form to form, the student id, term code, etc., follow you around. The SAVE_KEYS trigger takes the current key_block items and stuffs them back into the global.* items. The ENABLE_KEYS trigger allows you to turn off all the buttons on the form if you are in the key block. The DISABLE_KEYS trigger is the converse - once you exit the key block, the key block fields and buttons are turned off and the buttons below are turned on. G$_GUAMENU_CHECK_SET is the piece that checks to see if this form was called from another form or from GUAMENU. If from another form, it will enable the SELECT button (if it exists). The WHEN-NEW-BLOCK-INSTANCE trigger can be setup to take care of the execute query. You should normally leave the WHEN-NEW-FORM-INSTANCE trigger alone.
Lydia Verhoef notes that when defining new items on your canvas, you can utilize the Visual Attributes already loaded in guaskel to set the font type and size of fields, such as setting the Visual Attribute Name property in the Display section to G$_NVA_TEXT_ITEM when you create a new text field. Other attributes for the other object types are available as well.
Thanks to Lee Anne Hoppe and Marcia Prater for sending me the Banner forms naming convention requirements.
Since SCT won't help us with our own custom forms development, we have to help each other, so, please send your forms development tips and tricks to me, and I'll try to publish them here (but, please, no .fmb's! I'm pushing my space limits as it is!). Who's next after Ken to send your tips and tricks in?
This Page was Last Updated on 06/15/06
You Are Visitor Number |
|
|
© 2006 |
|
|
University of Arkansas • Division of Agriculture |
Mission
•
Disclaimer
•
EEO
•
|