Computers: Universe: Retrieve

During out discussion of file dictionaries above (see Dictionaries above) you will have seen a number of examples of RetrieVe at work, providing simple listings of records.

We have, however, barely scratched the surface of RetrieVe's abilities. It is one of those rare tools which manages to combine simplicity in everyday use with the muscle to produce extensive and highly complex reports when they are required: and to handle the entire continuum between these extremes.

In this section, we shall take a closer look at the language, learning sufficient to produce perhaps 80% of the reports required by real clients within real systems.

Be aware, though, that RetrieVe has the power to handle most of the other 20% too: when you get to the point where you need to accomplish something which these notes do not describe, do not assume that it cannot be achieved with Retrieve: consult UniVerse's documentation first for the fine detail that you may require.

Bear in mind also that RetrieVe is closely integrated into the rest of UniVerse. Sometimes, the effect you require may depend on combining RetrieVe with other UniVerse tools: such as the creation of a new I-descriptor which in turn calls a UniVerse Basic subroutine to return the vital piece of information you need to complete your report.

It is true that during your career you will occassionally encounter reports which require hand coding using UniVerse Basic, but if you find yourself reaching for the compiler to prepare reports frequently, discipline yourself to ask first, for each report, 'could I do this using RetrieVe?'.

UniVerse Basic, for all its strengths, is a general purpose language. If you turn to it to write reports, you will not only have to write the tricksy bits which you felt were beyond RetrieVe, you'll have to write code to number pages, handle page breaks, automatically adjust to different screen and paper widths, total, average, sort... all the things you get with RetrieVe 'for free'.