Indexing/compression scheme for supporting graphics and data selection5301315Abstract A method for interactively selecting and displaying a distribution of all data fields in a selected database. The primary function of the methodology is to allow a user to view the data contained within a selected database in a graphical format. Additionally, the user has the capability of selecting specific sets of data for more detailed display as well as determining the effect of the selection on all remaining data fields which comprise the selected database. The first step in the process is the accessing of the particular database from the host system. Once the selected database has been accessed, a distribution matrix for each field in the selected database is constructed from the data contained within the selected database. The distribution matrix is then graphically displayed on any type of graphical display unit. From this initial graphic display, the user can make various selections for detailed graphical display and study and analyze the data structure and data content of the database. Claims What is claimed is: Description BACKGROUND OF THE INVENTION
TABLE 1
______________________________________
WORD
NO. DESCRIPTION MNEMONIC
______________________________________
0 THE ADDRESS OF THE RECBINFR
PREVIOUS MATRIX BIN
1 THE ADDRESS OF THE RECBINTO
EXTENDED MATRIX BUILD
AREA
2 NUMBER OF RECORDS RECBINNO
CONTAINED IN THIS BIN
3 NUMBER OF RECORD BIT MAP
RECMAPNO
WORDS
4 (1st)
STARTING RECORD NUMBER
RECSTRNO
(NEGATED)
5 (1st)
BIT MAP WORDS - (POSITIVE
RECMAPWD
ONLY), THE SIGN BIT MUST BE
ZERO. THIS BIT MAP WORD
ALLOWS THE BIT MAPPING OF
THE NEXT 15 RECORDS AFTER
RECSTRNO
______________________________________
The next step in the distribution construction process is the processing of the collected records to actually build the distribution matrix. Element 228 in FIG. 3 represents the first block of software in this phase of the process. Element 228, which is the element directly following element 226, represents the software to implement the process step of reading in a record from the dbEXPRESS.TM. data file. Accordingly, the software now determines the bin number to update based upon the range for each bin as indicated in FIG. 5. Element 230, which is the element directly following element 228, represents the software to implement the process step of determining the correct bin number. The software represented by this block utilizes the formula given by BIN value=.vertline.field value-BIN MIN/DELTABIN.vertline. (3) wherein the field value and BIN MIN are for the particular record being read at that instant. In addition, the resultant value from equation (3) is rounded up to the nearest whole number. The calculation for the bin number must conclude with the BIN value being set to an absolute value as indicated in the equation. This will take into account the occurrence of negative values. Element 232, which is the element directly following element 230, represents the software to implement the process step of updating the bin map area in the field header, area 215 in FIG. 6, to indicate that a particular bin is active. Element 234, which is the element directly following element 232, represents the software to implement the process step of updating the information in a particular bin work area. This software is responsible for calculating the values of the words listed in Table 1. Element 236, which is the element directly following element 234, represents the software to implement the process step of allocating an extended work area if the current bin work area is larger than 128 bytes. Element 238, which is the element directly following element 236, represents the software to implement the process of determining if there are more records to process. If there are more records to process, then this software transfers processing back to element 228 so that the next record can be read in from the dbEXPRESS.TM. data file. If there are no more records, then this software transfers processing to the software represented by element 240. To clarify the above process, the procedure is explained with reference to a series of figures which utilize the example values given previously. FIG. 8 depicts the processing procedure for record number 1. The record is read from the dbEXPRESS.TM. data file by the software represented by element 228 in FIG. 3. For this particular record, the software process step represented by element 230 utilizes equation (3) to determine the bin number. Substituting in the proper values into equation (3) results in a BIN value given by BIN Value=.vertline.(12.7-7.9)/1.39.vertline.=3.45=4 (4) since the number is rounded up to the nearest whole number. Accordingly, the bit corresponding to bin 4 is set in the binmap word in the header. Word 0 in the matrix work area is the address of the previous matrix bin, RECBINFR, and is used if more than 128 bytes of memory is required for a given bin. In this example, 128 bytes is more than sufficient. Word 1 in the matrix work area is the address of the extended matrix build area, RECBINTO, and it is only utilized when any additional memory is required. Accordingly, Word 0 and Word 1 remain at there initial values of 0. Word 2, is the number of records contained in this bin, RECBINNO. In this example, and at this point in the processing, bin 4 contains one record, record 1, with a value of 12.7. Word 3, is the number of record bit map words, RECMAPNO. This value is initialized to 5 and is updated as more words are utilized. Word 4, is the starting record number, RECSTRNO. This word indicates the specific record number currently being processed and is represented as a negative number. In this case, since the process is on record 1, RECSTRNO is set to -1. Word 5 is the bit map words, RECMAPWD. This word allows the bit mapping of the next 15 records after RECSTRNO. Its use is explained as a description of the next 10 records is given. FIG. 9 depicts the processing procedure for record number 2. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 5. Accordingly, the bit corresponding to bin 5 is set in the binmap word in the header. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since bin 5 contains one record, record 2, with a value of 14.8, Word 2 is set to a value of 1. Word 3, is the number of record bit map words, and remains at the initialized value of 5. Word 4, is the starting record number, and in this case since the process is currently working on record 2, RECSTRNO is set to -2. Word 5 is not used at this point in the processing. FIG. 10 depicts the processing procedure for record number 3. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 8. Accordingly, the bit corresponding to bin 8 is set in the binmap word in the header. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since bin 8 contains one record, record 3, with a value of 17.9, Word 2 is set to a value of 1. Word 3, is the number of record bit map words, and remains at the initialized value of 5. Word 4, is the starting record number, and in this case since the process is currently working on record 3, RECSTRNO is set to -3. Word 5 is not used at this point in the processing. FIG. 11 depicts the processing procedure for record number 4. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 11. Accordingly, the bit corresponding to bin 11 is set in the binmap word in the header. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since bin 11 contains one record, record 4, with a value of 22.4, Word 2 is set to a value of 1. Word 3, is the number of record bit map words, and remains at the initialized value of 5. Word 4, is the starting record number, and in this case since the process is currently working on record 4, RECSTRNO is set to -4. Word 5 is not used at this point in the processing. FIG. 12 depicts the processing procedure for record number 5. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 11 again. Since the bit corresponding to bin 11 is already set in the binmap word in the header, there is no need to set it again. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since this is the second record in bin 11, record 5, with a value of 22.4, Word 2 is set to a value of 2. Word 3, is the number of record bit map words, and is set to a value of 6 because Word 5 is now going to be utilized. Word 4, is the starting record number for this particular bin and it remains the same as it was for processing record 4 because the first record in bin 11 is still record 4. Word 5 is set to a value of 0001. As was stated previously, this number allows the bit mapping of the next 15 records after RECSTRNO. Therefore, the value 0001 is utilized to indicate record 5 because 0001 is the first position after record 4 which is indicated by the value of RECSTRNO. The previous values for Words 0 through 5 are shown in the figure; however, only the second column would be saved if there were no more records. FIG. 13 depicts the processing procedure for record number 6. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 4 again. Since the bit corresponding to bin 4 is already set in the binmap word in the header, there is no need to set it again. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since this is the second record in bin 4, record 6, with a value of 12.7, Word 2 is set to a value of 2. Word 3, is the number of record bit map words, and is set to a value of 6 because Word 5 is now going to be utilized. Word 4, is the starting record number for this particular bin and it remains the same as it was for processing record 1 because the first record in bin 4 is still record 1. Word 5 is set to a value of 0010. The value 0010 is utilized to indicate record 6 because 0010 is the fifth position after record 1 which is indicated by the value of RECSTRNO. Once again, the previous values for Words 0 through 5 are shown in the figure; however, only the second column would be saved if there were no more records. FIG. 14 depicts the processing procedure for record number 7. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 4 again. Since the bit corresponding to bin 4 is already set in the binmap word in the header, there is no need to set it again. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since this is the third record in bin 4, record 7, with a value of 12.7, Word 2 is set to a value of 3. Word 3, is the number of record bit map words, and is set to a value of 6 because Word 5 is now going to be utilized. Word 4, is the starting record number for this particular bin and it remains the same as it was for processing record 1 because the first record in bin 4 is still record 1. Word 5 is set to a value of 0030. The value 0030 is utilized to indicate record 7 because 0030 is the sixth position after record 1 which is indicated by the value of RECSTRNO. Once again, the previous values for Words 0 through 5 are shown in the figure; however, only the third column would be saved if there were no more records. FIG. 15 depicts the processing procedure for record number 8. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 5 again. Since the bit corresponding to bin 5 is already set in the binmap word in the header, there is no need to set it again. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since this is the second record in bin 5, record 8, with a value of 14.8, Word 2 is set to a value of 2. Word 3, is the number of record bit map words, and is set to a value of 6 because Word 5 is now going to be utilized. Word 4, is the starting record number for this particular bin and it remains the same as it was for processing record 2 because the first record in bin 5 is still record 2. Word 5 is set to a value of 0020. The value 0020 is utilized to indicate record 8 because 0020 is the sixth position after record 2 which is indicated by the value of RECSTRNO. Once again, the previous values for Words 0 through 5 are shown in the figure; however, only the second column would be saved if there were no more records. FIG. 16 depicts the processing procedure for record number 9. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 9. Accordingly, the bit corresponding to bin 9 is set in the binmap word in the header. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since bin 9 contains one record, record 9, with a value of 19.7, Word 2 is set to a value of 1. Word 3, is the number of record bit map words, and remains at the initialized value of 5. Word 4, is the starting record number, and in this case since the process is currently working on record 9, RECSTRNO is set to -9. Word 5 is not used at this point in the processing. FIG. 17 depicts the processing procedure for record number 10. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 1. Accordingly, the bit corresponding to bin 1 is set in the binmap word in the header. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since bin 1 contains one record, record 10, with a value of 7.9, Word 2 is set to a value of 1. Word 3, is the number of record bit map words, and remains at the initialized value of 5. Word 4, is the starting record number, and in this case since the process is currently working on record 10, RECSTRNO is set to -10. Word 5 is not used at this point in the processing. FIG. 18 depicts the processing procedure for record number 11. Once again the record is read from the dbEXPRESS.TM. data file by the software process step represented by element 228 in FIG. 3. The software process step represented by element 230 utilizes equation (3) to determine the correct bin number, which in this case is bin 1 again. Since the bit corresponding to bin 1 is already set in the binmap word in the header, there is no need to set it again. Word 0 and Word 1 remain at there initial values of 0 since more memory space is not needed. Word 2, is the number of records contained in this bin, and since this is the second record in bin 1, record 11, with a value of 8.6, Word 2 is set to a value of 2. Word 3, is the number of record bit map words, and is set to a value of 6 because Word 5 is now going to be utilized. Word 4, is the starting record number for this particular bin and it remains the same as it was for processing record 10 because the first record in bin 1 is still record 10. Word 5 is set to a value of 0001. The value 0001 is utilized to indicate record 11 because 0001 is the first position after record 10 which is indicated by the value of RECSTRNO. Once again, the previous values for Words 0 through 5 are shown in the figure; however, only the second column would be saved if there were no more records. The next step in the distribution building process is the compression of the field header information and the information for every field. As stated previously, the original allocation of memory was in 128 byte blocks. The purpose of this step is to eliminate unused space from the distribution matrix. Referring back to FIG. 3 once again, element 240, which is the element directly following element 238, represents the software to implemented the process step of compressing the data. The software basically just eliminates the unused spaces of memory. FIG. 19 represents the final data content of the bin work area as created from the final values, i.e. last column of values, from FIGS. 8 through 18. The compression process removes the record link words, RECBINFR and RECBINTO, by adjusting RECMAPNO, which is the number of words in the bin matrix. The data is then compressed into a contiguous block of memory as shown in FIG. 20. Element 242, which is the element directly following element 240, represents the software to implement the process step of writing the compressed distribution records to the distribution file where it can be utilized for display purposes as illustrated in the bar chart of FIG. 23, which is explained in subsequent paragraphs. The entire display procedure is also explained in subsequent sections. Element 244, which is the element directly following element 242, represents the software to implement the process step of deallocating the memory utilized to build the matrix distributions. The final step in the distribution building process is the processing of all fields in the records contained in the current and relational databases. This means that the entire process is repeated until all fields are processed. Element 246, which is the element directly following element 244, represents the software to implement the process step of terminating the distribution building process and return processing control to element 300 in FIG. 1. The next block of software in the overall process which is shown in FIG. 1 is element 300 which represents the software to implement the process of graphically displaying the selected fields for which the distribution matrix was built. This software is for the primary display of the records for selected fields. The graphical display is accomplished utilizing a variety of graphical display formats including bar charts, line charts, scatter representations, pie charts and nyquest curves. The software includes two basic steps. The first step in the process is opening a specific dbEXPRESS.TM. file for display and is represented by element 302 in FIG. 1. The second step in the process is expanding the compressed data contained in the particular dbEXPRESS.TM. data file so that it can be displayed, and is represented by element 316 in FIG. 1. The software process represented by element 302 is further described with reference to the flow chart of FIG. 21 and the software process represented by element 316 is further described with reference to the flow chart of FIG. 22. In addition, figures illustrating the types of primary displays are also described. Referring now to FIG. 21, there is shown a detailed flow chart representing the software process to implement the dbEXPRESS.TM. file opening software. Element 304 is the point of entry into the dbEXPRESS.TM. file opening routine. Element 306, which is the element directly following element 304, represents the software to implement the process step of opening the specified distribution and data files so that the particular files can be accessed Element 308, which is the element directly following element 306, represents the software to implement the process step of allocating the distribution file header record structure. This software simply reserves a block of memory for the required information to be displayed because of the unknown size or quantity of the data contained therein. Element 310, which is the element directly following element 308, represents the software to implement the process step of reading the information stored in the distribution file header record. Recall that the file header contains such information as the field name, the distribution type and the number of bins utilized. Element 312, which is the element directly following element 310, represents the software to implement the process step of returning the distribution handle. This software is responsible for moving the pointer to a ready position so that the next display can be accomplished. The linkage for data table access is the distribution handle or pointer. Element 314, which is the element directly following element 312, represents the software to implement the process step of terminating processing of the opening routine and passes processing control back to the display software represented by element 300 in FIG. 1. Referring now to FIG. 22 there is shown a detailed flow chart representing the software process to implement the expansion of compressed data software. Element 318 is the point of entry in the expansion software. Element 320, which is the element directly following element 318, represents the software to implement the process step of reading the data contained in the compressed distribution record for the specified or selected field. The memory space was previously allocated by the software represented by element 308 in FIG. 21. Element 322, which is the element directly following element 320, represents the software to implement the process step of building and expanding a distribution record from the compressed record so that it can be properly displayed by the graphics software process represented by element 300 in FIG. 1. Element 324, which is the element directly following element 322, represents the software to implement the process step of terminating processing of the expansion routine and passes control back to the display software represented by element 300 of FIG. 1. FIG. 23 illustrates a graphical presentation of fictitious customer records, utilizing a bar chart display format, which provides an example of the graphical display of a distribution available to the user of this method. The bar charts in this figure represent a primary display of the distribution for all selected fields of customer records. In a primary display, the color of the background is grey and the bar chart showing the number of records is in red. The abscissa represents the first letter of the various customer names, and the ordinate represents the number of customers or customer records. Accordingly, the first bar in the chart indicates that there are 70 customer names starting with the letters A, B, or C in the database, the second bar indicates that there are 30 customer names starting with the letters D through F, the third bar indicates that there are 10 customer names starting with the letters G through I, the fourth bar indicates that there are 40 customer names starting with the letters J through L, the fifth bar indicates that there are 20 customer names starting with the letters P through R, the sixth bar indicates that there are 100 customer names starting with the letters S through U, the seventh bar indicates that there are 10 customer names starting with the letters V through X, and the eighth bar indicates that there are 20 customer names starting with the letters Y and Z. FIG. 23 illustrates a primary graphical display of fictitious customer records and provides a basis for further description of the detailed selection and display process. Before the detailed selection and display process illustrated in FIGS. 26, and 29 through 32 is described, the functional relationship between a primary graphical display and the distribution matrix from which it was generated will be described with respect to FIGS. 20 and 24. FIG. 24 illustrates a primary graphical display generated from the compressed distribution matrix represented in FIG. 20. In bin 1, RECBINNO, which is the number of records contained in the particular bin is equal to 2, accordingly the first bar in FIG. 24 shows that there are two records. Recalling FIG. 5, bin 1 contains or represents record data ranging in value from 7.90 to 9.29; therefore, the ordinate in the display of FIG. 24 shows two records, whatever they may represent, having values which are in a range of between 7.90 and 9.29 in the particular database which has been accessed. In bin 4, as shown in FIG. 20, RECBINNO is equal to 3, accordingly, the second bar in FIG. 24 shows that there are three records within the specified range. The range of record data in this particular bin, as shown in FIG. 5, is between 12.09 and 13.48. In bin 5, RECBINNO is equal to 2, accordingly, the third, bar in FIG. 24 shows that there are two records within the specified range. The range of record data in this particular bin, as shown in FIG. 5, is between 13.49 and 14.88. In bin 8, RECBINNO is equal to 1, accordingly, the fourth bar in FIG. 24 shows that there is one record within the specified range. The range of record data in this particular bin 1 as shown in FIG. 5, is between 17.69 and 19.08. In bin 9, RECBINNO is equal to 1, accordingly, the fifth bar in FIG. 24 shows that there is one record within the specified range. The range of record data in this particular bin is 19.09 to 20.48. In bin 11, RECBINNO is equal to 2, accordingly, the sixth and final bar in FIG. 24 shows that there are two records within the specified range. The range of data in this particular bin, as shown in FIG. 5, is between 21.89 and 23.28. Each of the programs or software routines used to generate the graphical displays hereinafter illustrated and described with respect to FIGS. 5 through 32 utilize compressed distribution matrices to obtain data for the display in a manner similar to the way the program generated the graphical display in FIG. 24 from the compressed matrix illustrated in FIG. 20. The actual data contained in the selected database is not necessary for a primary graphical display. The primary graphical display as well as the secondary graphical display provides a useful and informative method of viewing and/or studying the overall distribution of the data without being burdened with the actual data. As can be seen from FIG. 24, only the number of data records over specified ranges are illustrated, not the actual values. If and when actual data is needed, the system user simply requests a detail display, which is described and illustrated in subsequent paragraphs, and the actual data represented by the data records in the primary graphical display is displayed in a list box. The actual data is stored in system memory or extended system memory and is easily accessed as explained in the description of the detailed graphical display procedure. Returning to the detailed description of FIG. 23, the user may now select any bar for detailed selection. A detailed selection represents a secondary display of the data. Element 400, which is the element directly following element 300 in FIG. 1, represents the software to implement the selection process. The software provides the record number or numbers for the user selected bins. Element 500, which is the element directly following element 400, represents the software to implement the process step of displaying the secondary display. FIG. 25 is a detailed flow chart representing the software process to perform the secondary display. Element 502 is the point of entry into the secondary display routine. Element 504, which is the element directly following element 502, represents the software to implement the process step of reading the compressed distribution record for the specified primary field. This software reads the compressed distribution for all records in the field that was previously displayed as illustrated in FIG. 23. Element 506, which is the element directly following element 504, represents the software to implement the process step of reading the compressed distribution record for the specified secondary field. Basically, this software process is responsible for locating the distribution just for the specified records in that field. The records were chosen by the user and implemented by the software process represented by elements 400 and 500 in FIG. 1. Element 508, which is the element directly following element 506, represents the software to implement the process step of building and expanding the secondary distribution record from the compressed record so that it can be properly displayed by the graphics software process represented by elements 400 and 500 in FIG. 1. Element 510, which is the element directly following element 508, represents the software to implement the process step of terminating processing of the secondary display routine. Referring now to FIG. 26, there is shown a secondary display of the first bar of the bar chart in FIG. 23. The secondary display, as stated previously, is a result of the selection made by the user. The background color of the display is still gray, and the main bar graph or chart is still red; however, the selected bar, the one indicated by X's instead of REC's, is now a blue color to indicate that a selection has been made. In addition, a new chart representing the details of the selected bar is placed along the bottom of the display screen in blue. The detailed chart located at the bottom of the display breaks down the original bar, selected by the user, into a detailed graphical display. For example, the detailed chart illustrates the four customer companies and how many records for each of the named companies, whereas the original bar chart only illustrates that there were a total of 70 records for companies starting with the letters A, B, and/or C. The user may now select a single bar or bars from the detail graph. A selection from the detail graph is referred to as a tertiary display. In a tertiary display, the user may also request that the selected data be presented as a list box with further selection capability. Referring once again to FIG. 1, element 600, which is the element directly following element 500, represents the software process to display the selected records as a tertiary display and also to provide a list box if required. FIGS. 27 and 28 are detailed flow charts representing the software processes to display the selected tertiary display and provide a list box for the selection. FIGS. 27 and 28 represent identical code or software; however, the code represented by the flow chart in FIG. 27 is for the secondary records while the code represented by the flow chart in FIG. 28 is for the tertiary records. The elements of the flow chart in FIG. 28 are numbered with identical numbers as those in the flow chart of FIG. 27 except with the addition of primes. Any differences in the code are indicated. Element 602 is the point of entry into the tertiary display routine. Element 604, which is the element directly following element 602, represents the software to implement the process step of reading in the compressed distribution records utilized for the secondary display for the specified field. In FIG. 28, element 604' represents the software to implement the process step of reading in the compressed distribution records utilized for the tertiary display for the specified field. Element 606, which is the element directly following element 604, represents the software to implement the process step of determining the specific record number and field values for the specified bins so that the data may be displayed. Element 608, which is the element directly following element 606, represents the software to implement the process step of sorting the record numbers and field values for use in creating a list box of the selections made. This software is a basic sort routine or utility which sorts the record numbers and field values in ascending field value order. The use of the field listing is made apparent in the description of a tertiary display. Element 610, which is the element directly following element 608, represents the software to implement the process step of terminating the processing of this routine and passes processing control to the software represented by the flow chart of FIG. 28. FIG. 29 provides an example of a tertiary display. The background color is still grey, the main bar chart is still red; however, blue is utilized to display the selected records from the detailed bar. In this case, the first 30 entries in the first bar have been selected, accordingly, they appear in blue on the display and are represented as X's in the bar as opposed to REC's. In addition, the selected companies, ARTLER and BUTLER, have their records in the detailed chart appear in blue, as indicated by X's, while the other two companies appear in red as indicated by the REC's. Also, the listing box which provides a listing of the companies and the number of records associated with each is provided in two colors; namely blue for the selected companies and red for the others. The only limiting factor on what level display can be made is the number of records in a bin. Basically, what this means is that a detailed display can be made up to the last record in a bin or field. FIG. 30 illustrates another aspect of the distribution indexing methodology. FIG. 30 illustrates the number of records that contain a sale made by a given salesman. The highlighted or blue records indicated by the X's in the figure, are the identification of which sales were made to the selected companies shown in FIG. 26, i.e. companies having their names beginning with the letters A, B, and/or C. Basically, this figure illustrates the effect of the selection process made in FIG. 26. If no selection had been made to get to FIG. 26, then all the salesman records would appear in red, REC's, or not highlighted. Therefore, as illustrated by this figure, the selection of particular companies in one display shows up on the display of different items such as in this case, salesmen in a different display. The system user further has the capability of making a selection to eliminate a given salesman. FIG. 31 illustrates the display after salesman 1, S1, has been eliminated. Accordingly, the number of total sales has been reduced by 2, which is the number of sales salesman 1 was responsible for as indicated in FIG. 31. The effect of the selection to eliminate salesman 1 or to deselect him can be seen in the customer records display as shown in FIG. 32. As can be seen in this figure, the customer records have been reduced to account for the loss of salesman 1. Therefore, one can see that the selection process works in both directions. The effect of a selection or deselection alters the related distributions, thereby effecting the results in all other related displays. The use of this distribution indexing methodology is extremely powerful in that the effect of various selections and deselections are reflected in all other data fields which comprise a given database. The methodology also comprises a "what if" and "commit" mode of operation. For example, if instead of actually making a specific selection, the system user would only like to see what the effect of the selection would be without actually making the change, he or she could make a "what if" selection. If the "what if" selection is made, the "what if" selected data is displayed in yellow, and the user can determine if this is what he or she desires to do. If it is what the user wants, then the user hits the "commit" command and the selection is made and displayed in blue as before. If this is not what the user wants, then a different "what if" can be done or a different selection can be made. Referring now to FIG. 33, there is shown a high level flow chart representing the dbEXPRESS.TM. graphical interface procedure described in detail in the preceding paragraphs. The software for monitoring the dbEXPRESS.TM. graphical interface is primarily event driven. When an event occurs, such as selecting a button, dbEXPRESS.TM. reacts to the event. The action that is performed by dbEXPRESS.TM. depends upon which mode of operation dbEXPRESS.TM. is currently processing. The dbEXPRESS.TM. software is capable of operating in one of three modes. Mode 1 of operation is the primary graph display mode, mode 2 of operation is the detail graph display mode, and mode 3 of operation is the list box display mode. In dbEXPRESS.TM. mode 1, which is implemented by the software represented by element 300 in FIG. 1, the system user can view any field distribution graph by selecting a field from a selection list box and selecting the display button. When this event occurs, the software will implement a process which will remove the current field distribution graph, if any is already displayed, and replace it with the selected fields primary distribution graph. Elements 802, 804, 806, and 808 of FIG. 33 represent the software process' to implement the mode 1 procedure. Element 802 represents the software process to allow the system user to select a field or fields from the selection list box so that they may be displayed. Element 804, which is the element directly following element 802, represents the software to implement the process step of opening the selected distribution table(s) and retrieve the desired distribution so that it may be displayed. Element 806, which is the element directly following element 804, represents the software necessary to display the primary graph of the selected fields. Element 808, which is the element directly following element 806, represents the software to implement the process step of displaying the fields not selected in the selection list box. The remaining fields displayed in the selection list box are displayed so that the system user can make additional selections for primary graphical display. Each selection for primary graphical display results in a new graph as indicated above. Elements 802, 804, 806, and 808 provide a general description of the process implemented by element 300 in FIG. 1 and its associated detailed flow charts of FIGS. 21 and 22. The remaining elements in FIG. 33 represent the software necessary to implement the processing for all three modes of operation. Element 810, which is the element directly following element 808, represents the software to implement the process step of initializing the mode count. Element 812, which is the element directly following element 810, represents the software to implement the process step of monitoring the graphical user interface to determine which mode of operation to enter into. Element 814, which is the element directly following element 812, represents the software to implement the processing of the events which occur in mode 1 of dbEXPRESS.TM. operation. The events for mode 1 of operation have been described above. Element 816, which is the element directly following element 814, represents the software to implement the processing of the events which occur in mode 2 of dbEXPRESS.TM. operation. Element 818, which is the element directly following element 816, represents the software to implement the processing of the events which occur in mode 3 of dbEXPRESS.TM. operation. Details of event processing for modes 2 and 3 of dbEXPRESS.TM. operation are given in the following paragraphs and are related to the various previously described detailed flow charts. In mode 2 of operation, the system user has the ability to expand the data display for a given bar, if a bar graph is utilized as the display, in the primary display and to select and deselect all of the records for any bar being displayed. This processing is implemented by the software processes represented by elements 400 and 500 in FIG. 1. The processing for selecting and deselecting a bar is done by moving the mouse to a bar and clicking or depressing the right button of the mouse. It should be noted, however, that the mouse is utilized only to illustrate the procedure. In actuality, the selection itself can be made through a keyboard operation, a touch screen button, or even a light pen operation. Regardless of how the actual selection is made, the software will retrieve the bin selection count. If the count is greater than 0, then the selection count is set to 0 and the particular bar is shaded in red, indicating that no selection has been made. If on the other hand, the count is equal to 0, then the selection count is set to the total count and the bar is shaded in blue indicating that a selection has been made. The software process will then update, for every field, the bin records selection count. The software responsible for this processing is represented by the detailed flow chart in FIG. 25. The software process represented by the flow chart in FIG. 25 is called for every field indicating the primary fields select bin records count and the total number of selected records. The technique for the expansion of the data as described above is accomplished as follows. For every primary bar graph, there exists for each bar in the graph a range of bin numbers, the coordinates of the bar, which is the bar hot region for placement of the mouse, the number of selected records, "what if" records, and the total number of records in or represented by the bar. When the system user selects a bar, an event will occur. The bar is selected by positioning the mouse in a bar hot spot region and clicking or depressing the left button. When the left button is clicked, the dbEXPRESS.TM. mode will change from mode 1 to mode 2 and the primary display graph will be removed. The mode 2 software will retrieve the selected bar bin range, build the detail graph and then display the graph. In mode 2, the software will monitor for three specific mode events. This software process step is represented by element 816 in FIG. 32. Event 1 of mode 2 is simply a return to the primary display graph. This event occurs when the mouse is positioned anywhere in the graph region and the left button on the mouse is clicked or depressed. The software will change the present mode of operation back to mode 1, remove the currently displayed graph and redraw the primary graph. Event 2 of mode 2 is the select/deselect option for a given or selected bar in a graph. This event occurs when the right button of the mouse is clicked on and the mouses cursor position is in a particular bar's hot region. The actual process for selecting and deselecting has been previously described in the proceeding paragraphs. Event 3 of mode 2 is a display selected bar's records option. This event occurs when the system user selects the select display bar value button and the particular bar. This is done by clicking the mouse on the display button, positioning the mouse on the particular bar's hot region and depressing the right button. When this event occurs, the software process will remove the detail display box, and set the mode to mode 3. When mode 3 is initiated, the software process represented by the flow chart in FIG. 27 will retrieve the records for the selected bar and display the records in a list box. When the retrieval software, represented by the flow chart on FIG. 27, is called to retrieve the data, the information required is the bin range of the bar, the field distribution record, and the select record data retrieve mode (selected records or not-selected records). The retrieved software will retrieve the record index and values contained within the bin range for the selected bar. The values of the or corresponding to the record will then be displayed in the list box. It is important to note that up to this point in the processing the only input/output operation that has occurred was when the distribution table was generated and the distribution records for each field was read. There are two events that are monitored while in mode 3. The software allows the system user to select or deselect any records in the list box simply by positioning the mouse cursor on a record and depressing the left button. When the record is selected or deselected it will be shaded in either blue, which indicates a selection has been made, or red, which indicates that no selection has been made. The system user may then perform two events; namely, select the cancel button or select the commit button. When the cancel event occurs the list box and buttons will be removed, the mode will be set to mode 2, and the detail graph from mode 2 will be redrawn. The commit event will investigate that list box setting and update the selected bars bin count. After the select code for the bar has been updated the list box will be removed and the detail graph will be redrawn and the mode set to mode 2. The event processing is accomplished by the software process step represented by element 818. Referring back to FIG. 1 once again, the remaining elements are now described. Element 700, which is the element directly following element 600, represents the software process to provide the users with various user selection output modes for the graphical displays. The output modes for the displays can be in tabular format output, two-dimensional graphic output, and three-dimensional graphic output. The software also provides for the outputting of the data. The data can be output to a disk 702, a printer 704, a CRT 706 or a local area network or a modem 708. The user makes the particular selections. While the invention has been particularly shown and described with respect to the preferred embodiments thereof, it should be understood by those skilled in the art that the foregoing and other changes in form and details may be made therein without departing from the spirit and scope of the invention which should be limited only by the scope of the appended claims.
|
Same subclass Same class Consider this |
||||||||||
