Customizable Report Generator

Last updated: October 10, 2000
We've always thought our report generator in version 7 is quite good,
but there were limits to what we can do with our version 7 database technology
and the 80-column by 25-row display. And so, for version 8, we set out
to blow away those limits and give you a reporting system that (to our
knowledge) exceeds anything that has ever been included in a baseball
game.
Displaying Standard Reports on the Screen
In version 8, when you choose the menu item for generating reports, a
dialog pops up with a list of the reports that are available, grouped
by the type of report. Choose the report you want, select a destination
(display, printer, or file), and click on OK to proceed.
At this point, an options dialog appears. This dialog usually has three
tabs, one for options specific to this type of report, one for choosing
the time period on which you wish to report, and one for choosing the
sections that you'd like to see on the report.

With the first tab, you can choose the data that you want to see on the
report and set any options that apply to this report. For example, if
you're generating a team batting report, you can choose which team you'd
like to see, whether to show pitchers individually or as a group, whether
to include players with no stats, and whether to show players who are
no longer on this team's roster. The specific choices vary from report
to report, but you can always find these options on the first tab.
The second tab allows you to choose the time period. There are two very
important improvements represented here. First, our new database can store
the statistics for different stages of the season (regular season, divisional
series, league championship series, final series) in the same database.
(No need to create a new player directory for the post-season.) And you
can choose which of these season stages to use for the report you're about
to generate.
Second, you can choose to generate the report based on the season-to-date
totals or using any date interval. We've provided some standard date intervals
(one for each of the six months and, to see who's hot and who's not, the
last 7/14/21/28 days). Or you can choose a custom date range, with a little
popup calandar to help you enter the start and end dates. Using these
tools, it's easy to see who the league leaders were in the month of June,
what the team standings look like for the second half of the season, and
what your players have done for you lately, among many other things. (Note:
these date interval options are disabled for reports based on real-life
stats.)
The third tab allows you to choose the sections you would like to see.
You may recall that some version 7 reports have options that let you choose
which sections appear. In version 8, we have extended this concept to
all reports that have multiple sections. This way, when you send a report
to the printer or a file, you don't waste paper or clutter up the file
with information you don't really want to see.
In most cases, you'll be happy with the default choices on all three
tabs, so you'll be able to click on OK and see the report on the screen
right away. But it's nice to be able to change the options anytime you
want to.
When you display a report on the screen, it looks very much like a spreadsheet.
Each section is on a separate sheet, and there's a row of tabs in the
bottom left corner that lets you switch among sections with a single click
of the mouse. When you scroll the report, the headings remain visible,
making it easy to interpret the data. The column on which the report is
sorted is shown in a different color from the rest of the columns.

