The design starts from this use case: a count compiler or regional editor wants to find out what birds have been recorded in a circle or circles, in order to determine whether a current record (or lack of records) is anomalous or not.
The solution is a suite of three CGI scripts that produced these three types of pages.
The top page appears first,
generated by script pickaregion.cgi. It displays an array of
radiobuttons, one for each state or province in the
database. This form also has optional entry fields limiting
the range of years of interest.
When the user selects a state or province and clicks the
button, script regx.cgi
generates a regional index page.
This form starts with a few functional controls, followed by
a list of all the different names and coordinates of circles
in that state. In this list, each circle's entry has a
checkbox for selecting that circle.
When the user selects one or more circles on the regional
index page and clicks ,
script hist.cgi generates a history report
page or detail page, a
table showing the number of individuals of each kind of bird
in each year.
In addition to these features, the regional index page has some general controls that affect appearance and nomenclature in the generated report.
Section 3.1, “Alias sets” discusses how to implement the requirement that the user be able to collapse multiple rows of the report into one.
Section 3.2, “The art of combining circles” discusses the production of reports with data from multiple circles.