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.