Prophet Forms Builder is portion of an Oracle Developer Suite which besides includes Oracle Reports Developer, Oracle JDeveloper, SQL*Plus, Oracle Designer, Oracle Discoverer every bit good as extra constellation tools. All these constituents allow constructing portable applications for assorted runing system, applications for multilingual support every bit good as applications that can be monitored remotely.
In contrast, Microsoft Access is intended for developing smaller applications as it is limited in the size and figure of users it can back up, does non supply the same multi-user transactional support or scalability. All the constituents of developing an application including informations, user interfaces and studies are included in a individual development environment.
In order to compare two different development environments, two applications have been created utilizing Microsoft Access 2003 and Oracle Forms Builder 10g. This study aims to compare merely those constituents that relate to developing user interfaces. The application constituents are described foremost, followed by the tolls used to work with those constituents.
Both environments contain a assortment of tools necessary for application development including redacting layout, object belongingss and the codification behind the application objects. In this subdivision, the single constituents of an application built utilizing Prophet Forms Builder every bit good as the tools used for working with those constituents are compared to Microsoft Access.
Prophet Forms application is made up of four types of faculties:
This type of faculty contains definitions for form objects such as Windowss, text points, cheque boxes, buttons and triggers every bit good as their codification modus operandis. Similarly, each Microsoft Access application signifier besides has an associated faculty. This is the lone faculty type I have used to plan both applications.
This faculty is used to specify bill of fare and hierarchical menu objects together with the bill of fare point bids. In Microsoft Access, this functionality is achieved through the customisation of toolbars utilizing both constitutional and user-defined bid actions.
PL/SQL Library faculty
This faculty contains the definitions of user processs, maps and bundles, which can be called from other faculties in the application. Microsoft Access besides contains this functionality and allows to hive away such codifications in separate application objects called Module ( as opposed to organize associated faculty ) .
Object Library faculty
This faculty shops objects that can be re-used when developing the application, which is really utile in supplying a consistent user interface every bit good as decrease in development clip. Such functionality is non available in Microsoft Access.
In add-on to the four faculties, Forms Builder besides provides a figure of Built-in Packages, a aggregation of Oracle supplied processs, which simplify the development procedure. Microsoft Access emulates some of this functionality with the usage of DoCmd objects, a limited installation in comparing with Oracle Forms, used for illustration for gap and shutting application objects.
Prophet Forms Builder displays the single application constituents in Object Navigator and groups them into nodes based on type as follows:
Object Navigator allows sing points in the undermentioned three convenient ways:
Ownership View: Objects are grouped by type
Ocular Position: Objects are shown organized by containers so that canvases are contained in Windowss, and points are shown in canvases, etc.
PL/SQL Merely: Merely objects with associated PL/SQL codification are displayed in either position.
In add-on to the application constituents, when Forms Builder connects to an Oracle database, Object Navigator displays assorted database objects including tabular arraies, positions and database bundles.
Microsoft Access displays its application constituents utilizing Database Window:
Microsoft Access shops both the database objects every bit good as application constituents, which are grouped harmonizing to object type. In add-on cutoffs to these objects can be to the Favourites or user-defined Groups.
Both tools provide easy to utilize installations to pull off the application constituents. Additionally, Object Navigator in Forms Builder lists interface points, which provides extra convenience when developing applications.
Every signifier built with Forms Builder contains at least one window, one canvas, one information block and one point:
Both Microsoft Access and Forms applications are displayed within a maestro window called Multiple Document Interface ( MDI ) . All other Windowss are displayed inside this container.
The canvas is used to expose points on the screen. Forms Builder uses the term “ canvas ” , whilst Microsoft Access calls it merely a “ signifier ” , which consists of signifier heading, signifier item and signifier footer. Forms Builder provides four types of canvas:
Contented Canvas: This is a default background, which wholly fill the window it ‘s in.
Stacked Canvas: This type of canvas can be layered on top of the content canvas as it is used to conceal portion of the content canvas or show surrogate informations.
Tabbed Canvas: This type of canvas that has multiple pages identified by checks. The information is grouped logically into different pages.
Toolbar Canvas: This type of canvas contains custom button bars used as a replacing for the default “ smartbar ” toolbar.
In Microsoft Access, the default signifier background is the equivalent of a content canvas, the tabbed canvas functionality is achieved via the usage of a tabbed control which is placed on a signifier and the customisation of toolbars mirrors the use of a toolbar canvas in Oracle Forms. There is no equivalent of a stacked canvas, although this functionality can be achieved with the usage of a frame.
A information block connects the signifier points to the database. A signifier can hold limitless figure of blocks, logically nevertheless, it should be split up into smaller signifiers it contains more than 10 blocks. Items in a block can be displayed on the screen either in signifier layout ( as a single-record ) or in tabular layout ( multiple records per screen ) .
The informations beginning for the block can change from individual database tabular array, multiple tabular arraies every bit good as values returned from a PL/SQL Package. A type of block non connected to a database called Control Block can besides be created, which can be used to keep mention and working variable values. When a block is associated with a tabular array in the database, Oracle Forms handles the standard DML maps ( select, insert, update and delete ) automatically without holding to compose extra codification. The standard DML can be overridden when a block is based on PL/SQL codification.
The Object Navigator can be used to set up the information blocks and points for run-time pilotage. By default the pointer goes to the first point in the first information block on the signifier and so moves through each point and block on that signifier. The pilotage can besides be coded programmatically.
In add-on, Oracle Forms besides manages the construct of parent-child relationship. A maestro block can be created utilizing a ace that will let to put up a relationship with the item block automatically. This can be achieved without the foreign-key relationship between tabular arraies present in the database.
Microsoft Access does non hold the construct of a information block. A signifier can be bound to either a tabular array or a question stored in the database. In add-on, the entree to the informations can be accomplished programmatically through the Recordset object in VBA utilizing DAO and ADO libraries. Similarly to Forms Builder, Microsoft Access supports the construct of a master-detail relationship.
Both Forms Builder and Microsoft Access have a assortment of points that can be placed on an interface for users to interact with, such as text, cheque and list boxes, wireless groups and buttons. Although they are called by a different name, they provide really similar functionality.
In add-on, Forms Builder allows making pop-up listings of available values for a given field called List of Value ( LOV ) that can be used to dwell other points on the interface based on the selected value. They are based on internal information constructions called Record Groups that behave like tabular arraies in memory and can be based on a list of inactive values or on questions.
In Forms Builder, informations points can merely be created within a information block. They represent a column in a tabular array or a position, expose a deliberate value, mention value from a Control Block or a value returned by a PL/SQL bundle. Because Microsoft does non hold the construct of a information block, it allows to make points anyplace on the signifier.
All points have a figure of belongingss including information about their location on the signifiers, size, coloring material and fount. Both Microsoft Access and Forms Builder have a graphical tool for working with the ocular elements of a signifier.
In Forms Builder, the Layout Editor has a Tool Palette on the left for making new interface points every bit good as seting the background, fill, text and line colorss. The toolbar across the top of the Layout Editor contains buttons for puting font properties, object alliance, whizzing in and out and to altering the layout order as illustrated below:
In Microsoft Access, a signifier and its elements are edited in Design View. The layout of the editor is really similar to Forms Builder and contains a Toolbox on the left and a belongingss toolbar on the top of the screen:
The administration of the tools in these editors seems more intuitive in Microsoft Access. However Forms Builder provides object alignment buttons, which speed up the work when working on the layout of the signifier.
In add-on object belongingss can be changed programmatically or utilizing belongingss aggregation editors. The Property Palette in Forms Builder groups the belongingss in several separate classs as follows:
Microsoft Access Properties editor is organised into separate checks harmonizing to type of edition that needs to be carried out, such as data format, informations entree, events or other. In add-on it besides has a check that lists all the belongingss on one screen:
One of the advantages of Microsoft Access over Forms Builder is that it is besides linked to the installations to redact the functionality behind the controls, leting to see at a glimpse the different events the control responds to.
When making a signifier, aces can rush up the development by puting default behaviors and layouts.
Forms Builder provides a ace for the creative activity of information blocks, a layout ace every bit good as a LOV ace. Although all aces are easy to utilize, they are non intuitive as they require a cognition of the order in which they can be used, e.g. to establish a layout wizard a information block must be selected or created foremost. The LOV ace allows to choose and modify an bing Record Group or make a new one, but the same Record Group could be used someplace else on the signifier as a record beginning for a list box. Additionally, if the Layout Wizard was used to construct a signifier, the Update Layout Property of a frame is besides set to automatic. This must be changed to manual if any alterations to the layout demand to be saved.
Microsoft Access besides provides a ace for making a new signifier. All the stairss that are necessary for choosing the information every bit good as puting the layout and manner are incorporated into one individual ace doing it a batch more intuitive to utilize. In add-on, Microsoft Access provides aces for the creative activity of new interface points such as list boxes and bid buttons and can be turned off if desired.
One really utile characteristic of the above tools is that they are all linked together and alterations made in one of them are automatically displayed in the other tools.
Applications built in Forms Builder and Microsoft Access can be customised to react to user ‘s interaction with a signifier, keyboard events generated by the user pressing a map key, internal processing events and user-defined events.
Gun triggers are executed in response to such events. They can replace the default behavior or add custom logic to the signifier. The degree at which a trigger is defined determines its range e.g. point degree or block degree. Some triggers can merely be defined at one degree, some at multiple degrees. In Forms Builder, triggers are written utilizing standard PL/SQL sentence structure. They can be divided into several classs such as block processing triggers, interface event triggers, navigational triggers, transactional triggers, proof triggers, master-detail triggers and cardinal triggers.
Microsoft Access emulates this functionality by supplying event processs that run in response to an event initiated by the user, plan codification or triggered by the system, e.g. OnClick, AfterInsert, BeforeUpdate, OnClose etc. This functionality can be programmed utilizing looks, macros or VBA codification.
Built-ins are maps or processs that allow PL/SQL codification to interact with Oracle Forms objects in PL/SQL. They extend PL/SQL with form-specific functionality, for illustration CLEAR_BLOCK for uncluttering the information block, NEXT_ITEM for pilotage and EXECUTE_QUERY for query executing.
Such functionality is provided in Microsoft Access by the DoCmd object, which has a figure of methods including GoToRecord, Minimise, OpenForm, Close and many more. This can be coded with macros or VBA.
Forms Builder provides a PL/SQL Editor, which allows to come in codification for adding above functionality every bit good as to roll up code objects such as event triggers, routines ( maps and processs ) , menu point bids, menu startup codification, and bundles:
Microsoft Access has 3 different tools for coding extra functionality. The Code Builder, which is a Ocular Basic Editor:
A Macro Builder allows come ining the needed Action and Action Arguments:
And eventually, the Expression Builder for come ining common looks that reference the names of Fieldss and controls in the database, every bit good as many available constitutional maps:
Overall, Microsoft Access provides a set of flexible tools that can be used by a broad scope of users. The Forms Builder is a more complex tool that relies on the specializer cognition of PL/SQL. It does nevertheless help the coder with the Syntax Palette that displays the concepts of PL/SQL linguistic communication elements and built-in bundles leting the user to copy the selected sentence structure into a plan unit.
In add-on, Oracle Forms provides set of system variables that allow entree to run-time information about the application, the position of the signifier, day of the month and clip, block and record position, sneak place and many more. Microsoft Access has two types of variables: local variables that persist within a signifier and case variables, which persist for the continuance of the Microsoft Access database session. The biggest disadvantage is that both types of variables must be defined by the user foremost.
In add-on to the above functionality, unlike Microsoft Access, Oracle Forms Builder supports the usage of reclaimable constituents that allow the development of standard layouts and the usage and behavior of GUI elements for common expression and feel. This avoids duplicate of work and AIDSs easy care particularly to implement design alterations.
Ocular Attribute Groups ( VAG )
VAGs are user-defined sets of belongingss that control the visual aspect of an object by specifying belongingss for founts, colorss and spiels. They are a “ cutoff ” for using belongingss to an point without updating each belongings separately. Changing a belongings in the VAG automatically propagates the alteration to each point that references that VAG. VAGs are created in the Object Navigator under Visual Attributes node. They do non hold any physical representation.
VAGs are used for puting ocular belongingss for colorss, founts and forms. In add-on, to specify templets for other properties such as size, location and behavior of objects, Property Classes are used. These multiple belongingss and their values are assembled into groups and groups assigned to assorted form objects. Objects that have belongingss assigned to them in this manner are called subclassed points.
Properties can be added and removed from the Property Class belongings sheet. As with VAGs, if the belongingss of the Property Class are changed, the new values are propagated to all the subclassed points.
Because VAGs and Property Classs are set up in single signifiers, in order to implement a system-wide alteration, each signifier would hold to be updated. To avoid this, any related objects are bundled together in an Object Group, which allows them to be used by another faculty. Adding or taking any object from the Object Group automatically updates any signifier that includes that group.
For illustration, window, canvas, blocks, points and triggers incorporating the needed logic for scheduling assignments in a calendar can be packaged in an object group and so easy copied to other signifiers in one simple operation.
Object Libraries are non a portion of the application itself. They are used to make, keep and administer predefined reclaimable objects that can be dropped into a signifier and enforce criterions for the expression and behavior in an application. Any Forms object can be stored in an Object Library, except for a signifier itself. When a library is created in the Object Navigator and points are dragged and dropped into it, they become available to Forms Builder. The objects can be so dragged from the Library onto the finish signifier. This object can so be independent of the library or linked to the maestro in the Object Group.
Object Libraries can be updated and the alterations instantly are available to the development squad. You can tie in multiple Object Libraries with one application. For illustration, you may hold a generic library that contains corporate-wide criterions, and a smaller library for project-specific points.
A Smart Class is a type of object, which acts as a templet to make objects with the same belongingss, or to use the belongingss to an bing object. An object based on a Smart Class inherits its functionality and visual aspect. Smart Classs are used to administer design criterions to an full development squad.
Shared PL/SQL Code
One of the most of import ways to rush up development is to portion the codification that is written in triggers. This is achieved by utilizing Program Units, PL/SQL Libraries, and by citing PL/SQL codification in the database.
PL/SQL Libraries are aggregations of bundles, processs, and maps that are deployed as separate faculties in the application. Because they are outside of the signifier range, they use particular built-ins to cite the objects within a signifier indirectly. A PL/SQL Library is deployed as an feasible file. Program Units provide agencies of composing PL/SQL codification that can be called from multiple triggers. By seting Program Units into PL/SQL Libraries they can be shared across multiple signifiers.
Finally, Forms can cite any codification in the database. However, PL/SQL codification in the database can non cite signifiers points because the PL/SQL engine in the database does non understand the Forms built-ins.
Both Oracle Forms Builder and Microsoft Access provide flexible development environments. Both can be used to develop simple applications, nevertheless because the Forms Builder is portion of a collaborative environment it besides provides high degree support for such development undertakings. In add-on, the applications build utilizing Forms Developer integrate with Oracle database, which allows to make really complex and robust solutions.