You can double-click on the heading for any column and the report is
immediately re-sorted on that column. Double-click on the same column
again and the report is re-sorted on the same column, but in the opposite
sort direction (lowest instead of highest, for example).
Among the best new features is the ability to change the options without
having to close the report and generate it again. The report window has
a toolbar across the top. On that toolbar is a series of controls that
allow you to change the scope of the report (the teams or players that
are included) and to access the options dialog (plus two other important
buttons that I'll get to later.)
For example, if you are displaying the team pitching report, you can
easily cycle through all the teams in your league simply by clicking on
one of three controls -- a button with a left-arrow icon (to show the
previous team), a drop-down list with all teams (to show the team of your
choice), or a button with a right-arrow icon (to show the next team).
And if you want to change the date interval or any of the report-specific
options, just click on the Options button and the options dialog reappears.
Make any changes you want, click OK, and presto, the display is immediately
updated to reflect your new choices.
Printing
When you display a report to the screen, you can choose Print Preview
to see how the report would appear on the printed page, and you can choose
Print to send the report to the printer.
As we mentioned above, you have the option to suppress report sections
to conserve paper. In addition, we put a lot of energy into the pagination
logic for our reporting system. We don't like to waste paper, so we took
the time to make sure that we could put multiple report sections on the
same printed page if there was room. (We've seen a lot of report generators
that automatically go to the next page whenever a new section is encountered.)
By the way, since we're using standard Windows features for printing,
you'll be able to select which printer you want to send the report to
(including printers on a network), which pages you want to print, and
the number of copies. The print jobs are routed through the standard Windows
Print Manager, so you can delete them before they are printed if you made
a mistake and realize it soon enough.
For team-oriented reports, the ones that show the stats for all players
on a team, you have the option of printing the report for just one team
or for every team in your league or organization.
Finally, many Windows products force you to display your document or
report on the screen before you can print it. We know there are times
when you don't want to be bothered with those extra steps -- displaying
the report, clicking on the File menu and then on Print, then closing
the window. So we designed our system so you can send the report directly
to the printer in one step.
Saving Reports to a File
As with printed reports, you can send any report directly to a disk file
without displaying it first, you can suppress sections you don't want,
and (for team-oriented reports) you can include one team or all teams
in your league.
HTML option
In addition to saving the reports in a plain-text format that makes them
easy to load into a text editor or word processing program, version 8
gives you the option to generate reports in HTML format. We know that
many of you run or play in leagues using Diamond Mind Baseball, and that
most of those leagues are now using a web site to keep everyone up to
date. Now it's that much easier for your league's webmaster to create
web pages based on Diamond Mind reports.
Customizing Reports
One of our most ambitious goals was to give you the power to customize
all of the reports that we offer, and I'm happy to report that we just
put the finishing touches on the user interface that allows you to do
that. When you display a report on the screen, the toolbar in the report
window includes a Customize button. Click on this button and you are presented
with a dialog that lists the sections in the report and the columns in
each section.

Using these dialogs you can:
- add, remove, and rename any section, or put the sections in a different
order
- remove or resequence the columns in any section
- manipulate a second row of headings to a section to help clarify the
data that is displayed in the columns below (version 7 has numerous examples
where an extra row of headings makes a big difference)
- add a column, or change the data displayed in an existing column, choosing
from virtually any piece of information in the database, including real-life
and simulated stats and the splits (left/right and others)
- change the heading that appears above a column
- choose whether a column is left-justified, centered or right-justified
- choose the width of the column (most useful for printer and file output)
- choose the default sort sequence for the column

In addition to giving you control over the section/column layout of the
report, this new reporting architecture gives you the flexibility to do
things that have never been possible in earlier versions. If you wish,
you can design a report that includes real-life and simulated stats in
the same report, even in the same section; a team pitching report that
includes pitcher-hitting stats; a team batting report that includes fielding
stats; a league leaders report that includes batting, pitching and fielding
categories on the same report, or one that includes the best and worst
players in the same category.
Once you have customized a report, you can save it and run it as if it
was a standard report designed by Diamond Mind and supplied with the game.
Like previous releases, version 8 includes a lot of standard reports,
more than enough to meet the needs of most people. But for those of you
who want even more information, and more control over how it is organized
and displayed, version 8 will give you the tools you need.
Memorized Reports
The last button on the report window's toolbar is the Memorize button.
What's the difference between a custom report and a memorized report?
A custom report defines the structure (sections and columns), while
a memorized report defines the content (which teams and players
to include, which date interval to use, how to sort the report, and which
options to use).
Memorized reports give you the ability to say things like "I want
to be able to run the team batting report for every team in my league,
with pitchers shown as a group, and the players sorted by slugging percentage."
More precisely, they give you the ability to save those settings for future
use.
You may recall that generating a standard report involves two steps --
choosing the report and choosing the options -- before the report is displayed.
When you generate a memorized report, only the first step is required,
since the options have been stored as part of the memorized report.
This can save you a mouse-click or two when you generate a report to
the screen (and you can still change the options via the Options button
when you do this), but the real value is when you're generating reports
to the printer or a file. Suppose you're running a league and you have
a dozen reports (standard or customized) that you like to produce for
your league members at regular intervals. By memorizing these reports,
you save yourself the trouble of entering the options each time. All you
need to do is select each report, choose the destination (printer, plain-text
file, HTML file) and voila, out it comes.
More Statistics
In the process of rebuilding the game around a new database technology,
we also took the time to give you access to more of the information in
the database, and to give you more ways to display it. We knew we wanted
to make the reports customizable, and we knew that some of you would want
to display information that isn't available on our standard reports. Examples
include:
- for reports that list players, we've given you several name formats
to choose from:
Format Example
---------------------------- -----------------------------
First name Ted
Last name Kluszewski
Short name Kluszewski
Full name Ted Kluszewski
Full name, bats Ted Kluszewski, L
Full name, bats (symbol) Ted Kluszewski*
Full name, throws Ted Kluszewski, L
Full name, throws (symbol) Ted Kluszewski*
Last name, first name Kluszewski, Ted
Short name, bats Kluszewski, L
Short name, bats (symbol) Kluszewski*
Short name, throws Kluszewski, L
Short name, throws (symbol) Kluszewski*
- for reports that list teams, we've given you several options for identifying
the team:
Format Example
---------------------------- --------------------------------
Abbreviation Was
Abbreviation plus year Was69
City name Washington
Nickname Senators
Short name (nickname, if it exists, or city)
- for reports that include batting stats and batting splits, we've added
things like on-base-plus-slugging, extra-base hits, steal percentage,
secondary average, runs per game, homers (and other stats) per atbat and
per plate appearance, and atbats per homer (and other stats)
- for reports that include pitching stats and opposing batter stats/splits,
we've added things like holds, pitch count information, and virtually
any of the batting statistics, including on-base-plus-slugging, on an
opposing-batter basis
- for reports that include fielding statistics, we've added opposition
stolen base stats for catchers and pitchers, pickoffs for pitchers and
catchers, defensive innings, range factors, and totals for all outfield
positions combined
New and Improved Standard Reports
We're very excited about some of the new reports and improvements to
existing reports that we've been able to make with this new architecture.
The most powerful ones, in my opinion, are the new batting register and
pitching register reports. A batting register is like the free agent report
in version 7, except that you can include all players in the database,
all players in an organization (i.e. two leagues linked for inter-league
player or the post-season), all players in a league, or just the free
agents. It gives you the ability to do the following:
- sort on any column, so you can instantly see who the leaders were in
any category, along with the rest of their stats
- control who appears in the list using a combination of selection criteria.
For the batting register, the criteria are role (batter/pitcher), batting
hand (left/right/switch), playing time (minimum and maximum plate appearances,
minimum games at a defensive position), position (all rated players or
primary position only), and type of record (for multi-team players, their
team-specific or combined records)
The leaderboards have also been enhanced in several ways. You can now
control how many players appear in each list (as few as one or as many
as 25). When players tie for the last spot in a leaderboard, you can choose
whether those ties should be broken using our standard tie-breaker stats
or whether the list should end with the notation "3 players tied
with" whatever number. We've expanded the fielding leaders report
to include a whole bunch of categories for each position (not just fielding
percentage). And, remember, as with all of the reports, you can customize
the leaderboards and/or generate them for any time interval.
We've added several features to the team standings report. The most important
of these is the new section showing wildcard standings. The wildcard standings
are intelligent enough to recognize which teams are in sole possession
of a division lead and to sort those teams to the top, even if their records
are worse than some non-division leaders. We've included new columns such
as pythagorean win-loss records and a game-by-game display of the record
in the last ten games. We've also added the ability to sort on any of
the breakdowns (home-road records, records in one-run games, including
the winning percentage for any of these breakdowns).
Intelligence versus Flexibility
When a designer sets out to produce a customizable tool such as our new
reporting system, it's easy to make the mistake of coming up with something
that is too generic. We're familiar with one other baseball game that
has customizable reports but no intelligence -- there are no options,
no totals, no attempt to paginate the reports in any reasonable way. That
reporting system is flexible but doesn't have a high baseball IQ.
Our goal was to give you the power of customization without sacrificing
baseball intelligence. For example:
- we want you to have the ability to set some preferences for the reports,
so our reports have a set of options (how to sort them, whether to show
pitchers individually on the team batting report, which set of players
to show on the register reports, qualifications for leader boards, and
so on).
- we want the reports to have meaningful totals, so we took the time
to add logic that computes correct team and league totals for things (like
games played and shutouts) that cannot be figured just by adding up the
numbers for the players on that team
- we want you to be able to set these options once and use them again
and again, so we're providing memorized reports.
You get all of these things without having to use the customization feature.
And if you decide you want to customize a report, you can do it using
a simple point and click user interface.
|