Customizable Report Generator

Last updated: February 18, 2004
With a wide range of standard reports, the ability to customize reports
to suit your needs, a huge set of traditional and modern statistics to
choose from, and several output options (display, printer, plain text
file, HTML file), Diamond Mind's version 8 report generator set a new
standard for baseball games.
In version 9, we have expanded upon that foundation to include the ability
to generate groups of reports and entire web
sites with a single command.
Displaying Standard Reports on the Screen
When you choose the menu item for generating reports, a window pops up
with a list of the reports that are available, grouped by the type of
report:

As you can see in the list box on the left side of this window, you can
choose from a variety of reports that display league standings, schedules
and game scores, league leaders, team totals, the statistics for players
on a team, game-by-game statistics for players, injury reports, transactions,
and more.
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 season stage and the time period.
The DMB database stores separate statistics for different stages of the
season (regular season, divisional series, league championship series,
final series), 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. (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.
Many reports are divided into several sections in order to accommodate
all of the statistics. When it comes time to print the report or save
it to a file, you may want to suppress sections you're not interested
in, and this third tab on the report options window allows you to do just
that.
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.

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).
You can change the options without having to close the report. 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 we'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, you can generate
reports in HTML format.
All of the statistical reports are created as formatted HTML tables,
not plain text. (Boxscore files remain as plain text.) This approach allows
us to use color and more attractive fonts to make the reports easier to
work with. These colors and fonts are specified in a cascading style sheet
that we are providing with version 9 and which is automatically generated
when you create DMB reports in HTML format.
If you have the requisite HTML knowledge, you can let DMB generate the
standard style sheet and then replace it with one of your own. In that
way, you'll be able to choose fonts and colors that suit your tastes.
HTML output is available for all of the reports in DMB, but we've also
added the ability to generate an entire family
of linked reports with one command.
Customizing Reports
One of our most ambitious goals was to give you the power to customize
all of the reports that we offer, and we're happy to report that you can
do just 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
- 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.
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
and creating a report group containing these memorized reports, you can
generate all of them with a single command, saving yourself the trouble
of entering the options each time.
More Statistics
In the process of rebuilding the game around a new database technology,
we 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 included
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 included 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 included opposition
stolen base stats for catchers and pitchers, pickoffs for pitchers and
catchers, defensive innings, range factors, and totals for all outfield
positions combined
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. You may have seen other baseball games that offer
customizable reports but no intelligence -- no options, no totals, no
attempt to paginate the reports in any reasonable way. Such a reporting
system is flexible but doesn't have a high baseball IQ.
Our approach is 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 provide 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.
|