Monday, 5 May 2014

Forms Design Aids

Find/Browse Forms
Find/Browse is the entry point to an application. It contains an optional query-by-example (QBE) line so you can search on any database field in the grid. QBE columns that are grayed out do not have QBE capability (for example, Sold To Name in the example above).
Use a Find/Browse form to:
•Search, view, and select multiple records in a grid
•Delete records
•Exit to another form to add, update, or view a table record
Find fetches records; the filter fields and QBE line provide the WHERE clause of a SELECT statement. Delete removes records from the table. You cannot add new or update existing records on a Find/Browse form. A Find/Browse form displays data contained in one table. Therefore, you can attach only one business view to a Find/Browse form.

Fix/Inspect Forms
The Fix/Inspect form allows you to add a new record to a table or to update an existing record. The Fix/Inspect form includes OK and Cancel buttons. When you click OK, updates or additions are written to the table. When you click Cancel, any changes you have made are lost and no database changes are made. Because the Fix/Inspect form only allows you to add or update one record at a time, the form does not contain a grid.
Use this form type to:
•View a single record per form
•Add new records
•Update existing records
Because the Fix/Inspect form only contains one record, you can attach only one business view to a Fix/Inspect form.
Header Detail Forms
The Header Detail form allows you to work with data from two separate tables. You can use this form to add or update a single header record. You can also add, update, or delete multiple detail records from the same form.
The Header Detail form includes an input-capable grid so you can add or update detail records. Click OK to perform updates or adds to both tables on the form. When you click Cancel, any changes are lost and no database changes are made.
Because the Header Detail form allows you to update or add records from two different tables, you can attach two business views to a Header Detail form. Attach one business view to the grid and the other to the form, updating both tables from a single form. You can use the Header Detail form for one to many relationships.

Headerless Detail Forms
The Headerless Detail form is used to display multiple records from a single table that is not normalized. Because this form is used to update only one table, you can attach only one business view to the form.
The Headerless Detail form contains an input-capable grid, where you can add or update detail information. The header portion of the form displays data common to all the detail records in the grid. Both header and detail information come from the same business view.
Click OK to perform updates or additions to the table. When the user clicks cancel, any changes you have made are lost, and no database changes are made.
Use this form type to:
•Display multiple records in a grid
•View, add, change, and delete records


Search and Select Forms
Use this form to locate a value and return it to the calling field. The Search and Select form is called using a visual assist (flashlight) or hyper-control. This form only displays information; you cannot edit fields. Therefore, the form contains Select and Close options.
The Search and Select form includes a non-input capable grid where you can view multiple records in one table. The grid displays valid values. When a user chooses a value from the grid and clicks Select, that value is automatically returned to the calling field.
Because this form is used to view records from only one table, you can attach only one business view to a Search and Select form. You use a separate application for this form. One of the benefits of this form is that it improves performance by fetching only necessary fields and it exists in its own application.
The data structure for this form should contain only one element.
After you create a Search and Select application, you must attach the Search and Select form to the specific data item for which it was created. You do this using the visual assist trigger in the data dictionary or the overrides in the property sheet for a particular control. You use the data dictionary for all instances and override for just one instance.

Message Forms
Use the Message form to display messages or request action from the user. The form is modal and is also not sizable. You can only add static text and push buttons to this form. This form is the only one that allows standard push buttons, including OK, Cancel, Yes, and No buttons. Do not use form interconnections on this form.
A delete confirmation is a good example of how you can use the Message form.
There is no business view for this form type.
There is no toolbar functionality for this form.

Parent/Child Forms
You can use the parent/child form to represent parent/child relationships in an application. The form has a parent/child control placed where the grid resides in a Find/Browse form. This control presents a tree view in the left portion of the control, which displays a visual representation of the parent/child relationship. The right portion of the composite control displays a grid in browse mode. A movable bar separates the tree view and grid. Use it to resize either view horizontally. The grid displays the detail information for the nodes of the tree. The parent/child form uses one business view.
There are two modes available on the parent/child form. You can choose the default mode or show all details. The default mode displays the detail for all nodes at the same level in the tree. As you switch levels in the tree, the grid lines change to reflect the level you are in. If you choose to show all details, there is a one-to-one correspondence between the nodes in the tree and the grid lines. You can also load pre-expanded trees so that if you click Find the tree will display all levels instead of just loading one level of nodes at a time. If you choose this option, it shows up as an option on the right mouse menu. You can also allow multiple
selects.
Use the Parent/Child form to:
•Represent Parent/Child relationships.
•Perform normal Find/Browse functions (including FETCH and SELECT WHERE statements) and present information in a tree format.

