

INTERSOFT S.A. de C.V.
Macintosh Computers
A New Dimension
Paquetes Interactivos S.A. of C.V.
Ing. Pedro Baram K.
General Manager
Once known as Silver Surfer, 4Th Dimension is the quintessential Macintosh database.
During the year 1986, strong rumors began to flow in the Macintosh community. The most wonderful database for Macintosh was mentioned, and it was for sale. It is in France where it was developed and written by Laurent Ribardiére.
The product is so good that Apple Computer's acquired the rights to market it in the United States. Development of an English version began. The project's code name, "Silver Surfer" was heard wherever and whenever products for the Macintosh were discussed.
Finally, after strong protests from many other developers who were working on various software projects for the Macintosh without being supported in the same way, Apple decided to leave the project. It was immediately picked up by another company, ACIUS. (ACI is the French software house and ACIUS is the North American subsidiary).
ACIUS was founded by Guy Kawasaki, who left Apple just a few weeks after being named director in recognition of his great "evangelization" work. Guy was joined by Scott Knaster, who was head of Apple's technical support department and one of the most renowned writers of Macintosh software. Obviously leaving those positions meant having a lot of faith in the product, let's see why.
The current version of 4Th Dimension allows interaction with any of three environments: Design, User or Run Time. The design environment is used to define the structure of the database, to define the screens for information capture and output reports, to write programs (called procedures in 4Th Dimension), and to gather all the elements necessary to prepare a database application that will be used by end users. To feed, modify or select information without yet having a finished application, it is necessary to use the User environment. Both the Design and User environments are used by the application developer. End users use the Run Time environment.
THE DEVELOPMENT ENVIRONMENT
The development environment has 6 editors. These provide the tools to create applications tailored to the needs of end users.
The editors are:
1. The structure editor through which the database structure is created and modified.
2. The layout editor through which both the screens for capturing information and the output reports on the screen or printer are created.
3. The procedure editor with which procedures are created or modified.
4. The menu editor through which the menus corresponding to the developed application are created or modified.
5. The access key editor allows you to create and modify a hierarchical security scheme for the database.
6. The list editor with which you can create or modify lists containing options to be selected by the end user.
Each of these editors uses its own window, allowing 4Th Dimension to have different of these open simultaneously.
THE STRUCTURE EDITOR
The structure editor is a visual representation of the logical structure of the database. Since 4Th Dimension is a relational database, it considers information as if it were stored in two-dimensional tables which 4Th Dimension calls files. Each of the rectangles in the structure editor represents a file, which is made up of various fields. Fields can contain information of various types: alphanumeric (2 to 80 characters); texts (up to 32,767 characters); real numbers (numbers with a decimal part); integers (in the range ±32,767); long integers (in the range ±2,147,483,647); dates; time; booleans (can take an affirmative or negative value); images (graphics in a variety of formats including scanned images) and sub-files (pointers to records in a subordinate file).
Each file is represented in the Structure Editor window by a rectangle showing the file name at the top. The rectangle contains the names of the fields belonging to the file which can be increased or modified at any time. The field type and its characteristics can be modified simply using the mouse. For example, fields can be mandatory (the record will not be saved if this field has not been entered) and can simultaneously be indexed. 4Th Dimension may be instructed to verify that indexed fields are unique. One feature allows a field to be fed with a value contained in a list where the end user can select it simply using the mouse. This feature is very useful when the user needs to feed a field with a value of a few allowed values. The characteristics assigned to each of the fields make it easy to validate the information provided by the user. Thus, with this ease, the system developer can ensure that the indexed fields are always fed and that their values are unique.
The relationship between files is established through links that are represented in the Structure Editor window using dark lines connecting the field of one file with the field of another. These lines are simply drawn by the developer to link files. With the same ease with which they can be created, they can also be removed. Links between files can be one-to-one, or one-to-many.
When a field in a file is of the Sub-File type, it is represented in the Structure Editor window with a rectangle similar to that of a file which contains the name of the field, and the names of the sub-fields belonging to it. . The relationship between a file and a Sub-File is shown by a gray line. An example of using a Sub-File are the lines of an invoice. Using a Sub-File, an invoice can have as many lines as necessary, without having to define a maximum number of lines that will be wasted by the majority of invoices prepared.
THE LAYOUT EDITOR
All end-user interaction with an application developed with 4Th Dimension is carried out through the use of input and output Layouts. Input layouts allow the end user to feed or modify one record at a time, while output layouts allow viewing or printing a selection of records as a list.
The Layout Editor window, like other graphic design applications on the Macintosh, displays a series of design tools that allow you to create a new Layout or modify an existing Layout. The layout editor allows you to create new layouts, either for an input screen or an output list, from formats previously established by 4Th Dimension, or it allows the developer to create a new layout according to your creativity.
The design tools allow you to place fields or variables in the layout, as well as write texts with various fonts, sizes and styles. The variables can be entered by the user or calculated by some procedure. Variables can be buttons of different types that will be used by the end user to execute specific functions. Variables can have graphical representations such as dials, rulers, or thermometers. Layouts can be decorated with rectangles, circles, arcs and other geometric figures that are drawn using 256 different colors.
The Layout Editor allows you to include within a layout, the layout of another file linked through the Structure Editor. When information from a linked file is presented in a layout, 4Th Dimension automatically creates a procedure associated with the layout, which loads the related information into memory. The procedures associated with the layout are executed every time the layout is used. Another type of procedure is called Global, which is a procedure invoked by the end user from the menus of the developed application.
The Procedure Editor allows the creation of new procedures or the modification of existing ones.
THE PROCEDURE EDITOR
The Procedure Editor is used to write or modify both the procedures associated with a layout, as well as the global procedures invoked by the end user from the menus of the developed application.
4Th Dimension has its own programming language that includes 280 powerful commands. Procedures can be developed or modified through written code or through flowcharts that make programming easier for inexperienced developers. The most common method is still written code; The 4Th Dimension programming language is very similar in structure to Pascal.
The Procedure Editor contains routines that allow the developer to provide all elements of the Macintosh interface in their application. Some of them allow the manipulation of graphics, controlling their scale and transparency. Other routines create business graphs of different types from the information contained in the database. 4Th Dimension routines handle advanced concepts such as two-dimensional arrays, pointers, and selected register sets with which operations such as unions and intersections can be performed. Additionally, 4Th Dimension allows you to include external routines written using other programming languages such as Pascal and C.
The procedures associated with a layout include various phases. Those associated with an input layout consider a phase before the layout is displayed on the screen, another while the layout is on the screen and the user is feeding or modifying information, and one more when the user accepts the information and wants to keep it. . Through the appropriate procedures in each phase, the developer can display default values, validate the information contained and update values in other linked files. Output layouts recognize additional phases that allow subtotals, averages, and other statistical measures to be calculated for selected records.
The global procedures, as I mentioned above, are invoked by the end user from the menus of the developed application. Through these procedures, the user will be able to add or modify one or more records as well as select and order records according to their own criteria.
THE MENU EDITOR
The 4Th Dimension Menu Editor allows the developer to offer an application tailored to the needs of the end user. The developer determines which menu items are necessary in the application, and simply types their names, associating each of them with the name of the global procedure that will be executed when selected from the menu by the user.
Menu items can be activated or deactivated procedurally, and the end user can use them using the mouse or from the computer keyboard. An application can contain more than one menu, and it is possible to associate an image with each one for visual recognition.
The developer can associate with each menu item the minimum password level necessary for the corresponding procedure to be executed.
THE ACCESS KEY EDITOR
The Access Key Editor allows you to create a hierarchical structure of users, allowing them to be registered with their identifier and respective access key and to form groups by assigning users to them.
The hierarchy for access keys can contain 32,767 different levels, which will hardly be used. The first level corresponds to the application designer who has access to all functions including the right to modify the application. The second level corresponds to the Application Administrator who has access to all functions except being able to modify the application. The administrator has the power to register new users to the application and assign them to a hierarchical group where one of them is responsible. Each layout designed and each menu item allows the developer to determine the minimum hierarchy that can make use of them.
Additionally, the Access Key Editor allows each user or group of users to be sent to the specific menu where they must work in the application. The Password Editor shows how many times a given user has logged into the application.
THE LIST EDITOR
Sometimes the developer will want the end user to be able to select a value from a few allowed values to feed a field or variable. The List Editor allows you to create lists containing values or modify them.
For example, the developer can create a list containing the different Cities and States where the clients are located, in such a way that when the user enters a new client card, upon reaching the field corresponding to City and State, a list appears on the screen from which the user selects the corresponding City and State using the mouse without having to type this information. Lists can also be applied to variables in the form of arrays.
The developer can decide whether to allow the end user to add a new item to the list, modify or order existing ones.
THE USER ENVIRONMENT
The User Environment allows you to feed information and test the layouts as well as the developed procedures. From the design environment it is not possible to feed or select previously fed information. The User Environment allows you to import and export information using different formats compatible with spreadsheets and word processors as well as other databases. From the User Environment you can select records that meet one or more criteria and sort them or, if appropriate, delete them.
THE RUN TIME ENVIRONMENT
4Th Dimension provides developers with all the elements to create an application that brings together all the features of a program written for Macintosh computers. The Menu Editor forms the backbone for creating applications with the Macintosh interface from which the end user accesses procedures. Applications may include dialogs and alert windows with buttons of various types that can be operated by the end user.
When an application is finished, the developer can select through the preferences menu that the user enters directly into the Run Time Environment. Each time the application is entered, the Password Editor will display a dialog requesting the user's password. Only the designer with his/her registered access code will be able to alter the structure, layouts and procedures that make up the operation. Other users will only be able to use the application in the Run Time Environment.
ACI markets a 4Th Dimension product that only contains the Run Time Environment. This cheaper product also prevents users from trying to force the designer's password and modify the application design without authorization.
Applications created with 4Th Dimension can be used in single-user or multi-user mode on a computer network. In multi-user mode, each machine on the network will require having a 4Th Dimension or the Run Time version of it installed.
EXTENSIONS
4Th Dimension is more than just a language for writing applications on Macintosh computers; It is a complete development environment. In addition to all the features mentioned above, ACI provides a 4Th Dimension compiler that allows the developer to generate self-executing end-user applications, as well as a spreadsheet, word processor, and 3D graphing program that work linked to the information contained in the database.
Other software manufacturers, such as Oracle, have products that allow you to design applications on the Macintosh computer with 4Th Dimension and consult the information contained in mini computers or main frames with an easy and intuitive interface.
ACI products are distributed in Mexico by:
INTERSOFT S.A. de C.V.
Palacio de Versalles 100 Local C
Col. Lomas Reforma
México D.F. 11930
Tel. +52 55 5596-2518 Cel. +52 55 2878-7602