Query Instructions The Query program will allow you to produce a report based on your selection, sorting and formatting specifications. Upon entry, you will be presented with a data dictionary and string gadgets for entering your record selection criteria, sort sequence and output report format. The data dictionary presents you with a list of data names that can be used to display or print values contained in the database. The SELECT string gadget will allow you to specify some selection criteria to be used to determine which database entries will be included in you output display or report. For example, SELECT: (Article = "computer" or "printer") and Orig > 1000.00 specifies that the database is to be searched for any Article that contains the words "computer" or "printer" that also has an Original Cost greater than $1,000. Remember that in order to enter data into a string gadget you must first position the pointer within the gadget and depress the left button on the mouse. Note that the Select parameters contain parentheses to prevent ambiguities. If there is a possibility that the key word or phrase you are looking for contains occurrences with both upper and lower case letters, you must check for both, e.g., "Computer" or "computer". Another method is to use the wild character, e.g., "?omputer". The SORT string gadget will allow you to specify the sequence in which the selected records are to be displayed or printed. For example, SORT: Article specifies that the selected database entries are to be sorted in Article name sequence. Only one sort field may be entered. The REPORT string gadget will allow you to specify the format of the output display or report. For example, REPORT: Article, col 22, Description, col 70, Orig specifies that the Article name, Description and Original cost for the selected records are to be displayed. Further, it is specified that the Description is to be displayed beginning in column 22 and that the Original cost is to be displayed beginning in column 70. The Report specification parameters may be very simple or very complex depending upon the skill of the user. Upon entering the Query program, you will find that the Report string gadget already contains some parameters. You may use these parameters or enter your customized report specifications. To erase the content on the Report string gadget, first select the gadget and then depress Right AMIGA - X. To undo (cancel) the last editing change to the string, depress Right AMIGA - Q. The Report specification parameters can be classified as either describing "when to do it" or "what to do". When To Do It: page_top - specifies that the following functions are to be executed at the top each printed page or screen. page_bottom - specifies that the following functions are to the executed at the bottom of each printed page or screen. report_top - specifies that the following functions are to be executed only at the beginning of the output report. report_bottom - specifies that the following functions are to executed only at the end of the report. top() - specifies that the following functions are to be executed after there has been a change in the content of . For example, top(Article). Normally, the specified data-name will be the same as the sort sequence. bottom() - specifies that the following functions are to be executed before there is a change in the content of data-name. For example, bottom(Category). detail - specifies that the following functions are to be executed for each selected database entry. What To Do: print - specifies that all output is to be routed to the printer. display - specifies that all output is to be routed to the screen. "Display" is the output default. - causes the specified data name to be printed or displayed. For example, "Condition" is a data-name. "literal" - causes the specified literal to be printed or displayed. For example, "The result is:" is a literal. total() - specifies that the summed value of is to be printed or displayed. An numeric data item from the dictionary must be substituted for ", e.g., Orig. For example, to display a count of the database entries selected for the report, enter: report_bottom total(1) "%9,999" cum() - same as total except that the accumulator is not reset after displaying the result. To consecutively number items appearing in the output report, enter: detail cum(1) "%9999" col nn - causes the following data item to be displayed or printed in the column specified by nn. skip n - causes n lines to be skipped before displaying or printing the next data item. If n is not provided, 1 is assumed. pause - causes a pause in the output process until a key (any key) is depressed. eject - if "print" has been specified, this command causes the paper to be ejected to the top of the next page; otherwise, the screen will be cleared. EDITING MASKS Editing Masks may be used to cause predefined characters to be imbedded within displayed or printed numeric values. The masks must be constructed as an alpha-numeric literal whose first character is "%". If the second character of the mask literal is other than a numeric character, that character will be placed in the next left most position before the resulting edited numeric value. Examples: Input Values Mask Output 01000 "%9,999" 1,000 25245 "%$99,999" $25,245 -5643 "%$999,999" $-5,643 Here is an example of a more complex query construction: SELECT: (Description = "gold" or "silver") and Orig >= 100 SORT: Article REPORT: bottom(Article) Article total(Orig) "%$99,999" report_bottom skip 1 col 5 "Total " col 22 total(Orig) "%$99,999" This query will display the total original value for each article type and display an overall total value at the end of the report. Rules: (1) The Select statement may contain these operators: = Equal to <> Unequal to < Less than > Greater than <= Less than or equal to >= Greater than or equal to (2) The field on the left side of the operator must be a data name from the dictionary. (3) The field on the right side of the operator may be either a data name or literal. Literals must be enclosed in double quotes. (4) In the case of equal and unequal, the data name on the left side of the operator is searched for any occurrences of the data specified on the right of the operator. (5) The length of the item to the right of the operator may not be greater than the length of the item to the left of the operator. (6) When used in a literal, the "?" is wild. For example, to select all records in the database enter: SELECT: Article = "?" (7) Commas may used to improve readability; otherwise, they serve no useful purpose. (8) All data names must be capitalized. All other commands must be in lower case. If your printer carriage is 80 columns in width, try setting your printer preferences for compressed mode in order to print reports that are greater than 80 characters in width.