Q1. Name the different types of forms available in JDE?
Find/Browse, Fix/Inspect, Header Detail, Headerless Detail, Parent/Child, Search and Select, and Message

Q2. What is the difference between an Application and a form?
An application can have more than one form.

Q3. Which type of form is the entry point to an Application?
A Find browse form

Q4. If you want to view multiple records from one table, which form should you use?
Find Browse

Q5. Can we attach more than one view to a Find Browse form?
No

Q6. What is the basic difference between a Fix inspect and Header detail form.
A fix inspect form can use only one business view and can update only one table. Where a header detail form was uses two business views.

Q7. How do we use a search and Select form?
A search and select form is always used to locate a value and return the same to the calling field. The search and select form is called using a visual assist.Aug-10

Q8. Can we attach multiple views to a search and select form?
No

Q9. What kind of form gets displayed in 'Employee work center'?
Parent child

Q10. What is the difference between a database item and dictionary item pertaining to forms?
Database items are used to store and update database. But a dictionary item’s use is limited to event rules only.

Q10.   Does it always require associating an edit control with a dictionary or database item? If yes why?
Yes, an edit control field does not have a text attached. Its takes the text of data item associated to it.

Q11.   In a find browse form how should be the grid sequencing/sort order, which will not affect he performance?
The sort order should partially or completely match with the table index.

Q12.       What is a parent/child form?
It is a type of form that presents parent/child relationships in an application on one form. The left portion of the form presents a tree view that displays a visual representation of a parent/child relationship. The right portion of the form displays a detail area in browse mode.

Q13.   What is a Modal window?
It is a window that restricts a user’s interaction with other windows unless it is closed.

Q14.   How do you set and clear an error on a control in an Interactive Application?
System functions are available to set and clear errors on a control. Under the Control system functions the system functions Set Control Error and Clear Control Error are available. Under the Grid system functions the system functions Set Grid Cell Error and Clear Grid Cell Error are available. The system functions to set an error require that a Data Dictionary Error Message be sent to the system function in order for an appropriate error message to display within the application.

Q15.   How can you determine what tables are updated by a specific form?
In order to determine what tables are updated by a specific form, you must determine the business view being used by the form. In order to do this, double click on the form within Form Design Aid. The description of the business view will display on the section properties form. Then within Object Management Workbench, you can search for the business view based on its description. Once you locate the business view, add it to a project and select design. Then select the option for the Business View Design Aid. Within Business View Design Aid you can determine the table(s) that are included in the business view. This shows what tables will be updated by the form using that business view.

Q16.   How do you use a Combo Box?
The Combo Box has limited functionality within the software. It was originally designed for web use only, but can be used on a Window's client also. To use a combo box, it needs to be associated to a data dictionary item that points to a User Defined Code table. Then the combo box will display a list of the User Define Code values in the pull down window. The steps to accomplish this within Form Design Aid are:

Ø  Add a combo box to the form
Ø  Highlight the combo box and under the Edit pull down menu, select the option for Associate.
Ø  Associate the combo box to an appropriate data dictionary or business view variable.
Ø  Run the application. The User Define Code values for the associated data item will appear in the drop down box.

To pre-populate a value into the combo box, use the "Select Item" system function under the Combo Box Functions.

Q17.   How do you make Radio Buttons mutually exclusive?
Associating two or more Radio Buttons to the same data dictionary or database item makes the Radio Buttons mutually exclusive.

Q18.   What determines the value that is returned from a Search and Select Form?
The value that is returned from a Search and Select Form is based on the data structure that is assigned to that form. Generally the data structure associated with a Search and Select Form should only contain one item in the data structure and that is the value that you wish to return from the form.

Q19.   Can you modify a version of an Interactive Application within Form Design Aid?
No. Versions of interactive applications do not have specifications. All design changes to an interactive application must be made at the template level. Multiple versions of Interactive Applications are used only to establish different processing option values for the application.

Q20.       How does a form that allows for adds and updates determine whether it is in Add mode or Update mode?
Upon initially opening a form, a SQL select occurs based on the key values of the form. If a record is retrieved from that select statement, then the form is in Update mode. This generally occurs when data is passed to the form within the form interconnect. If no record is retrieved, then the form is in Add mode. This generally occurs when calling the form without passing data into the form interconnect.
If a corrupt record exists in the table with all blanks/nulls in the key fields, the application will select it upon initially opening the form and put the form into update mode. It will not go into add mode unless no record is found when doing the select. Removing the corrupt record will resolve this potential issue.

