MySQL: Building User Interfaces (Landmark)

only for RuBoard - do not distribute or recompile

User Interface

This section outlines the design layout of the user interface. Going through this step saves a lot of work later on.

The Customer Data Form: frm_main

Figure 6.1 shows the design of the initial screen the user will see when the application opens. This form allows the data entry clerk to select and display customer information or enter the information for a new customer.

Figure 6.1. frm_main is the initial form the user sees when he starts the application.

Following are some of the features and functions of frm_main:

The container layout for the form is shown in Figure 6.2. This is part of the GTK+ environment that must be planned for, and it is something that will be new to developers coming from the VB and VC++ environments. For a review of GTK+ and the concept of containers, refer to Chapter 2, specifically the sections titled VB s Form Reincarnated as GtkWindow Plus GtkFixed or GtkLayout and GTK+ Containers as Resizer Controls.

Figure 6.2. frm_main container layout.

As you can see from Figure 6.2, the first widget is a vertical packing box (vbox) with a space count of 2. Please note that in Figure 6.2 the shades of gray add to the visibility; they have nothing to do with the finished product. Initially, the window is a vertical packing box divided into two rows. The widget in the bottom half of that vbox widget is the status bar, and the top is for everything else. Inside the top half of that vbox widget, the first widget to be added is a 2-by-2 table. In the top left and right of that 2-by-2 table are vertical packing boxes, again with space for two widgets each. The bottom left of the 2-by-2 table contains a vertical button box because that vbox will have only command buttons . In the bottom right of the 2-by-2 table is a vertical packing box with space for six widgets. The first of these six widgets holds a 3-by-3 table, the second holds a 4-by-2 table, and the others have spaces for labels and text boxes.This fills out frm_main.

Selecting Items for the Order: frm_items_ordered

The other main form in the application is a window in which the user picks the individual items the caller has ordered and then tallies the totals. This makes up the line items on the invoice (see Figure 6.3).

Figure 6.3. The frm_items_ordered layout diagram.

Some of the functionality of frm_items_ordered is described here:

The Search Windows

Each of the windows covered previously has a Search for... button of some type. In frm_main, it is a search for customers. In frm_items_ordered, it is a search through the item master table. These buttons function very similarly:When the user clicks the Search button, a new modal window appears (see Figure 6.4). There, the user enters the search string and clicks the Find button, and the software returns a list of matching records. The search functions as a matching search with a wildcard both before and after the search string; that is, if the user searches for eat , the list of returned items might include treat, eatery, and so on.

Figure 6.4. The Search for Customer modal window design.

The application automatically searches all character columns . When doing a customer search, it attempts to find a match in all the character (non-numeric) fields: name , bill_to_addr1, bill_to_addr2, and so on. This minimizes the complexity presented to the user, and with this implementation (a small data set and all functions performed on the same machine), response time should be more than adequate.

In the Customer search form, the user types a text string into the text box and then clicks Find. The software searches all text fields and returns all records matching any part of the field text. If the desired customer record is found, the user can select it and close the search window, and the selected customer record data automatically appears in the widgets on frm_main.

The Item search form works the same as the Customer search form, except that it searches and returns items and fills in the items ordered Clist window on frm_items_ordered (refer to Figure 6.3).

In both of the search forms, when the user finds the customer or item they are searching for, they select it and click Done. The software automatically places the data into the correct place on the form. For frm_main, it displays the customer selected by the find operation, and for frm_items_ordered, it selects and displays that item in the 3 Column CList box that displays all the items in the database.

only for RuBoard - do not distribute or recompile

Категории