Q21.       How do you indicate that a field is a required field on a form and have an error result if the field is left blank?
Within the Control Options for a field, there is a check box for "Required Entry Field". Selecting this check box indicates that a field is required and will provide an automatic error at runtime if the field is left blank. This option is accessed by selecting the Options button within the Control properties.

Q22. How do you define a grid within a form in an application to work with Multiple Select?
The steps to setup a grid to allow for multiple select are to mark the Multiple Select grid property for the grid and select the "Repeat for Grid" setting under the Options pull down within the event rules defined for the menu/toolbar exit. Multiple select will only work when the interconnect is not defined as modeless.

Q23.How do you add a Bitmap to a Row or Form Exit?
A bitmap strip can be assigned to the beginning category of menu/toolbar exits. Then all exits within that category will have the bitmap strip available and individual bitmaps can be selected for each exit.

Q24.Is there a way to prevent a Header Detail forms from exiting upon pressing the OK button?
If the interconnect that is used to call the Header Detail is defined as a modeless interconnect, the form will not exit upon pressing the OK button. If the Header Detail has been defined as the entry point, there is currently no way to prevent the form from exiting when the OK button is pressed.

Q25.How do you get a Header Detail to automatically load the grid with the appropriate information when the form is opened through a Form Interconnect?
Create the appropriate key fields as filter fields in the header portion of the Header Detail form. Select the grid property option of "Automatically Find on Entry" to preload the grid upon entry into the form based on the key values populated in the header through the form interconnect.

Q26.How can you modify a standard J.D. Edwards application to add new fields to the form grid?
Many of the large transaction entry applications within the J.D. Edwards software use Master Business Functions to add and update records to the tables rather then using the business view. The forms are defined to update using these Master Business Functions rather then using the business view, so adding a new business view field will not update the table. In order to update the table, the new field must be passed to the appropriate parameter within the data structure of the Master Business Function (assuming the field is available within this data structure). This is true of numerous standard J.D. Edwards applications including Purchase Order Entry (P4310), Sales Order Entry (P4210), Voucher Entry (P0411), Invoice Entry (P03B11) and Journal Entries (P0911).

Q27.How can you debug problems associated with form adds, updates and deletes?
Turning on logging within the jde.ini will produce logging messages in the jdedebug.log that will show the SQL statements that are a result of pressing the Find button or performing an Add or Update within a form. These SQL statements will show what data and tables the system is attempting to update. Reviewing these SQL statements can provide important information as to why an update is not successful.

Q 28.When attempting to change the font on a field in FDA, I am not seeing the change?
The runtime engine has never supported changing the font using the font option on the individual fields on a form even though this option does exist within FDA. Edit controls can be changed by using the "SetEditControlFont" system function. Generally this should be done on an event such as Post Dialog is Initialized. When you need to change font on static text, development has recommended the use of a text block control rather then static text. Font can be changed within FDA on a text block control. Fonts cannot be changed on static text. Therefore, with the combination of the SetEditControlFont system function and using text block controls rather than static text, you should be able to achieve the desired font changes on the fields on the form.
Q29. I have created a new Row/Form Exit on my Application within FDA, however, when I run the application, I do not see the newly created Exit?
If any existing "HC" type user overrides exist for the application, these user overrides are read and used when displaying the menubar and toolbar options for the application. In order to see any new exits created within design, locate any existing "HC" type user overrides for the application in the User Overrides application (P98950). Delete these user overrides. Then when running the application, the new exit created will display.

Q30.When accessing my application, the sequence button on the toolbar and the sequence grid option are disabled? How do I enable this sequence option?
There is a grid property within FDA for "Hide Query by Example". When this option is selected, it not only hides the QBE line for the grid, but also disables the grid sequence option. In order to enable this grid sequence option, the QBE line must be displayed by not selecting the option to "Hide Query by Example"

Q31. How do I define a grid within a form in an application to work with Multiple Select?
The steps to setup a grid to allow for multiple select are to mark the Multiple Select grid property for the grid and select the "Repeat for Grid" setting under the Options pull down within the event rules defined for the menu/toolbar exit. Multiple select will only work when the interconnect is not defined as modeless. See the document Defining a Grid in Form Design Aid (FDA) to work with Multiple Select for additional details.

Q32. How can I add a Bitmap to a Row or Form Exit?
A bitmap strip can be assigned to the beginning category of menu/toolbar exits. Then all exits within that category will have the bitmap strip available and individual bitmaps can be selected for each exit. The document Add a Bitmap Strip to an Exit in Forms Design Aid details how to add a bitmap strip to a begin category for the menu/toolbar exits.

Q33.When making modifications to a standard J.D. Edwards application such as Sales Order Entry (P4310), even though I add a new business view field to the grid, the field is not being populated to the table when records are added or updated in the application?
Many of the large transaction entry applications within the J.D. Edwards software use Master Business Functions to add and update records to the tables rather then using the business view. The forms are defined to update using these Master Business Functions rather then using the business view, so adding a new business view field will not update the table. In order to update the table, the new field must be passed to the appropriate parameter within the data structure of the Master Business Function (assuming the field is available within this data structure). This is true of numerous standard J.D. Edwards applications including Purchase Order Entry (P4310), Sales Order Entry (P4210), Voucher Entry (P0411), Invoice Entry (P03B11) and Journal Entries (P0911).

Q34. I have made some changes to my custom table and added some additional fields. I have added these to the Business View and Form, however, I am not seeing the new fields on my selects and they are not being updated to the table on inserts or updates? AS400 Specific
On the AS400, SQL packages are created when doing selects and updates. If changes are made to a table, prior to being able to see the new fields on selects or update the new fields on inserts or updates, the SQL packages on the AS400 must be deleted. This requires that all users be off the system, the services stopped, and then ALL SQL packages created by OneWorld® deleted. Once this has been done and services restarted, the new fields added to the table will display on selects and update on inserts and updates.

Q35. How can I determine within Form Design Aid if Vocabulary Overrides exist for any fields on the form?
Any controls on a form that have had the text overridden and a vocabulary override exists will display with a green triangle in the lower right hand corner of the control. Whenever a field has a text override, the description of the field at runtime will come from the text vocabulary override rather then from the description of the field within the Data Dictionary.

Q36.When performing an add or update on my custom form, the information is not being updated appropriately to my tables
Turning on logging within the jde.ini will produce logging messages in the jdedebug.log that will show the SQL statements that are a result of pressing the Find button or performing an Add or Update within a form. These SQL statements will show what data and tables the system is attempting to update. Reviewing these SQL statements can provide important information as to why an update is not successful.

 The steps to accomplish this within Form Design Aid are:
1.             Create two or more radio buttons.
2.             Highlight one of the radio buttons and select the menu exit for Edit.  
3.             Select Associate | Data dictionary item
4.             Find your data item by entering it into the QBE line and clicking the find button (or Alt - I)
5.             Select the data item and drag it onto the top of the selected radio button.
6.             Highlight the next radio button and then repeat number 5
7.             Follow these steps until the added radio buttons are associate with the same data dictionary or database item. This makes the radio buttons mutually exclusive (only one can be selected).
8.             At this point, if nothing else is done, the first radio button created will be the default radio button, no matter what order the buttons are in. This means that a simple way of setting the default radio button is to create the default radio button first. Note: Starting with  release Xe, the last radio button created will be set as the default.

           To change the default, do the following steps.
9.             Associate each of the radio buttons with a data dictionary item that edits against a User Defined Code (UDC) table.
10.          Go into the properties of each of the radio buttons and set the title. (Starting in release Xe, when the title is changed the lower right corner label box will turn green to indicate it has been changed.) Also in the properties, set each radio button to a different UDC value
11.          In the event rules for the form, in the "Post Dialog is Initialized" event, set one of the radio button variables, to the value of the radio button that is to be the default radio button, when the form displays.

Grid columns within an application need to be Business View columns, rather then Data Dictionary columns in order to have an enabled QBE column at run-time.  You can check the column properties to see if the data item has an associated table name to determine if the data item is from the business view.  Also, a blue triangle in the corner of a grid column indicates it is a business view field  A yellow triangle indicates a data dictionary field.  The QBE column will always be disabled for data dictionary or variable columns that are not part of the business view.
QBE can also be disabled within Object Configuration Manager (OCM).  Go to the OCM record and check to see if the table is set up as not allowing QBE.  This can be done by following these steps:
·                     Go to OCM
·                     Select the System Data Source
·                     Do a Find over the Current Environment with an Object Type of TBLE and Object Status of AV.
·                     Select either the Object Name of the table on which the business view was based or the object name of DEFAULT.
·                     Select and go to the OCM Revisions Form

·                     Verify what is set-up in the Allow QBE Field:  1 - ALL QBE Allowed, 2 - No QBE Allowed, 3 - Indexed Fields QBE Allowed.

2 comments:

  1. Which button would be correct for each type of form?
    for example
    Search and Select = FIND / SELECT / CLOSE / ADD -->>(NO)
    Find and browse = ???
    Fix Inspect = OK / CLOSE
    Headerless Detail = ???

    ReplyDelete